diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index 7eee4bcb..cfc21870 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -3595,6 +3595,12 @@ BOOLEAN LoadStrategicAI( HWFILE hFile ) } if( ubSAIVersion < 19 ) { + if( !gGarrisonGroup ) /* Sergeant Kolja, 2007-02-20: loading an older Qicksave, I crashed with NULL gGarrisonGroup[] */ + { + gGarrisonGroup = (GARRISON_GROUP*)MemAlloc( sizeof( gOrigGarrisonGroup ) ); + Assert( gGarrisonGroup ); + memcpy( gGarrisonGroup, gOrigGarrisonGroup, sizeof( gOrigGarrisonGroup ) ); + } //Clear the garrison in C5 gArmyComp[ gGarrisonGroup[ SectorInfo[ SEC_C5 ].ubGarrisonID ].ubComposition ].bPriority = 0; gArmyComp[ gGarrisonGroup[ SectorInfo[ SEC_C5 ].ubGarrisonID ].ubComposition ].bDesiredPopulation = 0; diff --git a/Strategic/Strategic Pathing.cpp b/Strategic/Strategic Pathing.cpp index 82924cc9..3d141404 100644 --- a/Strategic/Strategic Pathing.cpp +++ b/Strategic/Strategic Pathing.cpp @@ -1890,7 +1890,18 @@ PathStPtr GetSoldierMercPathPtr( SOLDIERTYPE *pSoldier ) // IS a vehicle? else if( pSoldier->uiStatusFlags & SOLDIER_VEHICLE ) { - pMercPath = pVehicleList[ pSoldier->bVehicleID ].pMercPath; + /* Sergeant_Kolja, 2007-02-20: got an pVehicleList==NULL Exception on loading an older save here... not REALY fixed! */ + if( !pVehicleList ) /*bcause we have no vehicle list at all, we act as we are a person*/ + { + pSoldier->uiStatusFlags &= ~SOLDIER_VEHICLE; + pMercPath = pSoldier->pMercPath; + /* after all, create an empty Vehicle list */ + pVehicleList = (VEHICLETYPE *) MemAlloc( sizeof( VEHICLETYPE ) ); + memset( pVehicleList, 0, sizeof( VEHICLETYPE ) ); + pVehicleList->fValid = 0; + } + else + pMercPath = pVehicleList[ pSoldier->bVehicleID ].pMercPath; } else // a person {