players.c
changeset 4344 7e123fec5b0b
parent 4326 2e2c9d21ed96
child 4428 6d9fab57f2af
equal deleted inserted replaced
4343:ca99d5b3f42d 4344:7e123fec5b0b
  1106 	_patches.ending_year = 2051;
  1106 	_patches.ending_year = 2051;
  1107 }
  1107 }
  1108 
  1108 
  1109 // Save/load of players
  1109 // Save/load of players
  1110 static const SaveLoad _player_desc[] = {
  1110 static const SaveLoad _player_desc[] = {
  1111 	SLE_VAR(Player,name_2,					SLE_UINT32),
  1111 	    SLE_VAR(Player, name_2,          SLE_UINT32),
  1112 	SLE_VAR(Player,name_1,					SLE_STRINGID),
  1112 	    SLE_VAR(Player, name_1,          SLE_STRINGID),
  1113 
  1113 
  1114 	SLE_VAR(Player,president_name_1,SLE_UINT16),
  1114 	    SLE_VAR(Player, president_name_1,SLE_UINT16),
  1115 	SLE_VAR(Player,president_name_2,SLE_UINT32),
  1115 	    SLE_VAR(Player, president_name_2,SLE_UINT32),
  1116 
  1116 
  1117 	SLE_VAR(Player,face,						SLE_UINT32),
  1117 	    SLE_VAR(Player, face,            SLE_UINT32),
  1118 
  1118 
  1119 	// money was changed to a 64 bit field in savegame version 1.
  1119 	// money was changed to a 64 bit field in savegame version 1.
  1120 	SLE_CONDVAR(Player,money64,			SLE_VAR_I64 | SLE_FILE_I32, 0, 0),
  1120 	SLE_CONDVAR(Player, money64,               SLE_VAR_I64 | SLE_FILE_I32, 0, 0),
  1121 	SLE_CONDVAR(Player,money64,			SLE_INT64, 1, SL_MAX_VERSION),
  1121 	SLE_CONDVAR(Player, money64,               SLE_INT64, 1, SL_MAX_VERSION),
  1122 
  1122 
  1123 	SLE_VAR(Player,current_loan,		SLE_INT32),
  1123 	    SLE_VAR(Player, current_loan,          SLE_INT32),
  1124 
  1124 
  1125 	SLE_VAR(Player,player_color,		SLE_UINT8),
  1125 	    SLE_VAR(Player, player_color,          SLE_UINT8),
  1126 	SLE_VAR(Player,player_money_fraction,SLE_UINT8),
  1126 	    SLE_VAR(Player, player_money_fraction, SLE_UINT8),
  1127 	SLE_VAR(Player,avail_railtypes,		SLE_UINT8),
  1127 	    SLE_VAR(Player, avail_railtypes,       SLE_UINT8),
  1128 	SLE_VAR(Player,block_preview,		SLE_UINT8),
  1128 	    SLE_VAR(Player, block_preview,         SLE_UINT8),
  1129 
  1129 
  1130 	SLE_VAR(Player,cargo_types,			SLE_UINT16),
  1130 	    SLE_VAR(Player, cargo_types,           SLE_UINT16),
  1131 	SLE_CONDVAR(Player, location_of_house,     SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1131 	SLE_CONDVAR(Player, location_of_house,     SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1132 	SLE_CONDVAR(Player, location_of_house,     SLE_UINT32, 6, SL_MAX_VERSION),
  1132 	SLE_CONDVAR(Player, location_of_house,     SLE_UINT32,                  6, SL_MAX_VERSION),
  1133 	SLE_CONDVAR(Player, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1133 	SLE_CONDVAR(Player, last_build_coordinate, SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1134 	SLE_CONDVAR(Player, last_build_coordinate, SLE_UINT32, 6, SL_MAX_VERSION),
  1134 	SLE_CONDVAR(Player, last_build_coordinate, SLE_UINT32,                  6, SL_MAX_VERSION),
  1135 	SLE_CONDVAR(Player, inaugurated_year,      SLE_FILE_U8  | SLE_VAR_I32, 0, 30),
  1135 	SLE_CONDVAR(Player, inaugurated_year,      SLE_FILE_U8  | SLE_VAR_I32,  0, 30),
  1136 	SLE_CONDVAR(Player, inaugurated_year,      SLE_INT32, 31, SL_MAX_VERSION),
  1136 	SLE_CONDVAR(Player, inaugurated_year,      SLE_INT32,                  31, SL_MAX_VERSION),
  1137 
  1137 
  1138 	SLE_ARR(Player,share_owners,		SLE_UINT8, 4),
  1138 	    SLE_ARR(Player, share_owners,          SLE_UINT8, 4),
  1139 
  1139 
  1140 	SLE_VAR(Player,num_valid_stat_ent,SLE_UINT8),
  1140 	    SLE_VAR(Player, num_valid_stat_ent,    SLE_UINT8),
  1141 
  1141 
  1142 	SLE_VAR(Player,quarters_of_bankrupcy,SLE_UINT8),
  1142 	    SLE_VAR(Player, quarters_of_bankrupcy, SLE_UINT8),
  1143 	SLE_VAR(Player,bankrupt_asked,	SLE_UINT8),
  1143 	    SLE_VAR(Player, bankrupt_asked,        SLE_UINT8),
  1144 	SLE_VAR(Player,bankrupt_timeout,SLE_INT16),
  1144 	    SLE_VAR(Player, bankrupt_timeout,      SLE_INT16),
  1145 	SLE_VAR(Player,bankrupt_value,	SLE_INT32),
  1145 	    SLE_VAR(Player, bankrupt_value,        SLE_INT32),
  1146 
  1146 
  1147 	// yearly expenses was changed to 64-bit in savegame version 2.
  1147 	// yearly expenses was changed to 64-bit in savegame version 2.
  1148 	SLE_CONDARR(Player,yearly_expenses,	SLE_FILE_I32|SLE_VAR_I64, 3*13, 0, 1),
  1148 	SLE_CONDARR(Player, yearly_expenses,       SLE_FILE_I32 | SLE_VAR_I64, 3 * 13, 0, 1),
  1149 	SLE_CONDARR(Player,yearly_expenses,	SLE_INT64, 3*13, 2, SL_MAX_VERSION),
  1149 	SLE_CONDARR(Player, yearly_expenses,       SLE_INT64, 3 * 13,                  2, SL_MAX_VERSION),
  1150 
  1150 
  1151 	SLE_CONDVAR(Player,is_ai,			SLE_BOOL, 2, SL_MAX_VERSION),
  1151 	SLE_CONDVAR(Player, is_ai,                 SLE_BOOL, 2, SL_MAX_VERSION),
  1152 	SLE_CONDVAR(Player,is_active,	SLE_BOOL, 4, SL_MAX_VERSION),
  1152 	SLE_CONDVAR(Player, is_active,             SLE_BOOL, 4, SL_MAX_VERSION),
  1153 
  1153 
  1154 	// Engine renewal settings
  1154 	// Engine renewal settings
  1155 	SLE_CONDNULL(512, 16, 18),
  1155 	SLE_CONDNULL(512, 16, 18),
  1156 	SLE_CONDREF(Player,engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
  1156 	SLE_CONDREF(Player, engine_renew_list,     REF_ENGINE_RENEWS,          19, SL_MAX_VERSION),
  1157 	SLE_CONDVAR(Player,engine_renew,         SLE_BOOL,       16, SL_MAX_VERSION),
  1157 	SLE_CONDVAR(Player, engine_renew,          SLE_BOOL,                   16, SL_MAX_VERSION),
  1158 	SLE_CONDVAR(Player,engine_renew_months,  SLE_INT16,      16, SL_MAX_VERSION),
  1158 	SLE_CONDVAR(Player, engine_renew_months,   SLE_INT16,                  16, SL_MAX_VERSION),
  1159 	SLE_CONDVAR(Player,engine_renew_money,  SLE_UINT32,      16, SL_MAX_VERSION),
  1159 	SLE_CONDVAR(Player, engine_renew_money,    SLE_UINT32,                 16, SL_MAX_VERSION),
  1160 	SLE_CONDVAR(Player,renew_keep_length,    SLE_BOOL,        2, SL_MAX_VERSION),	// added with 16.1, but was blank since 2
  1160 	SLE_CONDVAR(Player, renew_keep_length,     SLE_BOOL,                    2, SL_MAX_VERSION), // added with 16.1, but was blank since 2
  1161 
  1161 
  1162 	// reserve extra space in savegame here. (currently 63 bytes)
  1162 	// reserve extra space in savegame here. (currently 63 bytes)
  1163 	SLE_CONDNULL(63, 2, SL_MAX_VERSION),
  1163 	SLE_CONDNULL(63, 2, SL_MAX_VERSION),
  1164 
  1164 
  1165 	SLE_END()
  1165 	SLE_END()
  1166 };
  1166 };
  1167 
  1167 
  1168 static const SaveLoad _player_economy_desc[] = {
  1168 static const SaveLoad _player_economy_desc[] = {
  1169 	// these were changed to 64-bit in savegame format 2
  1169 	// these were changed to 64-bit in savegame format 2
  1170 	SLE_CONDVAR(PlayerEconomyEntry,income,							SLE_INT32, 0, 1),
  1170 	SLE_CONDVAR(PlayerEconomyEntry, income,              SLE_INT32,                  0, 1),
  1171 	SLE_CONDVAR(PlayerEconomyEntry,expenses,						SLE_INT32, 0, 1),
  1171 	SLE_CONDVAR(PlayerEconomyEntry, expenses,            SLE_INT32,                  0, 1),
  1172 	SLE_CONDVAR(PlayerEconomyEntry,company_value, SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
  1172 	SLE_CONDVAR(PlayerEconomyEntry, company_value,       SLE_FILE_I32 | SLE_VAR_I64, 0, 1),
  1173 	SLE_CONDVAR(PlayerEconomyEntry,income,	SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
  1173 	SLE_CONDVAR(PlayerEconomyEntry, income,              SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
  1174 	SLE_CONDVAR(PlayerEconomyEntry,expenses,SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
  1174 	SLE_CONDVAR(PlayerEconomyEntry, expenses,            SLE_FILE_I64 | SLE_VAR_I32, 2, SL_MAX_VERSION),
  1175 	SLE_CONDVAR(PlayerEconomyEntry,company_value, SLE_INT64, 2, SL_MAX_VERSION),
  1175 	SLE_CONDVAR(PlayerEconomyEntry, company_value,       SLE_INT64,                  2, SL_MAX_VERSION),
  1176 
  1176 
  1177 	SLE_VAR(PlayerEconomyEntry,delivered_cargo,			SLE_INT32),
  1177 	    SLE_VAR(PlayerEconomyEntry, delivered_cargo,     SLE_INT32),
  1178 	SLE_VAR(PlayerEconomyEntry,performance_history,	SLE_INT32),
  1178 	    SLE_VAR(PlayerEconomyEntry, performance_history, SLE_INT32),
  1179 
  1179 
  1180 	SLE_END()
  1180 	SLE_END()
  1181 };
  1181 };
  1182 
  1182 
  1183 static const SaveLoad _player_ai_desc[] = {
  1183 static const SaveLoad _player_ai_desc[] = {
  1184 	SLE_VAR(PlayerAI,state,							SLE_UINT8),
  1184 	    SLE_VAR(PlayerAI, state,             SLE_UINT8),
  1185 	SLE_VAR(PlayerAI,tick,							SLE_UINT8),
  1185 	    SLE_VAR(PlayerAI, tick,              SLE_UINT8),
  1186 	SLE_CONDVAR(PlayerAI,state_counter, SLE_FILE_U16 | SLE_VAR_U32, 0, 12),
  1186 	SLE_CONDVAR(PlayerAI, state_counter,     SLE_FILE_U16 | SLE_VAR_U32,  0, 12),
  1187 	SLE_CONDVAR(PlayerAI,state_counter, SLE_UINT32, 13, SL_MAX_VERSION),
  1187 	SLE_CONDVAR(PlayerAI, state_counter,     SLE_UINT32,                 13, SL_MAX_VERSION),
  1188 	SLE_VAR(PlayerAI,timeout_counter,		SLE_UINT16),
  1188 	    SLE_VAR(PlayerAI, timeout_counter,   SLE_UINT16),
  1189 
  1189 
  1190 	SLE_VAR(PlayerAI,state_mode,				SLE_UINT8),
  1190 	    SLE_VAR(PlayerAI, state_mode,        SLE_UINT8),
  1191 	SLE_VAR(PlayerAI,banned_tile_count,	SLE_UINT8),
  1191 	    SLE_VAR(PlayerAI, banned_tile_count, SLE_UINT8),
  1192 	SLE_VAR(PlayerAI,railtype_to_use,		SLE_UINT8),
  1192 	    SLE_VAR(PlayerAI, railtype_to_use,   SLE_UINT8),
  1193 
  1193 
  1194 	SLE_VAR(PlayerAI,cargo_type,				SLE_UINT8),
  1194 	    SLE_VAR(PlayerAI, cargo_type,        SLE_UINT8),
  1195 	SLE_VAR(PlayerAI,num_wagons,				SLE_UINT8),
  1195 	    SLE_VAR(PlayerAI, num_wagons,        SLE_UINT8),
  1196 	SLE_VAR(PlayerAI,build_kind,				SLE_UINT8),
  1196 	    SLE_VAR(PlayerAI, build_kind,        SLE_UINT8),
  1197 	SLE_VAR(PlayerAI,num_build_rec,			SLE_UINT8),
  1197 	    SLE_VAR(PlayerAI, num_build_rec,     SLE_UINT8),
  1198 	SLE_VAR(PlayerAI,num_loco_to_build,	SLE_UINT8),
  1198 	    SLE_VAR(PlayerAI, num_loco_to_build, SLE_UINT8),
  1199 	SLE_VAR(PlayerAI,num_want_fullload,	SLE_UINT8),
  1199 	    SLE_VAR(PlayerAI, num_want_fullload, SLE_UINT8),
  1200 
  1200 
  1201 	SLE_VAR(PlayerAI,route_type_mask,		SLE_UINT8),
  1201 	    SLE_VAR(PlayerAI, route_type_mask,   SLE_UINT8),
  1202 
  1202 
  1203 	SLE_CONDVAR(PlayerAI, start_tile_a, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1203 	SLE_CONDVAR(PlayerAI, start_tile_a,      SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1204 	SLE_CONDVAR(PlayerAI, start_tile_a, SLE_UINT32, 6, SL_MAX_VERSION),
  1204 	SLE_CONDVAR(PlayerAI, start_tile_a,      SLE_UINT32,                  6, SL_MAX_VERSION),
  1205 	SLE_CONDVAR(PlayerAI, cur_tile_a,   SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1205 	SLE_CONDVAR(PlayerAI, cur_tile_a,        SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1206 	SLE_CONDVAR(PlayerAI, cur_tile_a,   SLE_UINT32, 6, SL_MAX_VERSION),
  1206 	SLE_CONDVAR(PlayerAI, cur_tile_a,        SLE_UINT32,                  6, SL_MAX_VERSION),
  1207 	SLE_VAR(PlayerAI,start_dir_a,				SLE_UINT8),
  1207 	    SLE_VAR(PlayerAI, start_dir_a,       SLE_UINT8),
  1208 	SLE_VAR(PlayerAI,cur_dir_a,					SLE_UINT8),
  1208 	    SLE_VAR(PlayerAI, cur_dir_a,         SLE_UINT8),
  1209 
  1209 
  1210 	SLE_CONDVAR(PlayerAI, start_tile_b, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1210 	SLE_CONDVAR(PlayerAI, start_tile_b,      SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1211 	SLE_CONDVAR(PlayerAI, start_tile_b, SLE_UINT32, 6, SL_MAX_VERSION),
  1211 	SLE_CONDVAR(PlayerAI, start_tile_b,      SLE_UINT32,                  6, SL_MAX_VERSION),
  1212 	SLE_CONDVAR(PlayerAI, cur_tile_b,   SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1212 	SLE_CONDVAR(PlayerAI, cur_tile_b,        SLE_FILE_U16 | SLE_VAR_U32,  0,  5),
  1213 	SLE_CONDVAR(PlayerAI, cur_tile_b,   SLE_UINT32, 6, SL_MAX_VERSION),
  1213 	SLE_CONDVAR(PlayerAI, cur_tile_b,        SLE_UINT32,                  6, SL_MAX_VERSION),
  1214 	SLE_VAR(PlayerAI,start_dir_b,				SLE_UINT8),
  1214 	    SLE_VAR(PlayerAI, start_dir_b,       SLE_UINT8),
  1215 	SLE_VAR(PlayerAI,cur_dir_b,					SLE_UINT8),
  1215 	    SLE_VAR(PlayerAI, cur_dir_b,         SLE_UINT8),
  1216 
  1216 
  1217 	SLE_REF(PlayerAI,cur_veh,						REF_VEHICLE),
  1217 	    SLE_REF(PlayerAI, cur_veh,           REF_VEHICLE),
  1218 
  1218 
  1219 	SLE_ARR(PlayerAI,wagon_list,				SLE_UINT16, 9),
  1219 	    SLE_ARR(PlayerAI, wagon_list,        SLE_UINT16, 9),
  1220 	SLE_ARR(PlayerAI,order_list_blocks,	SLE_UINT8, 20),
  1220 	    SLE_ARR(PlayerAI, order_list_blocks, SLE_UINT8, 20),
  1221 	SLE_ARR(PlayerAI,banned_tiles,			SLE_UINT16, 16),
  1221 	    SLE_ARR(PlayerAI, banned_tiles,      SLE_UINT16, 16),
  1222 
  1222 
  1223 	SLE_CONDNULL(64, 2, SL_MAX_VERSION),
  1223 	SLE_CONDNULL(64, 2, SL_MAX_VERSION),
  1224 	SLE_END()
  1224 	SLE_END()
  1225 };
  1225 };
  1226 
  1226 
  1227 static const SaveLoad _player_ai_build_rec_desc[] = {
  1227 static const SaveLoad _player_ai_build_rec_desc[] = {
  1228 	SLE_CONDVAR(AiBuildRec,spec_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1228 	SLE_CONDVAR(AiBuildRec, spec_tile,         SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1229 	SLE_CONDVAR(AiBuildRec,spec_tile, SLE_UINT32, 6, SL_MAX_VERSION),
  1229 	SLE_CONDVAR(AiBuildRec, spec_tile,         SLE_UINT32,                 6, SL_MAX_VERSION),
  1230 	SLE_CONDVAR(AiBuildRec,use_tile,  SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1230 	SLE_CONDVAR(AiBuildRec, use_tile,          SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
  1231 	SLE_CONDVAR(AiBuildRec,use_tile,  SLE_UINT32, 6, SL_MAX_VERSION),
  1231 	SLE_CONDVAR(AiBuildRec, use_tile,          SLE_UINT32,                 6, SL_MAX_VERSION),
  1232 	SLE_VAR(AiBuildRec,rand_rng,			SLE_UINT8),
  1232 	    SLE_VAR(AiBuildRec, rand_rng,          SLE_UINT8),
  1233 	SLE_VAR(AiBuildRec,cur_building_rule,SLE_UINT8),
  1233 	    SLE_VAR(AiBuildRec, cur_building_rule, SLE_UINT8),
  1234 	SLE_VAR(AiBuildRec,unk6,					SLE_UINT8),
  1234 	    SLE_VAR(AiBuildRec, unk6,              SLE_UINT8),
  1235 	SLE_VAR(AiBuildRec,unk7,					SLE_UINT8),
  1235 	    SLE_VAR(AiBuildRec, unk7,              SLE_UINT8),
  1236 	SLE_VAR(AiBuildRec,buildcmd_a,		SLE_UINT8),
  1236 	    SLE_VAR(AiBuildRec, buildcmd_a,        SLE_UINT8),
  1237 	SLE_VAR(AiBuildRec,buildcmd_b,		SLE_UINT8),
  1237 	    SLE_VAR(AiBuildRec, buildcmd_b,        SLE_UINT8),
  1238 	SLE_VAR(AiBuildRec,direction,			SLE_UINT8),
  1238 	    SLE_VAR(AiBuildRec, direction,         SLE_UINT8),
  1239 	SLE_VAR(AiBuildRec,cargo,					SLE_UINT8),
  1239 	    SLE_VAR(AiBuildRec, cargo,             SLE_UINT8),
  1240 	SLE_END()
  1240 	SLE_END()
  1241 };
  1241 };
  1242 
  1242 
  1243 static void SaveLoad_PLYR(Player* p)
  1243 static void SaveLoad_PLYR(Player* p)
  1244 {
  1244 {