2136 return GetEngineColourMap(v->engine_type, v->owner); |
2136 return GetEngineColourMap(v->engine_type, v->owner); |
2137 } |
2137 } |
2138 |
2138 |
2139 // Save and load of vehicles |
2139 // Save and load of vehicles |
2140 const SaveLoad _common_veh_desc[] = { |
2140 const SaveLoad _common_veh_desc[] = { |
2141 SLE_VAR(Vehicle,subtype, SLE_UINT8), |
2141 SLE_VAR(Vehicle, subtype, SLE_UINT8), |
2142 |
2142 |
2143 SLE_REF(Vehicle,next, REF_VEHICLE_OLD), |
2143 SLE_REF(Vehicle, next, REF_VEHICLE_OLD), |
2144 SLE_VAR(Vehicle,string_id, SLE_STRINGID), |
2144 SLE_VAR(Vehicle, string_id, SLE_STRINGID), |
2145 SLE_CONDVAR(Vehicle,unitnumber, SLE_FILE_U8 | SLE_VAR_U16, 0, 7), |
2145 SLE_CONDVAR(Vehicle, unitnumber, SLE_FILE_U8 | SLE_VAR_U16, 0, 7), |
2146 SLE_CONDVAR(Vehicle,unitnumber, SLE_UINT16, 8, SL_MAX_VERSION), |
2146 SLE_CONDVAR(Vehicle, unitnumber, SLE_UINT16, 8, SL_MAX_VERSION), |
2147 SLE_VAR(Vehicle,owner, SLE_UINT8), |
2147 SLE_VAR(Vehicle, owner, SLE_UINT8), |
2148 SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2148 SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2149 SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2149 SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2150 SLE_CONDVAR(Vehicle,dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2150 SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2151 SLE_CONDVAR(Vehicle,dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2151 SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2152 |
2152 |
2153 SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2153 SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2154 SLE_CONDVAR(Vehicle,x_pos, SLE_UINT32, 6, SL_MAX_VERSION), |
2154 SLE_CONDVAR(Vehicle, x_pos, SLE_UINT32, 6, SL_MAX_VERSION), |
2155 SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2155 SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2156 SLE_CONDVAR(Vehicle,y_pos, SLE_UINT32, 6, SL_MAX_VERSION), |
2156 SLE_CONDVAR(Vehicle, y_pos, SLE_UINT32, 6, SL_MAX_VERSION), |
2157 SLE_VAR(Vehicle,z_pos, SLE_UINT8), |
2157 SLE_VAR(Vehicle, z_pos, SLE_UINT8), |
2158 SLE_VAR(Vehicle,direction, SLE_UINT8), |
2158 SLE_VAR(Vehicle, direction, SLE_UINT8), |
2159 |
2159 |
2160 SLE_VAR(Vehicle,cur_image, SLE_UINT16), |
2160 SLE_VAR(Vehicle, cur_image, SLE_UINT16), |
2161 SLE_VAR(Vehicle,spritenum, SLE_UINT8), |
2161 SLE_VAR(Vehicle, spritenum, SLE_UINT8), |
2162 SLE_VAR(Vehicle,sprite_width, SLE_UINT8), |
2162 SLE_VAR(Vehicle, sprite_width, SLE_UINT8), |
2163 SLE_VAR(Vehicle,sprite_height, SLE_UINT8), |
2163 SLE_VAR(Vehicle, sprite_height, SLE_UINT8), |
2164 SLE_VAR(Vehicle,z_height, SLE_UINT8), |
2164 SLE_VAR(Vehicle, z_height, SLE_UINT8), |
2165 SLE_VAR(Vehicle,x_offs, SLE_INT8), |
2165 SLE_VAR(Vehicle, x_offs, SLE_INT8), |
2166 SLE_VAR(Vehicle,y_offs, SLE_INT8), |
2166 SLE_VAR(Vehicle, y_offs, SLE_INT8), |
2167 SLE_VAR(Vehicle,engine_type, SLE_UINT16), |
2167 SLE_VAR(Vehicle, engine_type, SLE_UINT16), |
2168 |
2168 |
2169 SLE_VAR(Vehicle,max_speed, SLE_UINT16), |
2169 SLE_VAR(Vehicle, max_speed, SLE_UINT16), |
2170 SLE_VAR(Vehicle,cur_speed, SLE_UINT16), |
2170 SLE_VAR(Vehicle, cur_speed, SLE_UINT16), |
2171 SLE_VAR(Vehicle,subspeed, SLE_UINT8), |
2171 SLE_VAR(Vehicle, subspeed, SLE_UINT8), |
2172 SLE_VAR(Vehicle,acceleration, SLE_UINT8), |
2172 SLE_VAR(Vehicle, acceleration, SLE_UINT8), |
2173 SLE_VAR(Vehicle,progress, SLE_UINT8), |
2173 SLE_VAR(Vehicle, progress, SLE_UINT8), |
2174 |
2174 |
2175 SLE_VAR(Vehicle,vehstatus, SLE_UINT8), |
2175 SLE_VAR(Vehicle, vehstatus, SLE_UINT8), |
2176 SLE_CONDVAR(Vehicle,last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2176 SLE_CONDVAR(Vehicle, last_station_visited, SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2177 SLE_CONDVAR(Vehicle,last_station_visited, SLE_UINT16, 5, SL_MAX_VERSION), |
2177 SLE_CONDVAR(Vehicle, last_station_visited, SLE_UINT16, 5, SL_MAX_VERSION), |
2178 |
2178 |
2179 SLE_VAR(Vehicle,cargo_type, SLE_UINT8), |
2179 SLE_VAR(Vehicle, cargo_type, SLE_UINT8), |
2180 SLE_VAR(Vehicle,cargo_days, SLE_UINT8), |
2180 SLE_VAR(Vehicle, cargo_days, SLE_UINT8), |
2181 SLE_CONDVAR(Vehicle,cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6), |
2181 SLE_CONDVAR(Vehicle, cargo_source, SLE_FILE_U8 | SLE_VAR_U16, 0, 6), |
2182 SLE_CONDVAR(Vehicle,cargo_source, SLE_UINT16, 7, SL_MAX_VERSION), |
2182 SLE_CONDVAR(Vehicle, cargo_source, SLE_UINT16, 7, SL_MAX_VERSION), |
2183 SLE_VAR(Vehicle,cargo_cap, SLE_UINT16), |
2183 SLE_VAR(Vehicle, cargo_cap, SLE_UINT16), |
2184 SLE_VAR(Vehicle,cargo_count, SLE_UINT16), |
2184 SLE_VAR(Vehicle, cargo_count, SLE_UINT16), |
2185 |
2185 |
2186 SLE_VAR(Vehicle,day_counter, SLE_UINT8), |
2186 SLE_VAR(Vehicle, day_counter, SLE_UINT8), |
2187 SLE_VAR(Vehicle,tick_counter, SLE_UINT8), |
2187 SLE_VAR(Vehicle, tick_counter, SLE_UINT8), |
2188 |
2188 |
2189 SLE_VAR(Vehicle,cur_order_index, SLE_UINT8), |
2189 SLE_VAR(Vehicle, cur_order_index, SLE_UINT8), |
2190 SLE_VAR(Vehicle,num_orders, SLE_UINT8), |
2190 SLE_VAR(Vehicle, num_orders, SLE_UINT8), |
2191 |
2191 |
2192 /* This next line is for version 4 and prior compatibility.. it temporarily reads |
2192 /* This next line is for version 4 and prior compatibility.. it temporarily reads |
2193 type and flags (which were both 4 bits) into type. Later on this is |
2193 type and flags (which were both 4 bits) into type. Later on this is |
2194 converted correctly */ |
2194 converted correctly */ |
2195 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 0, 4), |
2195 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 0, 4), |
2196 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2196 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2197 |
2197 |
2198 /* Orders for version 5 and on */ |
2198 /* Orders for version 5 and on */ |
2199 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 5, SL_MAX_VERSION), |
2199 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, type), SLE_UINT8, 5, SL_MAX_VERSION), |
2200 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, flags), SLE_UINT8, 5, SL_MAX_VERSION), |
2200 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, flags), SLE_UINT8, 5, SL_MAX_VERSION), |
2201 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), |
2201 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), |
2202 |
2202 |
2203 SLE_REF(Vehicle,orders, REF_ORDER), |
2203 SLE_REF(Vehicle, orders, REF_ORDER), |
2204 |
2204 |
2205 SLE_CONDVAR(Vehicle,age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2205 SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2206 SLE_CONDVAR(Vehicle,age, SLE_INT32, 31, SL_MAX_VERSION), |
2206 SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION), |
2207 SLE_CONDVAR(Vehicle,max_age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2207 SLE_CONDVAR(Vehicle, max_age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2208 SLE_CONDVAR(Vehicle,max_age, SLE_INT32, 31, SL_MAX_VERSION), |
2208 SLE_CONDVAR(Vehicle, max_age, SLE_INT32, 31, SL_MAX_VERSION), |
2209 SLE_CONDVAR(Vehicle,date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2209 SLE_CONDVAR(Vehicle, date_of_last_service, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2210 SLE_CONDVAR(Vehicle,date_of_last_service, SLE_INT32, 31, SL_MAX_VERSION), |
2210 SLE_CONDVAR(Vehicle, date_of_last_service, SLE_INT32, 31, SL_MAX_VERSION), |
2211 SLE_CONDVAR(Vehicle,service_interval, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2211 SLE_CONDVAR(Vehicle, service_interval, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2212 SLE_CONDVAR(Vehicle,service_interval, SLE_INT32, 31, SL_MAX_VERSION), |
2212 SLE_CONDVAR(Vehicle, service_interval, SLE_INT32, 31, SL_MAX_VERSION), |
2213 SLE_VAR(Vehicle,reliability, SLE_UINT16), |
2213 SLE_VAR(Vehicle, reliability, SLE_UINT16), |
2214 SLE_VAR(Vehicle,reliability_spd_dec,SLE_UINT16), |
2214 SLE_VAR(Vehicle, reliability_spd_dec, SLE_UINT16), |
2215 SLE_VAR(Vehicle,breakdown_ctr, SLE_UINT8), |
2215 SLE_VAR(Vehicle, breakdown_ctr, SLE_UINT8), |
2216 SLE_VAR(Vehicle,breakdown_delay, SLE_UINT8), |
2216 SLE_VAR(Vehicle, breakdown_delay, SLE_UINT8), |
2217 SLE_VAR(Vehicle,breakdowns_since_last_service, SLE_UINT8), |
2217 SLE_VAR(Vehicle, breakdowns_since_last_service, SLE_UINT8), |
2218 SLE_VAR(Vehicle,breakdown_chance, SLE_UINT8), |
2218 SLE_VAR(Vehicle, breakdown_chance, SLE_UINT8), |
2219 SLE_CONDVAR(Vehicle,build_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30), |
2219 SLE_CONDVAR(Vehicle, build_year, SLE_FILE_U8 | SLE_VAR_I32, 0, 30), |
2220 SLE_CONDVAR(Vehicle,build_year, SLE_INT32, 31, SL_MAX_VERSION), |
2220 SLE_CONDVAR(Vehicle, build_year, SLE_INT32, 31, SL_MAX_VERSION), |
2221 |
2221 |
2222 SLE_VAR(Vehicle,load_unload_time_rem, SLE_UINT16), |
2222 SLE_VAR(Vehicle, load_unload_time_rem, SLE_UINT16), |
2223 |
2223 |
2224 SLE_VAR(Vehicle,profit_this_year, SLE_INT32), |
2224 SLE_VAR(Vehicle, profit_this_year, SLE_INT32), |
2225 SLE_VAR(Vehicle,profit_last_year, SLE_INT32), |
2225 SLE_VAR(Vehicle, profit_last_year, SLE_INT32), |
2226 SLE_VAR(Vehicle,value, SLE_UINT32), |
2226 SLE_VAR(Vehicle, value, SLE_UINT32), |
2227 |
2227 |
2228 SLE_VAR(Vehicle,random_bits, SLE_UINT8), |
2228 SLE_VAR(Vehicle, random_bits, SLE_UINT8), |
2229 SLE_VAR(Vehicle,waiting_triggers, SLE_UINT8), |
2229 SLE_VAR(Vehicle, waiting_triggers, SLE_UINT8), |
2230 |
2230 |
2231 SLE_REF(Vehicle,next_shared, REF_VEHICLE), |
2231 SLE_REF(Vehicle, next_shared, REF_VEHICLE), |
2232 SLE_REF(Vehicle,prev_shared, REF_VEHICLE), |
2232 SLE_REF(Vehicle, prev_shared, REF_VEHICLE), |
2233 |
2233 |
2234 // reserve extra space in savegame here. (currently 10 bytes) |
2234 // reserve extra space in savegame here. (currently 10 bytes) |
2235 SLE_CONDNULL(10, 2, SL_MAX_VERSION), |
2235 SLE_CONDNULL(10, 2, SL_MAX_VERSION), |
2236 |
2236 |
2237 SLE_END() |
2237 SLE_END() |
2238 }; |
2238 }; |
2239 |
2239 |
2240 |
2240 |
2241 static const SaveLoad _train_desc[] = { |
2241 static const SaveLoad _train_desc[] = { |
2242 SLE_WRITEBYTE(Vehicle,type,VEH_Train, 0), // Train type. VEH_Train in mem, 0 in file. |
2242 SLE_WRITEBYTE(Vehicle, type, VEH_Train, 0), // Train type. VEH_Train in mem, 0 in file. |
2243 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2243 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2244 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,crash_anim_pos), SLE_UINT16), |
2244 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, crash_anim_pos), SLE_UINT16), |
2245 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,force_proceed), SLE_UINT8), |
2245 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, force_proceed), SLE_UINT8), |
2246 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,railtype), SLE_UINT8), |
2246 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, railtype), SLE_UINT8), |
2247 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRail,track), SLE_UINT8), |
2247 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRail, track), SLE_UINT8), |
2248 |
2248 |
2249 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,flags), SLE_UINT8, 2, SL_MAX_VERSION), |
2249 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRail, flags), SLE_UINT8, 2, SL_MAX_VERSION), |
2250 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRail,days_since_order_progr), SLE_UINT16, 2, SL_MAX_VERSION), |
2250 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRail, days_since_order_progr), SLE_UINT16, 2, SL_MAX_VERSION), |
2251 |
2251 |
2252 SLE_CONDNULL(2, 2, 19), |
2252 SLE_CONDNULL(2, 2, 19), |
2253 // reserve extra space in savegame here. (currently 11 bytes) |
2253 // reserve extra space in savegame here. (currently 11 bytes) |
2254 SLE_CONDNULL(11, 2, SL_MAX_VERSION), |
2254 SLE_CONDNULL(11, 2, SL_MAX_VERSION), |
2255 |
2255 |
2256 SLE_END() |
2256 SLE_END() |
2257 }; |
2257 }; |
2258 |
2258 |
2259 static const SaveLoad _roadveh_desc[] = { |
2259 static const SaveLoad _roadveh_desc[] = { |
2260 SLE_WRITEBYTE(Vehicle,type,VEH_Road, 1), // Road type. VEH_Road in mem, 1 in file. |
2260 SLE_WRITEBYTE(Vehicle, type, VEH_Road, 1), // Road type. VEH_Road in mem, 1 in file. |
2261 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2261 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2262 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,state), SLE_UINT8), |
2262 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, state), SLE_UINT8), |
2263 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,frame), SLE_UINT8), |
2263 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, frame), SLE_UINT8), |
2264 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,blocked_ctr), SLE_UINT16), |
2264 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, blocked_ctr), SLE_UINT16), |
2265 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,overtaking), SLE_UINT8), |
2265 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, overtaking), SLE_UINT8), |
2266 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,overtaking_ctr),SLE_UINT8), |
2266 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, overtaking_ctr), SLE_UINT8), |
2267 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,crashed_ctr), SLE_UINT16), |
2267 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, crashed_ctr), SLE_UINT16), |
2268 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,reverse_ctr), SLE_UINT8), |
2268 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, reverse_ctr), SLE_UINT8), |
2269 |
2269 |
2270 SLE_CONDREFX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slot), REF_ROADSTOPS, 6, SL_MAX_VERSION), |
2270 SLE_CONDREFX(offsetof(Vehicle, u) + offsetof(VehicleRoad, slot), REF_ROADSTOPS, 6, SL_MAX_VERSION), |
2271 SLE_CONDNULL(1, 6, SL_MAX_VERSION), |
2271 SLE_CONDNULL(1, 6, SL_MAX_VERSION), |
2272 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleRoad,slot_age), SLE_UINT8, 6, SL_MAX_VERSION), |
2272 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleRoad, slot_age), SLE_UINT8, 6, SL_MAX_VERSION), |
|
2273 // reserve extra space in savegame here. (currently 16 bytes) |
|
2274 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
|
2275 |
|
2276 SLE_END() |
|
2277 }; |
|
2278 |
|
2279 static const SaveLoad _ship_desc[] = { |
|
2280 SLE_WRITEBYTE(Vehicle, type, VEH_Ship, 2), // Ship type. VEH_Ship in mem, 2 in file. |
|
2281 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
|
2282 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleShip, state), SLE_UINT8), |
|
2283 |
2273 // reserve extra space in savegame here. (currently 16 bytes) |
2284 // reserve extra space in savegame here. (currently 16 bytes) |
2274 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2285 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2275 |
2286 |
2276 SLE_END() |
2287 SLE_END() |
2277 }; |
2288 }; |
2278 |
2289 |
2279 static const SaveLoad _ship_desc[] = { |
2290 static const SaveLoad _aircraft_desc[] = { |
2280 SLE_WRITEBYTE(Vehicle,type,VEH_Ship, 2), // Ship type. VEH_Ship in mem, 2 in file. |
2291 SLE_WRITEBYTE(Vehicle, type, VEH_Aircraft, 3), // Aircraft type. VEH_Aircraft in mem, 3 in file. |
2281 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2292 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2282 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleShip,state), SLE_UINT8), |
2293 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, crashed_counter), SLE_UINT16), |
|
2294 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, pos), SLE_UINT8), |
|
2295 |
|
2296 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, targetairport), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
|
2297 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, targetairport), SLE_UINT16, 5, SL_MAX_VERSION), |
|
2298 |
|
2299 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleAir, state), SLE_UINT8), |
|
2300 |
|
2301 SLE_CONDVARX(offsetof(Vehicle, u) + offsetof(VehicleAir, previous_pos), SLE_UINT8, 2, SL_MAX_VERSION), |
|
2302 |
|
2303 // reserve extra space in savegame here. (currently 15 bytes) |
|
2304 SLE_CONDNULL(15, 2, SL_MAX_VERSION), |
|
2305 |
|
2306 SLE_END() |
|
2307 }; |
|
2308 |
|
2309 static const SaveLoad _special_desc[] = { |
|
2310 SLE_WRITEBYTE(Vehicle,type,VEH_Special, 4), |
|
2311 |
|
2312 SLE_VAR(Vehicle, subtype, SLE_UINT8), |
|
2313 |
|
2314 SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
|
2315 SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION), |
|
2316 |
|
2317 SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
|
2318 SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION), |
|
2319 SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
|
2320 SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION), |
|
2321 SLE_VAR(Vehicle, z_pos, SLE_UINT8), |
|
2322 |
|
2323 SLE_VAR(Vehicle, cur_image, SLE_UINT16), |
|
2324 SLE_VAR(Vehicle, sprite_width, SLE_UINT8), |
|
2325 SLE_VAR(Vehicle, sprite_height, SLE_UINT8), |
|
2326 SLE_VAR(Vehicle, z_height, SLE_UINT8), |
|
2327 SLE_VAR(Vehicle, x_offs, SLE_INT8), |
|
2328 SLE_VAR(Vehicle, y_offs, SLE_INT8), |
|
2329 SLE_VAR(Vehicle, progress, SLE_UINT8), |
|
2330 SLE_VAR(Vehicle, vehstatus, SLE_UINT8), |
|
2331 |
|
2332 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleSpecial, unk0), SLE_UINT16), |
|
2333 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleSpecial, unk2), SLE_UINT8), |
2283 |
2334 |
2284 // reserve extra space in savegame here. (currently 16 bytes) |
2335 // reserve extra space in savegame here. (currently 16 bytes) |
2285 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2336 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2286 |
2337 |
2287 SLE_END() |
2338 SLE_END() |
2288 }; |
2339 }; |
2289 |
2340 |
2290 static const SaveLoad _aircraft_desc[] = { |
2341 static const SaveLoad _disaster_desc[] = { |
2291 SLE_WRITEBYTE(Vehicle,type,VEH_Aircraft, 3), // Aircraft type. VEH_Aircraft in mem, 3 in file. |
2342 SLE_WRITEBYTE(Vehicle, type, VEH_Disaster, 5), |
2292 SLE_INCLUDEX(0, INC_VEHICLE_COMMON), |
2343 |
2293 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,crashed_counter), SLE_UINT16), |
2344 SLE_REF(Vehicle, next, REF_VEHICLE_OLD), |
2294 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,pos), SLE_UINT8), |
2345 |
2295 |
2346 SLE_VAR(Vehicle, subtype, SLE_UINT8), |
2296 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,targetairport), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2347 SLE_CONDVAR(Vehicle, tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2297 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,targetairport), SLE_UINT16, 5, SL_MAX_VERSION), |
2348 SLE_CONDVAR(Vehicle, tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2298 |
2349 SLE_CONDVAR(Vehicle, dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2299 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleAir,state), SLE_UINT8), |
2350 SLE_CONDVAR(Vehicle, dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2300 |
2351 |
2301 SLE_CONDVARX(offsetof(Vehicle,u)+offsetof(VehicleAir,previous_pos), SLE_UINT8, 2, SL_MAX_VERSION), |
2352 SLE_CONDVAR(Vehicle, x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
2302 |
2353 SLE_CONDVAR(Vehicle, x_pos, SLE_INT32, 6, SL_MAX_VERSION), |
2303 // reserve extra space in savegame here. (currently 15 bytes) |
2354 SLE_CONDVAR(Vehicle, y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
2304 SLE_CONDNULL(15, 2, SL_MAX_VERSION), |
2355 SLE_CONDVAR(Vehicle, y_pos, SLE_INT32, 6, SL_MAX_VERSION), |
2305 |
2356 SLE_VAR(Vehicle, z_pos, SLE_UINT8), |
2306 SLE_END() |
2357 SLE_VAR(Vehicle, direction, SLE_UINT8), |
2307 }; |
2358 |
2308 |
2359 SLE_VAR(Vehicle, x_offs, SLE_INT8), |
2309 static const SaveLoad _special_desc[] = { |
2360 SLE_VAR(Vehicle, y_offs, SLE_INT8), |
2310 SLE_WRITEBYTE(Vehicle,type,VEH_Special, 4), |
2361 SLE_VAR(Vehicle, sprite_width, SLE_UINT8), |
2311 |
2362 SLE_VAR(Vehicle, sprite_height, SLE_UINT8), |
2312 SLE_VAR(Vehicle,subtype, SLE_UINT8), |
2363 SLE_VAR(Vehicle, z_height, SLE_UINT8), |
2313 |
2364 SLE_VAR(Vehicle, owner, SLE_UINT8), |
2314 SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
2365 SLE_VAR(Vehicle, vehstatus, SLE_UINT8), |
2315 SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), |
2366 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
2316 |
2367 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), |
2317 SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
2368 |
2318 SLE_CONDVAR(Vehicle,x_pos, SLE_INT32, 6, SL_MAX_VERSION), |
2369 SLE_VAR(Vehicle, cur_image, SLE_UINT16), |
2319 SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
2370 SLE_CONDVAR(Vehicle, age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
2320 SLE_CONDVAR(Vehicle,y_pos, SLE_INT32, 6, SL_MAX_VERSION), |
2371 SLE_CONDVAR(Vehicle, age, SLE_INT32, 31, SL_MAX_VERSION), |
2321 SLE_VAR(Vehicle,z_pos, SLE_UINT8), |
2372 SLE_VAR(Vehicle, tick_counter, SLE_UINT8), |
2322 |
2373 |
2323 SLE_VAR(Vehicle,cur_image, SLE_UINT16), |
2374 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleDisaster, image_override), SLE_UINT16), |
2324 SLE_VAR(Vehicle,sprite_width, SLE_UINT8), |
2375 SLE_VARX(offsetof(Vehicle, u) + offsetof(VehicleDisaster, unk2), SLE_UINT16), |
2325 SLE_VAR(Vehicle,sprite_height, SLE_UINT8), |
|
2326 SLE_VAR(Vehicle,z_height, SLE_UINT8), |
|
2327 SLE_VAR(Vehicle,x_offs, SLE_INT8), |
|
2328 SLE_VAR(Vehicle,y_offs, SLE_INT8), |
|
2329 SLE_VAR(Vehicle,progress, SLE_UINT8), |
|
2330 SLE_VAR(Vehicle,vehstatus, SLE_UINT8), |
|
2331 |
|
2332 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleSpecial,unk0), SLE_UINT16), |
|
2333 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleSpecial,unk2), SLE_UINT8), |
|
2334 |
2376 |
2335 // reserve extra space in savegame here. (currently 16 bytes) |
2377 // reserve extra space in savegame here. (currently 16 bytes) |
2336 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2378 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
2337 |
|
2338 SLE_END() |
|
2339 }; |
|
2340 |
|
2341 static const SaveLoad _disaster_desc[] = { |
|
2342 SLE_WRITEBYTE(Vehicle,type,VEH_Disaster, 5), |
|
2343 |
|
2344 SLE_REF(Vehicle,next, REF_VEHICLE_OLD), |
|
2345 |
|
2346 SLE_VAR(Vehicle,subtype, SLE_UINT8), |
|
2347 SLE_CONDVAR(Vehicle,tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
|
2348 SLE_CONDVAR(Vehicle,tile, SLE_UINT32, 6, SL_MAX_VERSION), |
|
2349 SLE_CONDVAR(Vehicle,dest_tile, SLE_FILE_U16 | SLE_VAR_U32, 0, 5), |
|
2350 SLE_CONDVAR(Vehicle,dest_tile, SLE_UINT32, 6, SL_MAX_VERSION), |
|
2351 |
|
2352 SLE_CONDVAR(Vehicle,x_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
|
2353 SLE_CONDVAR(Vehicle,x_pos, SLE_INT32, 6, SL_MAX_VERSION), |
|
2354 SLE_CONDVAR(Vehicle,y_pos, SLE_FILE_I16 | SLE_VAR_I32, 0, 5), |
|
2355 SLE_CONDVAR(Vehicle,y_pos, SLE_INT32, 6, SL_MAX_VERSION), |
|
2356 SLE_VAR(Vehicle,z_pos, SLE_UINT8), |
|
2357 SLE_VAR(Vehicle,direction, SLE_UINT8), |
|
2358 |
|
2359 SLE_VAR(Vehicle,x_offs, SLE_INT8), |
|
2360 SLE_VAR(Vehicle,y_offs, SLE_INT8), |
|
2361 SLE_VAR(Vehicle,sprite_width, SLE_UINT8), |
|
2362 SLE_VAR(Vehicle,sprite_height, SLE_UINT8), |
|
2363 SLE_VAR(Vehicle,z_height, SLE_UINT8), |
|
2364 SLE_VAR(Vehicle,owner, SLE_UINT8), |
|
2365 SLE_VAR(Vehicle,vehstatus, SLE_UINT8), |
|
2366 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_FILE_U8 | SLE_VAR_U16, 0, 4), |
|
2367 SLE_CONDVARX(offsetof(Vehicle, current_order) + offsetof(Order, station), SLE_UINT16, 5, SL_MAX_VERSION), |
|
2368 |
|
2369 SLE_VAR(Vehicle,cur_image, SLE_UINT16), |
|
2370 SLE_CONDVAR(Vehicle,age, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), |
|
2371 SLE_CONDVAR(Vehicle,age, SLE_INT32, 31, SL_MAX_VERSION), |
|
2372 SLE_VAR(Vehicle,tick_counter, SLE_UINT8), |
|
2373 |
|
2374 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleDisaster,image_override), SLE_UINT16), |
|
2375 SLE_VARX(offsetof(Vehicle,u)+offsetof(VehicleDisaster,unk2), SLE_UINT16), |
|
2376 |
|
2377 // reserve extra space in savegame here. (currently 16 bytes) |
|
2378 SLE_CONDNULL(16, 2, SL_MAX_VERSION), |
|
2379 |
2379 |
2380 SLE_END() |
2380 SLE_END() |
2381 }; |
2381 }; |
2382 |
2382 |
2383 |
2383 |