aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/access/access.cpp21
-rw-r--r--engines/access/access.h24
-rw-r--r--engines/access/amazon/amazon_game.cpp8
-rw-r--r--engines/access/amazon/amazon_game.h15
-rw-r--r--engines/access/inventory.cpp4
-rw-r--r--engines/access/inventory.h2
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<int> _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<int> _inv;