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 { |