diff --git a/SaveLoadGame.cpp b/SaveLoadGame.cpp index dfc2a89ff..487d80b9a 100644 --- a/SaveLoadGame.cpp +++ b/SaveLoadGame.cpp @@ -1450,6 +1450,10 @@ BOOLEAN LoadSavedGame( UINT8 ubSavedGameID ) //where it would be in a pre-load state. TrashWorld(); + // Lesh: To kill memory leaks during re-loading a saved game + // release strategic layer resources + ShutdownStrategicLayer(); + FreeGlobalMessageList(); //Deletes all the Temp files in the Maps\Temp directory InitTacticalSave( TRUE ); diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index 18f36b26c..7eee4bcbe 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -1483,11 +1483,13 @@ void KillStrategicAI() { MemFree( gPatrolGroup ); gPatrolGroup = NULL; + giPatrolArraySize = 0; } if( gGarrisonGroup ) { MemFree( gGarrisonGroup ); gGarrisonGroup = NULL; + giGarrisonArraySize = 0; } if( gubPatrolReinforcementsDenied ) {