changeset 9701:7e169185025f draft

(svn r13809) -Fix: memory leak each time a "new ai" got (re)started.
author rubidium <rubidium@openttd.org>
date Wed, 23 Jul 2008 20:42:13 +0000
parents 2dfd72441294
children ab8ad03c5ff9
files src/ai/ai.cpp
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/ai.cpp
+++ b/src/ai/ai.cpp
@@ -12,6 +12,7 @@
 #include "../player_base.h"
 #include "ai.h"
 #include "default/default.h"
+#include "trolly/trolly.h"
 #include "../signal_func.h"
 
 AIStruct _ai;
@@ -225,6 +226,13 @@
 {
 	/* Called if this AI died */
 	_ai_player[player].active = false;
+
+	if (_players_ainew[player].pathfinder == NULL) return;
+
+	AyStarMain_Free(_players_ainew[player].pathfinder);
+	delete _players_ainew[player].pathfinder;
+	_players_ainew[player].pathfinder = NULL;
+
 }
 
 /**
@@ -246,9 +254,5 @@
  */
 void AI_Uninitialize()
 {
-	const Player* p;
-
-	FOR_ALL_PLAYERS(p) {
-		if (p->is_ai) AI_PlayerDied(p->index);
-	}
+	for (PlayerID p = PLAYER_FIRST; p < MAX_PLAYERS; p++) AI_PlayerDied(p);
 }