diff --git a/engines/hdb/ai-init.cpp b/engines/hdb/ai-init.cpp index cc5bd9490b6..c15f5a17d52 100644 --- a/engines/hdb/ai-init.cpp +++ b/engines/hdb/ai-init.cpp @@ -670,6 +670,7 @@ AI::AI() { _ents = new Common::Array; _floats = new Common::Array; _animTargets = new Common::Array; + _arrowPaths = new Common::Array; // REMOVE: Remove for final. Used here due to lack of a MENU _numGems = _numGooCups = _numMonkeystones = _numInventory = 0; @@ -682,6 +683,7 @@ AI::~AI() { delete _ents; delete _floats; delete _animTargets; + delete _arrowPaths; } bool AI::init() { @@ -832,6 +834,12 @@ void AI::restartSystem() { // Clear the Entity List _ents->clear(); + // Clear Anim Targets List + _animTargets->clear(); + + // Clear ArrowPath List + _arrowPaths->clear(); + // Clear Cinematic System _cineActive = _cameraLock = _playerLock = _cineAborted = false; diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h index 9c49e3e14d5..fec57834a63 100644 --- a/engines/hdb/ai.h +++ b/engines/hdb/ai.h @@ -583,6 +583,14 @@ struct AutoAction { AutoAction() : x(0), y(0), activated(false), luaFuncInit(""), luaFuncUse(""), entityName("") {} }; +struct ArrowPath { + uint16 type; + AIDir dir; + uint16 tileX, tileY; + + ArrowPath() : type(0), dir(DIR_NONE), tileX(0), tileY(0) {} +}; + struct CineCommand { CineType cmdType; double x, y; @@ -937,6 +945,8 @@ public: AutoAction _autoActions[kMaxAutoActions]; + Common::Array *_arrowPaths; + // Virtual Player AIEntity _dummyPlayer;