Skip to content

Commit c09651c

Browse files
committed
refactor: roadblock runtime_data moved from building common class
1 parent c000c2b commit c09651c

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

src/building/building.h

-4
Original file line numberDiff line numberDiff line change
@@ -214,10 +214,6 @@ class building {
214214
short formation_id;
215215
union impl_data_t {
216216
char data[512] = { 0 };
217-
218-
struct {
219-
short exceptions;
220-
} roadblock;
221217
} data;
222218
int tax_income_or_storage;
223219
unsigned char house_days_without_food;

src/building/building_roadblock.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,16 @@ bool building_roadblock::force_draw_flat_tile(painter &ctx, tile2i tile, vec2i p
2020
}
2121

2222
void building_roadblock::bind_dynamic(io_buffer *iob, size_t version) {
23-
iob->bind(BIND_SIGNATURE_UINT8, &data.roadblock.exceptions);
23+
auto &d = runtime_data();
24+
iob->bind(BIND_SIGNATURE_UINT8, &d.exceptions);
2425
}
2526

2627
void building_roadblock::set_permission(e_permission p) {
2728
const int permission_bit = 1 << p;
28-
data.roadblock.exceptions ^= permission_bit;
29+
runtime_data().exceptions ^= permission_bit;
2930
}
3031

3132
bool building_roadblock::get_permission(e_permission p) {
3233
const int permission_bit = 1 << p;
33-
return (data.roadblock.exceptions & permission_bit);
34+
return (runtime_data().exceptions & permission_bit);
3435
}

src/building/building_roadblock.h

+6
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,17 @@ class building_routeblock : public building_impl {
77
public:
88
building_routeblock(building &b) : building_impl(b) {}
99

10+
struct runtime_data_t {
11+
short exceptions;
12+
};
13+
1014
virtual building_routeblock *dcast_routeblock() override { return this; }
1115

1216
virtual void set_permission(e_permission) {}
1317
virtual bool get_permission(e_permission) { return false; }
1418

19+
runtime_data_t &runtime_data() { return *(runtime_data_t *)data.data; }
20+
const runtime_data_t &runtime_data() const { return *(runtime_data_t *)data.data; }
1521
};
1622

1723
class building_roadblock : public building_routeblock {

0 commit comments

Comments
 (0)