From 127a0eeadd16719e212c19d7938158d75f51568e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 9 Aug 2014 18:28:33 -0400 Subject: ACCESS: Cleanup of Amazon game flags --- engines/access/access.cpp | 21 +++------------------ engines/access/access.h | 24 +++++++----------------- engines/access/amazon/amazon_game.cpp | 8 ++++++-- engines/access/amazon/amazon_game.h | 15 +++++++++++++++ engines/access/inventory.cpp | 4 ++-- engines/access/inventory.h | 2 -- 6 files changed, 33 insertions(+), 41 deletions(-) diff --git a/engines/access/access.cpp b/engines/access/access.cpp index ee524d7afe..122a8a0882 100644 --- a/engines/access/access.cpp +++ b/engines/access/access.cpp @@ -30,7 +30,8 @@ namespace Access { AccessEngine::AccessEngine(OSystem *syst, const AccessGameDescription *gameDesc) : - _gameDescription(gameDesc), Engine(syst), _randomSource("Access") { + _gameDescription(gameDesc), Engine(syst), _randomSource("Access"), + _useItem(_flags[100]), _startup(_flags[170]), _manScaleOff(_flags[172]) { _animation = nullptr; _debugger = nullptr; _events = nullptr; @@ -80,27 +81,11 @@ AccessEngine::AccessEngine(OSystem *syst, const AccessGameDescription *gameDesc) _intTim[3] = 0; _timer[3] = 0; _timerFlag = false; - Common::fill(&_flags[0], &_flags[99], 0); - Common::fill(&_useItem[0], &_useItem[23], 0); Common::fill(&_establishTable[0], &_establishTable[100], 0); + Common::fill(&_flags[0], &_flags[256], 0); _establishFlag = false; _establishMode = 0; _establishGroup = 0; - _guardLoc = 0; - _guardFind = 0; - _helpLevel = 0; - _jasMayaFlag = 0; - _moreHelp = 0; - _startup = 0; - _flashbackFlag = false; - _manScaleOff = 0; - _riverFlag = false; - _antOutFlag = false; - _badEnd = 0; - _noHints = false; - _antFlag = false; - _allenFlag = false; - _noSound = false; Common::fill(&_help1[0], &_help1[366], 0); Common::fill(&_help2[0], &_help2[366], 0); Common::fill(&_help1[0], &_help3[366], 0); diff --git a/engines/access/access.h b/engines/access/access.h index 0fa2c149cd..99bc201b07 100644 --- a/engines/access/access.h +++ b/engines/access/access.h @@ -164,23 +164,7 @@ public: int _intTim[3]; int _timer[3]; bool _timerFlag; - Common::Array _flags; - byte _useItem[23]; - int _guardLoc; - int _guardFind; - int _helpLevel; - int _jasMayaFlag; - int _moreHelp; - int _startup; - bool _flashbackFlag; - int _manScaleOff; - bool _riverFlag; - bool _antOutFlag; - int _badEnd; - bool _noHints; - bool _antFlag; - bool _allenFlag; - bool _noSound; + int _flags[256]; byte _help1[366]; byte _help2[366]; byte _help3[366]; @@ -195,6 +179,12 @@ public: int _rKeyFlag; int _mapOffset; int _screenVirtX; + + // Fields mapped into the flags array + int &_useItem; + int &_startup; + int &_manScaleOff; + public: AccessEngine(OSystem *syst, const AccessGameDescription *gameDesc); virtual ~AccessEngine(); diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp index 8267c8549a..9c516168de 100644 --- a/engines/access/amazon/amazon_game.cpp +++ b/engines/access/amazon/amazon_game.cpp @@ -31,7 +31,12 @@ namespace Access { namespace Amazon { AmazonEngine::AmazonEngine(OSystem *syst, const AccessGameDescription *gameDesc) : - AccessEngine(syst, gameDesc) { + AccessEngine(syst, gameDesc), + _guardLocation(_flags[122]), _guardFind(_flags[128]), _helpLevel(_flags[167]), + _jasMayaFlag(_flags[168]), _moreHelp(_flags[169]), _flashbackFlag(_flags[171]), + _riverFlag(_flags[185]), _aniOutFlag(_flags[195]), _badEnd(_flags[218]), + _noHints(_flags[219]), _aniFlag(_flags[229]), _allenFlag(_flags[237]), + _noSound(_flags[239]) { _skipStart = false; _canoeLane = 0; @@ -47,7 +52,6 @@ AmazonEngine::AmazonEngine(OSystem *syst, const AccessGameDescription *gameDesc) _rawInactiveY = 0; _inactiveYOff = 0; Common::fill(&_esTabTable[0], &_esTabTable[100], 0); - _flags.resize(122); } AmazonEngine::~AmazonEngine() { diff --git a/engines/access/amazon/amazon_game.h b/engines/access/amazon/amazon_game.h index b998b1de83..c927ad90d7 100644 --- a/engines/access/amazon/amazon_game.h +++ b/engines/access/amazon/amazon_game.h @@ -48,6 +48,21 @@ private: int _inactiveYOff; int _esTabTable[100]; + // Fields that are mapped to flags + int &_guardLocation; + int &_guardFind; + int &_helpLevel; + int &_jasMayaFlag; + int &_moreHelp; + int &_flashbackFlag; + int &_riverFlag; + int &_aniOutFlag; + int &_badEnd; + int &_noHints; + int &_aniFlag; + int &_allenFlag; + int &_noSound; + /** * Do the game introduction */ diff --git a/engines/access/inventory.cpp b/engines/access/inventory.cpp index b36c5346a5..5d2957bd30 100644 --- a/engines/access/inventory.cpp +++ b/engines/access/inventory.cpp @@ -51,11 +51,11 @@ int &InventoryManager::operator[](int idx) { } int InventoryManager::useItem() { - return _vm->_flags[USE_ITEM_FLAG_INDEX]; + return _vm->_useItem; } void InventoryManager::setUseItem(int itemId) { - _vm->_flags[USE_ITEM_FLAG_INDEX] = itemId; + _vm->_useItem = itemId; } } // End of namespace Access diff --git a/engines/access/inventory.h b/engines/access/inventory.h index 2f1248e8b2..1f229dd8ee 100644 --- a/engines/access/inventory.h +++ b/engines/access/inventory.h @@ -31,8 +31,6 @@ namespace Access { -#define USE_ITEM_FLAG_INDEX 100 - class InventoryManager : public Manager { public: Common::Array _inv; -- cgit v1.2.3