Freeciv-3.4
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/* client */
33#include "options.h"
34
35struct sprite; /* opaque; gui-dep */
36
37struct base_type;
38struct resource_type;
39
40/* Create the sprite_vector type. */
41#define SPECVEC_TAG sprite
42#define SPECVEC_TYPE struct sprite *
43#include "specvec.h"
44#define sprite_vector_iterate(sprite_vec, psprite) \
45 TYPED_VECTOR_ITERATE(struct sprite *, sprite_vec, psprite)
46#define sprite_vector_iterate_end VECTOR_ITERATE_END
47
48#define SPECENUM_NAME ts_type
49#define SPECENUM_VALUE0 TS_OVERHEAD
50#define SPECENUM_VALUE0NAME N_("Overhead")
51#define SPECENUM_VALUE1 TS_ISOMETRIC
52#define SPECENUM_VALUE1NAME N_("Isometric")
53#define SPECENUM_VALUE2 TS_3D
54#define SPECENUM_VALUE2NAME N_("3D")
55#include "specenum_gen.h"
56
57#define SPECENUM_NAME fog_style
58/* Fog is automatically appended by the code. */
59#define SPECENUM_VALUE0 FOG_AUTO
60#define SPECENUM_VALUE0NAME "Auto"
61/* A single fog sprite is provided by the tileset (tx.fog). */
62#define SPECENUM_VALUE1 FOG_SPRITE
63#define SPECENUM_VALUE1NAME "Sprite"
64/* No fog, or fog derived from darkness style. */
65#define SPECENUM_VALUE2 FOG_DARKNESS
66#define SPECENUM_VALUE2NAME "Darkness"
67#include "specenum_gen.h"
68
69#define SPECENUM_NAME darkness_style
70/* No darkness sprites are drawn. */
71#define SPECENUM_VALUE0 DARKNESS_NONE
72#define SPECENUM_VALUE0NAME "None"
73/* 1 sprite that is split into 4 parts and treated as a darkness4. Only
74 * works in iso-view. */
75#define SPECENUM_VALUE1 DARKNESS_ISORECT
76#define SPECENUM_VALUE1NAME "IsoRect"
77/* 4 sprites, one per direction. More than one sprite per tile may be
78 * drawn. */
79#define SPECENUM_VALUE2 DARKNESS_CARD_SINGLE
80#define SPECENUM_VALUE2NAME "CardinalSingle"
81/* 15=2^4-1 sprites. A single sprite is drawn, chosen based on whether
82 * there's darkness in _each_ of the cardinal directions. */
83#define SPECENUM_VALUE3 DARKNESS_CARD_FULL
84#define SPECENUM_VALUE3NAME "CardinalFull"
85/* Corner darkness & fog. 3^4 = 81 sprites. */
86#define SPECENUM_VALUE4 DARKNESS_CORNER
87#define SPECENUM_VALUE4NAME "Corner"
88#include "specenum_gen.h"
89
90/* An edge is the border between two tiles. This structure represents one
91 * edge. The tiles are given in the same order as the enumeration name. */
93 EDGE_NS, /* North and south */
94 EDGE_WE, /* West and east */
95 EDGE_UD, /* Up and down (nw/se), for hex_width tilesets */
96 EDGE_LR, /* Left and right (ne/sw), for hex_height tilesets */
98};
99struct tile_edge {
101#define NUM_EDGE_TILES 2
102 const struct tile *tile[NUM_EDGE_TILES];
103};
104
105/* A corner is the endpoint of several edges. At each corner 4 tiles will
106 * meet (3 in hex view). Tiles are in clockwise order NESW. */
108#define NUM_CORNER_TILES 4
109 const struct tile *tile[NUM_CORNER_TILES];
110};
111
113 bool foggable; /* Set to FALSE for sprites that are never fogged. */
114 struct sprite *sprite;
115 int offset_x, offset_y; /* Offset from tile origin */
116 int w, h;
117};
118
119/* Items on the mapview are drawn in layers. Each entry below represents
120 * one layer. The names are basically arbitrary and just correspond to
121 * groups of elements in fill_sprite_array(). Callers of fill_sprite_array
122 * must call it once for each layer. */
123#define SPECENUM_NAME mapview_layer
124#define SPECENUM_VALUE0 LAYER_BACKGROUND
125#define SPECENUM_VALUE0NAME "Background"
126/* Adjust also TERRAIN_LAYER_COUNT if changing these */
127#define SPECENUM_VALUE1 LAYER_TERRAIN1
128#define SPECENUM_VALUE1NAME "Terrain1"
129#define SPECENUM_VALUE2 LAYER_DARKNESS
130#define SPECENUM_VALUE2NAME "Darkness"
131#define SPECENUM_VALUE3 LAYER_TERRAIN2
132#define SPECENUM_VALUE3NAME "Terrain2"
133#define SPECENUM_VALUE4 LAYER_TERRAIN3
134#define SPECENUM_VALUE4NAME "Terrain3"
135#define SPECENUM_VALUE5 LAYER_WATER
136#define SPECENUM_VALUE5NAME "Water"
137#define SPECENUM_VALUE6 LAYER_ROADS
138#define SPECENUM_VALUE6NAME "Roads"
139#define SPECENUM_VALUE7 LAYER_SPECIAL1
140#define SPECENUM_VALUE7NAME "Special1"
141#define SPECENUM_VALUE8 LAYER_GRID1
142#define SPECENUM_VALUE8NAME "Grid1"
143#define SPECENUM_VALUE9 LAYER_CITY1
144#define SPECENUM_VALUE9NAME "City1"
145#define SPECENUM_VALUE10 LAYER_SPECIAL2
146#define SPECENUM_VALUE10NAME "Special2"
147#define SPECENUM_VALUE11 LAYER_FOG
148#define SPECENUM_VALUE11NAME "Fog"
149#define SPECENUM_VALUE12 LAYER_UNIT
150#define SPECENUM_VALUE12NAME "Unit"
151#define SPECENUM_VALUE13 LAYER_SPECIAL3
152#define SPECENUM_VALUE13NAME "Special3"
153#define SPECENUM_VALUE14 LAYER_CITY2
154#define SPECENUM_VALUE14NAME "City2"
155#define SPECENUM_VALUE15 LAYER_GRID2
156#define SPECENUM_VALUE15NAME "Grid2"
157#define SPECENUM_VALUE16 LAYER_OVERLAYS
158#define SPECENUM_VALUE16NAME "Overlays"
159#define SPECENUM_VALUE17 LAYER_TILELABEL
160#define SPECENUM_VALUE17NAME "TileLabel"
161#define SPECENUM_VALUE18 LAYER_CITYBAR
162#define SPECENUM_VALUE18NAME "CityBar"
163#define SPECENUM_VALUE19 LAYER_FOCUS_UNIT
164#define SPECENUM_VALUE19NAME "FocusUnit"
165#define SPECENUM_VALUE20 LAYER_GOTO
166#define SPECENUM_VALUE20NAME "Goto"
167#define SPECENUM_VALUE21 LAYER_WORKERTASK
168#define SPECENUM_VALUE21NAME "WorkerTask"
169#define SPECENUM_VALUE22 LAYER_EDITOR
170#define SPECENUM_VALUE22NAME "Editor"
171#define SPECENUM_VALUE23 LAYER_INFRAWORK
172#define SPECENUM_VALUE23NAME "InfraWork"
173#define SPECENUM_COUNT LAYER_COUNT
174#include "specenum_gen.h"
175
176#define TERRAIN_LAYER_COUNT 3
177
178#define mapview_layer_iterate(layer) \
179{ \
180 enum mapview_layer layer; \
181 int layer_index; \
182 \
183 for (layer_index = 0; layer_index < LAYER_COUNT; layer_index++) { \
184 layer = tileset_get_layer(tileset, layer_index); \
185
186#define mapview_layer_iterate_end \
187 } \
188}
189
190/* Layer categories can be used to only render part of a tile. */
192{
193 LAYER_CATEGORY_CITY, /* Render cities */
194 LAYER_CATEGORY_TILE, /* Render terrain only */
195 LAYER_CATEGORY_UNIT /* Render units only */
197
198#define NUM_TILES_PROGRESS 8
199
200#define MAX_NUM_CITIZEN_SPRITES 6
201
208
209struct tileset;
210
211extern struct tileset *tileset;
212extern struct tileset *unscaled_tileset;
213
214struct strvec;
215const struct strvec *get_tileset_list(const struct option *poption);
216
217void tileset_error(enum log_level level, const char *tset_name,
218 const char *format, ...);
219
220void tileset_init(struct tileset *t);
221void tileset_free(struct tileset *tileset);
222void tileset_load_tiles(struct tileset *t);
223void tileset_free_tiles(struct tileset *t);
224void tileset_ruleset_reset(struct tileset *t);
225bool tileset_is_fully_loaded(void);
226
227void finish_loading_sprites(struct tileset *t);
228
229bool tilespec_try_read(const char *tileset_name, bool verbose, int topo_id,
230 bool global_default);
232 float scale);
234void tilespec_reread_frozen_refresh(const char *tname);
235
238void tileset_setup_unit_type(struct tileset *t, struct unit_type *punittype);
239void tileset_setup_impr_type(struct tileset *t,
240 struct impr_type *pimprove);
241void tileset_setup_tech_type(struct tileset *t,
242 struct advance *padvance);
243void tileset_setup_tile_type(struct tileset *t,
244 const struct terrain *pterrain);
246 const struct resource_type *presource);
247void tileset_setup_extra(struct tileset *t,
248 struct extra_type *pextra);
249void tileset_setup_government(struct tileset *t,
250 struct government *gov);
252 struct nation_type *nation);
253void tileset_setup_city_tiles(struct tileset *t, int style);
254
255void tileset_player_init(struct tileset *t, struct player *pplayer);
256void tileset_background_init(struct tileset *t);
257void tileset_background_free(struct tileset *t);
258
259/* Layer order */
260
261enum mapview_layer tileset_get_layer(const struct tileset *t, int n);
263 enum layer_category cat);
264
265/* Gfx support */
266
267int fill_sprite_array(struct tileset *t,
268 struct drawn_sprite *sprs, enum mapview_layer layer,
269 const struct tile *ptile,
270 const struct tile_edge *pedge,
271 const struct tile_corner *pcorner,
272 const struct unit *punit, const struct city *pcity,
273 const struct city *citymode,
274 const struct unit_type *putype);
276 struct drawn_sprite *sprs,
277 int layer,
278 struct terrain *pterrain);
279
280double get_focus_unit_toggle_timeout(const struct tileset *t);
281void reset_focus_unit_state(struct tileset *t);
282void focus_unit_in_combat(struct tileset *t);
283void toggle_focus_unit_state(struct tileset *t);
284struct unit *get_drawable_unit(const struct tileset *t,
285 struct tile *ptile,
286 const struct city *citymode);
287bool unit_drawn_with_city_outline(const struct unit *punit, bool check_focus);
288
289
305
306#define NUM_CURSOR_FRAMES 6
307
314
320
331
341
361
362#define NUM_WALL_TYPES 7
363
364struct sprite *get_spaceship_sprite(const struct tileset *t,
365 enum spaceship_part part);
366struct sprite *get_citizen_sprite(const struct tileset *t,
368 int citizen_index,
369 const struct city *pcity);
370struct sprite *get_city_flag_sprite(const struct tileset *t,
371 const struct city *pcity);
372struct sprite *get_nation_flag_sprite(const struct tileset *t,
373 const struct nation_type *nation);
374struct sprite *get_nation_shield_sprite(const struct tileset *t,
375 const struct nation_type *nation);
376struct sprite *get_tech_sprite(const struct tileset *t, Tech_type_id tech);
377struct sprite *get_building_sprite(const struct tileset *t,
378 const struct impr_type *pimprove);
379struct sprite *get_government_sprite(const struct tileset *t,
380 const struct government *gov);
381struct sprite *get_unittype_sprite(const struct tileset *t,
382 const struct unit_type *punittype,
383 enum unit_activity activity,
384 enum direction8 facing);
385struct sprite *get_sample_city_sprite(const struct tileset *t,
386 int style_idx);
387struct sprite *get_arrow_sprite(const struct tileset *t,
388 enum arrow_type arrow);
389struct sprite *get_tax_sprite(const struct tileset *t, Output_type_id otype);
390struct sprite *get_treaty_thumb_sprite(const struct tileset *t, bool on_off);
391const struct sprite_vector *get_unit_explode_animation(const struct
392 tileset *t);
393struct sprite *get_nuke_explode_sprite(const struct tileset *t);
394struct sprite *get_cursor_sprite(const struct tileset *t,
395 enum cursor_type cursor,
396 int *hot_x, int *hot_y, int frame);
397const struct citybar_sprites *get_citybar_sprites(const struct tileset *t);
398const struct editor_sprites *get_editor_sprites(const struct tileset *t);
399struct sprite *get_icon_sprite(const struct tileset *t, enum icon_type icon);
400struct sprite *get_attention_crosshair_sprite(const struct tileset *t);
401struct sprite *get_indicator_sprite(const struct tileset *t,
402 enum indicator_type indicator,
403 int index);
404struct sprite *get_unit_unhappy_sprite(const struct tileset *t,
405 const struct unit *punit,
406 int happy_cost);
407struct sprite *get_unit_upkeep_sprite(const struct tileset *t,
409 const struct unit *punit,
410 const int *upkeep_cost);
411struct sprite *get_basic_fog_sprite(const struct tileset *t);
412int fill_basic_extra_sprite_array(const struct tileset *t,
413 struct drawn_sprite *sprs,
414 const struct extra_type *pextra);
415struct sprite *get_event_sprite(const struct tileset *t, enum event_type event);
416
418 enum log_level level,
419 const char *tag, const char *alt,
420 const char *alt2,
421 const char *what,
422 const char *name,
423 bool scale);
424
425struct color_system;
426struct color_system *get_color_system(const struct tileset *t);
427
428/* Tileset accessor functions. */
429struct tileset *get_tileset(void);
430const char *tileset_basename(const struct tileset *t);
431bool tileset_is_isometric(const struct tileset *t);
432int tileset_hex_width(const struct tileset *t);
433int tileset_hex_height(const struct tileset *t);
434int tileset_tile_width(const struct tileset *t);
435int tileset_tile_height(const struct tileset *t);
436int tileset_full_tile_width(const struct tileset *t);
437int tileset_full_tile_height(const struct tileset *t);
438int tileset_unit_width(const struct tileset *t);
439int tileset_unit_height(const struct tileset *t);
440int tileset_unit_with_upkeep_height(const struct tileset *t);
442int tileset_unit_layout_offset_y(const struct tileset *t);
444int tileset_small_sprite_width(const struct tileset *t);
445int tileset_small_sprite_height(const struct tileset *t);
446int tileset_citybar_offset_y(const struct tileset *t);
447int tileset_tilelabel_offset_y(const struct tileset *t);
448float tileset_scale(const struct tileset *t);
449const char *tileset_main_intro_filename(const struct tileset *t);
450int tileset_num_city_colors(const struct tileset *t);
451void tileset_use_preferred_theme(const struct tileset *t);
452bool tileset_use_hard_coded_fog(const struct tileset *t);
453
454/* These are used as array index -> can't be changed freely to values
455 bigger than size of those arrays. */
456#define TS_TOPO_SQUARE 0
457#define TS_TOPO_HEX 1
458#define TS_TOPO_ISOHEX 2
459
460const char *tileset_name_get(struct tileset *t);
461const char *tileset_version(struct tileset *t);
462const char *tileset_summary(struct tileset *t);
463const char *tileset_description(struct tileset *t);
464char *tileset_what_ruleset(struct tileset *t);
465int tileset_topo_index(struct tileset *t);
466int tileset_svg_flag_height(struct tileset *t);
467
468int index_ts_topology(int idx);
469
470struct sprite *load_popup_sprite(const char *tag);
471void unload_popup_sprite(const char *tag);
472
474
475#ifdef __cplusplus
476}
477#endif /* __cplusplus */
478
479#endif /* FC__TILESPEC_H */
#define n
Definition astring.c:77
citizen_category
Definition city.h:265
char * incite_cost
Definition comments.c:77
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:74
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 struct unit struct city * pcity
Definition dialogs_g.h:78
enum event_type event
Definition events.c:81
int Tech_type_id
Definition fc_types.h:238
int Specialist_type_id
Definition fc_types.h:236
enum output_type_id Output_type_id
Definition fc_types.h:239
GType type
Definition repodlgs.c:1313
const char * name
Definition inputfile.c:127
log_level
Definition log.h:29
struct setting_list * level[OLEVELS_NUM]
Definition settings.c:190
struct sprite int int int int struct sprite int int float scale
Definition sprite_g.h:33
Definition city.h:318
struct sprite * food
Definition tilespec.h:335
struct sprite * trade
Definition tilespec.h:336
struct sprite * shields
Definition tilespec.h:333
struct sprite * background
Definition tilespec.h:338
struct sprite * occupied
Definition tilespec.h:337
struct sprite_vector occupancy
Definition tilespec.h:339
struct sprite * sprite
Definition tilespec.h:114
bool foggable
Definition tilespec.h:113
struct sprite * terrain
Definition tilespec.h:350
struct sprite * road
Definition tilespec.h:358
struct sprite * city
Definition tilespec.h:354
struct sprite * terrain_special
Definition tilespec.h:352
struct sprite * vision
Definition tilespec.h:355
struct sprite * terrain_resource
Definition tilespec.h:351
struct sprite * territory
Definition tilespec.h:356
struct sprite * copypaste
Definition tilespec.h:348
struct sprite * brush
Definition tilespec.h:345
struct sprite * startpos
Definition tilespec.h:349
struct sprite * military_base
Definition tilespec.h:359
struct sprite * properties
Definition tilespec.h:357
struct sprite * copy
Definition tilespec.h:346
struct sprite * erase
Definition tilespec.h:343
struct sprite * paste
Definition tilespec.h:347
struct sprite * unit
Definition tilespec.h:353
Definition goto.c:52
enum edge_type type
Definition tilespec.h:100
Definition tile.h:50
Definition unit.h:140
void advance_global_anim_state(void)
Definition tilespec.c:6781
struct sprite * get_government_sprite(const struct tileset *t, const struct government *gov)
Definition tilespec.c:7043
void tileset_load_tiles(struct tileset *t)
Definition tilespec.c:3825
struct tileset * tileset
Definition tilespec.c:591
struct sprite * get_nuke_explode_sprite(const struct tileset *t)
Definition tilespec.c:7187
void tileset_setup_resource(struct tileset *t, const struct resource_type *presource)
int tileset_hex_width(const struct tileset *t)
Definition tilespec.c:747
struct sprite * get_building_sprite(const struct tileset *t, const struct impr_type *pimprove)
Definition tilespec.c:7033
#define NUM_EDGE_TILES
Definition tilespec.h:101
int tileset_unit_width(const struct tileset *t)
Definition tilespec.c:823
struct unit * get_drawable_unit(const struct tileset *t, struct tile *ptile, const struct city *citymode)
Definition tilespec.c:6792
struct sprite * get_attention_crosshair_sprite(const struct tileset *t)
Definition tilespec.c:7248
int tileset_unit_height(const struct tileset *t)
Definition tilespec.c:831
indicator_type
Definition tilespec.h:308
@ INDICATOR_COOLING
Definition tilespec.h:311
@ INDICATOR_WARMING
Definition tilespec.h:310
@ INDICATOR_COUNT
Definition tilespec.h:312
@ INDICATOR_BULB
Definition tilespec.h:309
int tileset_small_sprite_width(const struct tileset *t)
Definition tilespec.c:927
struct sprite * get_nation_shield_sprite(const struct tileset *t, const struct nation_type *nation)
Definition tilespec.c:7015
int tileset_svg_flag_height(struct tileset *t)
Definition tilespec.c:7833
struct tileset * get_tileset(void)
Definition tilespec.c:718
void tileset_setup_government(struct tileset *t, struct government *gov)
Definition tilespec.c:4608
struct sprite * get_city_flag_sprite(const struct tileset *t, const struct city *pcity)
Definition tilespec.c:4658
void tileset_setup_specialist_type_default_set(struct tileset *t, Specialist_type_id id)
Definition tilespec.c:3088
struct sprite * get_basic_fog_sprite(const struct tileset *t)
Definition tilespec.c:7311
int tileset_full_tile_height(const struct tileset *t)
Definition tilespec.c:815
bool tilespec_try_read(const char *tileset_name, bool verbose, int topo_id, bool global_default)
Definition tilespec.c:1360
struct tileset * unscaled_tileset
Definition tilespec.c:592
int fill_basic_extra_sprite_array(const struct tileset *t, struct drawn_sprite *sprs, const struct extra_type *pextra)
Definition tilespec.c:7462
arrow_type
Definition tilespec.h:202
@ ARROW_LAST
Definition tilespec.h:206
@ ARROW_MINUS
Definition tilespec.h:205
@ ARROW_RIGHT
Definition tilespec.h:203
@ ARROW_PLUS
Definition tilespec.h:204
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:7293
const char * tileset_main_intro_filename(const struct tileset *t)
Definition tilespec.c:973
void tileset_setup_tile_type(struct tileset *t, const struct terrain *pterrain)
Definition tilespec.c:4342
void tileset_player_init(struct tileset *t, struct player *pplayer)
Definition tilespec.c:7634
const struct strvec * get_tileset_list(const struct option *poption)
Definition tilespec.c:1150
int tileset_unit_layout_offset_y(const struct tileset *t)
Definition tilespec.c:908
int tileset_citybar_offset_y(const struct tileset *t)
Definition tilespec.c:936
struct sprite * get_treaty_thumb_sprite(const struct tileset *t, bool on_off)
Definition tilespec.c:7167
bool unit_drawn_with_city_outline(const struct unit *punit, bool check_focus)
Definition tilespec.c:5718
double get_focus_unit_toggle_timeout(const struct tileset *t)
Definition tilespec.c:6735
void tileset_free_tiles(struct tileset *t)
Definition tilespec.c:6845
void tileset_setup_impr_type(struct tileset *t, struct impr_type *pimprove)
Definition tilespec.c:4033
const struct sprite_vector * get_unit_explode_animation(const struct tileset *t)
Definition tilespec.c:7176
struct sprite * load_popup_sprite(const char *tag)
Definition tilespec.c:7841
void tileset_background_init(struct tileset *t)
Definition tilespec.c:7714
void tileset_setup_tech_type(struct tileset *t, struct advance *padvance)
Definition tilespec.c:4049
void tileset_free(struct tileset *tileset)
Definition tilespec.c:1315
float tileset_scale(const struct tileset *t)
Definition tilespec.c:953
int tileset_unit_with_small_upkeep_height(const struct tileset *t)
Definition tilespec.c:897
bool tileset_layer_in_category(enum mapview_layer layer, enum layer_category cat)
Definition tilespec.c:7591
int tileset_num_city_colors(const struct tileset *t)
Definition tilespec.c:981
int index_ts_topology(int idx)
Definition tilespec.c:1111
#define NUM_CORNER_TILES
Definition tilespec.h:108
bool tileset_is_isometric(const struct tileset *t)
Definition tilespec.c:738
bool tileset_use_hard_coded_fog(const struct tileset *t)
Definition tilespec.c:989
void tileset_use_preferred_theme(const struct tileset *t)
Definition tilespec.c:7327
struct sprite * get_indicator_sprite(const struct tileset *t, enum indicator_type indicator, int index)
Definition tilespec.c:7257
void tileset_setup_city_tiles(struct tileset *t, int style)
Definition tilespec.c:6670
const char * tileset_description(struct tileset *t)
Definition tilespec.c:7809
void tileset_background_free(struct tileset *t)
Definition tilespec.c:7733
int tileset_unit_layout_small_offset_y(const struct tileset *t)
Definition tilespec.c:917
struct sprite * get_event_sprite(const struct tileset *t, enum event_type event)
Definition tilespec.c:7158
void toggle_focus_unit_state(struct tileset *t)
Definition tilespec.c:6769
void tilespec_reread_frozen_refresh(const char *tname)
Definition tilespec.c:1591
int tileset_small_sprite_height(const struct tileset *t)
Definition tilespec.c:963
struct sprite * get_nation_flag_sprite(const struct tileset *t, const struct nation_type *nation)
Definition tilespec.c:7006
void focus_unit_in_combat(struct tileset *t)
Definition tilespec.c:6760
const char * tileset_summary(struct tileset *t)
Definition tilespec.c:7801
struct sprite * get_icon_sprite(const struct tileset *t, enum icon_type icon)
Definition tilespec.c:7237
struct sprite * get_sample_city_sprite(const struct tileset *t, int style_idx)
Definition tilespec.c:7109
void tileset_setup_extra(struct tileset *t, struct extra_type *pextra)
Definition tilespec.c:4068
void tileset_init(struct tileset *t)
Definition tilespec.c:7388
const char * tileset_basename(const struct tileset *t)
Definition tilespec.c:730
int fill_basic_terrain_layer_sprite_array(struct tileset *t, struct drawn_sprite *sprs, int layer, struct terrain *pterrain)
Definition tilespec.c:7429
int tileset_tile_height(const struct tileset *t)
Definition tilespec.c:791
struct sprite * get_spaceship_sprite(const struct tileset *t, enum spaceship_part part)
Definition tilespec.c:6941
int tileset_unit_with_upkeep_height(const struct tileset *t)
Definition tilespec.c:885
struct sprite * get_cursor_sprite(const struct tileset *t, enum cursor_type cursor, int *hot_x, int *hot_y, int frame)
Definition tilespec.c:7218
struct color_system * get_color_system(const struct tileset *t)
Definition tilespec.c:7319
int tileset_hex_height(const struct tileset *t)
Definition tilespec.c:756
void reset_focus_unit_state(struct tileset *t)
Definition tilespec.c:6748
bool tileset_is_fully_loaded(void)
Definition tilespec.c:7777
void tileset_setup_unit_type(struct tileset *t, struct unit_type *punittype)
Definition tilespec.c:3999
const struct citybar_sprites * get_citybar_sprites(const struct tileset *t)
Definition tilespec.c:7195
void unload_popup_sprite(const char *tag)
Definition tilespec.c:7849
struct sprite * get_arrow_sprite(const struct tileset *t, enum arrow_type arrow)
Definition tilespec.c:7126
struct sprite * get_unit_unhappy_sprite(const struct tileset *t, const struct unit *punit, int happy_cost)
Definition tilespec.c:7274
layer_category
Definition tilespec.h:192
@ LAYER_CATEGORY_TILE
Definition tilespec.h:194
@ LAYER_CATEGORY_CITY
Definition tilespec.h:193
@ LAYER_CATEGORY_UNIT
Definition tilespec.h:195
void finish_loading_sprites(struct tileset *t)
Definition tilespec.c:3809
struct sprite * tiles_lookup_sprite_tag_alt(struct tileset *t, enum log_level level, const char *tag, const char *alt, const char *alt2, const char *what, const char *name, bool scale)
Definition tilespec.c:3836
void tilespec_reread_callback(struct option *poption)
Definition tilespec.c:1555
const char * tileset_name_get(struct tileset *t)
Definition tilespec.c:7785
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:6020
int tileset_full_tile_width(const struct tileset *t)
Definition tilespec.c:802
struct sprite * get_tax_sprite(const struct tileset *t, Output_type_id otype)
Definition tilespec.c:7137
icon_type
Definition tilespec.h:315
@ ICON_CITYDLG
Definition tilespec.h:317
@ ICON_FREECIV
Definition tilespec.h:316
@ ICON_COUNT
Definition tilespec.h:318
struct sprite * get_citizen_sprite(const struct tileset *t, enum citizen_category type, int citizen_index, const struct city *pcity)
Definition tilespec.c:6972
const char * tileset_version(struct tileset *t)
Definition tilespec.c:7793
edge_type
Definition tilespec.h:92
@ EDGE_WE
Definition tilespec.h:94
@ EDGE_UD
Definition tilespec.h:95
@ EDGE_LR
Definition tilespec.h:96
@ EDGE_NS
Definition tilespec.h:93
@ EDGE_COUNT
Definition tilespec.h:97
struct sprite * get_unittype_sprite(const struct tileset *t, const struct unit_type *punittype, enum unit_activity activity, enum direction8 facing)
Definition tilespec.c:7055
char * tileset_what_ruleset(struct tileset *t)
Definition tilespec.c:7817
spaceship_part
Definition tilespec.h:321
@ SPACESHIP_STRUCTURAL
Definition tilespec.h:325
@ SPACESHIP_HABITATION
Definition tilespec.h:324
@ SPACESHIP_COUNT
Definition tilespec.h:329
@ SPACESHIP_EXHAUST
Definition tilespec.h:328
@ SPACESHIP_FUEL
Definition tilespec.h:326
@ SPACESHIP_PROPULSION
Definition tilespec.h:327
@ SPACESHIP_SOLAR_PANEL
Definition tilespec.h:322
@ SPACESHIP_LIFE_SUPPORT
Definition tilespec.h:323
bool tilespec_reread(const char *tileset_name, bool game_fully_initialized, float scale)
Definition tilespec.c:1401
int tileset_tile_width(const struct tileset *t)
Definition tilespec.c:779
int tileset_tilelabel_offset_y(const struct tileset *t)
Definition tilespec.c:945
struct sprite * get_tech_sprite(const struct tileset *t, Tech_type_id tech)
Definition tilespec.c:7024
void tileset_error(enum log_level level, const char *tset_name, const char *format,...)
Definition tilespec.c:650
const struct editor_sprites * get_editor_sprites(const struct tileset *t)
Definition tilespec.c:7207
cursor_type
Definition tilespec.h:290
@ CURSOR_TELEPORT
Definition tilespec.h:294
@ CURSOR_GOTO
Definition tilespec.h:291
@ CURSOR_INVALID
Definition tilespec.h:297
@ CURSOR_PATROL
Definition tilespec.h:292
@ CURSOR_WAIT
Definition tilespec.h:301
@ CURSOR_EDIT_ADD
Definition tilespec.h:300
@ CURSOR_SELECT
Definition tilespec.h:296
@ CURSOR_DEFAULT
Definition tilespec.h:303
@ CURSOR_PARADROP
Definition tilespec.h:293
@ CURSOR_LAST
Definition tilespec.h:302
@ CURSOR_NUKE
Definition tilespec.h:295
@ CURSOR_ATTACK
Definition tilespec.h:298
@ CURSOR_EDIT_PAINT
Definition tilespec.h:299
int tileset_topo_index(struct tileset *t)
Definition tilespec.c:7825
void tileset_setup_nation_flag(struct tileset *t, struct nation_type *nation)
Definition tilespec.c:4623
void tileset_ruleset_reset(struct tileset *t)
Definition tilespec.c:7749
enum mapview_layer tileset_get_layer(const struct tileset *t, int n)
Definition tilespec.c:7581