@@ -195,7 +195,6 @@ class building {
195
195
e_resource output_resource_second_id;
196
196
uint8_t output_resource_second_rate;
197
197
bool has_road_access;
198
- short house_criminal_active;
199
198
uint8_t disease_days;
200
199
uint8_t common_health;
201
200
uint8_t malaria_risk;
@@ -212,9 +211,6 @@ class building {
212
211
unsigned char house_tax_coverage;
213
212
unsigned short tax_collector_id;
214
213
short formation_id;
215
- union impl_data_t {
216
- char data[512 ] = { 0 };
217
- } data;
218
214
int tax_income_or_storage;
219
215
unsigned char house_days_without_food;
220
216
bool has_plague;
@@ -229,6 +225,7 @@ class building {
229
225
uint8_t show_on_problem_overlay;
230
226
uint16_t deben_storage;
231
227
animation_context anim;
228
+ char runtime_data[512 ] = { 0 };
232
229
233
230
building ();
234
231
building* main ();
@@ -390,6 +387,14 @@ class building {
390
387
};
391
388
392
389
#define BUILDING_METAINFO (type, clsid ) static constexpr e_building_type TYPE = type; static constexpr pcstr CLSID = #clsid;
390
+
391
+ #define BUILDING_METAINFO_RT (type, clsid ) \
392
+ static constexpr e_building_type TYPE = type; \
393
+ static constexpr pcstr CLSID = #clsid; \
394
+ struct runtime_data_t ; \
395
+ runtime_data_t &runtime_data () {return *(runtime_data_t *)base.runtime_data ; } \
396
+ const runtime_data_t &runtime_data () const { return *(runtime_data_t *)base.runtime_data ; } \
397
+
393
398
class building_impl {
394
399
public:
395
400
struct static_params {
@@ -452,7 +457,7 @@ class building_impl {
452
457
virtual bool is_unique_building () const { return unique_building; }
453
458
};
454
459
455
- building_impl (building &b) : base(b), data(b.data) {}
460
+ building_impl (building &b) : base(b) {}
456
461
virtual void on_create (int orientation) {}
457
462
virtual void on_place (int orientation, int variant);
458
463
virtual void on_place_update_tiles (int orientation, int variant);
@@ -618,7 +623,6 @@ class building_impl {
618
623
static void acquire (e_building_type e, building &b);
619
624
620
625
building &base;
621
- building::impl_data_t &data;
622
626
};
623
627
624
628
template <typename dest_type>
0 commit comments