Freeciv-3.1
Loading...
Searching...
No Matches
common
extras.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
#ifndef FC__EXTRAS_H
14
#define FC__EXTRAS_H
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
/* __cplusplus */
19
20
/* common */
21
#include "
base.h
"
22
#include "
fc_types.h
"
23
#include "
road.h
"
24
#include "
terrain.h
"
25
26
/* Used in the network protocol. */
27
#define SPECENUM_NAME extra_flag_id
28
/* Tile with this extra is considered native for units in tile. */
29
#define SPECENUM_VALUE0 EF_NATIVE_TILE
30
#define SPECENUM_VALUE0NAME N_("?extraflag:NativeTile")
31
/* Refuel native units */
32
#define SPECENUM_VALUE1 EF_REFUEL
33
#define SPECENUM_VALUE1NAME N_("?extraflag:Refuel")
34
#define SPECENUM_VALUE2 EF_TERR_CHANGE_REMOVES
35
#define SPECENUM_VALUE2NAME N_("?extraflag:TerrChangeRemoves")
36
/* Extra will be built in cities automatically */
37
#define SPECENUM_VALUE3 EF_AUTO_ON_CITY_CENTER
38
#define SPECENUM_VALUE3NAME N_("?extraflag:AutoOnCityCenter")
39
/* Extra is always present in cities */
40
#define SPECENUM_VALUE4 EF_ALWAYS_ON_CITY_CENTER
41
#define SPECENUM_VALUE4NAME N_("?extraflag:AlwaysOnCityCenter")
42
/* Road style gfx from ocean extra connects to nearby land */
43
#define SPECENUM_VALUE5 EF_CONNECT_LAND
44
#define SPECENUM_VALUE5NAME N_("?extraflag:ConnectLand")
45
/* Counts towards Global Warming */
46
#define SPECENUM_VALUE6 EF_GLOBAL_WARMING
47
#define SPECENUM_VALUE6NAME N_("?extraflag:GlobalWarming")
48
/* Counts towards Nuclear Winter */
49
#define SPECENUM_VALUE7 EF_NUCLEAR_WINTER
50
#define SPECENUM_VALUE7NAME N_("?extraflag:NuclearWinter")
51
/* Owner's flag will be shown on the tile */
52
#define SPECENUM_VALUE8 EF_SHOW_FLAG
53
#define SPECENUM_VALUE8NAME N_("?extraflag:ShowFlag")
54
/* Extra's defense bonus will be counted to
55
* separate "Natural" defense layer. */
56
#define SPECENUM_VALUE9 EF_NATURAL_DEFENSE
57
#define SPECENUM_VALUE9NAME N_("?extraflag:NaturalDefense")
58
/* Units inside will not die all at once */
59
#define SPECENUM_VALUE10 EF_NO_STACK_DEATH
60
#define SPECENUM_VALUE10NAME N_("NoStackDeath")
61
/* Unit inside are not considered aggressive if extra is close to city */
62
#define SPECENUM_VALUE11 EF_NOT_AGGRESSIVE
63
#define SPECENUM_VALUE11NAME N_("NoAggressive")
64
65
#define SPECENUM_VALUE12 EF_USER_FLAG_1
66
#define SPECENUM_VALUE13 EF_USER_FLAG_2
67
#define SPECENUM_VALUE14 EF_USER_FLAG_3
68
#define SPECENUM_VALUE15 EF_USER_FLAG_4
69
#define SPECENUM_VALUE16 EF_USER_FLAG_5
70
#define SPECENUM_VALUE17 EF_USER_FLAG_6
71
#define SPECENUM_VALUE18 EF_USER_FLAG_7
72
#define SPECENUM_VALUE19 EF_USER_FLAG_8
73
74
#define SPECENUM_COUNT EF_COUNT
75
#define SPECENUM_NAMEOVERRIDE
76
#define SPECENUM_BITVECTOR bv_extra_flags
77
#include "
specenum_gen.h
"
78
79
#define EF_LAST_USER_FLAG EF_USER_FLAG_8
80
#define MAX_NUM_USER_EXTRA_FLAGS (EF_LAST_USER_FLAG - EF_USER_FLAG_1 + 1)
81
82
#define EXTRA_NONE (-1)
83
84
struct
extra_type
85
{
86
int
id
;
87
struct
name_translation
name
;
88
bool
ruledit_disabled
;
89
void
*
ruledit_dlg
;
90
enum
extra_category
category
;
91
uint16_t
causes
;
92
uint8_t
rmcauses
;
93
94
char
graphic_str
[
MAX_LEN_NAME
];
95
char
graphic_alt
[
MAX_LEN_NAME
];
96
char
activity_gfx
[
MAX_LEN_NAME
];
97
char
act_gfx_alt
[
MAX_LEN_NAME
];
98
char
act_gfx_alt2
[
MAX_LEN_NAME
];
99
char
rmact_gfx
[
MAX_LEN_NAME
];
100
char
rmact_gfx_alt
[
MAX_LEN_NAME
];
101
102
struct
requirement_vector
reqs
;
103
struct
requirement_vector
rmreqs
;
104
struct
requirement_vector
appearance_reqs
;
105
struct
requirement_vector
disappearance_reqs
;
106
107
/* 'buildable' is unclean. Clean solution would be to rely solely on extra_cause:
108
* if the extra cannot be built, it's not in the cause's list.
109
* But we currently rely on actually-not-buildable extras to be on the lists,
110
* for example for the editor to list non-buildable but editor-placeable
111
* extras. */
112
bool
buildable
;
113
bool
generated
;
114
int
build_time
;
115
int
build_time_factor
;
116
int
removal_time
;
117
int
removal_time_factor
;
118
int
infracost
;
119
120
int
defense_bonus
;
121
int
appearance_chance
;
122
int
disappearance_chance
;
123
124
enum
extra_unit_seen_type
eus
;
125
126
bv_unit_classes
native_to
;
127
128
bv_extra_flags
flags
;
129
bv_extras
conflicts
;
130
bv_extras
hidden_by
;
131
bv_extras
bridged_over
;
/* Needs "bridge" to get built over these extras */
132
133
Tech_type_id
visibility_req
;
134
135
/* Same information as in hidden_by, but iterating through this list is much
136
* faster than through all extra types to check which ones are hiding this one.
137
* Only used client side. */
138
struct
extra_type_list *
hiders
;
139
140
/* Same information as bridged_over */
141
struct
extra_type_list *
bridged
;
142
143
struct
strvec
*
helptext
;
144
145
struct
146
{
147
int
special_idx
;
148
struct
base_type
*
base
;
149
struct
road_type
*
road
;
150
struct
resource_type
*
resource
;
151
}
data
;
152
};
153
154
/* get 'struct extra_type_list' and related functions: */
155
#define SPECLIST_TAG extra_type
156
#define SPECLIST_TYPE struct extra_type
157
#include "
speclist.h
"
158
159
#define extra_type_list_iterate(extralist, pextra) \
160
TYPED_LIST_ITERATE(struct extra_type, extralist, pextra)
161
#define extra_type_list_iterate_end LIST_ITERATE_END
162
163
#define extra_type_list_iterate_rev(extralist, pextra) \
164
TYPED_LIST_ITERATE_REV(struct extra_type, extralist, pextra)
165
#define extra_type_list_iterate_rev_end LIST_ITERATE_REV_END
166
167
void
extras_init
(
void
);
168
void
extras_free
(
void
);
169
170
int
extra_count
(
void
);
171
int
extra_number
(
const
struct
extra_type
*pextra);
172
struct
extra_type
*
extra_by_number
(
int
id
);
173
174
/* For optimization purposes (being able to have it as macro instead of function
175
* call) this is now same as extra_number(). extras.c does have semantically correct
176
* implementation too. */
177
#define extra_index(_e_) (_e_)->id
178
179
const
char
*
extra_name_translation
(
const
struct
extra_type
*pextra);
180
const
char
*
extra_rule_name
(
const
struct
extra_type
*pextra);
181
struct
extra_type
*
extra_type_by_rule_name
(
const
char
*
name
);
182
struct
extra_type
*
extra_type_by_translated_name
(
const
char
*
name
);
183
184
#define extra_base_get(_e_) (_e_)->data.base
185
#define extra_road_get(_e_) (_e_)->data.road
186
#define extra_resource_get(_e_) (_e_)->data.resource
187
188
void
extra_to_caused_by_list
(
struct
extra_type
*pextra,
enum
extra_cause cause);
189
struct
extra_type_list *
extra_type_list_by_cause
(
enum
extra_cause cause);
190
struct
extra_type
*
rand_extra_for_tile
(
struct
tile
*ptile,
enum
extra_cause cause,
191
bool
generated
);
192
193
struct
extra_type_list *
extra_type_list_of_unit_hiders
(
void
);
194
struct
extra_type_list *
extra_type_list_of_terr_claimers
(
void
);
195
196
#define is_extra_caused_by(e, c) (e->causes & (1 << c))
197
bool
is_extra_caused_by_worker_action
(
const
struct
extra_type
*pextra);
198
bool
is_extra_caused_by_action
(
const
struct
extra_type
*pextra,
199
const
struct
action
*paction);
200
201
void
extra_to_removed_by_list
(
struct
extra_type
*pextra,
enum
extra_rmcause rmcause);
202
struct
extra_type_list *
extra_type_list_by_rmcause
(
enum
extra_rmcause rmcause);
203
204
bool
is_extra_removed_by
(
const
struct
extra_type
*pextra,
enum
extra_rmcause rmcause);
205
bool
is_extra_removed_by_worker_action
(
const
struct
extra_type
*pextra);
206
bool
is_extra_removed_by_action
(
const
struct
extra_type
*pextra,
207
const
struct
action
*paction);
208
209
bool
is_extra_card_near
(
const
struct
civ_map
*nmap,
const
struct
tile
*ptile,
210
const
struct
extra_type
*pextra);
211
bool
is_extra_near_tile
(
const
struct
civ_map
*nmap,
const
struct
tile
*ptile,
212
const
struct
extra_type
*pextra);
213
214
bool
extra_can_be_built
(
const
struct
extra_type
*pextra,
const
struct
tile
*ptile);
215
bool
can_build_extra
(
const
struct
extra_type
*pextra,
216
const
struct
unit
*
punit
,
217
const
struct
tile
*ptile);
218
bool
can_build_extra_base
(
const
struct
extra_type
*pextra,
219
const
struct
player
*pplayer,
220
const
struct
tile
*ptile);
221
bool
player_can_build_extra
(
const
struct
extra_type
*pextra,
222
const
struct
player
*pplayer,
223
const
struct
tile
*ptile);
224
bool
player_can_place_extra
(
const
struct
extra_type
*pextra,
225
const
struct
player
*pplayer,
226
const
struct
tile
*ptile);
227
228
bool
can_remove_extra
(
const
struct
extra_type
*pextra,
229
const
struct
unit
*
punit
,
230
const
struct
tile
*ptile);
231
bool
player_can_remove_extra
(
const
struct
extra_type
*pextra,
232
const
struct
player
*pplayer,
233
const
struct
tile
*ptile);
234
235
bool
is_native_extra_to_uclass
(
const
struct
extra_type
*pextra,
236
const
struct
unit_class
*pclass);
237
bool
is_native_extra_to_utype
(
const
struct
extra_type
*pextra,
238
const
struct
unit_type
*punittype);
239
bool
is_native_tile_to_extra
(
const
struct
extra_type
*pextra,
240
const
struct
tile
*ptile);
241
bool
extra_conflicting_on_tile
(
const
struct
extra_type
*pextra,
242
const
struct
tile
*ptile);
243
244
bool
hut_on_tile
(
const
struct
tile
*ptile);
245
bool
unit_can_enter_hut
(
const
struct
unit
*
punit
,
246
const
struct
tile
*ptile);
247
bool
unit_can_displace_hut
(
const
struct
unit
*
punit
,
248
const
struct
tile
*ptile);
249
250
bool
extra_has_flag
(
const
struct
extra_type
*pextra,
enum
extra_flag_id flag);
251
bool
is_extra_flag_card_near
(
const
struct
civ_map
*nmap,
252
const
struct
tile
*ptile,
253
enum
extra_flag_id flag);
254
bool
is_extra_flag_near_tile
(
const
struct
civ_map
*nmap,
255
const
struct
tile
*ptile,
256
enum
extra_flag_id flag);
257
258
void
user_extra_flags_init
(
void
);
259
void
extra_flags_free
(
void
);
260
void
set_user_extra_flag_name
(
enum
extra_flag_id
id
,
261
const
char
*
name
,
262
const
char
*helptxt);
263
const
char
*
extra_flag_helptxt
(
enum
extra_flag_id
id
);
264
bool
extra_flag_is_in_use
(
enum
extra_flag_id
id
);
265
266
bool
extra_causes_env_upset
(
struct
extra_type
*pextra,
267
enum
environment_upset_type
upset);
268
269
bool
can_extras_coexist
(
const
struct
extra_type
*pextra1,
270
const
struct
extra_type
*pextra2);
271
272
bool
can_extra_appear
(
const
struct
extra_type
*pextra,
const
struct
tile
*ptile);
273
bool
can_extra_disappear
(
const
struct
extra_type
*pextra,
const
struct
tile
*ptile);
274
275
struct
extra_type
*
next_extra_for_tile
(
const
struct
tile
*ptile,
enum
extra_cause cause,
276
const
struct
player
*pplayer,
277
const
struct
unit
*
punit
);
278
struct
extra_type
*
prev_extra_in_tile
(
const
struct
tile
*ptile,
enum
extra_rmcause rmcause,
279
const
struct
player
*pplayer,
280
const
struct
unit
*
punit
);
281
282
enum
extra_cause
activity_to_extra_cause
(
enum
unit_activity act);
283
enum
extra_rmcause
activity_to_extra_rmcause
(
enum
unit_activity act);
284
285
struct
player
*
extra_owner
(
const
struct
tile
*ptile);
286
287
bool
player_knows_extra_exist
(
const
struct
player
*pplayer,
288
const
struct
extra_type
*pextra,
289
const
struct
tile
*ptile);
290
291
#define extra_type_iterate(_p) \
292
{ \
293
int _i_##_p; \
294
for (_i_##_p = 0; _i_##_p < game.control.num_extra_types; _i_##_p++) { \
295
struct extra_type *_p = extra_by_number(_i_##_p);
296
297
#define extra_type_iterate_end \
298
} \
299
}
300
301
#define extra_type_re_active_iterate(_p) \
302
extra_type_iterate(_p) { \
303
if (!_p->ruledit_disabled) {
304
305
#define extra_type_re_active_iterate_end \
306
} \
307
} extra_type_iterate_end;
308
309
#define extra_type_by_cause_iterate(_cause, _extra) \
310
{ \
311
struct extra_type_list *_etl_##_extra = extra_type_list_by_cause(_cause); \
312
if (_etl_##_extra != NULL) { \
313
extra_type_list_iterate(_etl_##_extra, _extra) {
314
315
#define extra_type_by_cause_iterate_end \
316
} extra_type_list_iterate_end \
317
} \
318
}
319
320
#define extra_type_by_cause_iterate_rev(_cause, _extra) \
321
{ \
322
struct extra_type_list *_etl_ = extra_type_list_by_cause(_cause); \
323
extra_type_list_iterate_rev(_etl_, _extra) {
324
325
#define extra_type_by_cause_iterate_rev_end \
326
} extra_type_list_iterate_rev_end \
327
}
328
329
#define extra_type_by_rmcause_iterate(_rmcause, _extra) \
330
{ \
331
struct extra_type_list *_etl_ = extra_type_list_by_rmcause(_rmcause); \
332
extra_type_list_iterate_rev(_etl_, _extra) {
333
334
#define extra_type_by_rmcause_iterate_end \
335
} extra_type_list_iterate_rev_end \
336
}
337
338
#define extra_deps_iterate(_reqs, _dep) \
339
{ \
340
requirement_vector_iterate(_reqs, preq) { \
341
if (preq->source.kind == VUT_EXTRA \
342
&& preq->present) { \
343
struct extra_type *_dep; \
344
_dep = preq->source.value.extra;
345
346
#define extra_deps_iterate_end \
347
} \
348
} requirement_vector_iterate_end; \
349
}
350
351
#ifdef __cplusplus
352
}
353
#endif
/* __cplusplus */
354
355
#endif
/* FC__EXTRAS_H */
base.h
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
is_extra_removed_by_worker_action
bool is_extra_removed_by_worker_action(const struct extra_type *pextra)
Definition
extras.c:994
next_extra_for_tile
struct extra_type * next_extra_for_tile(const struct tile *ptile, enum extra_cause cause, const struct player *pplayer, const struct unit *punit)
Definition
extras.c:740
extra_type_by_rule_name
struct extra_type * extra_type_by_rule_name(const char *name)
Definition
extras.c:204
extra_causes_env_upset
bool extra_causes_env_upset(struct extra_type *pextra, enum environment_upset_type upset)
Definition
extras.c:965
can_build_extra_base
bool can_build_extra_base(const struct extra_type *pextra, const struct player *pplayer, const struct tile *ptile)
Definition
extras.c:387
unit_can_displace_hut
bool unit_can_displace_hut(const struct unit *punit, const struct tile *ptile)
Definition
extras.c:713
rand_extra_for_tile
struct extra_type * rand_extra_for_tile(struct tile *ptile, enum extra_cause cause, bool generated)
Definition
extras.c:267
player_can_place_extra
bool player_can_place_extra(const struct extra_type *pextra, const struct player *pplayer, const struct tile *ptile)
Definition
extras.c:462
user_extra_flags_init
void user_extra_flags_init(void)
Definition
extras.c:858
extra_owner
struct player * extra_owner(const struct tile *ptile)
Definition
extras.c:1068
extra_flag_is_in_use
bool extra_flag_is_in_use(enum extra_flag_id id)
Definition
extras.c:936
extra_flag_helptxt
const char * extra_flag_helptxt(enum extra_flag_id id)
Definition
extras.c:923
extra_type_by_translated_name
struct extra_type * extra_type_by_translated_name(const char *name)
Definition
extras.c:227
set_user_extra_flag_name
void set_user_extra_flag_name(enum extra_flag_id id, const char *name, const char *helptxt)
Definition
extras.c:882
is_extra_flag_near_tile
bool is_extra_flag_near_tile(const struct civ_map *nmap, const struct tile *ptile, enum extra_flag_id flag)
Definition
extras.c:839
unit_can_enter_hut
bool unit_can_enter_hut(const struct unit *punit, const struct tile *ptile)
Definition
extras.c:687
is_extra_caused_by_worker_action
bool is_extra_caused_by_worker_action(const struct extra_type *pextra)
Definition
extras.c:981
is_extra_flag_card_near
bool is_extra_flag_card_near(const struct civ_map *nmap, const struct tile *ptile, enum extra_flag_id flag)
Definition
extras.c:819
extras_free
void extras_free(void)
Definition
extras.c:80
can_extra_appear
bool can_extra_appear(const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:1076
is_extra_near_tile
bool is_extra_near_tile(const struct civ_map *nmap, const struct tile *ptile, const struct extra_type *pextra)
Definition
extras.c:353
extra_number
int extra_number(const struct extra_type *pextra)
Definition
extras.c:153
extra_has_flag
bool extra_has_flag(const struct extra_type *pextra, enum extra_flag_id flag)
Definition
extras.c:810
is_native_tile_to_extra
bool is_native_tile_to_extra(const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:608
extra_type_list_by_cause
struct extra_type_list * extra_type_list_by_cause(enum extra_cause cause)
Definition
extras.c:241
extra_type_list_by_rmcause
struct extra_type_list * extra_type_list_by_rmcause(enum extra_rmcause rmcause)
Definition
extras.c:306
prev_extra_in_tile
struct extra_type * prev_extra_in_tile(const struct tile *ptile, enum extra_rmcause rmcause, const struct player *pplayer, const struct unit *punit)
Definition
extras.c:765
hut_on_tile
bool hut_on_tile(const struct tile *ptile)
Definition
extras.c:672
is_extra_card_near
bool is_extra_card_near(const struct civ_map *nmap, const struct tile *ptile, const struct extra_type *pextra)
Definition
extras.c:337
extra_to_caused_by_list
void extra_to_caused_by_list(struct extra_type *pextra, enum extra_cause cause)
Definition
extras.c:296
player_can_build_extra
bool player_can_build_extra(const struct extra_type *pextra, const struct player *pplayer, const struct tile *ptile)
Definition
extras.c:442
extra_by_number
struct extra_type * extra_by_number(int id)
Definition
extras.c:175
activity_to_extra_cause
enum extra_cause activity_to_extra_cause(enum unit_activity act)
Definition
extras.c:1028
extra_can_be_built
bool extra_can_be_built(const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:368
is_native_extra_to_utype
bool is_native_extra_to_utype(const struct extra_type *pextra, const struct unit_type *punittype)
Definition
extras.c:801
extra_conflicting_on_tile
bool extra_conflicting_on_tile(const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:655
extra_to_removed_by_list
void extra_to_removed_by_list(struct extra_type *pextra, enum extra_rmcause rmcause)
Definition
extras.c:316
can_extras_coexist
bool can_extras_coexist(const struct extra_type *pextra1, const struct extra_type *pextra2)
Definition
extras.c:952
extra_flags_free
void extra_flags_free(void)
Definition
extras.c:870
can_remove_extra
bool can_remove_extra(const struct extra_type *pextra, const struct unit *punit, const struct tile *ptile)
Definition
extras.c:586
extra_type_list_of_terr_claimers
struct extra_type_list * extra_type_list_of_terr_claimers(void)
Definition
extras.c:259
is_extra_caused_by_action
bool is_extra_caused_by_action(const struct extra_type *pextra, const struct action *paction)
Definition
extras.c:1006
extra_rule_name
const char * extra_rule_name(const struct extra_type *pextra)
Definition
extras.c:195
is_extra_removed_by
bool is_extra_removed_by(const struct extra_type *pextra, enum extra_rmcause rmcause)
Definition
extras.c:327
is_extra_removed_by_action
bool is_extra_removed_by_action(const struct extra_type *pextra, const struct action *paction)
Definition
extras.c:1017
activity_to_extra_rmcause
enum extra_rmcause activity_to_extra_rmcause(enum unit_activity act)
Definition
extras.c:1049
player_can_remove_extra
bool player_can_remove_extra(const struct extra_type *pextra, const struct player *pplayer, const struct tile *ptile)
Definition
extras.c:564
extra_type_list_of_unit_hiders
struct extra_type_list * extra_type_list_of_unit_hiders(void)
Definition
extras.c:251
extras_init
void extras_init(void)
Definition
extras.c:43
extra_count
int extra_count(void)
Definition
extras.c:145
player_knows_extra_exist
bool player_knows_extra_exist(const struct player *pplayer, const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:1103
can_build_extra
bool can_build_extra(const struct extra_type *pextra, const struct unit *punit, const struct tile *ptile)
Definition
extras.c:507
is_native_extra_to_uclass
bool is_native_extra_to_uclass(const struct extra_type *pextra, const struct unit_class *pclass)
Definition
extras.c:792
extra_name_translation
const char * extra_name_translation(const struct extra_type *pextra)
Definition
extras.c:186
can_extra_disappear
bool can_extra_disappear(const struct extra_type *pextra, const struct tile *ptile)
Definition
extras.c:1090
fc_types.h
environment_upset_type
environment_upset_type
Definition
fc_types.h:1129
Tech_type_id
int Tech_type_id
Definition
fc_types.h:347
MAX_LEN_NAME
#define MAX_LEN_NAME
Definition
fc_types.h:66
name
const char * name
Definition
inputfile.c:127
road.h
specenum_gen.h
speclist.h
action
Definition
actions.h:379
base_type
Definition
base.h:41
civ_map
Definition
map_types.h:71
extra_type
Definition
extras.h:85
extra_type::native_to
bv_unit_classes native_to
Definition
extras.h:126
extra_type::rmact_gfx
char rmact_gfx[MAX_LEN_NAME]
Definition
extras.h:99
extra_type::conflicts
bv_extras conflicts
Definition
extras.h:129
extra_type::rmcauses
uint8_t rmcauses
Definition
extras.h:92
extra_type::act_gfx_alt
char act_gfx_alt[MAX_LEN_NAME]
Definition
extras.h:97
extra_type::appearance_reqs
struct requirement_vector appearance_reqs
Definition
extras.h:104
extra_type::helptext
struct strvec * helptext
Definition
extras.h:143
extra_type::flags
bv_extra_flags flags
Definition
extras.h:128
extra_type::hiders
struct extra_type_list * hiders
Definition
extras.h:138
extra_type::rmact_gfx_alt
char rmact_gfx_alt[MAX_LEN_NAME]
Definition
extras.h:100
extra_type::causes
uint16_t causes
Definition
extras.h:91
extra_type::road
struct road_type * road
Definition
extras.h:149
extra_type::bridged_over
bv_extras bridged_over
Definition
extras.h:131
extra_type::resource
struct resource_type * resource
Definition
extras.h:150
extra_type::removal_time
int removal_time
Definition
extras.h:116
extra_type::bridged
struct extra_type_list * bridged
Definition
extras.h:141
extra_type::build_time_factor
int build_time_factor
Definition
extras.h:115
extra_type::ruledit_disabled
bool ruledit_disabled
Definition
extras.h:88
extra_type::disappearance_reqs
struct requirement_vector disappearance_reqs
Definition
extras.h:105
extra_type::generated
bool generated
Definition
extras.h:113
extra_type::special_idx
int special_idx
Definition
extras.h:147
extra_type::rmreqs
struct requirement_vector rmreqs
Definition
extras.h:103
extra_type::data
struct extra_type::@24 data
extra_type::visibility_req
Tech_type_id visibility_req
Definition
extras.h:133
extra_type::category
enum extra_category category
Definition
extras.h:90
extra_type::id
int id
Definition
extras.h:86
extra_type::graphic_alt
char graphic_alt[MAX_LEN_NAME]
Definition
extras.h:95
extra_type::activity_gfx
char activity_gfx[MAX_LEN_NAME]
Definition
extras.h:96
extra_type::ruledit_dlg
void * ruledit_dlg
Definition
extras.h:89
extra_type::disappearance_chance
int disappearance_chance
Definition
extras.h:122
extra_type::removal_time_factor
int removal_time_factor
Definition
extras.h:117
extra_type::act_gfx_alt2
char act_gfx_alt2[MAX_LEN_NAME]
Definition
extras.h:98
extra_type::reqs
struct requirement_vector reqs
Definition
extras.h:102
extra_type::buildable
bool buildable
Definition
extras.h:112
extra_type::eus
enum extra_unit_seen_type eus
Definition
extras.h:124
extra_type::defense_bonus
int defense_bonus
Definition
extras.h:120
extra_type::appearance_chance
int appearance_chance
Definition
extras.h:121
extra_type::graphic_str
char graphic_str[MAX_LEN_NAME]
Definition
extras.h:94
extra_type::build_time
int build_time
Definition
extras.h:114
extra_type::infracost
int infracost
Definition
extras.h:118
extra_type::hidden_by
bv_extras hidden_by
Definition
extras.h:130
extra_type::name
struct name_translation name
Definition
extras.h:87
extra_type::base
struct base_type * base
Definition
extras.h:148
name_translation
Definition
name_translation.h:35
player
Definition
player.h:249
resource_type
Definition
terrain.h:43
road_type
Definition
road.h:75
strvec
Definition
string_vector.c:29
tile
Definition
tile.h:49
unit_class
Definition
unittype.h:136
unit_type
Definition
unittype.h:481
unit
Definition
unit.h:138
terrain.h
Generated on Sun Jan 5 2025 22:00:34 for Freeciv-3.1 by
1.9.8