Freeciv-3.1: /fast/freeciv/nightly/S3_1/client/tilespec.h Source File

Freeciv-3.1

Loading...
Searching...
No Matches
tilespec.h
Go to the documentation of this file.
1/***********************************************************************
2 Freeciv - Copyright (C) 1996 - A Kjeldberg, L Gregersen, P Unold
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2, or (at your option)
6 any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12***********************************************************************/
13
14/***********************************************************************
15 Reading and using the tilespec files, which describe
16 the files and contents of tilesets.
17***********************************************************************/
18#ifndef FC__TILESPEC_H
19#define FC__TILESPEC_H
20
21#ifdef __cplusplus
22extern "C" {
23#endif /* __cplusplus */
24
25/* utility */
26#include "log.h" /* enum log_level */
27
28/* common */
29#include "city.h" /* enum citizen_category */
30#include "fc_types.h"
31
32#include "options.h"
33
34struct sprite; /* opaque; gui-dep */
35
36struct base_type;
37struct resource_type;
38
39/* Create the sprite_vector type. */
40#define SPECVEC_TAG sprite
41#define SPECVEC_TYPE struct sprite *
42#include "specvec.h"
43#define sprite_vector_iterate(sprite_vec, psprite) \
44 TYPED_VECTOR_ITERATE(struct sprite *, sprite_vec, psprite)
45#define sprite_vector_iterate_end VECTOR_ITERATE_END
46
47#define SPECENUM_NAME ts_type
48#define SPECENUM_VALUE0 TS_OVERHEAD
49#define SPECENUM_VALUE0NAME N_("Overhead")
50#define SPECENUM_VALUE1 TS_ISOMETRIC
51#define SPECENUM_VALUE1NAME N_("Isometric")
52#include "specenum_gen.h"
53
54#define SPECENUM_NAME fog_style
55/* Fog is automatically appended by the code. */
56#define SPECENUM_VALUE0 FOG_AUTO
57#define SPECENUM_VALUE0NAME "Auto"
58/* A single fog sprite is provided by the tileset (tx.fog). */
59#define SPECENUM_VALUE1 FOG_SPRITE
60#define SPECENUM_VALUE1NAME "Sprite"
61/* No fog, or fog derived from darkness style. */
62#define SPECENUM_VALUE2 FOG_DARKNESS
63#define SPECENUM_VALUE2NAME "Darkness"
64#include "specenum_gen.h"
65
66#define SPECENUM_NAME darkness_style
67/* No darkness sprites are drawn. */
68#define SPECENUM_VALUE0 DARKNESS_NONE
69#define SPECENUM_VALUE0NAME "None"
70/* 1 sprite that is split into 4 parts and treated as a darkness4. Only
71 * works in iso-view. */
72#define SPECENUM_VALUE1 DARKNESS_ISORECT
73#define SPECENUM_VALUE1NAME "IsoRect"
74/* 4 sprites, one per direction. More than one sprite per tile may be
75 * drawn. */
76#define SPECENUM_VALUE2 DARKNESS_CARD_SINGLE
77#define SPECENUM_VALUE2NAME "CardinalSingle"
78/* 15=2^4-1 sprites. A single sprite is drawn, chosen based on whether
79 * there's darkness in _each_ of the cardinal directions. */
80#define SPECENUM_VALUE3 DARKNESS_CARD_FULL
81#define SPECENUM_VALUE3NAME "CardinalFull"
82/* Corner darkness & fog. 3^4 = 81 sprites. */
83#define SPECENUM_VALUE4 DARKNESS_CORNER
84#define SPECENUM_VALUE4NAME "Corner"
85#include "specenum_gen.h"
86
87/* An edge is the border between two tiles. This structure represents one
88 * edge. The tiles are given in the same order as the enumeration name. */
89 enum edge_type {
90 EDGE_NS, /* North and south */
91 EDGE_WE, /* West and east */
92 EDGE_UD, /* Up and down (nw/se), for hex_width tilesets */
93 EDGE_LR, /* Left and right (ne/sw), for hex_height tilesets */
94 EDGE_COUNT
95};
96 struct tile_edge {
97 enum edge_type type;
98#define NUM_EDGE_TILES 2
99 const struct tile *tile[NUM_EDGE_TILES];
100};
101
102/* A corner is the endpoint of several edges. At each corner 4 tiles will
103 * meet (3 in hex view). Tiles are in clockwise order NESW. */
104 struct tile_corner {
105#define NUM_CORNER_TILES 4
106 const struct tile *tile[NUM_CORNER_TILES];
107};
108
109 struct drawn_sprite {
110 bool foggable; /* Set to FALSE for sprites that are never fogged. */
111 struct sprite *sprite;
112 int offset_x, offset_y; /* offset from tile origin */
113};
114
115/* Items on the mapview are drawn in layers. Each entry below represents
116 * one layer. The names are basically arbitrary and just correspond to
117 * groups of elements in fill_sprite_array(). Callers of fill_sprite_array
118 * must call it once for each layer. */
119#define SPECENUM_NAME mapview_layer
120#define SPECENUM_VALUE0 LAYER_BACKGROUND
121#define SPECENUM_VALUE0NAME "Background"
122/* Adjust also TERRAIN_LAYER_COUNT if changing these */
123#define SPECENUM_VALUE1 LAYER_TERRAIN1
124#define SPECENUM_VALUE1NAME "Terrain1"
125#define SPECENUM_VALUE2 LAYER_DARKNESS
126#define SPECENUM_VALUE2NAME "Darkness"
127#define SPECENUM_VALUE3 LAYER_TERRAIN2
128#define SPECENUM_VALUE3NAME "Terrain2"
129#define SPECENUM_VALUE4 LAYER_TERRAIN3
130#define SPECENUM_VALUE4NAME "Terrain3"
131#define SPECENUM_VALUE5 LAYER_WATER
132#define SPECENUM_VALUE5NAME "Water"
133#define SPECENUM_VALUE6 LAYER_ROADS
134#define SPECENUM_VALUE6NAME "Roads"
135#define SPECENUM_VALUE7 LAYER_SPECIAL1
136#define SPECENUM_VALUE7NAME "Special1"
137#define SPECENUM_VALUE8 LAYER_GRID1
138#define SPECENUM_VALUE8NAME "Grid1"
139#define SPECENUM_VALUE9 LAYER_CITY1
140#define SPECENUM_VALUE9NAME "City1"
141#define SPECENUM_VALUE10 LAYER_SPECIAL2
142#define SPECENUM_VALUE10NAME "Special2"
143#define SPECENUM_VALUE11 LAYER_FOG
144#define SPECENUM_VALUE11NAME "Fog"
145#define SPECENUM_VALUE12 LAYER_UNIT
146#define SPECENUM_VALUE12NAME "Unit"
147#define SPECENUM_VALUE13 LAYER_SPECIAL3
148#define SPECENUM_VALUE13NAME "Special3"
149#define SPECENUM_VALUE14 LAYER_CITY2
150#define SPECENUM_VALUE14NAME "City2"
151#define SPECENUM_VALUE15 LAYER_GRID2
152#define SPECENUM_VALUE15NAME "Grid2"
153#define SPECENUM_VALUE16 LAYER_OVERLAYS
154#define SPECENUM_VALUE16NAME "Overlays"
155#define SPECENUM_VALUE17 LAYER_TILELABEL
156#define SPECENUM_VALUE17NAME "TileLabel"
157#define SPECENUM_VALUE18 LAYER_CITYBAR
158#define SPECENUM_VALUE18NAME "CityBar"
159#define SPECENUM_VALUE19 LAYER_FOCUS_UNIT
160#define SPECENUM_VALUE19NAME "FocusUnit"
161#define SPECENUM_VALUE20 LAYER_GOTO
162#define SPECENUM_VALUE20NAME "Goto"
163#define SPECENUM_VALUE21 LAYER_WORKERTASK
164#define SPECENUM_VALUE21NAME "WorkerTask"
165#define SPECENUM_VALUE22 LAYER_EDITOR
166#define SPECENUM_VALUE22NAME "Editor"
167#define SPECENUM_VALUE23 LAYER_INFRAWORK
168#define SPECENUM_VALUE23NAME "InfraWork"
169#define SPECENUM_COUNT LAYER_COUNT
170#include "specenum_gen.h"
171
172#define TERRAIN_LAYER_COUNT 3
173
174#define mapview_layer_iterate(layer) \
175{ \
176 enum mapview_layer layer; \
177 int layer_index; \
178 \
179 for (layer_index = 0; layer_index < LAYER_COUNT; layer_index++) { \
180 layer = tileset_get_layer(tileset, layer_index); \
181
182#define mapview_layer_iterate_end \
183 } \
184}
185
186/* Layer categories can be used to only render part of a tile. */
187 enum layer_category
188{
189 LAYER_CATEGORY_CITY, /* Render cities */
190 LAYER_CATEGORY_TILE, /* Render terrain only */
191 LAYER_CATEGORY_UNIT /* Render units only */
192};
193
194#define NUM_TILES_PROGRESS 8
195
196#define MAX_NUM_CITIZEN_SPRITES 6
197
198 enum arrow_type {
199 ARROW_RIGHT,
200 ARROW_PLUS,
201 ARROW_MINUS,
202 ARROW_LAST
203};
204
205struct tileset;
206
207extern struct tileset *tileset;
208extern struct tileset *unscaled_tileset;
209
210struct strvec;
211const struct strvec *get_tileset_list(const struct option *poption);
212
213void tileset_error(enum log_level level, const char *tset_name,
214 const char *format, ...);
215
216void tileset_init(struct tileset *t);
217void tileset_free(struct tileset *tileset);
218void tileset_load_tiles(struct tileset *t);
219void tileset_free_tiles(struct tileset *t);
220void tileset_ruleset_reset(struct tileset *t);
221bool tileset_is_fully_loaded(void);
222
223void finish_loading_sprites(struct tileset *t);
224
225bool tilespec_try_read(const char *tileset_name, bool verbose, int topo_id,
226 bool global_default);
227bool tilespec_reread(const char *tileset_name, bool game_fully_initialized,
228 float scale);
229void tilespec_reread_callback(struct option *poption);
230void tilespec_reread_frozen_refresh(const char *tname);
231
232void tileset_setup_specialist_type(struct tileset *t, Specialist_type_id id);
233void tileset_setup_unit_type(struct tileset *t, struct unit_type *punittype);
234void tileset_setup_impr_type(struct tileset *t,
235 struct impr_type *pimprove);
236void tileset_setup_tech_type(struct tileset *t,
237 struct advance *padvance);
238void tileset_setup_tile_type(struct tileset *t,
239 const struct terrain *pterrain);
240 void tileset_setup_resource(struct tileset *t,
241 const struct resource_type *presource);
242void tileset_setup_extra(struct tileset *t,
243 struct extra_type *pextra);
244void tileset_setup_government(struct tileset *t,
245 struct government *gov);
246void tileset_setup_nation_flag(struct tileset *t,
247 struct nation_type *nation);
248void tileset_setup_city_tiles(struct tileset *t, int style);
249
250void tileset_player_init(struct tileset *t, struct player *pplayer);
251void tileset_background_init(struct tileset *t);
252void tileset_background_free(struct tileset *t);
253
254/* Layer order */
255
256enum mapview_layer tileset_get_layer(const struct tileset *t, int n);
257bool tileset_layer_in_category(enum mapview_layer layer,
258 enum layer_category cat);
259
260/* Gfx support */
261
262int fill_sprite_array(struct tileset *t,
263 struct drawn_sprite *sprs, enum mapview_layer layer,
264 const struct tile *ptile,
265 const struct tile_edge *pedge,
266 const struct tile_corner *pcorner,
267 const struct unit *punit, const struct city *pcity,
268 const struct city *citymode,
269 const struct unit_type *putype);
270int fill_basic_terrain_layer_sprite_array(struct tileset *t,
271 struct drawn_sprite *sprs,
272 int layer,
273 struct terrain *pterrain);
274
275double get_focus_unit_toggle_timeout(const struct tileset *t);
276void reset_focus_unit_state(struct tileset *t);
277void focus_unit_in_combat(struct tileset *t);
278void toggle_focus_unit_state(struct tileset *t);
279struct unit *get_drawable_unit(const struct tileset *t,
280 struct tile *ptile,
281 const struct city *citymode);
282bool unit_drawn_with_city_outline(const struct unit *punit, bool check_focus);
283
284
285 enum cursor_type {
286 CURSOR_GOTO,
287 CURSOR_PATROL,
288 CURSOR_PARADROP,
289 CURSOR_NUKE,
290 CURSOR_SELECT,
291 CURSOR_INVALID,
292 CURSOR_ATTACK,
293 CURSOR_EDIT_PAINT,
294 CURSOR_EDIT_ADD,
295 CURSOR_WAIT,
296 CURSOR_LAST,
297 CURSOR_DEFAULT,
298};
299
300#define NUM_CURSOR_FRAMES 6
301
302 enum indicator_type {
303 INDICATOR_BULB,
304 INDICATOR_WARMING,
305 INDICATOR_COOLING,
306 INDICATOR_COUNT
307};
308
309 enum icon_type {
310 ICON_FREECIV,
311 ICON_CITYDLG,
312 ICON_COUNT
313};
314
315 enum spaceship_part {
316 SPACESHIP_SOLAR_PANEL,
317 SPACESHIP_LIFE_SUPPORT,
318 SPACESHIP_HABITATION,
319 SPACESHIP_STRUCTURAL,
320 SPACESHIP_FUEL,
321 SPACESHIP_PROPULSION,
322 SPACESHIP_EXHAUST,
323 SPACESHIP_COUNT
324};
325
326 struct citybar_sprites {
327 struct sprite
328 *shields,
329 *food,
330 *trade,
331 *occupied,
332 *background;
333 struct sprite_vector occupancy;
334};
335
336 struct editor_sprites {
337 struct sprite
338 *erase,
339 *brush,
340 *copy,
341 *paste,
342 *copypaste,
343 *startpos,
344 *terrain,
345 *terrain_resource,
346 *terrain_special,
347 *unit,
348 *city,
349 *vision,
350 *territory,
351 *properties,
352 *road,
353 *military_base;
354};
355
356#define NUM_WALL_TYPES 7
357
358struct sprite *get_spaceship_sprite(const struct tileset *t,
359 enum spaceship_part part);
360struct sprite *get_citizen_sprite(const struct tileset *t,
361 enum citizen_category type,
362 int citizen_index,
363 const struct city *pcity);
364struct sprite *get_city_flag_sprite(const struct tileset *t,
365 const struct city *pcity);
366struct sprite *get_nation_flag_sprite(const struct tileset *t,
367 const struct nation_type *nation);
368struct sprite *get_nation_shield_sprite(const struct tileset *t,
369 const struct nation_type *nation);
370struct sprite *get_tech_sprite(const struct tileset *t, Tech_type_id tech);
371struct sprite *get_building_sprite(const struct tileset *t,
372 const struct impr_type *pimprove);
373struct sprite *get_government_sprite(const struct tileset *t,
374 const struct government *gov);
375struct sprite *get_unittype_sprite(const struct tileset *t,
376 const struct unit_type *punittype,
377 enum direction8 facing);
378struct sprite *get_sample_city_sprite(const struct tileset *t,
379 int style_idx);
380struct sprite *get_arrow_sprite(const struct tileset *t,
381 enum arrow_type arrow);
382struct sprite *get_tax_sprite(const struct tileset *t, Output_type_id otype);
383struct sprite *get_treaty_thumb_sprite(const struct tileset *t, bool on_off);
384const struct sprite_vector *get_unit_explode_animation(const struct
385 tileset *t);
386struct sprite *get_nuke_explode_sprite(const struct tileset *t);
387struct sprite *get_cursor_sprite(const struct tileset *t,
388 enum cursor_type cursor,
389 int *hot_x, int *hot_y, int frame);
390const struct citybar_sprites *get_citybar_sprites(const struct tileset *t);
391const struct editor_sprites *get_editor_sprites(const struct tileset *t);
392struct sprite *get_icon_sprite(const struct tileset *t, enum icon_type icon);
393struct sprite *get_attention_crosshair_sprite(const struct tileset *t);
394struct sprite *get_indicator_sprite(const struct tileset *t,
395 enum indicator_type indicator,
396 int index);
397struct sprite *get_unit_unhappy_sprite(const struct tileset *t,
398 const struct unit *punit,
399 int happy_cost);
400struct sprite *get_unit_upkeep_sprite(const struct tileset *t,
401 Output_type_id otype,
402 const struct unit *punit,
403 const int *upkeep_cost);
404struct sprite *get_basic_fog_sprite(const struct tileset *t);
405int fill_basic_extra_sprite_array(const struct tileset *t,
406 struct drawn_sprite *sprs,
407 const struct extra_type *pextra);
408struct sprite *get_event_sprite(const struct tileset *t, enum event_type event);
409
410struct sprite *tiles_lookup_sprite_tag_alt(struct tileset *t,
411 enum log_level level,
412 const char *tag, const char *alt,
413 const char *what,
414 const char *name,
415 bool scale);
416
417struct color_system;
418struct color_system *get_color_system(const struct tileset *t);
419
420/* Tileset accessor functions. */
421struct tileset *get_tileset(void);
422const char *tileset_basename(const struct tileset *t);
423bool tileset_is_isometric(const struct tileset *t);
424int tileset_hex_width(const struct tileset *t);
425int tileset_hex_height(const struct tileset *t);
426int tileset_tile_width(const struct tileset *t);
427int tileset_tile_height(const struct tileset *t);
428int tileset_full_tile_width(const struct tileset *t);
429int tileset_full_tile_height(const struct tileset *t);
430int tileset_unit_width(const struct tileset *t);
431int tileset_unit_height(const struct tileset *t);
432int tileset_unit_with_upkeep_height(const struct tileset *t);
433int tileset_unit_with_small_upkeep_height(const struct tileset *t);
434int tileset_unit_layout_offset_y(const struct tileset *t);
435int tileset_unit_layout_small_offset_y(const struct tileset *t);
436int tileset_small_sprite_width(const struct tileset *t);
437int tileset_small_sprite_height(const struct tileset *t);
438int tileset_citybar_offset_y(const struct tileset *t);
439int tileset_tilelabel_offset_y(const struct tileset *t);
440float tileset_scale(const struct tileset *t);
441const char *tileset_main_intro_filename(const struct tileset *t);
442int tileset_num_city_colors(const struct tileset *t);
443void tileset_use_preferred_theme(const struct tileset *t);
444bool tileset_use_hard_coded_fog(const struct tileset *t);
445
446/* These are used as array index -> can't be changed freely to values
447 bigger than size of those arrays. */
448#define TS_TOPO_SQUARE 0
449#define TS_TOPO_HEX 1
450#define TS_TOPO_ISOHEX 2
451
452const char *tileset_name_get(struct tileset *t);
453const char *tileset_version(struct tileset *t);
454const char *tileset_summary(struct tileset *t);
455const char *tileset_description(struct tileset *t);
456char *tileset_what_ruleset(struct tileset *t);
457int tileset_topo_index(struct tileset *t);
458
459#ifdef __cplusplus
460}
461#endif /* __cplusplus */
462
463#endif /* FC__TILESPEC_H */
n
#define n
Definition astring.c:77
city.h
citizen_category
citizen_category
Definition city.h:259
punit
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit * punit
Definition dialogs_g.h:73
tset_name
struct unit struct city struct unit struct tile struct extra_type const struct act_prob *act_probs int actor_unit_id struct unit struct unit int const struct action *paction bool const char * tset_name
Definition dialogs_g.h:85
event
enum event_type event
Definition events.c:81
fc_types.h
Tech_type_id
int Tech_type_id
Definition fc_types.h:347
Specialist_type_id
int Specialist_type_id
Definition fc_types.h:345
Output_type_id
enum output_type_id Output_type_id
Definition fc_types.h:348
type
GType type
Definition repodlgs.c:1312
name
const char * name
Definition inputfile.c:127
log.h
log_level
log_level
Definition log.h:28
options.h
level
struct setting_list * level[OLEVELS_NUM]
Definition settings.c:183
specenum_gen.h
specvec.h
advance
Definition tech.h:124
base_type
Definition base.h:41
city
Definition city.h:309
citybar_sprites
Definition tilespec.h:326
citybar_sprites::food
struct sprite * food
Definition tilespec.h:329
citybar_sprites::trade
struct sprite * trade
Definition tilespec.h:330
citybar_sprites::shields
struct sprite * shields
Definition tilespec.h:327
citybar_sprites::background
struct sprite * background
Definition tilespec.h:332
citybar_sprites::occupied
struct sprite * occupied
Definition tilespec.h:331
citybar_sprites::occupancy
struct sprite_vector occupancy
Definition tilespec.h:333
color_system
Definition colors_common.c:34
drawn_sprite
Definition tilespec.h:109
drawn_sprite::sprite
struct sprite * sprite
Definition tilespec.h:111
drawn_sprite::offset_x
int offset_x
Definition tilespec.h:112
drawn_sprite::offset_y
int offset_y
Definition tilespec.h:112
drawn_sprite::foggable
bool foggable
Definition tilespec.h:110
editor_sprites
Definition tilespec.h:336
editor_sprites::terrain
struct sprite * terrain
Definition tilespec.h:344
editor_sprites::road
struct sprite * road
Definition tilespec.h:352
editor_sprites::city
struct sprite * city
Definition tilespec.h:348
editor_sprites::terrain_special
struct sprite * terrain_special
Definition tilespec.h:346
editor_sprites::vision
struct sprite * vision
Definition tilespec.h:349
editor_sprites::terrain_resource
struct sprite * terrain_resource
Definition tilespec.h:345
editor_sprites::territory
struct sprite * territory
Definition tilespec.h:350
editor_sprites::copypaste
struct sprite * copypaste
Definition tilespec.h:342
editor_sprites::brush
struct sprite * brush
Definition tilespec.h:339
editor_sprites::startpos
struct sprite * startpos
Definition tilespec.h:343
editor_sprites::military_base
struct sprite * military_base
Definition tilespec.h:353
editor_sprites::properties
struct sprite * properties
Definition tilespec.h:351
editor_sprites::copy
struct sprite * copy
Definition tilespec.h:340
editor_sprites::erase
struct sprite * erase
Definition tilespec.h:337
editor_sprites::paste
struct sprite * paste
Definition tilespec.h:341
editor_sprites::unit
struct sprite * unit
Definition tilespec.h:347
extra_type
Definition extras.h:85
government
Definition government.h:52
impr_type
Definition improvement.h:68
nation_type
Definition nation.h:97
option
Definition options.c:454
part
Definition goto.c:52
player
Definition player.h:249
resource_type
Definition terrain.h:43
sprite
Definition sprite.h:22
strvec
Definition string_vector.c:29
terrain
Definition terrain.h:176
tile_corner
Definition tilespec.h:104
tile_edge
Definition tilespec.h:96
tile_edge::type
enum edge_type type
Definition tilespec.h:97
tile
Definition tile.h:49
tileset
Definition tilespec.c:459
unit_type
Definition unittype.h:481
unit
Definition unit.h:138
get_government_sprite
struct sprite * get_government_sprite(const struct tileset *t, const struct government *gov)
Definition tilespec.c:6508
tileset_load_tiles
void tileset_load_tiles(struct tileset *t)
Definition tilespec.c:3452
tileset
struct tileset * tileset
Definition tilespec.c:544
get_nuke_explode_sprite
struct sprite * get_nuke_explode_sprite(const struct tileset *t)
Definition tilespec.c:6629
tileset_setup_resource
void tileset_setup_resource(struct tileset *t, const struct resource_type *presource)
tileset_hex_width
int tileset_hex_width(const struct tileset *t)
Definition tilespec.c:684
get_building_sprite
struct sprite * get_building_sprite(const struct tileset *t, const struct impr_type *pimprove)
Definition tilespec.c:6498
NUM_EDGE_TILES
#define NUM_EDGE_TILES
Definition tilespec.h:98
tileset_unit_width
int tileset_unit_width(const struct tileset *t)
Definition tilespec.c:760
get_drawable_unit
struct unit * get_drawable_unit(const struct tileset *t, struct tile *ptile, const struct city *citymode)
Definition tilespec.c:6306
get_attention_crosshair_sprite
struct sprite * get_attention_crosshair_sprite(const struct tileset *t)
Definition tilespec.c:6689
tileset_unit_height
int tileset_unit_height(const struct tileset *t)
Definition tilespec.c:768
indicator_type
indicator_type
Definition tilespec.h:302
INDICATOR_COOLING
@ INDICATOR_COOLING
Definition tilespec.h:305
INDICATOR_WARMING
@ INDICATOR_WARMING
Definition tilespec.h:304
INDICATOR_COUNT
@ INDICATOR_COUNT
Definition tilespec.h:306
INDICATOR_BULB
@ INDICATOR_BULB
Definition tilespec.h:303
tileset_small_sprite_width
int tileset_small_sprite_width(const struct tileset *t)
Definition tilespec.c:864
get_nation_shield_sprite
struct sprite * get_nation_shield_sprite(const struct tileset *t, const struct nation_type *nation)
Definition tilespec.c:6480
get_tileset
struct tileset * get_tileset(void)
Definition tilespec.c:655
tileset_setup_government
void tileset_setup_government(struct tileset *t, struct government *gov)
Definition tilespec.c:4182
get_city_flag_sprite
struct sprite * get_city_flag_sprite(const struct tileset *t, const struct city *pcity)
Definition tilespec.c:4231
get_basic_fog_sprite
struct sprite * get_basic_fog_sprite(const struct tileset *t)
Definition tilespec.c:6752
get_unittype_sprite
struct sprite * get_unittype_sprite(const struct tileset *t, const struct unit_type *punittype, enum direction8 facing)
Definition tilespec.c:6520
tileset_full_tile_height
int tileset_full_tile_height(const struct tileset *t)
Definition tilespec.c:752
tilespec_try_read
bool tilespec_try_read(const char *tileset_name, bool verbose, int topo_id, bool global_default)
Definition tilespec.c:1240
unscaled_tileset
struct tileset * unscaled_tileset
Definition tilespec.c:545
fill_basic_extra_sprite_array
int fill_basic_extra_sprite_array(const struct tileset *t, struct drawn_sprite *sprs, const struct extra_type *pextra)
Definition tilespec.c:6901
tileset_setup_specialist_type
void tileset_setup_specialist_type(struct tileset *t, Specialist_type_id id)
Definition tilespec.c:2764
arrow_type
arrow_type
Definition tilespec.h:198
ARROW_LAST
@ ARROW_LAST
Definition tilespec.h:202
ARROW_MINUS
@ ARROW_MINUS
Definition tilespec.h:201
ARROW_RIGHT
@ ARROW_RIGHT
Definition tilespec.h:199
ARROW_PLUS
@ ARROW_PLUS
Definition tilespec.h:200
get_unit_upkeep_sprite
struct sprite * get_unit_upkeep_sprite(const struct tileset *t, Output_type_id otype, const struct unit *punit, const int *upkeep_cost)
Definition tilespec.c:6734
tileset_main_intro_filename
const char * tileset_main_intro_filename(const struct tileset *t)
Definition tilespec.c:910
tileset_setup_tile_type
void tileset_setup_tile_type(struct tileset *t, const struct terrain *pterrain)
Definition tilespec.c:3917
tileset_player_init
void tileset_player_init(struct tileset *t, struct player *pplayer)
Definition tilespec.c:7072
get_tileset_list
const struct strvec * get_tileset_list(const struct option *poption)
Definition tilespec.c:1047
tileset_unit_layout_offset_y
int tileset_unit_layout_offset_y(const struct tileset *t)
Definition tilespec.c:845
tileset_citybar_offset_y
int tileset_citybar_offset_y(const struct tileset *t)
Definition tilespec.c:873
get_treaty_thumb_sprite
struct sprite * get_treaty_thumb_sprite(const struct tileset *t, bool on_off)
Definition tilespec.c:6609
unit_drawn_with_city_outline
bool unit_drawn_with_city_outline(const struct unit *punit, bool check_focus)
Definition tilespec.c:5270
get_focus_unit_toggle_timeout
double get_focus_unit_toggle_timeout(const struct tileset *t)
Definition tilespec.c:6261
tileset_free_tiles
void tileset_free_tiles(struct tileset *t)
Definition tilespec.c:6346
tileset_setup_impr_type
void tileset_setup_impr_type(struct tileset *t, struct impr_type *pimprove)
Definition tilespec.c:3610
get_unit_explode_animation
const struct sprite_vector * get_unit_explode_animation(const struct tileset *t)
Definition tilespec.c:6618
tileset_background_init
void tileset_background_init(struct tileset *t)
Definition tilespec.c:7152
tileset_setup_tech_type
void tileset_setup_tech_type(struct tileset *t, struct advance *padvance)
Definition tilespec.c:3625
tileset_free
void tileset_free(struct tileset *tileset)
Definition tilespec.c:1218
tileset_scale
float tileset_scale(const struct tileset *t)
Definition tilespec.c:890
tileset_unit_with_small_upkeep_height
int tileset_unit_with_small_upkeep_height(const struct tileset *t)
Definition tilespec.c:834
tileset_layer_in_category
bool tileset_layer_in_category(enum mapview_layer layer, enum layer_category cat)
Definition tilespec.c:7029
tileset_num_city_colors
int tileset_num_city_colors(const struct tileset *t)
Definition tilespec.c:918
NUM_CORNER_TILES
#define NUM_CORNER_TILES
Definition tilespec.h:105
tileset_is_isometric
bool tileset_is_isometric(const struct tileset *t)
Definition tilespec.c:675
tileset_use_hard_coded_fog
bool tileset_use_hard_coded_fog(const struct tileset *t)
Definition tilespec.c:926
tileset_use_preferred_theme
void tileset_use_preferred_theme(const struct tileset *t)
Definition tilespec.c:6768
get_indicator_sprite
struct sprite * get_indicator_sprite(const struct tileset *t, enum indicator_type indicator, int index)
Definition tilespec.c:6698
tileset_setup_city_tiles
void tileset_setup_city_tiles(struct tileset *t, int style)
Definition tilespec.c:6212
tileset_description
const char * tileset_description(struct tileset *t)
Definition tilespec.c:7239
tiles_lookup_sprite_tag_alt
struct sprite * tiles_lookup_sprite_tag_alt(struct tileset *t, enum log_level level, const char *tag, const char *alt, const char *what, const char *name, bool scale)
Definition tilespec.c:3462
tileset_background_free
void tileset_background_free(struct tileset *t)
Definition tilespec.c:7171
tileset_unit_layout_small_offset_y
int tileset_unit_layout_small_offset_y(const struct tileset *t)
Definition tilespec.c:854
get_event_sprite
struct sprite * get_event_sprite(const struct tileset *t, enum event_type event)
Definition tilespec.c:6600
toggle_focus_unit_state
void toggle_focus_unit_state(struct tileset *t)
Definition tilespec.c:6293
tilespec_reread_frozen_refresh
void tilespec_reread_frozen_refresh(const char *tname)
Definition tilespec.c:1484
tileset_small_sprite_height
int tileset_small_sprite_height(const struct tileset *t)
Definition tilespec.c:900
get_nation_flag_sprite
struct sprite * get_nation_flag_sprite(const struct tileset *t, const struct nation_type *nation)
Definition tilespec.c:6471
focus_unit_in_combat
void focus_unit_in_combat(struct tileset *t)
Definition tilespec.c:6282
tileset_summary
const char * tileset_summary(struct tileset *t)
Definition tilespec.c:7231
get_icon_sprite
struct sprite * get_icon_sprite(const struct tileset *t, enum icon_type icon)
Definition tilespec.c:6678
get_sample_city_sprite
struct sprite * get_sample_city_sprite(const struct tileset *t, int style_idx)
Definition tilespec.c:6551
tileset_setup_extra
void tileset_setup_extra(struct tileset *t, struct extra_type *pextra)
Definition tilespec.c:3644
tileset_init
void tileset_init(struct tileset *t)
Definition tilespec.c:6827
tileset_basename
const char * tileset_basename(const struct tileset *t)
Definition tilespec.c:667
fill_basic_terrain_layer_sprite_array
int fill_basic_terrain_layer_sprite_array(struct tileset *t, struct drawn_sprite *sprs, int layer, struct terrain *pterrain)
Definition tilespec.c:6868
tileset_tile_height
int tileset_tile_height(const struct tileset *t)
Definition tilespec.c:728
get_spaceship_sprite
struct sprite * get_spaceship_sprite(const struct tileset *t, enum spaceship_part part)
Definition tilespec.c:6428
tileset_unit_with_upkeep_height
int tileset_unit_with_upkeep_height(const struct tileset *t)
Definition tilespec.c:822
get_cursor_sprite
struct sprite * get_cursor_sprite(const struct tileset *t, enum cursor_type cursor, int *hot_x, int *hot_y, int frame)
Definition tilespec.c:6660
get_color_system
struct color_system * get_color_system(const struct tileset *t)
Definition tilespec.c:6760
tileset_hex_height
int tileset_hex_height(const struct tileset *t)
Definition tilespec.c:693
reset_focus_unit_state
void reset_focus_unit_state(struct tileset *t)
Definition tilespec.c:6274
tileset_is_fully_loaded
bool tileset_is_fully_loaded(void)
Definition tilespec.c:7207
tileset_setup_unit_type
void tileset_setup_unit_type(struct tileset *t, struct unit_type *punittype)
Definition tilespec.c:3580
get_citybar_sprites
const struct citybar_sprites * get_citybar_sprites(const struct tileset *t)
Definition tilespec.c:6637
get_arrow_sprite
struct sprite * get_arrow_sprite(const struct tileset *t, enum arrow_type arrow)
Definition tilespec.c:6568
get_unit_unhappy_sprite
struct sprite * get_unit_unhappy_sprite(const struct tileset *t, const struct unit *punit, int happy_cost)
Definition tilespec.c:6715
layer_category
layer_category
Definition tilespec.h:188
LAYER_CATEGORY_TILE
@ LAYER_CATEGORY_TILE
Definition tilespec.h:190
LAYER_CATEGORY_CITY
@ LAYER_CATEGORY_CITY
Definition tilespec.h:189
LAYER_CATEGORY_UNIT
@ LAYER_CATEGORY_UNIT
Definition tilespec.h:191
finish_loading_sprites
void finish_loading_sprites(struct tileset *t)
Definition tilespec.c:3436
tilespec_reread_callback
void tilespec_reread_callback(struct option *poption)
Definition tilespec.c:1449
tileset_name_get
const char * tileset_name_get(struct tileset *t)
Definition tilespec.c:7215
fill_sprite_array
int fill_sprite_array(struct tileset *t, struct drawn_sprite *sprs, enum mapview_layer layer, const struct tile *ptile, const struct tile_edge *pedge, const struct tile_corner *pcorner, const struct unit *punit, const struct city *pcity, const struct city *citymode, const struct unit_type *putype)
Definition tilespec.c:5572
tileset_full_tile_width
int tileset_full_tile_width(const struct tileset *t)
Definition tilespec.c:739
get_tax_sprite
struct sprite * get_tax_sprite(const struct tileset *t, Output_type_id otype)
Definition tilespec.c:6579
icon_type
icon_type
Definition tilespec.h:309
ICON_CITYDLG
@ ICON_CITYDLG
Definition tilespec.h:311
ICON_FREECIV
@ ICON_FREECIV
Definition tilespec.h:310
ICON_COUNT
@ ICON_COUNT
Definition tilespec.h:312
get_citizen_sprite
struct sprite * get_citizen_sprite(const struct tileset *t, enum citizen_category type, int citizen_index, const struct city *pcity)
Definition tilespec.c:6441
tileset_version
const char * tileset_version(struct tileset *t)
Definition tilespec.c:7223
edge_type
edge_type
Definition tilespec.h:89
EDGE_WE
@ EDGE_WE
Definition tilespec.h:91
EDGE_UD
@ EDGE_UD
Definition tilespec.h:92
EDGE_LR
@ EDGE_LR
Definition tilespec.h:93
EDGE_NS
@ EDGE_NS
Definition tilespec.h:90
EDGE_COUNT
@ EDGE_COUNT
Definition tilespec.h:94
tileset_what_ruleset
char * tileset_what_ruleset(struct tileset *t)
Definition tilespec.c:7247
spaceship_part
spaceship_part
Definition tilespec.h:315
SPACESHIP_STRUCTURAL
@ SPACESHIP_STRUCTURAL
Definition tilespec.h:319
SPACESHIP_HABITATION
@ SPACESHIP_HABITATION
Definition tilespec.h:318
SPACESHIP_COUNT
@ SPACESHIP_COUNT
Definition tilespec.h:323
SPACESHIP_EXHAUST
@ SPACESHIP_EXHAUST
Definition tilespec.h:322
SPACESHIP_FUEL
@ SPACESHIP_FUEL
Definition tilespec.h:320
SPACESHIP_PROPULSION
@ SPACESHIP_PROPULSION
Definition tilespec.h:321
SPACESHIP_SOLAR_PANEL
@ SPACESHIP_SOLAR_PANEL
Definition tilespec.h:316
SPACESHIP_LIFE_SUPPORT
@ SPACESHIP_LIFE_SUPPORT
Definition tilespec.h:317
tilespec_reread
bool tilespec_reread(const char *tileset_name, bool game_fully_initialized, float scale)
Definition tilespec.c:1299
tileset_tile_width
int tileset_tile_width(const struct tileset *t)
Definition tilespec.c:716
tileset_tilelabel_offset_y
int tileset_tilelabel_offset_y(const struct tileset *t)
Definition tilespec.c:882
get_tech_sprite
struct sprite * get_tech_sprite(const struct tileset *t, Tech_type_id tech)
Definition tilespec.c:6489
tileset_error
void tileset_error(enum log_level level, const char *tset_name, const char *format,...)
Definition tilespec.c:587
get_editor_sprites
const struct editor_sprites * get_editor_sprites(const struct tileset *t)
Definition tilespec.c:6649
cursor_type
cursor_type
Definition tilespec.h:285
CURSOR_GOTO
@ CURSOR_GOTO
Definition tilespec.h:286
CURSOR_INVALID
@ CURSOR_INVALID
Definition tilespec.h:291
CURSOR_PATROL
@ CURSOR_PATROL
Definition tilespec.h:287
CURSOR_WAIT
@ CURSOR_WAIT
Definition tilespec.h:295
CURSOR_EDIT_ADD
@ CURSOR_EDIT_ADD
Definition tilespec.h:294
CURSOR_SELECT
@ CURSOR_SELECT
Definition tilespec.h:290
CURSOR_DEFAULT
@ CURSOR_DEFAULT
Definition tilespec.h:297
CURSOR_PARADROP
@ CURSOR_PARADROP
Definition tilespec.h:288
CURSOR_LAST
@ CURSOR_LAST
Definition tilespec.h:296
CURSOR_NUKE
@ CURSOR_NUKE
Definition tilespec.h:289
CURSOR_ATTACK
@ CURSOR_ATTACK
Definition tilespec.h:292
CURSOR_EDIT_PAINT
@ CURSOR_EDIT_PAINT
Definition tilespec.h:293
tileset_topo_index
int tileset_topo_index(struct tileset *t)
Definition tilespec.c:7255
tileset_setup_nation_flag
void tileset_setup_nation_flag(struct tileset *t, struct nation_type *nation)
Definition tilespec.c:4197
tileset_ruleset_reset
void tileset_ruleset_reset(struct tileset *t)
Definition tilespec.c:7187
tileset_get_layer
enum mapview_layer tileset_get_layer(const struct tileset *t, int n)
Definition tilespec.c:7020