author | tron |
Thu, 09 Dec 2004 18:18:21 +0000 | |
changeset 577 | e62f4da21fef |
parent 555 | eec6c0294435 |
child 679 | e959706a3e4d |
permissions | -rw-r--r-- |
0 | 1 |
#include "stdafx.h" |
2 |
#include "ttd.h" |
|
507
8aa8100b0b22
(svn r815) Include strings.h only in the files which need it.
tron
parents:
436
diff
changeset
|
3 |
#include "table/strings.h" |
0 | 4 |
#include "town.h" |
5 |
#include "industry.h" |
|
6 |
#include "station.h" |
|
7 |
#include "economy.h" |
|
8 |
#include "player.h" |
|
9 |
#include "engine.h" |
|
10 |
#include "vehicle.h" |
|
11 |
||
12 |
extern byte _name_array[512][32]; |
|
13 |
extern TileIndex _animated_tile_list[256]; |
|
392
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
14 |
extern uint16 _custom_sprites_base; |
0 | 15 |
|
16 |
#if defined(_MSC_VER) |
|
17 |
#pragma pack(push, 1) |
|
18 |
#endif |
|
19 |
||
20 |
typedef struct { |
|
21 |
uint16 string_id; |
|
22 |
uint16 x; |
|
23 |
uint16 right; |
|
24 |
uint16 y; |
|
25 |
uint16 bottom; |
|
26 |
uint16 duration; |
|
27 |
uint32 params[2]; |
|
28 |
} GCC_PACK OldTextEffect; |
|
29 |
assert_compile(sizeof(OldTextEffect) == 0x14); |
|
30 |
||
31 |
typedef struct { |
|
32 |
uint16 xy; |
|
33 |
uint16 population; |
|
34 |
uint16 townnametype; |
|
35 |
uint32 townnameparts; |
|
36 |
byte grow_counter; |
|
37 |
byte sort_index; |
|
38 |
int16 sign_left, sign_top; |
|
39 |
byte namewidth_1, namewidth_2; |
|
40 |
uint16 flags12; |
|
41 |
uint16 radius[5]; |
|
42 |
uint16 ratings[8]; |
|
43 |
uint32 have_ratings; |
|
44 |
uint32 statues; |
|
45 |
uint16 num_houses; |
|
46 |
byte time_until_rebuild; |
|
47 |
byte growth_rate; |
|
48 |
uint16 new_max_pass, new_max_mail; |
|
49 |
uint16 new_act_pass, new_act_mail; |
|
50 |
uint16 max_pass, max_mail; |
|
51 |
uint16 act_pass, act_mail; |
|
52 |
byte pct_pass_transported, pct_mail_transported; |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
53 |
uint16 new_act_food, new_act_water; |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
54 |
uint16 act_food, act_water; |
0 | 55 |
byte road_build_months; |
56 |
byte fund_buildings_months; |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
57 |
// unused bytes at the end of the Town Struct |
0 | 58 |
uint32 unk56; |
59 |
uint32 unk5A; |
|
60 |
} GCC_PACK OldTown; |
|
61 |
assert_compile(sizeof(OldTown) == 0x5E); |
|
62 |
||
63 |
typedef struct { |
|
64 |
uint16 xy; |
|
65 |
uint32 town; |
|
66 |
} GCC_PACK OldDepot; |
|
67 |
assert_compile(sizeof(OldDepot) == 0x6); |
|
68 |
||
69 |
typedef struct { |
|
70 |
uint32 price; |
|
71 |
uint16 frac; |
|
72 |
} GCC_PACK OldPrice; |
|
73 |
assert_compile(sizeof(OldPrice) == 0x6); |
|
74 |
||
75 |
typedef struct { |
|
76 |
uint32 price; |
|
77 |
uint16 frac; |
|
78 |
uint16 unused; |
|
79 |
} GCC_PACK OldPaymentRate; |
|
80 |
assert_compile(sizeof(OldPaymentRate) == 8); |
|
81 |
||
82 |
typedef struct { |
|
83 |
uint16 waiting_acceptance; |
|
84 |
byte days_since_pickup; |
|
85 |
byte rating; |
|
86 |
byte enroute_from; |
|
87 |
byte enroute_time; |
|
88 |
byte last_speed; |
|
89 |
byte last_age; |
|
90 |
} GCC_PACK OldGoodsEntry; |
|
91 |
assert_compile(sizeof(OldGoodsEntry) == 8); |
|
92 |
||
93 |
typedef struct { |
|
94 |
uint16 xy; |
|
95 |
uint32 town; |
|
96 |
uint16 bus_tile, lorry_tile, train_tile, airport_tile, dock_tile; |
|
97 |
byte platforms; |
|
98 |
byte alpha_order_obsolete; // alpha_order is obsolete since savegame format 4 |
|
99 |
byte namewidth_1, namewidth_2; |
|
100 |
uint16 string_id; |
|
101 |
int16 sign_left, sign_top; |
|
102 |
uint16 had_vehicle_of_type; |
|
103 |
OldGoodsEntry goods[12]; |
|
104 |
byte time_since_load, time_since_unload; |
|
105 |
byte delete_ctr; |
|
106 |
byte owner; |
|
107 |
byte facilities; |
|
108 |
byte airport_type; |
|
109 |
byte truck_stop_status, bus_stop_status; |
|
123
d550772c61e6
(svn r124) Prepared code for removal of block_months variable in next major savegame version
dominik
parents:
4
diff
changeset
|
110 |
byte blocked_months_obsolete; |
0 | 111 |
byte unk85; |
112 |
uint16 airport_flags; |
|
113 |
uint16 last_vehicle; |
|
114 |
uint32 unk8A; |
|
115 |
} GCC_PACK OldStation; |
|
116 |
assert_compile(sizeof(OldStation) == 0x8E); |
|
117 |
||
118 |
typedef struct { |
|
119 |
uint16 xy; |
|
120 |
uint32 town; |
|
121 |
byte width; |
|
122 |
byte height; |
|
123 |
byte produced_cargo[2]; |
|
124 |
uint16 cargo_waiting[2]; |
|
125 |
byte production_rate[2]; |
|
126 |
byte accepts_cargo[3]; |
|
127 |
byte prod_level; |
|
128 |
uint16 last_mo_production[2]; |
|
129 |
uint16 last_mo_transported[2]; |
|
130 |
byte pct_transported[2]; |
|
131 |
uint16 total_production[2]; |
|
132 |
uint16 total_transported[2]; |
|
133 |
byte type; |
|
134 |
byte owner; |
|
135 |
byte color_map; |
|
136 |
byte last_prod_year; |
|
137 |
uint16 counter; |
|
138 |
byte was_cargo_delivered; |
|
139 |
byte nothing; |
|
140 |
uint32 unk2E; |
|
141 |
uint32 unk32; |
|
142 |
} GCC_PACK OldIndustry; |
|
143 |
assert_compile(sizeof(OldIndustry) == 0x36); |
|
144 |
||
145 |
typedef struct { |
|
146 |
int32 cost[13]; |
|
147 |
} GCC_PACK OldPlayerExpenses; |
|
148 |
assert_compile(sizeof(OldPlayerExpenses) == 0x34); |
|
149 |
||
150 |
typedef struct { |
|
151 |
int32 income; |
|
152 |
int32 expenses; |
|
153 |
uint32 delivered_cargo; |
|
154 |
uint32 performance_history; |
|
155 |
uint32 company_value; |
|
156 |
} GCC_PACK OldPlayerEconomy; |
|
157 |
assert_compile(sizeof(OldPlayerEconomy) == 0x14); |
|
158 |
||
159 |
typedef struct { |
|
160 |
uint16 spec_tile; |
|
161 |
uint16 use_tile; |
|
162 |
byte rand_rng; |
|
163 |
byte cur_rule; |
|
164 |
byte unk6; |
|
165 |
byte unk7; |
|
166 |
byte buildcmd_a; |
|
167 |
byte buildcmd_b; |
|
168 |
byte direction; |
|
169 |
byte cargo; |
|
170 |
byte unused[8]; |
|
171 |
} GCC_PACK OldAiBuildRec; |
|
172 |
assert_compile(sizeof(OldAiBuildRec) == 0x14); |
|
173 |
||
174 |
typedef struct { |
|
175 |
uint16 tile; |
|
176 |
byte data; |
|
177 |
} GCC_PACK OldAiBannedTile; |
|
178 |
assert_compile(sizeof(OldAiBannedTile) == 3); |
|
179 |
||
180 |
typedef struct { |
|
181 |
uint16 name_1; |
|
182 |
uint32 name_2; |
|
183 |
uint32 face; |
|
184 |
uint16 pres_name_1; |
|
185 |
uint32 pres_name_2; |
|
186 |
uint32 money; |
|
187 |
uint32 loan; |
|
188 |
byte color; |
|
189 |
byte money_fract; |
|
190 |
byte quarters_of_bankrupcy; |
|
191 |
byte bankrupt_asked; |
|
192 |
uint32 bankrupt_value; |
|
193 |
uint16 bankrupt_timeout; |
|
194 |
uint32 cargo_types; |
|
195 |
OldPlayerExpenses expenses[3]; |
|
196 |
OldPlayerEconomy economy[24 + 1]; |
|
197 |
uint16 inaugurated_date; |
|
198 |
uint16 last_build_coordinate; |
|
199 |
byte num_valid_stat_ent; |
|
200 |
byte ai_state; |
|
201 |
byte unused; |
|
202 |
byte ai_state_mode; |
|
203 |
uint16 ai_state_counter; |
|
204 |
uint16 ai_timeout_counter; |
|
205 |
OldAiBuildRec ai_src, ai_dst, ai_mid1, ai_mid2; |
|
206 |
byte unused_2[20]; |
|
207 |
byte ai_cargo_type; |
|
208 |
byte ai_num_wagons; |
|
209 |
byte ai_build_kind; |
|
210 |
byte ai_num_build_rec; |
|
211 |
byte ai_num_loco_to_build; |
|
212 |
byte ai_num_want_fullload; |
|
213 |
byte unused_3[14]; |
|
214 |
uint16 ai_loco_id; // NOT USED |
|
215 |
uint16 ai_wagonlist[9]; |
|
216 |
byte ai_order_list_blocks[20]; |
|
217 |
uint16 ai_start_tile_a; |
|
218 |
uint16 ai_start_tile_b; |
|
219 |
uint16 ai_cur_tile_a; |
|
220 |
uint16 ai_cur_tile_b; |
|
221 |
byte ai_start_dir_a; |
|
222 |
byte ai_start_dir_b; |
|
223 |
byte ai_cur_dir_a; |
|
224 |
byte ai_cur_dir_b; |
|
225 |
byte ai_banned_tile_count; |
|
226 |
OldAiBannedTile banned_tiles[16]; |
|
227 |
byte ai_railtype_to_use; |
|
228 |
byte ai_route_type_mask; |
|
229 |
byte block_preview; |
|
230 |
byte ai_tick; |
|
231 |
byte max_railtype; |
|
232 |
uint16 location_of_house; |
|
233 |
byte share_owners[4]; |
|
234 |
uint32 unk3AA; |
|
235 |
uint32 unk3AE; |
|
236 |
} GCC_PACK OldPlayer; |
|
237 |
assert_compile(sizeof(OldPlayer) == 0x3B2); |
|
238 |
||
239 |
typedef struct { |
|
240 |
byte track; |
|
241 |
byte force_proceed; |
|
242 |
uint16 crash_anim_pos; |
|
243 |
byte railtype; |
|
244 |
} GCC_PACK OldVehicleRailUnion; |
|
245 |
assert_compile(sizeof(OldVehicleRailUnion) == 5); |
|
246 |
||
247 |
typedef struct { |
|
248 |
byte unk0; |
|
249 |
byte targetairport; |
|
250 |
uint16 crashed_counter; |
|
251 |
byte state; |
|
252 |
} GCC_PACK OldVehicleAirUnion; |
|
253 |
assert_compile(sizeof(OldVehicleAirUnion) == 5); |
|
254 |
||
255 |
typedef struct { |
|
256 |
byte state; |
|
257 |
byte frame; |
|
258 |
uint16 unk2; |
|
259 |
byte overtaking; |
|
260 |
byte overtaking_ctr; |
|
261 |
uint16 crashed_ctr; |
|
262 |
byte reverse_ctr; |
|
263 |
} GCC_PACK OldVehicleRoadUnion; |
|
264 |
assert_compile(sizeof(OldVehicleRoadUnion) == 9); |
|
265 |
||
266 |
typedef struct { |
|
267 |
uint16 unk0; |
|
268 |
byte unk2; |
|
269 |
} GCC_PACK OldVehicleSpecialUnion; |
|
270 |
assert_compile(sizeof(OldVehicleSpecialUnion) == 3); |
|
271 |
||
272 |
typedef struct { |
|
273 |
uint16 image_override; |
|
274 |
uint16 unk2; |
|
275 |
} GCC_PACK OldVehicleDisasterUnion; |
|
276 |
assert_compile(sizeof(OldVehicleDisasterUnion) == 4); |
|
277 |
||
278 |
typedef struct { |
|
279 |
byte state; |
|
280 |
} OldVehicleShipUnion; |
|
281 |
assert_compile(sizeof(OldVehicleShipUnion) == 1); |
|
282 |
||
283 |
typedef union { |
|
284 |
OldVehicleRailUnion rail; |
|
285 |
OldVehicleAirUnion air; |
|
286 |
OldVehicleRoadUnion road; |
|
287 |
OldVehicleSpecialUnion special; |
|
288 |
OldVehicleDisasterUnion disaster; |
|
289 |
OldVehicleShipUnion ship; |
|
290 |
byte pad[10]; |
|
291 |
} GCC_PACK OldVehicleUnion; |
|
292 |
assert_compile(sizeof(OldVehicleUnion) == 10); |
|
293 |
||
294 |
typedef struct { |
|
295 |
byte type; |
|
296 |
byte subtype; |
|
297 |
uint16 next_hash; // NOLOAD, calculated automatically. |
|
298 |
uint16 index; // NOLOAD, calculated automatically. |
|
299 |
uint32 schedule_ptr; |
|
300 |
byte next_order, next_order_param; |
|
301 |
byte num_orders; |
|
302 |
byte cur_order_index; |
|
303 |
uint16 dest_tile; |
|
304 |
uint16 load_unload_time_rem; |
|
305 |
uint16 date_of_last_service; |
|
306 |
uint16 service_interval; |
|
307 |
byte last_station_visited; |
|
308 |
byte tick_counter; |
|
309 |
uint16 max_speed; |
|
310 |
uint16 x_pos, y_pos; |
|
311 |
byte z_pos; |
|
312 |
byte direction; |
|
313 |
byte x_offs, y_offs; |
|
314 |
byte sprite_width, sprite_height, z_height; |
|
315 |
byte owner; |
|
316 |
uint16 tile; |
|
317 |
uint16 cur_image; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
318 |
|
0 | 319 |
int16 left_coord, right_coord, top_coord, bottom_coord; // NOLOAD, calculated automatically. |
320 |
uint16 vehstatus; |
|
321 |
uint16 cur_speed; |
|
322 |
byte subspeed; |
|
323 |
byte acceleration; |
|
324 |
byte progress; |
|
325 |
byte cargo_type; |
|
326 |
uint16 capacity; |
|
327 |
uint16 number_of_pieces; |
|
328 |
byte source_of_pieces; |
|
329 |
byte days_in_transit; |
|
330 |
uint16 age_in_days, max_age_in_days; |
|
331 |
byte build_year; |
|
332 |
byte unitnumber; |
|
333 |
uint16 engine_type; |
|
334 |
byte spritenum; |
|
335 |
byte day_counter; |
|
336 |
byte breakdowns_since_last_service; |
|
337 |
byte breakdown_ctr, breakdown_delay, breakdown_chance; |
|
338 |
uint16 reliability, reliability_spd_dec; |
|
339 |
uint32 profit_this_year, profit_last_year; |
|
340 |
uint16 next_in_chain; |
|
341 |
uint32 value; |
|
342 |
uint16 string_id; |
|
343 |
OldVehicleUnion u; |
|
344 |
byte unused[20]; |
|
345 |
} GCC_PACK OldVehicle; |
|
346 |
assert_compile(sizeof(OldVehicle) == 0x80); |
|
347 |
||
348 |
typedef struct { |
|
349 |
byte name[32]; |
|
350 |
} GCC_PACK OldName; |
|
351 |
||
352 |
typedef struct { |
|
353 |
uint16 text; |
|
354 |
int16 x,y,z; |
|
355 |
byte namewidth_1, namewidth_2; |
|
356 |
int16 sign_left, sign_top; |
|
357 |
} GCC_PACK OldSign; |
|
358 |
assert_compile(sizeof(OldSign) == 0xE); |
|
359 |
||
360 |
typedef struct { |
|
361 |
uint16 player_avail; |
|
362 |
uint16 intro_date; |
|
363 |
uint16 age; |
|
364 |
uint16 reliability, reliability_spd_dec, reliability_start, reliability_max, reliability_final; |
|
365 |
uint16 duration_phase_1, duration_phase_2, duration_phase_3; |
|
366 |
byte lifelength; |
|
367 |
byte flags; |
|
368 |
byte preview_player; |
|
369 |
byte preview_wait; |
|
370 |
byte railtype; |
|
371 |
byte unk1B; |
|
372 |
} GCC_PACK OldEngine; |
|
373 |
assert_compile(sizeof(OldEngine) == 0x1C); |
|
374 |
||
375 |
typedef struct { |
|
376 |
byte cargo_type; |
|
377 |
byte age; |
|
378 |
byte from; |
|
379 |
byte to; |
|
380 |
} GCC_PACK OldSubsidy; |
|
381 |
assert_compile(sizeof(OldSubsidy) == 4); |
|
382 |
||
383 |
typedef struct { |
|
384 |
uint16 max_no_competitors; |
|
385 |
uint16 competitor_start_time; |
|
386 |
uint16 number_towns; |
|
387 |
uint16 number_industries; |
|
388 |
uint16 max_loan; |
|
389 |
uint16 initial_interest; |
|
390 |
uint16 vehicle_costs; |
|
391 |
uint16 competitor_speed; |
|
392 |
uint16 competitor_intelligence; |
|
393 |
uint16 vehicle_breakdowns; |
|
394 |
uint16 subsidy_multiplier; |
|
395 |
uint16 construction_cost; |
|
396 |
uint16 terrain_type; |
|
397 |
uint16 quantity_sea_lakes; |
|
398 |
uint16 economy; |
|
399 |
uint16 line_reverse_mode; |
|
400 |
uint16 disasters; |
|
401 |
} GCC_PACK OldGameSettings; |
|
402 |
assert_compile(sizeof(OldGameSettings) == 0x22); |
|
403 |
||
404 |
typedef struct { |
|
405 |
uint16 date; |
|
406 |
uint16 date_fract; |
|
407 |
||
408 |
OldTextEffect te_list[30]; // NOLOAD: not so important. |
|
409 |
uint32 seed_1, seed_2; |
|
410 |
||
411 |
OldTown town_list[70]; |
|
412 |
uint16 order_list[5000]; |
|
413 |
||
414 |
uint16 animated_tile_list[256]; |
|
415 |
uint32 ptr_to_next_order; |
|
416 |
OldDepot depots[255]; |
|
417 |
||
418 |
uint32 cur_town_ptr; |
|
419 |
uint16 timer_counter; |
|
420 |
uint16 land_code; // NOLOAD: never needed in game |
|
421 |
uint16 age_cargo_skip_counter; |
|
422 |
uint16 tick_counter; |
|
423 |
uint16 cur_tileloop_tile; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
424 |
|
0 | 425 |
OldPrice prices[49]; |
426 |
OldPaymentRate cargo_payment_rates[12]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
427 |
|
0 | 428 |
byte map_owner[256*256]; |
429 |
byte map2[256*256]; |
|
430 |
uint16 map3[256*256]; |
|
431 |
byte map_extra[256*256/4]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
432 |
|
0 | 433 |
OldStation stations[250]; |
434 |
OldIndustry industries[90]; |
|
435 |
OldPlayer players[8]; |
|
436 |
OldVehicle vehicles[850]; |
|
437 |
OldName names[500]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
438 |
|
0 | 439 |
uint16 vehicle_position_hash[0x1000]; // NOLOAD, calculated automatically. |
440 |
||
441 |
OldSign signs[40]; |
|
442 |
OldEngine engines[256]; |
|
443 |
||
444 |
uint16 vehicle_id_ctr_day; |
|
445 |
OldSubsidy subsidies[8]; |
|
446 |
||
447 |
uint16 next_competitor_start; |
|
448 |
||
449 |
uint16 saved_main_scrollpos_x, saved_main_scrollpos_y, saved_main_scrollpos_zoom; |
|
450 |
uint32 maximum_loan, maximum_loan_unround; |
|
451 |
uint16 economy_fluct; |
|
452 |
uint16 disaster_delay; |
|
453 |
||
454 |
//NOLOAD. These are calculated from InitializeLandscapeVariables |
|
455 |
uint16 cargo_names_s[12], cargo_names_p[12], cargo_names_long_s[12], cargo_names_long_p[12], cargo_names_short[12]; |
|
456 |
uint16 cargo_sprites[12]; |
|
457 |
||
458 |
uint16 engine_name_strings[256]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
459 |
|
0 | 460 |
//NOLOAD. These are calculated from InitializeLandscapeVariables |
461 |
uint16 railveh_by_cargo_1[12], railveh_by_cargo_2[12], railveh_by_cargo_3[12]; |
|
462 |
uint16 roadveh_by_cargo_start[12]; |
|
463 |
byte roadveh_by_cargo_count[12]; |
|
464 |
uint16 ship_of_type_start[12]; |
|
465 |
byte ship_of_type_count[12]; |
|
466 |
||
467 |
byte human_player_1, human_player_2; //NOLOAD. Calculated automatically. |
|
468 |
byte station_tick_ctr; |
|
469 |
byte currency; |
|
470 |
byte use_kilometers; |
|
471 |
byte cur_player_tick_index; |
|
472 |
byte cur_year, cur_month; //NOLOAD. Calculated automatically. |
|
473 |
byte player_colors[8]; //NOLOAD. Calculated automatically |
|
474 |
||
475 |
byte inflation_amount; |
|
476 |
byte inflation_amount_payment_rates; |
|
477 |
byte interest_rate; |
|
478 |
||
479 |
byte avail_aircraft; |
|
480 |
byte road_side; |
|
481 |
byte town_name_type; |
|
482 |
OldGameSettings game_diff; |
|
483 |
byte difficulty_level; |
|
484 |
byte landscape_type; |
|
485 |
byte trees_tick_ctr; |
|
486 |
byte vehicle_design_names; |
|
487 |
byte snow_line_height; |
|
488 |
||
489 |
byte new_industry_randtable[32]; // NOLOAD. Not needed due to different code design. |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
490 |
|
0 | 491 |
//NOLOAD. Initialized by InitializeLandscapeVariables |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
492 |
byte cargo_weights[12]; |
0 | 493 |
byte transit_days_table_1[12]; |
494 |
byte transit_days_table_2[12]; |
|
495 |
||
496 |
byte map_type_and_height[256*256]; |
|
497 |
byte map5[256*256]; |
|
498 |
} GCC_PACK OldMain; |
|
499 |
assert_compile(sizeof(OldMain) == 487801 + 256*256*2); |
|
500 |
||
501 |
#if defined(_MSC_VER) |
|
502 |
#pragma pack(pop) |
|
503 |
#endif |
|
504 |
||
505 |
#define REMAP_TOWN_IDX(x) (x - (0x0459154 - 0x0458EF0)) / sizeof(OldTown) |
|
506 |
#define REMAP_TOWN_PTR(x) DEREF_TOWN( REMAP_TOWN_IDX(x) ) |
|
507 |
||
508 |
#define REMAP_ORDER_IDX(x) (x - (0x045AB08 - 0x0458EF0)) / sizeof(uint16) |
|
509 |
||
510 |
typedef struct LoadSavegameState { |
|
511 |
int8 mode; |
|
512 |
byte rep_char; |
|
513 |
||
514 |
size_t count; |
|
515 |
size_t buffer_count; |
|
516 |
FILE *fin; |
|
517 |
||
518 |
byte *buffer_cur; |
|
519 |
||
520 |
byte buffer[4096]; |
|
521 |
||
522 |
} LoadSavegameState; |
|
523 |
||
524 |
static LoadSavegameState *_cur_state; |
|
525 |
||
526 |
static byte GetSavegameByteFromBuffer() |
|
527 |
{ |
|
528 |
LoadSavegameState *lss = _cur_state; |
|
529 |
||
530 |
if (lss->buffer_count == 0) { |
|
531 |
int count = fread(lss->buffer, 1, 4096, lss->fin) ; |
|
532 |
/* if (count == 0) { |
|
533 |
memset(lss->buffer, 0, sizeof(lss->buffer)); |
|
534 |
count = 4096; |
|
535 |
}*/ |
|
536 |
assert(count != 0); |
|
537 |
lss->buffer_count = count; |
|
538 |
lss->buffer_cur = lss->buffer; |
|
539 |
} |
|
540 |
||
541 |
lss->buffer_count--; |
|
542 |
return *lss->buffer_cur++; |
|
543 |
} |
|
544 |
||
545 |
static byte DecodeSavegameByte() |
|
546 |
{ |
|
547 |
LoadSavegameState *lss = _cur_state; |
|
548 |
int8 x; |
|
549 |
||
550 |
if (lss->mode < 0) { |
|
551 |
if (lss->count != 0) { |
|
552 |
lss->count--; |
|
553 |
return lss->rep_char; |
|
554 |
} |
|
555 |
} else if (lss->mode > 0) { |
|
556 |
if (lss->count != 0) { |
|
557 |
lss->count--; |
|
558 |
return GetSavegameByteFromBuffer(); |
|
559 |
} |
|
560 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
561 |
|
0 | 562 |
x = GetSavegameByteFromBuffer(); |
563 |
if (x >= 0) { |
|
564 |
lss->count = x; |
|
565 |
lss->mode = 1; |
|
566 |
return GetSavegameByteFromBuffer(); |
|
567 |
} else { |
|
568 |
lss->mode = -1; |
|
569 |
lss->count = -x; |
|
570 |
lss->rep_char = GetSavegameByteFromBuffer(); |
|
571 |
return lss->rep_char; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
572 |
} |
0 | 573 |
} |
574 |
||
575 |
static void LoadSavegameBytes(void *p, size_t count) |
|
576 |
{ |
|
577 |
byte *ptr = (byte*)p; |
|
578 |
assert(count > 0); |
|
579 |
do { |
|
580 |
*ptr++ = DecodeSavegameByte(); |
|
581 |
} while (--count); |
|
582 |
} |
|
583 |
||
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
584 |
extern uint32 GetOldTownName(uint32 townnameparts, byte old_town_name_type); |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
585 |
|
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
586 |
static void FixTown(Town *t, OldTown *o, int num, byte town_name_type) |
0 | 587 |
{ |
588 |
do { |
|
589 |
t->xy = o->xy; |
|
590 |
t->population = o->population; |
|
591 |
t->townnametype = o->townnametype; |
|
592 |
t->townnameparts = o->townnameparts; |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
593 |
// Random TownNames |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
594 |
if (IS_INT_INSIDE(o->townnametype, 0x20C1, 0x20C2 + 1)) { |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
595 |
t->townnametype = SPECSTR_TOWNNAME_ENGLISH + town_name_type; |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
596 |
if (o->xy) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
597 |
t->townnameparts = GetOldTownName(o->townnameparts, town_name_type); |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
598 |
} |
0 | 599 |
|
600 |
t->grow_counter = o->grow_counter; |
|
601 |
t->flags12 = o->flags12; |
|
602 |
memcpy(t->ratings,o->ratings,sizeof(t->ratings)); |
|
603 |
t->have_ratings = o->have_ratings; |
|
604 |
t->statues = o->statues; |
|
605 |
t->num_houses = o->num_houses; |
|
606 |
t->time_until_rebuild = o->time_until_rebuild; |
|
607 |
t->growth_rate = o->growth_rate; |
|
608 |
t->new_max_pass = o->new_max_pass; |
|
609 |
t->new_max_mail = o->new_max_mail; |
|
610 |
t->new_act_pass = o->new_act_pass; |
|
611 |
t->new_act_mail = o->new_act_mail; |
|
612 |
t->max_pass = o->max_pass; |
|
613 |
t->max_mail = o->max_mail; |
|
614 |
t->act_pass = o->act_pass; |
|
615 |
t->act_mail = o->act_mail; |
|
616 |
t->pct_pass_transported = o->pct_pass_transported; |
|
617 |
t->pct_mail_transported = o->pct_mail_transported; |
|
618 |
t->new_act_food = o->new_act_food; |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
619 |
t->new_act_water = o->new_act_water; |
0 | 620 |
t->act_food = o->act_food; |
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
621 |
t->act_water = o->act_water; |
0 | 622 |
t->road_build_months = o->road_build_months; |
623 |
t->fund_buildings_months = o->fund_buildings_months; |
|
624 |
} while (t++,o++,--num); |
|
625 |
} |
|
626 |
||
627 |
static void FixIndustry(Industry *i, OldIndustry *o, int num) |
|
628 |
{ |
|
629 |
do { |
|
630 |
i->xy = o->xy; |
|
631 |
i->town = REMAP_TOWN_PTR(o->town); |
|
632 |
i->width = o->width; |
|
633 |
i->height = o->height; |
|
634 |
i->produced_cargo[0] = o->produced_cargo[0]; |
|
635 |
i->produced_cargo[1] = o->produced_cargo[1]; |
|
636 |
i->cargo_waiting[0] = o->cargo_waiting[0]; |
|
637 |
i->cargo_waiting[1] = o->cargo_waiting[1]; |
|
638 |
i->production_rate[0] = o->production_rate[0]; |
|
639 |
i->production_rate[1] = o->production_rate[1]; |
|
640 |
i->accepts_cargo[0] = o->accepts_cargo[0]; |
|
641 |
i->accepts_cargo[1] = o->accepts_cargo[1]; |
|
642 |
i->accepts_cargo[2] = o->accepts_cargo[2]; |
|
643 |
i->prod_level = o->prod_level; |
|
644 |
i->last_mo_production[0] = o->last_mo_production[0]; |
|
645 |
i->last_mo_production[1] = o->last_mo_production[1]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
646 |
|
0 | 647 |
i->last_mo_transported[0] = o->last_mo_transported[0]; |
648 |
i->last_mo_transported[1] = o->last_mo_transported[1]; |
|
649 |
i->last_mo_transported[2] = o->last_mo_transported[2]; |
|
650 |
||
651 |
i->pct_transported[0] = o->pct_transported[0]; |
|
652 |
i->pct_transported[1] = o->pct_transported[1]; |
|
653 |
||
654 |
i->total_production[0] = o->total_production[0]; |
|
655 |
i->total_production[1] = o->total_production[1]; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
656 |
|
0 | 657 |
i->total_transported[0] = i->total_transported[0]; |
658 |
i->total_transported[1] = i->total_transported[1]; |
|
659 |
||
660 |
i->type = o->type; |
|
661 |
i->owner = o->owner; |
|
662 |
i->color_map = o->color_map; |
|
663 |
i->last_prod_year = o->last_prod_year; |
|
664 |
i->counter = o->counter; |
|
665 |
i->was_cargo_delivered = o->was_cargo_delivered; |
|
666 |
} while (i++,o++,--num); |
|
667 |
} |
|
668 |
||
669 |
static void FixGoodsEntry(GoodsEntry *g, OldGoodsEntry *o, int num) |
|
670 |
{ |
|
671 |
do { |
|
672 |
g->waiting_acceptance = o->waiting_acceptance; |
|
673 |
g->days_since_pickup = o->days_since_pickup; |
|
674 |
g->rating = o->rating; |
|
675 |
g->enroute_from = o->enroute_from; |
|
676 |
g->enroute_time = o->enroute_time; |
|
677 |
g->last_speed = o->last_speed; |
|
678 |
g->last_age = o->last_age; |
|
679 |
} while (g++,o++,--num); |
|
680 |
} |
|
681 |
||
682 |
static void FixStation(Station *s, OldStation *o, int num) |
|
683 |
{ |
|
684 |
do { |
|
685 |
s->xy = o->xy; |
|
686 |
s->town = REMAP_TOWN_PTR(o->town); |
|
687 |
s->bus_tile = o->bus_tile; |
|
688 |
s->lorry_tile = o->lorry_tile; |
|
689 |
s->train_tile = o->train_tile; |
|
690 |
s->airport_tile = o->airport_tile; |
|
691 |
s->dock_tile = o->dock_tile; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
692 |
|
0 | 693 |
if (o->train_tile) { |
694 |
int w = (o->platforms >> 3) & 0x7; |
|
695 |
int h = (o->platforms & 0x7); |
|
696 |
if (_map5[o->train_tile]&1) intswap(w,h); |
|
697 |
s->trainst_w = w; |
|
698 |
s->trainst_h = h; |
|
699 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
700 |
|
0 | 701 |
s->string_id = RemapOldStringID(o->string_id); |
702 |
s->had_vehicle_of_type = o->had_vehicle_of_type; |
|
703 |
FixGoodsEntry(s->goods, o->goods, lengthof(o->goods)); |
|
704 |
s->time_since_load = o->time_since_load; |
|
705 |
s->time_since_unload = o->time_since_unload; |
|
706 |
s->delete_ctr = o->delete_ctr; |
|
707 |
s->owner = o->owner; |
|
708 |
s->facilities = o->facilities; |
|
709 |
s->airport_type = o->airport_type; |
|
710 |
s->truck_stop_status = o->truck_stop_status; |
|
711 |
s->bus_stop_status = o->bus_stop_status; |
|
123
d550772c61e6
(svn r124) Prepared code for removal of block_months variable in next major savegame version
dominik
parents:
4
diff
changeset
|
712 |
s->blocked_months_obsolete = o->blocked_months_obsolete; |
0 | 713 |
s->airport_flags = o->airport_flags; |
714 |
s->last_vehicle = o->last_vehicle; |
|
715 |
} while (s++,o++,--num); |
|
716 |
} |
|
717 |
||
718 |
static void FixDepot(Depot *n, OldDepot *o, int num) |
|
719 |
{ |
|
720 |
do { |
|
721 |
n->town_index = REMAP_TOWN_IDX(o->town); |
|
722 |
n->xy = o->xy; |
|
723 |
} while (n++,o++,--num); |
|
724 |
} |
|
725 |
||
726 |
static void FixVehicle(Vehicle *n, OldVehicle *o, int num) |
|
727 |
{ |
|
728 |
do { |
|
729 |
n->type = o->type; |
|
730 |
n->subtype = o->subtype; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
731 |
|
0 | 732 |
if (o->schedule_ptr == 0xFFFFFFFF || o->schedule_ptr == 0) { |
733 |
n->schedule_ptr = NULL; |
|
734 |
} else { |
|
735 |
n->schedule_ptr = _order_array + REMAP_ORDER_IDX(o->schedule_ptr); |
|
736 |
assert(n->schedule_ptr >= _order_array && n->schedule_ptr < _ptr_to_next_order); |
|
737 |
} |
|
738 |
||
555
eec6c0294435
(svn r955) Replace uint16 for orders with struct Order
tron
parents:
507
diff
changeset
|
739 |
n->current_order.type = o->next_order & 0x0f; |
eec6c0294435
(svn r955) Replace uint16 for orders with struct Order
tron
parents:
507
diff
changeset
|
740 |
n->current_order.flags = o->next_order >> 4; |
eec6c0294435
(svn r955) Replace uint16 for orders with struct Order
tron
parents:
507
diff
changeset
|
741 |
n->current_order.station = o->next_order_param; |
0 | 742 |
n->num_orders = o->num_orders; |
743 |
n->cur_order_index = o->cur_order_index; |
|
744 |
n->dest_tile = o->dest_tile; |
|
745 |
n->load_unload_time_rem = o->load_unload_time_rem; |
|
746 |
n->date_of_last_service = o->date_of_last_service; |
|
747 |
n->service_interval = o->service_interval; |
|
748 |
n->last_station_visited = o->last_station_visited; |
|
749 |
n->tick_counter = o->tick_counter; |
|
750 |
n->max_speed = o->max_speed; |
|
751 |
n->x_pos = o->x_pos; |
|
752 |
n->y_pos = o->y_pos; |
|
753 |
n->z_pos = o->z_pos; |
|
754 |
n->direction = o->direction; |
|
755 |
n->x_offs = o->x_offs; |
|
756 |
n->y_offs = o->y_offs; |
|
757 |
n->sprite_width = o->sprite_width; |
|
758 |
n->sprite_height = o->sprite_height; |
|
759 |
n->z_height = o->z_height; |
|
760 |
n->owner = o->owner; |
|
761 |
n->tile = o->tile; |
|
762 |
n->cur_image = o->cur_image; |
|
392
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
763 |
if (o->cur_image >= 0x2000) // TTDPatch maps sprites from 0x2000 up. |
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
764 |
n->cur_image -= 0x2000 - _custom_sprites_base; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
765 |
|
0 | 766 |
n->vehstatus = o->vehstatus; |
767 |
n->cur_speed = o->cur_speed; |
|
768 |
n->subspeed = o->subspeed; |
|
769 |
n->acceleration = o->acceleration; |
|
770 |
n->progress = o->progress; |
|
771 |
n->cargo_type = o->cargo_type; |
|
772 |
n->cargo_cap = o->capacity; |
|
773 |
n->cargo_count = o->number_of_pieces; |
|
774 |
n->cargo_source = o->source_of_pieces; |
|
775 |
n->cargo_days = o->days_in_transit; |
|
776 |
n->age = o->age_in_days; |
|
777 |
n->max_age = o->max_age_in_days; |
|
778 |
n->build_year = o->build_year; |
|
779 |
n->unitnumber = o->unitnumber; |
|
780 |
n->engine_type = o->engine_type; |
|
392
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
781 |
switch (o->spritenum) { |
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
782 |
case 0xfd: n->spritenum = 0xfd; break; |
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
783 |
case 0xff: n->spritenum = 0xfe; break; |
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
784 |
default: n->spritenum = o->spritenum >> 1; break; |
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
785 |
} |
0 | 786 |
n->day_counter = o->day_counter; |
787 |
n->breakdowns_since_last_service = o->breakdowns_since_last_service; |
|
788 |
n->breakdown_ctr = o->breakdown_ctr; |
|
789 |
n->breakdown_delay = o->breakdown_delay; |
|
790 |
n->breakdown_chance = o->breakdown_chance; |
|
791 |
n->reliability = o->reliability; |
|
792 |
n->reliability_spd_dec = o->reliability_spd_dec; |
|
793 |
n->profit_this_year = o->profit_this_year; |
|
794 |
n->profit_last_year = o->profit_last_year; |
|
795 |
n->next = o->next_in_chain == 0xffff ? NULL : &_vehicles[o->next_in_chain]; |
|
796 |
n->value = o->value; |
|
797 |
n->string_id = RemapOldStringID(o->string_id); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
798 |
|
0 | 799 |
switch(o->type) { |
800 |
case VEH_Train: |
|
801 |
n->u.rail.track = o->u.rail.track; |
|
802 |
n->u.rail.force_proceed = o->u.rail.force_proceed; |
|
803 |
n->u.rail.crash_anim_pos = o->u.rail.crash_anim_pos; |
|
804 |
n->u.rail.railtype = o->u.rail.railtype; |
|
805 |
break; |
|
806 |
||
807 |
case VEH_Road: |
|
808 |
n->u.road.state = o->u.road.state; |
|
809 |
n->u.road.frame = o->u.road.frame; |
|
810 |
n->u.road.unk2 = o->u.road.unk2; |
|
811 |
n->u.road.overtaking = o->u.road.overtaking; |
|
812 |
n->u.road.overtaking_ctr = o->u.road.overtaking_ctr; |
|
813 |
n->u.road.crashed_ctr = o->u.road.crashed_ctr; |
|
814 |
n->u.road.reverse_ctr = o->u.road.reverse_ctr; |
|
815 |
break; |
|
816 |
case VEH_Ship: |
|
817 |
n->u.ship.state = o->u.ship.state; |
|
818 |
break; |
|
819 |
case VEH_Aircraft: |
|
820 |
n->u.air.crashed_counter = o->u.air.crashed_counter; |
|
821 |
n->u.air.pos = o->u.air.unk0; |
|
822 |
n->u.air.targetairport = o->u.air.targetairport; |
|
823 |
n->u.air.state = o->u.air.state; |
|
824 |
break; |
|
825 |
case VEH_Special: |
|
826 |
n->u.special.unk0 = o->u.special.unk0; |
|
827 |
n->u.special.unk2 = o->u.special.unk2; |
|
828 |
n->subtype = o->subtype >> 1; |
|
829 |
break; |
|
830 |
case VEH_Disaster: |
|
831 |
n->u.disaster.image_override = o->u.disaster.image_override; |
|
832 |
n->u.disaster.unk2 = o->u.disaster.unk2; |
|
833 |
break; |
|
834 |
} |
|
835 |
} while (n++,o++,--num); |
|
836 |
} |
|
837 |
||
838 |
static void FixSubsidy(Subsidy *n, OldSubsidy *o, int num) |
|
839 |
{ |
|
840 |
do { |
|
841 |
n->age = o->age; |
|
842 |
n->cargo_type = o->cargo_type; |
|
843 |
n->from = o->from; |
|
844 |
n->to = o->to; |
|
845 |
} while (n++,o++,--num); |
|
846 |
} |
|
847 |
||
848 |
static void FixEconomy(PlayerEconomyEntry *n, OldPlayerEconomy *o) |
|
849 |
{ |
|
850 |
n->company_value = o->company_value; |
|
851 |
n->delivered_cargo = o->delivered_cargo; |
|
852 |
n->income = -o->income; |
|
853 |
n->expenses = -o->expenses; |
|
854 |
n->performance_history = o->performance_history; |
|
855 |
} |
|
856 |
||
857 |
static void FixAiBuildRec(AiBuildRec *n, OldAiBuildRec *o) |
|
858 |
{ |
|
859 |
n->spec_tile = o->spec_tile; |
|
860 |
n->use_tile = o->use_tile; |
|
861 |
n->rand_rng = o->rand_rng; |
|
862 |
n->cur_building_rule = o->cur_rule; |
|
863 |
n->unk6 = o->unk6; |
|
864 |
n->unk7 = o->unk7; |
|
865 |
n->buildcmd_a = o->buildcmd_a; |
|
866 |
n->buildcmd_b = o->buildcmd_b; |
|
867 |
n->direction = o->direction; |
|
868 |
n->cargo = o->cargo; |
|
869 |
} |
|
870 |
||
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
871 |
static void FixPlayer(Player *n, OldPlayer *o, int num, byte town_name_type) |
0 | 872 |
{ |
873 |
int i, j; |
|
874 |
int x = 0; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
875 |
|
0 | 876 |
do { |
877 |
n->name_1 = RemapOldStringID(o->name_1); |
|
878 |
n->name_2 = o->name_2; |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
879 |
/* In every Old TTD(Patch) game Player1 (0) is human, and all others are AI |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
880 |
* (Except in .SV2 savegames, which were 2 player games, but we are not fixing |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
881 |
* that |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
882 |
*/ |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
883 |
|
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
884 |
if (x == 0) { |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
885 |
if (o->name_1 == 0) // if first player doesn't have a name, he is 'unnamed' |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
886 |
n->name_1 = STR_SV_UNNAMED; |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
887 |
} else { |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
888 |
n->is_ai = 1; |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
889 |
} |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
890 |
|
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
891 |
if (o->name_1 != 0) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
892 |
n->is_active = true; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
893 |
|
0 | 894 |
n->face = o->face; |
895 |
n->president_name_1 = o->pres_name_1; |
|
896 |
n->president_name_2 = o->pres_name_2; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
897 |
|
0 | 898 |
n->money64 = n->player_money = o->money; |
899 |
n->current_loan = o->loan; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
900 |
|
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
901 |
// Correct money for scenario loading. |
0 | 902 |
// It's always 893288 pounds (and no loan), if not corrected |
903 |
if(o->money==0xda168) |
|
904 |
n->money64 = n->player_money = n->current_loan =100000; |
|
905 |
||
906 |
n->player_color = o->color; |
|
907 |
_player_colors[x] = o->color; |
|
908 |
x++; |
|
909 |
||
910 |
n->player_money_fraction = o->money_fract; |
|
911 |
n->quarters_of_bankrupcy = o->quarters_of_bankrupcy; |
|
912 |
n->bankrupt_asked = o->bankrupt_asked; |
|
913 |
n->bankrupt_value = o->bankrupt_value; |
|
914 |
n->bankrupt_timeout = o->bankrupt_timeout; |
|
915 |
n->cargo_types = o->cargo_types; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
916 |
|
0 | 917 |
for(i=0; i!=3; i++) |
918 |
for(j=0; j!=13; j++) |
|
919 |
n->yearly_expenses[i][j] = o->expenses[i].cost[j]; |
|
920 |
||
921 |
FixEconomy(&n->cur_economy, &o->economy[0]); |
|
922 |
for(i=0; i!=24; i++) FixEconomy(&n->old_economy[i], &o->economy[i+1]); |
|
923 |
n->inaugurated_year = o->inaugurated_date - 1920; |
|
924 |
n->last_build_coordinate = o->last_build_coordinate; |
|
925 |
n->num_valid_stat_ent = o->num_valid_stat_ent; |
|
926 |
||
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
927 |
/* Not good, since AI doesn't have a vehicle assigned as |
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
928 |
* in p->ai.cur_veh and thus will crash on certain actions. |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
929 |
* Best is to set state to AiStateVehLoop (2) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
930 |
* n->ai.state = o->ai_state; |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
931 |
*/ |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
932 |
n->ai.state = 2; |
0 | 933 |
n->ai.state_mode = o->ai_state_mode; |
934 |
n->ai.state_counter = o->ai_state_counter; |
|
935 |
n->ai.timeout_counter = o->ai_timeout_counter; |
|
936 |
n->ai.banned_tile_count = o->ai_banned_tile_count; |
|
937 |
n->ai.railtype_to_use = o->ai_railtype_to_use; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
938 |
|
0 | 939 |
FixAiBuildRec(&n->ai.src, &o->ai_src); |
940 |
FixAiBuildRec(&n->ai.dst, &o->ai_dst); |
|
941 |
FixAiBuildRec(&n->ai.mid1, &o->ai_mid1); |
|
942 |
FixAiBuildRec(&n->ai.mid2, &o->ai_mid2); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
943 |
|
0 | 944 |
n->ai.cargo_type = o->ai_cargo_type; |
945 |
n->ai.num_wagons = o->ai_num_wagons; |
|
946 |
n->ai.num_build_rec = o->ai_num_build_rec; |
|
947 |
n->ai.num_loco_to_build = o->ai_num_loco_to_build; |
|
948 |
n->ai.num_want_fullload = o->ai_num_want_fullload; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
949 |
|
0 | 950 |
for(i=0; i!=9; i++) n->ai.wagon_list[i] = o->ai_wagonlist[i]; |
951 |
memcpy(n->ai.order_list_blocks, o->ai_order_list_blocks, 20); |
|
952 |
n->ai.start_tile_a = o->ai_start_tile_a; |
|
953 |
n->ai.start_tile_b = o->ai_start_tile_b; |
|
954 |
n->ai.cur_tile_a = o->ai_cur_tile_a; |
|
955 |
n->ai.cur_tile_b = o->ai_cur_tile_b; |
|
956 |
n->ai.start_dir_a = o->ai_start_dir_a; |
|
957 |
n->ai.start_dir_b = o->ai_start_dir_b; |
|
958 |
n->ai.cur_dir_a = o->ai_cur_dir_a; |
|
959 |
n->ai.cur_dir_b = o->ai_cur_dir_b; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
960 |
|
0 | 961 |
for(i=0; i!=16; i++) { |
962 |
n->ai.banned_tiles[i] = o->banned_tiles[i].tile; |
|
963 |
n->ai.banned_val[i] = o->banned_tiles[i].data; |
|
964 |
} |
|
965 |
||
966 |
n->ai.build_kind = o->ai_build_kind; |
|
967 |
n->ai.route_type_mask = o->ai_route_type_mask; |
|
968 |
n->ai.tick = o->ai_tick; |
|
969 |
||
970 |
n->block_preview = o->block_preview; |
|
971 |
n->max_railtype = (o->max_railtype == 0) ? 1 : o->max_railtype; |
|
972 |
n->location_of_house = o->location_of_house; |
|
973 |
if (o->location_of_house == 0xFFFF) n->location_of_house = 0; |
|
974 |
||
975 |
n->share_owners[0] = o->share_owners[0]; |
|
976 |
n->share_owners[1] = o->share_owners[1]; |
|
977 |
n->share_owners[2] = o->share_owners[2]; |
|
978 |
n->share_owners[3] = o->share_owners[3]; |
|
979 |
||
980 |
if (o->ai_state == 2) { |
|
981 |
n->ai.cur_veh = NULL; |
|
982 |
} |
|
983 |
} while (n++,o++,--num); |
|
984 |
} |
|
985 |
||
986 |
static void FixName(OldName *o, int num) |
|
987 |
{ |
|
988 |
int i; |
|
989 |
for(i=0; i!=num; i++) { |
|
990 |
memcpy(_name_array[i], o[i].name, sizeof(o[i].name)); |
|
991 |
} |
|
992 |
} |
|
993 |
||
994 |
static void FixSign(SignStruct *n, OldSign *o, int num) |
|
995 |
{ |
|
996 |
do { |
|
997 |
n->str = o->text; |
|
998 |
n->x = o->x; |
|
999 |
n->y = o->y; |
|
1000 |
n->z = o->z; |
|
1001 |
} while (n++,o++,--num); |
|
1002 |
} |
|
1003 |
||
1004 |
static void FixEngine(Engine *n, OldEngine *o, int num) |
|
1005 |
{ |
|
1006 |
int i = 0; |
|
1007 |
||
1008 |
do { |
|
1009 |
n->player_avail = o->player_avail; |
|
1010 |
n->intro_date = o->intro_date; |
|
1011 |
n->age = o->age; |
|
1012 |
if ((i >= 27 && i < 54) || (i >= 57 && i < 84) || (i >= 89 && i < 116)) |
|
1013 |
n->age = 0xffff; |
|
1014 |
n->reliability = o->reliability; |
|
1015 |
n->reliability_spd_dec = o->reliability_spd_dec; |
|
1016 |
n->reliability_start = o->reliability_start; |
|
1017 |
n->reliability_max = o->reliability_max; |
|
1018 |
n->reliability_final = o->reliability_final; |
|
1019 |
n->duration_phase_1 = o->duration_phase_1; |
|
1020 |
n->duration_phase_2 = o->duration_phase_2; |
|
1021 |
n->duration_phase_3 = o->duration_phase_3; |
|
1022 |
n->lifelength = o->lifelength; |
|
1023 |
n->flags = o->flags; |
|
1024 |
n->preview_player = o->preview_player; |
|
1025 |
n->preview_wait = o->preview_wait; |
|
1026 |
n->railtype = o->railtype; |
|
1027 |
} while (n++,o++,i++,--num); |
|
1028 |
} |
|
1029 |
||
410 | 1030 |
static void FixGameDifficulty(GameDifficulty *n, OldGameSettings *o) |
0 | 1031 |
{ |
1032 |
n->max_no_competitors = o->max_no_competitors; |
|
1033 |
n->competitor_start_time = o->competitor_start_time; |
|
1034 |
n->number_towns = o->number_towns; |
|
1035 |
n->number_industries = o->number_industries; |
|
1036 |
n->max_loan = o->max_loan; |
|
1037 |
n->initial_interest = o->initial_interest; |
|
1038 |
n->vehicle_costs = o->vehicle_costs; |
|
1039 |
n->competitor_speed = o->competitor_speed; |
|
1040 |
n->competitor_intelligence = o->competitor_intelligence; |
|
1041 |
n->vehicle_breakdowns = o->vehicle_breakdowns; |
|
1042 |
n->subsidy_multiplier = o->subsidy_multiplier; |
|
1043 |
n->construction_cost = o->construction_cost; |
|
1044 |
n->terrain_type = o->terrain_type; |
|
1045 |
n->quantity_sea_lakes = o->quantity_sea_lakes; |
|
1046 |
n->economy = o->economy; |
|
1047 |
n->line_reverse_mode = o->line_reverse_mode; |
|
1048 |
n->disasters = o->disasters; |
|
1049 |
} |
|
1050 |
||
436
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1051 |
#ifdef TTD_BIG_ENDIAN |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1052 |
/* This function fixes the endiannes issues on Big Endian machines. |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1053 |
* Obviously only uint16 (WORD) and uint32 (LONG WORD) 's are fixed |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1054 |
* since these are different on Big Endian machines. A single byte has |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1055 |
* the same ordening */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1056 |
static void FixEndianness(OldMain *m) |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1057 |
{ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1058 |
int i; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1059 |
m->date = BSWAP16(m->date); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1060 |
m->date_fract = BSWAP16(m->date_fract); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1061 |
m->seed_1 = BSWAP32(m->seed_1); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1062 |
m->seed_2 = BSWAP32(m->seed_2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1063 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1064 |
/* ----------- TOWNS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1065 |
for (i = 0; i < 70; i++) { // OldTown town_list[70]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1066 |
int j; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1067 |
m->town_list[i].xy = BSWAP16(m->town_list[i].xy); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1068 |
m->town_list[i].population = BSWAP16(m->town_list[i].population); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1069 |
m->town_list[i].townnametype = BSWAP16(m->town_list[i].townnametype); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1070 |
m->town_list[i].townnameparts = BSWAP32(m->town_list[i].townnameparts); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1071 |
m->town_list[i].sign_left = BSWAP16(m->town_list[i].sign_left); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1072 |
m->town_list[i].sign_top = BSWAP16(m->town_list[i].sign_top); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1073 |
m->town_list[i].flags12 = BSWAP16(m->town_list[i].flags12); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1074 |
for (j = 0; j < 5; j++) // uint16 radius[5]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1075 |
m->town_list[i].radius[j] = BSWAP16(m->town_list[i].radius[j]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1076 |
for (j = 0; j < 8; j++) // uint16 ratings[8]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1077 |
m->town_list[i].ratings[j] = BSWAP16(m->town_list[i].ratings[j]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1078 |
m->town_list[i].have_ratings = BSWAP32(m->town_list[i].have_ratings); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1079 |
m->town_list[i].statues = BSWAP32(m->town_list[i].statues); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1080 |
m->town_list[i].num_houses = BSWAP16(m->town_list[i].num_houses); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1081 |
m->town_list[i].new_max_pass = BSWAP16(m->town_list[i].new_max_pass); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1082 |
m->town_list[i].new_max_mail = BSWAP16(m->town_list[i].new_max_mail); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1083 |
m->town_list[i].new_act_pass = BSWAP16(m->town_list[i].new_act_pass); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1084 |
m->town_list[i].new_act_mail = BSWAP16(m->town_list[i].new_act_mail); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1085 |
m->town_list[i].max_pass = BSWAP16(m->town_list[i].max_pass); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1086 |
m->town_list[i].max_mail = BSWAP16(m->town_list[i].max_mail); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1087 |
m->town_list[i].act_pass = BSWAP16(m->town_list[i].act_pass); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1088 |
m->town_list[i].act_mail = BSWAP16(m->town_list[i].act_mail); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1089 |
m->town_list[i].new_act_food = BSWAP16(m->town_list[i].new_act_food); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1090 |
m->town_list[i].new_act_water = BSWAP16(m->town_list[i].new_act_water); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1091 |
m->town_list[i].act_food = BSWAP16(m->town_list[i].act_food); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1092 |
m->town_list[i].act_water = BSWAP16(m->town_list[i].act_water); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1093 |
m->town_list[i].unk56 = BSWAP32(m->town_list[i].unk56); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1094 |
m->town_list[i].unk5A = BSWAP32(m->town_list[i].unk5A); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1095 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1096 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1097 |
/* ----------- ORDER LIST ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1098 |
for (i = 0; i < 5000; i++) // uint16 order_list[5000]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1099 |
m->order_list[i] = BSWAP16(m->order_list[i]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1100 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1101 |
/* ----------- ANIMATED TILE LIST ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1102 |
for (i = 0; i < 256; i++) // uint16 animated_tile_list[256]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1103 |
m->animated_tile_list[i] = BSWAP16(m->animated_tile_list[i]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1104 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1105 |
m->ptr_to_next_order = BSWAP32(m->ptr_to_next_order); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1106 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1107 |
/* ----------- DEPOTS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1108 |
for (i = 0; i < 255; i++) { // OldDepot depots[255]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1109 |
m->depots[i].xy = BSWAP16(m->depots[i].xy); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1110 |
m->depots[i].town = BSWAP32(m->depots[i].town); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1111 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1112 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1113 |
m->cur_town_ptr = BSWAP32(m->cur_town_ptr); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1114 |
m->timer_counter = BSWAP16(m->timer_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1115 |
m->land_code = BSWAP16(m->land_code); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1116 |
m->age_cargo_skip_counter = BSWAP16(m->age_cargo_skip_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1117 |
m->tick_counter = BSWAP16(m->tick_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1118 |
m->cur_tileloop_tile = BSWAP16(m->cur_tileloop_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1119 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1120 |
/* ----------- PRICES ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1121 |
for (i = 0; i < 49; i++) { // OldPrice prices[49]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1122 |
m->prices[i].price = BSWAP32(m->prices[i].price); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1123 |
m->prices[i].frac = BSWAP16(m->prices[i].frac); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1124 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1125 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1126 |
/* ----------- CARGO PAYMENT RATES ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1127 |
for (i = 0; i < 12; i++) { // OldPaymentRate cargo_payment_rates[12]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1128 |
m->cargo_payment_rates[i].price = BSWAP32(m->cargo_payment_rates[i].price); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1129 |
m->cargo_payment_rates[i].frac = BSWAP16(m->cargo_payment_rates[i].frac); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1130 |
m->cargo_payment_rates[i].unused = BSWAP16(m->cargo_payment_rates[i].unused); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1131 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1132 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1133 |
/* ----------- MAP3 ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1134 |
for (i = 0; i < (256*256); i++) // uint16 map3[256*256]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1135 |
m->map3[i] = BSWAP16(m->map3[i]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1136 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1137 |
/* ----------- STATIONS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1138 |
for (i = 0; i < 250; i++) { // OldStation stations[250]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1139 |
int j; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1140 |
m->stations[i].xy = BSWAP16(m->stations[i].xy); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1141 |
m->stations[i].town = BSWAP32(m->stations[i].town); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1142 |
m->stations[i].bus_tile = BSWAP16(m->stations[i].bus_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1143 |
m->stations[i].lorry_tile = BSWAP16(m->stations[i].lorry_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1144 |
m->stations[i].train_tile = BSWAP16(m->stations[i].train_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1145 |
m->stations[i].airport_tile = BSWAP16(m->stations[i].airport_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1146 |
m->stations[i].dock_tile = BSWAP16(m->stations[i].dock_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1147 |
m->stations[i].string_id = BSWAP16(m->stations[i].string_id); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1148 |
m->stations[i].sign_left = BSWAP16(m->stations[i].sign_left); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1149 |
m->stations[i].sign_top = BSWAP16(m->stations[i].sign_top); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1150 |
m->stations[i].had_vehicle_of_type = BSWAP16(m->stations[i].had_vehicle_of_type); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1151 |
for (j = 0; j < 12; j++) // OldGoodsEntry goods[12]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1152 |
m->stations[i].goods[j].waiting_acceptance = BSWAP16(m->stations[i].goods[j].waiting_acceptance); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1153 |
m->stations[i].airport_flags = BSWAP16(m->stations[i].airport_flags); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1154 |
m->stations[i].last_vehicle = BSWAP16(m->stations[i].last_vehicle); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1155 |
m->stations[i].unk8A = BSWAP32(m->stations[i].unk8A); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1156 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1157 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1158 |
/* ----------- INDUSTRIES ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1159 |
for (i = 0; i < 90; i++) { // OldIndustry industries[90]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1160 |
m->industries[i].xy = BSWAP16(m->industries[i].xy); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1161 |
m->industries[i].town = BSWAP32(m->industries[i].town); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1162 |
m->industries[i].cargo_waiting[0] = BSWAP16(m->industries[i].cargo_waiting[0]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1163 |
m->industries[i].cargo_waiting[1] = BSWAP16(m->industries[i].cargo_waiting[1]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1164 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1165 |
m->industries[i].last_mo_production[0] = BSWAP16(m->industries[i].last_mo_production[0]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1166 |
m->industries[i].last_mo_production[1] = BSWAP16(m->industries[i].last_mo_production[1]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1167 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1168 |
m->industries[i].last_mo_transported[0] = BSWAP16(m->industries[i].last_mo_transported[0]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1169 |
m->industries[i].last_mo_transported[1] = BSWAP16(m->industries[i].last_mo_transported[1]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1170 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1171 |
m->industries[i].total_production[0] = BSWAP16(m->industries[i].total_production[0]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1172 |
m->industries[i].total_production[1] = BSWAP16(m->industries[i].total_production[1]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1173 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1174 |
m->industries[i].total_transported[0] = BSWAP16(m->industries[i].total_transported[0]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1175 |
m->industries[i].total_transported[1] = BSWAP16(m->industries[i].total_transported[1]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1176 |
m->industries[i].counter = BSWAP16(m->industries[i].counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1177 |
m->industries[i].unk2E = BSWAP32(m->industries[i].unk2E); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1178 |
m->industries[i].unk32 = BSWAP32(m->industries[i].unk32); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1179 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1180 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1181 |
/* ----------- PLAYERS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1182 |
for (i = 0; i < 8; i++) { // OldPlayer players[8]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1183 |
int j, k; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1184 |
m->players[i].name_1 = BSWAP16(m->players[i].name_1); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1185 |
m->players[i].name_2 = BSWAP32(m->players[i].name_2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1186 |
m->players[i].face = BSWAP32(m->players[i].face); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1187 |
m->players[i].pres_name_1 = BSWAP16(m->players[i].pres_name_1); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1188 |
m->players[i].pres_name_2 = BSWAP32(m->players[i].pres_name_2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1189 |
m->players[i].money = BSWAP32(m->players[i].money); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1190 |
m->players[i].loan = BSWAP32(m->players[i].loan); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1191 |
m->players[i].bankrupt_value = BSWAP32(m->players[i].bankrupt_value); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1192 |
m->players[i].bankrupt_timeout = BSWAP16(m->players[i].bankrupt_timeout); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1193 |
m->players[i].cargo_types = BSWAP32(m->players[i].cargo_types); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1194 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1195 |
for (j = 0; j < 3; j++) { // OldPlayerExpenses expenses[3]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1196 |
for (k = 0; k < 13; k++) |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1197 |
m->players[i].expenses[j].cost[k] = BSWAP32(m->players[i].expenses[j].cost[k]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1198 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1199 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1200 |
for (j = 0; j < (24 + 1); j++) { // OldPlayerEconomy economy[24 + 1]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1201 |
m->players[i].economy->income = BSWAP32(m->players[i].economy->income); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1202 |
m->players[i].economy->expenses = BSWAP32(m->players[i].economy->expenses); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1203 |
m->players[i].economy->delivered_cargo = BSWAP32(m->players[i].economy->delivered_cargo); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1204 |
m->players[i].economy->performance_history = BSWAP32(m->players[i].economy->performance_history); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1205 |
m->players[i].economy->company_value = BSWAP32(m->players[i].economy->company_value); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1206 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1207 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1208 |
m->players[i].inaugurated_date = BSWAP16(m->players[i].inaugurated_date); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1209 |
m->players[i].last_build_coordinate = BSWAP16(m->players[i].last_build_coordinate); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1210 |
m->players[i].ai_state_counter = BSWAP16(m->players[i].ai_state_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1211 |
m->players[i].ai_timeout_counter = BSWAP16(m->players[i].ai_timeout_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1212 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1213 |
// OldAiBuildRec ai_src, ai_dst, ai_mid1, ai_mid2; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1214 |
m->players[i].ai_src.spec_tile = BSWAP16(m->players[i].ai_src.spec_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1215 |
m->players[i].ai_src.use_tile = BSWAP16(m->players[i].ai_src.use_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1216 |
m->players[i].ai_dst.spec_tile = BSWAP16(m->players[i].ai_dst.spec_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1217 |
m->players[i].ai_dst.use_tile = BSWAP16(m->players[i].ai_dst.use_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1218 |
m->players[i].ai_mid1.spec_tile = BSWAP16(m->players[i].ai_mid1.spec_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1219 |
m->players[i].ai_mid1.use_tile = BSWAP16(m->players[i].ai_mid1.use_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1220 |
m->players[i].ai_mid2.spec_tile = BSWAP16(m->players[i].ai_mid2.spec_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1221 |
m->players[i].ai_mid2.use_tile = BSWAP16(m->players[i].ai_mid2.use_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1222 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1223 |
m->players[i].ai_loco_id = BSWAP16(m->players[i].ai_loco_id); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1224 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1225 |
for (j = 0; j < 9; j++) |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1226 |
m->players[i].ai_wagonlist[j] = BSWAP16(m->players[i].ai_wagonlist[j]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1227 |
m->players[i].ai_start_tile_a = BSWAP16(m->players[i].ai_start_tile_a); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1228 |
m->players[i].ai_start_tile_b = BSWAP16(m->players[i].ai_start_tile_b); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1229 |
m->players[i].ai_cur_tile_a = BSWAP16(m->players[i].ai_cur_tile_a); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1230 |
m->players[i].ai_cur_tile_b = BSWAP16(m->players[i].ai_cur_tile_b); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1231 |
for (j = 0; j < 16; j++) // OldAiBannedTile banned_tiles[16]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1232 |
m->players[i].banned_tiles[j].tile= BSWAP16(m->players[i].banned_tiles[j].tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1233 |
m->players[i].location_of_house = BSWAP16(m->players[i].location_of_house); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1234 |
m->players[i].unk3AA = BSWAP32(m->players[i].unk3AA); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1235 |
m->players[i].unk3AE = BSWAP32(m->players[i].unk3AE); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1236 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1237 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1238 |
/* ----------- VEHICLES ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1239 |
for (i = 0; i < 850; i++) { // OldVehicle vehicles[850]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1240 |
m->vehicles[i].next_hash = BSWAP16(m->vehicles[i].next_hash); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1241 |
m->vehicles[i].index = BSWAP16(m->vehicles[i].index); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1242 |
m->vehicles[i].schedule_ptr = BSWAP32(m->vehicles[i].schedule_ptr); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1243 |
m->vehicles[i].dest_tile = BSWAP16(m->vehicles[i].dest_tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1244 |
m->vehicles[i].load_unload_time_rem = BSWAP16(m->vehicles[i].load_unload_time_rem); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1245 |
m->vehicles[i].date_of_last_service = BSWAP16(m->vehicles[i].date_of_last_service); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1246 |
m->vehicles[i].service_interval = BSWAP16(m->vehicles[i].service_interval); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1247 |
m->vehicles[i].max_speed = BSWAP16(m->vehicles[i].max_speed); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1248 |
m->vehicles[i].x_pos = BSWAP16(m->vehicles[i].x_pos); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1249 |
m->vehicles[i].y_pos = BSWAP16(m->vehicles[i].y_pos); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1250 |
m->vehicles[i].tile = BSWAP16(m->vehicles[i].tile); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1251 |
m->vehicles[i].cur_image = BSWAP16(m->vehicles[i].cur_image); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1252 |
m->vehicles[i].left_coord = BSWAP16(m->vehicles[i].left_coord); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1253 |
m->vehicles[i].right_coord = BSWAP16(m->vehicles[i].right_coord); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1254 |
m->vehicles[i].top_coord = BSWAP16(m->vehicles[i].top_coord); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1255 |
m->vehicles[i].bottom_coord = BSWAP16(m->vehicles[i].bottom_coord); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1256 |
m->vehicles[i].vehstatus = BSWAP16(m->vehicles[i].vehstatus); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1257 |
m->vehicles[i].cur_speed = BSWAP16(m->vehicles[i].cur_speed); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1258 |
m->vehicles[i].capacity = BSWAP16(m->vehicles[i].capacity); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1259 |
m->vehicles[i].number_of_pieces = BSWAP16(m->vehicles[i].number_of_pieces); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1260 |
m->vehicles[i].age_in_days = BSWAP16(m->vehicles[i].age_in_days); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1261 |
m->vehicles[i].max_age_in_days = BSWAP16(m->vehicles[i].max_age_in_days); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1262 |
m->vehicles[i].engine_type = BSWAP16(m->vehicles[i].engine_type); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1263 |
m->vehicles[i].reliability = BSWAP16(m->vehicles[i].reliability); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1264 |
m->vehicles[i].reliability_spd_dec = BSWAP16(m->vehicles[i].reliability_spd_dec); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1265 |
m->vehicles[i].profit_this_year = BSWAP32(m->vehicles[i].profit_this_year); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1266 |
m->vehicles[i].profit_last_year = BSWAP32(m->vehicles[i].profit_last_year); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1267 |
m->vehicles[i].next_in_chain = BSWAP16(m->vehicles[i].next_in_chain); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1268 |
m->vehicles[i].value = BSWAP32(m->vehicles[i].value); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1269 |
m->vehicles[i].string_id = BSWAP16(m->vehicles[i].string_id); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1270 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1271 |
// OldVehicleUnion u; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1272 |
switch (m->vehicles[i].type) { |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1273 |
case VEH_Train: |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1274 |
m->vehicles[i].u.rail.crash_anim_pos = BSWAP16(m->vehicles[i].u.rail.crash_anim_pos); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1275 |
break; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1276 |
case VEH_Aircraft: |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1277 |
m->vehicles[i].u.air.crashed_counter = BSWAP16(m->vehicles[i].u.air.crashed_counter); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1278 |
break; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1279 |
case VEH_Road: |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1280 |
m->vehicles[i].u.road.unk2 = BSWAP16(m->vehicles[i].u.road.unk2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1281 |
m->vehicles[i].u.road.crashed_ctr = BSWAP16(m->vehicles[i].u.road.crashed_ctr); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1282 |
break; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1283 |
case VEH_Special: |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1284 |
m->vehicles[i].u.special.unk0 = BSWAP16(m->vehicles[i].u.special.unk0); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1285 |
break; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1286 |
case VEH_Disaster: |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1287 |
m->vehicles[i].u.disaster.image_override = BSWAP16(m->vehicles[i].u.disaster.image_override); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1288 |
m->vehicles[i].u.disaster.unk2 = BSWAP16(m->vehicles[i].u.disaster.unk2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1289 |
break; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1290 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1291 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1292 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1293 |
/* ----------- SIGNS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1294 |
for (i = 0; i < 40; i++) { // OldSign signs[40]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1295 |
m->signs[i].text = BSWAP16(m->signs[i].text); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1296 |
m->signs[i].x = BSWAP16(m->signs[i].x); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1297 |
m->signs[i].y = BSWAP16(m->signs[i].y); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1298 |
m->signs[i].z = BSWAP16(m->signs[i].z); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1299 |
m->signs[i].sign_left = BSWAP16(m->signs[i].sign_left); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1300 |
m->signs[i].sign_top = BSWAP16(m->signs[i].sign_top); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1301 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1302 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1303 |
/* ----------- ENGINES ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1304 |
for (i = 0; i < 256; i++) { // OldEngine engines[256]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1305 |
m->engines[i].player_avail = BSWAP16(m->engines[i].player_avail); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1306 |
m->engines[i].intro_date = BSWAP16(m->engines[i].intro_date); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1307 |
m->engines[i].age = BSWAP16(m->engines[i].age); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1308 |
m->engines[i].reliability = BSWAP16(m->engines[i].reliability); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1309 |
m->engines[i].reliability_spd_dec = BSWAP16(m->engines[i].reliability_spd_dec); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1310 |
m->engines[i].reliability_start = BSWAP16(m->engines[i].reliability_start); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1311 |
m->engines[i].reliability_max = BSWAP16(m->engines[i].reliability_max); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1312 |
m->engines[i].reliability_final = BSWAP16(m->engines[i].reliability_final); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1313 |
m->engines[i].duration_phase_1 = BSWAP16(m->engines[i].duration_phase_1); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1314 |
m->engines[i].duration_phase_2 = BSWAP16(m->engines[i].duration_phase_2); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1315 |
m->engines[i].duration_phase_3 = BSWAP16(m->engines[i].duration_phase_3); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1316 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1317 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1318 |
m->vehicle_id_ctr_day = BSWAP16(m->vehicle_id_ctr_day); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1319 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1320 |
m->next_competitor_start = BSWAP16(m->next_competitor_start); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1321 |
m->saved_main_scrollpos_x = BSWAP16(m->saved_main_scrollpos_x); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1322 |
m->saved_main_scrollpos_y = BSWAP16(m->saved_main_scrollpos_y); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1323 |
m->saved_main_scrollpos_zoom = BSWAP16(m->saved_main_scrollpos_zoom); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1324 |
m->maximum_loan = BSWAP32(m->maximum_loan); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1325 |
m->maximum_loan_unround = BSWAP32(m->maximum_loan_unround); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1326 |
m->economy_fluct = BSWAP16(m->economy_fluct); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1327 |
m->disaster_delay = BSWAP16(m->disaster_delay); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1328 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1329 |
for (i = 0; i < 256; i++) // uint16 engine_name_strings[256]; |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1330 |
m->engine_name_strings[i] = BSWAP16(m->engine_name_strings[i]); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1331 |
|
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1332 |
/* ----------- GAME SETTINGS ----------- */ |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1333 |
m->game_diff.max_no_competitors = BSWAP16(m->game_diff.max_no_competitors); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1334 |
m->game_diff.competitor_start_time = BSWAP16(m->game_diff.competitor_start_time); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1335 |
m->game_diff.number_towns = BSWAP16(m->game_diff.number_towns); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1336 |
m->game_diff.number_industries = BSWAP16(m->game_diff.number_industries); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1337 |
m->game_diff.max_loan = BSWAP16(m->game_diff.max_loan); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1338 |
m->game_diff.initial_interest = BSWAP16(m->game_diff.initial_interest); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1339 |
m->game_diff.vehicle_costs = BSWAP16(m->game_diff.vehicle_costs); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1340 |
m->game_diff.competitor_speed = BSWAP16(m->game_diff.competitor_speed); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1341 |
m->game_diff.competitor_intelligence= BSWAP16(m->game_diff.competitor_intelligence); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1342 |
m->game_diff.vehicle_breakdowns = BSWAP16(m->game_diff.vehicle_breakdowns); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1343 |
m->game_diff.subsidy_multiplier = BSWAP16(m->game_diff.subsidy_multiplier); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1344 |
m->game_diff.construction_cost = BSWAP16(m->game_diff.construction_cost); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1345 |
m->game_diff.terrain_type = BSWAP16(m->game_diff.terrain_type); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1346 |
m->game_diff.quantity_sea_lakes = BSWAP16(m->game_diff.quantity_sea_lakes); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1347 |
m->game_diff.economy = BSWAP16(m->game_diff.economy); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1348 |
m->game_diff.line_reverse_mode = BSWAP16(m->game_diff.line_reverse_mode); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1349 |
m->game_diff.disasters = BSWAP16(m->game_diff.disasters); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1350 |
} |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1351 |
#endif |
0 | 1352 |
|
1353 |
// loader for old style savegames |
|
1354 |
bool LoadOldSaveGame(const char *file) |
|
1355 |
{ |
|
1356 |
LoadSavegameState lss; |
|
1357 |
OldMain *m; |
|
1358 |
int i; |
|
1359 |
||
1360 |
_cur_state = &lss; |
|
1361 |
memset(&lss, 0, sizeof(lss)); |
|
1362 |
||
1363 |
lss.fin = fopen(file, "rb"); |
|
1364 |
if (lss.fin == NULL) return false; |
|
1365 |
||
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1366 |
/* B - byte 8bit (1) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1367 |
* W - word 16bit (2 bytes) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1368 |
* L - 'long' word 32bit (4 bytes) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1369 |
*/ |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1370 |
fseek(lss.fin, 49, SEEK_SET); // 47B TITLE, W Checksum - Total 49 |
0 | 1371 |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1372 |
/* Load the file into memory |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1373 |
* Game Data 0x77179 + L4 (256x256) + L5 (256x256) |
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1374 |
*/ |
0 | 1375 |
m = (OldMain *)malloc(sizeof(OldMain)); |
1376 |
LoadSavegameBytes(m, sizeof(OldMain)); |
|
436
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1377 |
#ifdef TTD_BIG_ENDIAN |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1378 |
FixEndianness(m); |
6d8fb39a154f
(svn r645) -Feature: Finally support for TTDLX games on Big Endian machines such as Macintosh and MorphOS; thanks for testing Bjarni :)
darkvater
parents:
410
diff
changeset
|
1379 |
#endif |
0 | 1380 |
|
1381 |
// copy sections of it to our datastructures. |
|
1382 |
memcpy(_map_owner, m->map_owner, sizeof(_map_owner)); |
|
1383 |
memcpy(_map2, m->map2, sizeof(_map2)); |
|
1384 |
memcpy(_map_type_and_height, m->map_type_and_height, sizeof(_map_type_and_height)); |
|
1385 |
memcpy(_map5, m->map5, sizeof(_map5)); |
|
1386 |
for(i=0; i!=256*256; i++) { |
|
1387 |
_map3_lo[i] = m->map3[i] & 0xFF; |
|
1388 |
_map3_hi[i] = m->map3[i] >> 8; |
|
1389 |
} |
|
1390 |
memcpy(_map_extra_bits, m->map_extra, sizeof(_map_extra_bits)); |
|
1391 |
||
1392 |
// go through the tables and see if we can find any ttdpatch presignals. Then convert those to our format. |
|
1393 |
for(i=0; i!=256*256; i++) { |
|
1394 |
if (IS_TILETYPE(i, MP_RAILWAY) && (_map5[i] & 0xC0) == 0x40) { |
|
1395 |
// this byte is always zero in real ttd. |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
1396 |
if (_map3_hi[i]) { |
0 | 1397 |
// convert ttdpatch presignal format to openttd presignal format. |
1398 |
_map3_hi[i] = (_map3_hi[i] >> 1) & 7; |
|
1399 |
} |
|
1400 |
} |
|
1401 |
} |
|
1402 |
||
577 | 1403 |
for (i = 0; i < lengthof(m->order_list); ++i) |
1404 |
_order_array[i] = UnpackOldOrder(m->order_list[i]); |
|
0 | 1405 |
_ptr_to_next_order = _order_array + REMAP_ORDER_IDX(m->ptr_to_next_order); |
1406 |
||
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1407 |
FixTown(_towns, m->town_list, lengthof(m->town_list), m->town_name_type); |
0 | 1408 |
FixIndustry(_industries, m->industries, lengthof(m->industries)); |
1409 |
FixStation(_stations, m->stations, lengthof(m->stations)); |
|
1410 |
||
1411 |
FixDepot(_depots, m->depots, lengthof(m->depots)); |
|
1412 |
FixVehicle(_vehicles, m->vehicles, lengthof(m->vehicles)); |
|
1413 |
FixSubsidy(_subsidies, m->subsidies, lengthof(m->subsidies)); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
1414 |
|
4
cad62d5f9708
(svn r5) -Fix: townname generation of TTDLX savegames. All work
darkvater
parents:
0
diff
changeset
|
1415 |
FixPlayer(_players, m->players, lengthof(m->players), m->town_name_type); |
0 | 1416 |
FixName(m->names, lengthof(m->names)); |
1417 |
FixSign(_sign_list, m->signs, lengthof(m->signs)); |
|
1418 |
FixEngine(_engines, m->engines, lengthof(m->engines)); |
|
1419 |
||
1420 |
_opt.diff_level = m->difficulty_level; |
|
1421 |
_opt.currency = m->currency; |
|
1422 |
_opt.kilometers = m->use_kilometers; |
|
1423 |
_opt.town_name = m->town_name_type; |
|
392
3657d06c6564
(svn r584) -newgrf: Increase chance to get a TTDPatch savegame using custom GRF files loaded (pasky)
darkvater
parents:
206
diff
changeset
|
1424 |
_opt.landscape = m->landscape_type & 0xf; |
0 | 1425 |
_opt.snow_line = m->snow_line_height; |
1426 |
_opt.autosave = 0; |
|
1427 |
_opt.road_side = m->road_side; |
|
1428 |
FixGameDifficulty(&_opt.diff, &m->game_diff); |
|
1429 |
||
1430 |
// Load globals |
|
1431 |
_date = m->date; |
|
1432 |
_date_fract = m->date_fract; |
|
1433 |
_tick_counter = m->tick_counter; |
|
1434 |
_vehicle_id_ctr_day = m->vehicle_id_ctr_day; |
|
1435 |
_age_cargo_skip_counter = m->age_cargo_skip_counter; |
|
1436 |
_avail_aircraft = m->avail_aircraft; |
|
1437 |
_cur_tileloop_tile = m->cur_tileloop_tile; |
|
1438 |
_disaster_delay = m->disaster_delay; |
|
1439 |
_station_tick_ctr = m->station_tick_ctr; |
|
206 | 1440 |
_random_seeds[0][0] = m->seed_1; |
1441 |
_random_seeds[0][1] = m->seed_2; |
|
0 | 1442 |
_cur_town_ctr = REMAP_TOWN_IDX(m->cur_town_ptr); |
1443 |
_cur_player_tick_index = m->cur_player_tick_index; |
|
1444 |
_next_competitor_start = m->next_competitor_start; |
|
1445 |
_trees_tick_ctr = m->trees_tick_ctr; |
|
1446 |
_saved_scrollpos_x = m->saved_main_scrollpos_x; |
|
1447 |
_saved_scrollpos_y = m->saved_main_scrollpos_y; |
|
1448 |
_saved_scrollpos_zoom = m->saved_main_scrollpos_zoom; |
|
1449 |
||
1450 |
// Load economy stuff |
|
1451 |
_economy.max_loan = m->maximum_loan; |
|
1452 |
_economy.max_loan_unround = m->maximum_loan_unround; |
|
1453 |
_economy.fluct = m->economy_fluct; |
|
1454 |
_economy.interest_rate = m->interest_rate; |
|
1455 |
_economy.infl_amount = m->inflation_amount; |
|
1456 |
_economy.infl_amount_pr = m->inflation_amount_payment_rates; |
|
1457 |
||
1458 |
memcpy(_animated_tile_list, m->animated_tile_list, sizeof(m->animated_tile_list)); |
|
1459 |
memcpy(_engine_name_strings, m->engine_name_strings, sizeof(m->engine_name_strings)); |
|
1460 |
||
1461 |
for(i=0; i!=lengthof(m->prices); i++) { |
|
1462 |
((uint32*)&_price)[i] = m->prices[i].price; |
|
1463 |
_price_frac[i] = m->prices[i].frac; |
|
1464 |
} |
|
1465 |
||
1466 |
for(i=0; i!=lengthof(m->cargo_payment_rates); i++) { |
|
1467 |
_cargo_payment_rates[i] = -(int32)m->cargo_payment_rates[i].price; |
|
1468 |
_cargo_payment_rates_frac[i] = m->cargo_payment_rates[i].frac; |
|
1469 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
123
diff
changeset
|
1470 |
|
0 | 1471 |
free(m); |
1472 |
fclose(lss.fin); |
|
1473 |
return true; |
|
1474 |
} |
|
1475 |
||
1476 |
void GetOldSaveGameName(char *title, const char *file) |
|
1477 |
{ |
|
1478 |
FILE *f; |
|
1479 |
||
1480 |
f = fopen(file, "rb"); |
|
1481 |
title[0] = 0; |
|
1482 |
title[48] = 0; |
|
1483 |
||
1484 |
if (!f) return; |
|
1485 |
if (fread(title, 1, 48, f) != 48) title[0] = 0; |
|
1486 |
fclose(f); |
|
1487 |
} |
|
1488 |
||
1489 |
void GetOldScenarioGameName(char *title, const char *file) |
|
1490 |
{ |
|
1491 |
GetOldSaveGameName(title, file); |
|
1492 |
} |