diff options
author | peter1138 <peter1138@openttd.org> | 2006-01-04 20:18:39 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2006-01-04 20:18:39 +0000 |
commit | 28668bc30b1a1c9867bb88ec02cbbca499d099d5 (patch) | |
tree | 0023f060e36599542eb0542969bba61ff0e4a72e | |
parent | b6721d7e95167d483e54b069c994c0ba91333122 (diff) | |
download | openttd-28668bc30b1a1c9867bb88ec02cbbca499d099d5.tar.xz |
(svn r3362) Fix issue with loading old (TTD) savegames:
- move call to convert from old to new train subtypes.
- ensure AI is started for AI players.
-rw-r--r-- | oldloader.c | 5 | ||||
-rw-r--r-- | openttd.c | 4 | ||||
-rw-r--r-- | vehicle.c | 7 | ||||
-rw-r--r-- | vehicle.h | 1 |
4 files changed, 11 insertions, 6 deletions
diff --git a/oldloader.c b/oldloader.c index e25b6b9f1..95573c307 100644 --- a/oldloader.c +++ b/oldloader.c @@ -15,6 +15,8 @@ #include "signs.h" #include "debug.h" #include "depot.h" +#include "network.h" +#include "ai/ai.h" enum { HEADER_SIZE = 49, @@ -1065,6 +1067,9 @@ static bool LoadOldPlayer(LoadgameState *ls, int num) * to some harmless state, like 'loop vehicle'; 1 */ if (!IS_HUMAN_PLAYER(num) && p->ai.state == 20) p->ai.state = 1; + if (p->is_ai && (!_networking || _network_server) && _ai.enabled) + AI_StartNewAI(p->index); + return true; } @@ -1135,6 +1135,10 @@ bool AfterLoadGame(void) // Load the sprites GfxLoadSprites(); + /* Connect front and rear engines of multiheaded trains and converts + * subtype to the new format */ + if (CheckSavegameVersionOldStyle(17, 1)) ConvertOldMultiheadToNew(); + // Update current year SetDate(_date); @@ -2252,7 +2252,7 @@ static void Save_VEHS(void) * Converts all trains to the new subtype format introduced in savegame 16.2 * It also links multiheaded engines or make them forget they are multiheaded if no suitable partner is found */ -static inline void ConvertOldMultiheadToNew(void) +void ConvertOldMultiheadToNew(void) { Vehicle *v; FOR_ALL_VEHICLES(v) { @@ -2396,11 +2396,6 @@ static void Load_VEHS(void) } } } - - /* Connect front and rear engines of multiheaded trains and converts subtype to the new format */ - if (CheckSavegameVersionOldStyle(17, 1)) { - ConvertOldMultiheadToNew(); - } } const ChunkHandler _veh_chunk_handlers[] = { @@ -317,6 +317,7 @@ int32 GetTrainRunningCost(const Vehicle *v); int CheckTrainStoppedInDepot(const Vehicle *v); bool VehicleNeedsService(const Vehicle *v); +void ConvertOldMultiheadToNew(void); typedef struct GetNewVehiclePosResult { int x,y; |