From 3297ac354430bb6d34247edd76a393dace21c9e4 Mon Sep 17 00:00:00 2001 From: ehofman Date: Fri, 28 Nov 2003 20:05:32 +0000 Subject: [PATCH] Some small updates --- src/AIModel/AIBase.cxx | 1 + src/AIModel/AIManager.cxx | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/AIModel/AIBase.cxx b/src/AIModel/AIBase.cxx index 7c476180f..11b17dc41 100644 --- a/src/AIModel/AIBase.cxx +++ b/src/AIModel/AIBase.cxx @@ -63,6 +63,7 @@ bool FGAIBase::init() { } tgt_roll = tgt_pitch = tgt_yaw = tgt_vs = vs = roll = pitch = 0.0; + setDie(false); } diff --git a/src/AIModel/AIManager.cxx b/src/AIModel/AIManager.cxx index 2d68fc3d9..08c215aa7 100644 --- a/src/AIModel/AIManager.cxx +++ b/src/AIModel/AIManager.cxx @@ -37,7 +37,12 @@ FGAIManager::FGAIManager() { } FGAIManager::~FGAIManager() { - ai_list.clear(); + ai_list_itr = ai_list.begin(); + while(ai_list_itr != ai_list.end()) { + delete (*ai_list_itr); + ++ai_list_itr; + } + ai_list.clear(); } void FGAIManager::init() { @@ -115,13 +120,15 @@ void FGAIManager::update(double dt) { } #endif - ai_list_itr = ai_list.begin(); - while(ai_list_itr != ai_list.end()) { + ai_list_itr = ai_list.begin(); + while(ai_list_itr != ai_list.end()) { if ((*ai_list_itr)->getDie()) { + // FIXME: delete object itself before removing it from the list. + // delete (*ai_list_itr); ai_list.erase(ai_list_itr, ai_list_itr); } else { - (*ai_list_itr)->update(dt); - } + (*ai_list_itr)->update(dt); + } ++ai_list_itr; - } + } } -- 2.39.2