(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
authorDarkvater
Thu, 16 Mar 2006 00:20:33 +0000
changeset 3222 6de22e06a1e9
parent 3221 e0450d4ec188
child 3223 eed8c6a62ec2
(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
engine.c
industry_cmd.c
order_cmd.c
players.c
saveload.h
settings.c
station_cmd.c
town_cmd.c
vehicle.c
--- 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()
 };