diff options
-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; |