(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
- Also add this capability to settings
--- a/engine.c Wed Mar 15 21:55:59 2006 +0000
+++ b/engine.c Thu Mar 16 00:20:33 2006 +0000
@@ -681,7 +681,7 @@
SLE_VAR(Engine,player_avail, SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 2, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END()
};
--- a/industry_cmd.c Wed Mar 15 21:55:59 2006 +0000
+++ b/industry_cmd.c Thu Mar 16 00:20:33 2006 +0000
@@ -1935,7 +1935,7 @@
SLE_VAR(Industry,was_cargo_delivered,SLE_UINT8),
// reserve extra space in savegame here. (currently 32 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 4, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(32, 2, SL_MAX_VERSION),
SLE_END()
};
--- a/order_cmd.c Wed Mar 15 21:55:59 2006 +0000
+++ b/order_cmd.c Thu Mar 16 00:20:33 2006 +0000
@@ -1100,7 +1100,7 @@
SLE_REF(Order,next, REF_ORDER),
// reserve extra space in savegame here. (currently 10 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 10, 5, SL_MAX_VERSION),
+ SLE_CONDNULL(10, 5, SL_MAX_VERSION),
SLE_END()
};
--- a/players.c Wed Mar 15 21:55:59 2006 +0000
+++ b/players.c Thu Mar 16 00:20:33 2006 +0000
@@ -1150,7 +1150,7 @@
SLE_CONDVAR(Player,is_active, SLE_UINT8, 4, SL_MAX_VERSION),
// Engine renewal settings
- SLE_CONDARR(NullStruct,null,SLE_FILE_U16 | SLE_VAR_NULL, 256, 16, 18),
+ SLE_CONDNULL(512, 16, 18),
SLE_CONDREF(Player,engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
SLE_CONDVAR(Player,engine_renew, SLE_UINT8, 16, SL_MAX_VERSION),
SLE_CONDVAR(Player,engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION),
@@ -1158,8 +1158,7 @@
SLE_CONDVAR(Player,renew_keep_length, SLE_UINT8, 2, SL_MAX_VERSION), // added with 16.1, but was blank since 2
// reserve extra space in savegame here. (currently 63 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 7, 2, SL_MAX_VERSION),
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 7, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(63, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -1219,7 +1218,7 @@
SLE_ARR(PlayerAI,order_list_blocks, SLE_UINT8, 20),
SLE_ARR(PlayerAI,banned_tiles, SLE_UINT16, 16),
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 8, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(64, 2, SL_MAX_VERSION),
SLE_END()
};
--- a/saveload.h Wed Mar 15 21:55:59 2006 +0000
+++ b/saveload.h Thu Mar 16 00:20:33 2006 +0000
@@ -179,6 +179,8 @@
#define SLE_ARR(base, variable, type, length) SLE_CONDARR(base, variable, type, length, 0, SL_MAX_VERSION)
#define SLE_STR(base, variable, type, length) SLE_CONDSTR(base, variable, type, length, 0, SL_MAX_VERSION)
+#define SLE_CONDNULL(length, from, to) SLE_CONDARR(NullStruct, null, SLE_FILE_U8 | SLE_VAR_NULL, length, from, to)
+
/* Translate values ingame to different values in the savegame and vv */
#define SLE_WRITEBYTE(base, variable, game_value, file_value) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, game_value, file_value)
/* Load common code and put it into each struct (currently only for vehicles */
@@ -208,8 +210,10 @@
#define SLEG_VAR(variable, type) SLEG_CONDVAR(variable, type, 0, SL_MAX_VERSION)
#define SLEG_REF(variable, type) SLEG_CONDREF(variable, type, 0, SL_MAX_VERSION)
-#define SLEG_ARR(variable, type) SLEG_CONDARR(variable, type, lengthof(variable), SL_MAX_VERSION)
-#define SLEG_STR(variable, type) SLEG_CONDSTR(variable, type, lengthof(variable), SL_MAX_VERSION)
+#define SLEG_ARR(variable, type) SLEG_CONDARR(variable, type, lengthof(variable), 0, SL_MAX_VERSION)
+#define SLEG_STR(variable, type) SLEG_CONDSTR(variable, type, lengthof(variable), 0, SL_MAX_VERSION)
+
+#define SLEG_CONDNULL(length, from, to) {SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL, length, from, to, (void*)NULL}
#define SLEG_END() {SL_END, 0, 0, 0, 0, NULL}
--- a/settings.c Wed Mar 15 21:55:59 2006 +0000
+++ b/settings.c Thu Mar 16 00:20:33 2006 +0000
@@ -615,6 +615,7 @@
const SaveLoad *sld = &sd->save;
if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue;
+ if (sd->desc.name == NULL) continue;
// XXX - wtf is this?? (group override?)
s = strchr(sdb->name, '.');
@@ -682,6 +683,7 @@
* file, just continue with the next setting */
if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue;
if (sld->conv & SLF_CONFIG_NO) continue;
+ if (sd->desc.name == NULL) continue;
// XXX - wtf is this?? (group override?)
s = strchr(sdb->name, '.');
@@ -879,6 +881,9 @@
#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, proc)\
SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, 0, SL_MAX_VERSION)
+#define SDTG_CONDNULL(length, from, to)\
+ {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLEG_CONDNULL(length, from, to)}
+
#define SDTG_END() {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLEG_END()}
/* Macros for various objects to go in the configuration file.
@@ -925,6 +930,9 @@
#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc)\
SDT_CONDMMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, full, str, proc)
+#define SDT_CONDNULL(length, from, to)\
+ {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLE_CONDNULL(length, from, to)}
+
#define SDT_END() {{NULL, NULL, 0, 0, 0, 0, NULL, STR_NULL, NULL}, SLE_END()}
/* Shortcuts for macros below. Logically if we don't save the value
--- a/station_cmd.c Wed Mar 15 21:55:59 2006 +0000
+++ b/station_cmd.c Thu Mar 16 00:20:33 2006 +0000
@@ -2816,7 +2816,7 @@
SLE_VAR(RoadStop,used, SLE_UINT8),
SLE_VAR(RoadStop,status, SLE_UINT8),
/* Index was saved in some versions, but this is not needed */
- SLE_CONDARR(NullStruct,null,SLE_FILE_U32 | SLE_VAR_NULL, 1, 0, 8),
+ SLE_CONDNULL(4, 0, 8),
SLE_VAR(RoadStop,station, SLE_UINT16),
SLE_VAR(RoadStop,type, SLE_UINT8),
@@ -2844,7 +2844,7 @@
SLE_CONDVAR(Station,trainst_h, SLE_UINT8, 2, SL_MAX_VERSION),
// alpha_order was stored here in savegame format 0 - 3
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 1, 0, 3),
+ SLE_CONDNULL(1, 0, 3),
SLE_VAR(Station,string_id, SLE_STRINGID),
SLE_VAR(Station,had_vehicle_of_type,SLE_UINT16),
@@ -2875,8 +2875,8 @@
SLE_CONDREF(Station,bus_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
SLE_CONDREF(Station,truck_stops, REF_ROADSTOPS, 6, SL_MAX_VERSION),
- // reserve extra space in savegame here. (currently 28 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 32, 2, SL_MAX_VERSION),
+ // reserve extra space in savegame here. (currently 32 bytes)
+ SLE_CONDNULL(32, 2, SL_MAX_VERSION),
SLE_END()
};
--- a/town_cmd.c Wed Mar 15 21:55:59 2006 +0000
+++ b/town_cmd.c Thu Mar 16 00:20:33 2006 +0000
@@ -1979,7 +1979,7 @@
SLE_VAR(Town,statues, SLE_UINT8),
// sort_index_obsolete was stored here in savegame format 0 - 1
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 1, 0, 1),
+ SLE_CONDNULL(1, 0, 1),
SLE_VAR(Town,have_ratings,SLE_UINT8),
SLE_ARR(Town,ratings, SLE_INT16, 8),
@@ -2021,7 +2021,7 @@
SLE_VAR(Town,exclusivity, SLE_UINT8),
SLE_VAR(Town,exclusive_counter, SLE_UINT8),
// reserve extra space in savegame here. (currently 30 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 30, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(30, 2, SL_MAX_VERSION),
SLE_END()
};
--- a/vehicle.c Wed Mar 15 21:55:59 2006 +0000
+++ b/vehicle.c Thu Mar 16 00:20:33 2006 +0000
@@ -2158,7 +2158,7 @@
SLE_REF(Vehicle,prev_shared, REF_VEHICLE),
// reserve extra space in savegame here. (currently 10 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 10, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(10, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2175,9 +2175,9 @@
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,flags), SLE_UINT8, 2, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,days_since_order_progr), SLE_UINT16, 2, SL_MAX_VERSION),
- SLE_CONDARR(NullStruct, null, SLE_FILE_U8 | SLE_VAR_NULL, 2, 2, 19),
+ SLE_CONDNULL(2, 2, 19),
// reserve extra space in savegame here. (currently 11 bytes)
- SLE_CONDARR(NullStruct, null, SLE_FILE_U8 | SLE_VAR_NULL, 11, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(11, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2197,7 +2197,7 @@
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slotindex), SLE_UINT8, 6, SL_MAX_VERSION),
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slot_age), SLE_UINT8, 6, SL_MAX_VERSION),
// reserve extra space in savegame here. (currently 16 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 2, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2208,7 +2208,7 @@
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleShip,state), SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 2, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2227,7 +2227,7 @@
SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,previous_pos), SLE_UINT8, 2, SL_MAX_VERSION),
// reserve extra space in savegame here. (currently 15 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U8 | SLE_VAR_NULL, 15, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(15, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2259,7 +2259,7 @@
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleSpecial,unk2), SLE_UINT8),
// reserve extra space in savegame here. (currently 16 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 2, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END()
};
@@ -2301,7 +2301,7 @@
SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleDisaster,unk2), SLE_UINT16),
// reserve extra space in savegame here. (currently 16 bytes)
- SLE_CONDARR(NullStruct,null,SLE_FILE_U64 | SLE_VAR_NULL, 2, 2, SL_MAX_VERSION),
+ SLE_CONDNULL(16, 2, SL_MAX_VERSION),
SLE_END()
};