@@ -135,20 +135,26 @@ namespace phoenix {
135
135
FLAG (npc_flag);
136
136
137
137
struct c_npc : public instance {
138
+ static constexpr std::uint32_t hitchance_count =
139
+ 5 ; // -> TODO: one of "unknown", "one-handed", "two-handed", "bow", "crossbow"
140
+ static constexpr std::uint32_t name_count = 5 ;
141
+ static constexpr std::uint32_t mission_count = 5 ;
142
+ static constexpr std::uint32_t aivar_count = 100 ;
143
+
138
144
var int32_t id;
139
- var string name[5 ];
145
+ var string name[name_count ];
140
146
var string slot;
141
147
var string effect;
142
148
var npc_type type;
143
149
var npc_flag flags;
144
- var int32_t attribute[8 ];
145
- var int32_t hitchance[5 ];
146
- var int32_t protection[8 ];
147
- var int32_t damage[8 ];
150
+ var int32_t attribute[npc_attribute::count ];
151
+ var int32_t hitchance[hitchance_count ];
152
+ var int32_t protection[damage_type::count ];
153
+ var int32_t damage[damage_type::count ];
148
154
var int32_t damage_type;
149
155
var int32_t guild;
150
156
var int32_t level;
151
- var func mission[5 ];
157
+ var func mission[mission_count ];
152
158
var int32_t fight_tactic;
153
159
var int32_t weapon;
154
160
var int32_t voice;
@@ -160,7 +166,7 @@ namespace phoenix {
160
166
var int32_t spawn_delay;
161
167
var int32_t senses;
162
168
var int32_t senses_range;
163
- var int32_t aivar[100 ];
169
+ var int32_t aivar[aivar_count ];
164
170
var string wp;
165
171
var int32_t exp;
166
172
var int32_t exp_next;
@@ -256,6 +262,9 @@ namespace phoenix {
256
262
FLAG (item_flags);
257
263
258
264
struct c_item : public instance {
265
+ static constexpr std::uint32_t condition_count = 3 ;
266
+ static constexpr std::uint32_t state_count = 4 ;
267
+
259
268
var int32_t id;
260
269
var string name;
261
270
var string name_id;
@@ -267,18 +276,18 @@ namespace phoenix {
267
276
var int32_t value;
268
277
var int32_t damage_type;
269
278
var int32_t damage_total;
270
- var int32_t damage[8 ];
279
+ var int32_t damage[damage_type::count ];
271
280
var int32_t wear;
272
- var int32_t protection[8 ];
281
+ var int32_t protection[damage_type::count ];
273
282
var int32_t nutrition;
274
- var int32_t cond_atr[3 ];
275
- var int32_t cond_value[3 ];
276
- var int32_t change_atr[3 ];
277
- var int32_t change_value[3 ];
283
+ var int32_t cond_atr[condition_count ];
284
+ var int32_t cond_value[condition_count ];
285
+ var int32_t change_atr[condition_count ];
286
+ var int32_t change_value[condition_count ];
278
287
var func magic;
279
288
var func on_equip;
280
289
var func on_unequip;
281
- var func on_state[4 ];
290
+ var func on_state[state_count ];
282
291
var func owner;
283
292
var int32_t owner_guild;
284
293
var int32_t disguise_guild;
0 commit comments