From 7fbd145f5db82c002a213f57de8839c4decdc427 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 23 Nov 2014 14:57:37 +0100 Subject: ACCESS: Use a new structure instead of a byte array for River Objects --- engines/access/amazon/amazon_game.cpp | 7 +- engines/access/amazon/amazon_game.h | 4 +- engines/access/amazon/amazon_resources.cpp | 347 ++++++++++++++--------------- engines/access/amazon/amazon_resources.h | 23 +- 4 files changed, 185 insertions(+), 196 deletions(-) diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp index 396ba42148..def64f2f88 100644 --- a/engines/access/amazon/amazon_game.cpp +++ b/engines/access/amazon/amazon_game.cpp @@ -48,8 +48,8 @@ AmazonEngine::AmazonEngine(OSystem *syst, const AccessGameDescription *gameDesc) _hitSafe = 0; _oldTitleChapter = _chapter = 0; _updateChapter = -1; - _topList = 0; - _botList = 0; + _topList = nullptr; + _botList = nullptr; _riverIndex = 0; _rawInactiveX = 0; _rawInactiveY = 0; @@ -784,7 +784,7 @@ void AmazonEngine::synchronize(Common::Serializer &s) { s.syncAsSint16LE(_hitSafe); s.syncAsSint16LE(_chapter); s.syncAsSint16LE(dummy); - s.syncAsSint16LE(_botList); + s.syncAsSint16LE(dummy); s.syncAsSint16LE(_riverIndex); s.syncAsSint16LE(_rawInactiveX); s.syncAsSint16LE(_rawInactiveY); @@ -793,6 +793,7 @@ void AmazonEngine::synchronize(Common::Serializer &s) { s.syncAsSint16LE(_esTabTable[i]); warning("TODO: s.syncAsSint16LE(_topList);"); + warning("TODO: s.syncAsSint16LE(_botList);"); } /*------------------------------------------------------------------------*/ diff --git a/engines/access/amazon/amazon_game.h b/engines/access/amazon/amazon_game.h index 911ec55412..3b8b98101e 100644 --- a/engines/access/amazon/amazon_game.h +++ b/engines/access/amazon/amazon_game.h @@ -55,7 +55,6 @@ public: class AmazonEngine : public AccessEngine { private: // Fields that are included in savegames - int _botList; int _esTabTable[100]; // Other fields @@ -105,7 +104,8 @@ public: int _canoeLane; int _canoeYPos; int _hitCount; - const byte *_topList; + const RiverStruct *_topList; + const RiverStruct *_botList; int _riverIndex; int _saveRiver; int _canoeDir; diff --git a/engines/access/amazon/amazon_resources.cpp b/engines/access/amazon/amazon_resources.cpp index ead6410bec..192af2c9b6 100644 --- a/engines/access/amazon/amazon_resources.cpp +++ b/engines/access/amazon/amazon_resources.cpp @@ -1557,190 +1557,169 @@ const byte MAP2[32] = { const byte *MAPTBL[3] = {MAP0, MAP1, MAP2}; -const byte RIVER0OBJECTS[450] = { - 16, 31, 0, 0, 25, 0, 0, 4, 12, - 0, 16, 31, 0, 56, 24, 0, 0, 2, - 12, 0, 17, 30, 0, 212, 23, 0, 0, - 3, 15, 0, 16, 31, 0, 82, 23, 0, - 0, 7, 12, 0, 17, 30, 0, 22, 23, - 0, 0, 5, 15, 0, 17, 30, 0, 98, - 22, 0, 0, 3, 15, 0, 16, 31, 0, - 68, 22, 0, 0, 7, 12, 0, 255, 58, - 1, 16, 21, 0, 0, 4, 0, 0, 17, - 30, 0, 35, 20, 0, 0, 1, 15, 0, - 16, 31, 0, 30, 20, 0, 0, 5, 12, - 0, 16, 31, 0, 192, 19, 0, 0, 7, - 12, 0, 17, 30, 0, 36, 19, 0, 0, - 2, 15, 0, 17, 30, 0, 177, 18, 0, - 0, 7, 15, 0, 16, 31, 0, 82, 18, - 0, 0, 4, 12, 0, 16, 31, 0, 52, - 18, 0, 0, 1, 12, 0, 17, 30, 0, - 208, 17, 0, 0, 5, 15, 0, 16, 31, - 0, 113, 17, 0, 0, 2, 12, 0, 255, - 58, 1, 16, 16, 0, 0, 4, 0, 0, - 17, 30, 0, 165, 15, 0, 0, 3, 15, - 0, 16, 31, 0, 25, 15, 0, 0, 6, - 12, 0, 17, 30, 0, 21, 14, 0, 0, - 4, 15, 0, 16, 31, 0, 32, 13, 0, - 0, 1, 12, 0, 17, 30, 0, 33, 12, - 0, 0, 0, 15, 0, 16, 31, 0, 8, - 12, 0, 0, 7, 12, 0, 17, 30, 0, - 198, 11, 0, 0, 4, 15, 0, 16, 31, - 0, 176, 11, 0, 0, 3, 12, 0, 16, - 31, 0, 160, 11, 0, 0, 2, 12, 0, - 17, 30, 0, 64, 11, 0, 0, 7, 15, - 0, 17, 30, 0, 44, 11, 0, 0, 0, - 15, 0, 255, 58, 1, 208, 9, 0, 0, - 4, 0, 0, 17, 30, 0, 222, 8, 0, - 0, 4, 15, 0, 16, 31, 0, 147, 8, - 0, 0, 6, 12, 0, 17, 30, 0, 32, - 7, 0, 0, 1, 15, 0, 16, 31, 0, - 240, 6, 0, 0, 4, 12, 0, 17, 30, - 0, 114, 6, 0, 0, 3, 15, 0, 16, - 31, 0, 80, 6, 0, 0, 7, 12, 0, - 17, 30, 0, 49, 6, 0, 0, 2, 15, - 0, 255, 58, 1, 208, 4, 0, 0, 4, - 0, 0, 17, 30, 0, 166, 4, 0, 0, - 2, 15, 0, 16, 31, 0, 96, 4, 0, - 0, 4, 12, 0, 17, 30, 0, 202, 3, - 0, 0, 7, 15, 0, 16, 31, 0, 142, - 3, 0, 0, 5, 12, 0, 17, 30, 0, - 193, 2, 0, 0, 0, 15, 0, 16, 31, - 0, 38, 2, 0, 0, 4, 12, 0, 17, - 30, 0, 49, 1, 0, 0, 2, 15, 0 -}; - -const byte ENDRIVER0[10] = {16, 31, 0, 4, 1, 0, 0, 7, 12, 0}; - -const byte RIVER1OBJECTS[490] = { - 16, 31, 0, 8, 27, 0, 0, 1, 12, - 0, 16, 31, 0, 84, 26, 0, 0, 4, - 12, 0, 17, 30, 0, 43, 26, 0, 0, - 1, 15, 0, 16, 31, 0, 210, 25, 0, - 0, 2, 12, 0, 17, 30, 0, 95, 25, - 0, 0, 6, 15, 0, 17, 30, 0, 241, - 24, 0, 0, 4, 15, 0, 16, 31, 0, - 206, 24, 0, 0, 1, 12, 0, 17, 30, - 0, 36, 24, 0, 0, 0, 15, 0, 255, - 58, 1, 144, 23, 0, 0, 4, 0, 0, - 16, 31, 0, 168, 22, 0, 0, 3, 12, - 0, 17, 30, 0, 158, 22, 0, 0, 6, - 15, 0, 16, 31, 0, 154, 21, 0, 0, - 4, 12, 0, 16, 31, 0, 124, 21, 0, - 0, 7, 12, 0, 17, 30, 0, 119, 21, - 0, 0, 1, 15, 0, 17, 30, 0, 0, - 21, 0, 0, 0, 15, 0, 16, 31, 0, - 208, 20, 0, 0, 7, 12, 0, 17, 30, - 0, 128, 20, 0, 0, 2, 15, 0, 16, - 31, 0, 128, 20, 0, 0, 6, 12, 0, - 255, 58, 1, 144, 18, 0, 0, 4, 0, - 0, 17, 30, 0, 80, 17, 0, 0, 2, - 15, 0, 16, 31, 0, 80, 17, 0, 0, - 7, 12, 0, 16, 31, 0, 32, 17, 0, - 0, 2, 12, 0, 17, 30, 0, 16, 17, - 0, 0, 5, 15, 0, 16, 31, 0, 240, - 16, 0, 0, 4, 12, 0, 17, 30, 0, - 89, 16, 0, 0, 1, 15, 0, 16, 31, - 0, 29, 16, 0, 0, 3, 12, 0, 17, - 30, 0, 233, 14, 0, 0, 7, 15, 0, - 16, 31, 0, 28, 14, 0, 0, 4, 12, - 0, 16, 31, 0, 32, 13, 0, 0, 5, - 12, 0, 16, 31, 0, 193, 12, 0, 0, - 7, 12, 0, 17, 30, 0, 128, 12, 0, - 0, 1, 15, 0, 17, 30, 0, 240, 11, - 0, 0, 6, 15, 0, 255, 58, 1, 16, - 11, 0, 0, 4, 0, 0, 16, 31, 0, - 180, 10, 0, 0, 3, 12, 0, 17, 30, - 0, 134, 10, 0, 0, 6, 15, 0, 16, - 31, 0, 151, 9, 0, 0, 0, 12, 0, - 17, 30, 0, 237, 8, 0, 0, 5, 15, - 0, 16, 31, 0, 212, 8, 0, 0, 2, - 12, 0, 16, 31, 0, 112, 7, 0, 0, - 5, 12, 0, 17, 30, 0, 16, 7, 0, - 0, 1, 15, 0, 16, 31, 0, 208, 6, - 0, 0, 7, 12, 0, 17, 30, 0, 160, - 6, 0, 0, 4, 15, 0, 16, 31, 0, - 32, 6, 0, 0, 2, 12, 0, 255, 58, - 1, 208, 4, 0, 0, 4, 0, 0, 17, - 30, 0, 202, 3, 0, 0, 4, 15, 0, - 16, 31, 0, 142, 3, 0, 0, 7, 12, - 0, 17, 30, 0, 193, 2, 0, 0, 0, - 15, 0, 16, 31, 0, 38, 2, 0, 0, - 6, 12, 0, 17, 30, 0, 49, 1, 0, - 0, 3, 15, 0 -}; - -const byte ENDRIVER1[10] = { - 16, 31, 0, 4, 1, 0, 0, 1, 12, 0 -}; - -const byte RIVER2OBJECTS[530] = { - 16, 31, 0, 38, 32, 0, 0, 6, 12, - 0, 16, 31, 0, 179, 31, 0, 0, 7, - 12, 0, 17, 30, 0, 19, 31, 0, 0, - 4, 15, 0, 16, 31, 0, 210, 30, 0, - 0, 0, 12, 0, 16, 31, 0, 192, 29, - 0, 0, 2, 12, 0, 17, 30, 0, 48, - 29, 0, 0, 5, 15, 0, 16, 31, 0, - 1, 29, 0, 0, 4, 12, 0, 17, 30, - 0, 192, 28, 0, 0, 1, 15, 0, 16, - 31, 0, 160, 28, 0, 0, 6, 12, 0, - 255, 58, 1, 80, 27, 0, 0, 4, 0, - 0, 16, 31, 0, 64, 26, 0, 0, 3, - 12, 0, 17, 30, 0, 44, 26, 0, 0, - 6, 15, 0, 16, 31, 0, 118, 25, 0, - 0, 2, 12, 0, 17, 30, 0, 81, 24, - 0, 0, 5, 15, 0, 16, 31, 0, 56, - 24, 0, 0, 2, 12, 0, 17, 30, 0, - 102, 23, 0, 0, 1, 15, 0, 16, 31, - 0, 72, 23, 0, 0, 7, 12, 0, 16, - 31, 0, 68, 22, 0, 0, 2, 12, 0, - 17, 30, 0, 18, 22, 0, 0, 4, 15, - 0, 16, 31, 0, 192, 21, 0, 0, 5, - 12, 0, 17, 30, 0, 112, 21, 0, 0, - 6, 15, 0, 255, 58, 1, 208, 19, 0, - 0, 4, 0, 0, 17, 30, 0, 217, 18, - 0, 0, 4, 15, 0, 16, 31, 0, 174, - 18, 0, 0, 2, 12, 0, 17, 30, 0, - 52, 18, 0, 0, 5, 15, 0, 16, 31, - 0, 158, 17, 0, 0, 7, 12, 0, 16, - 31, 0, 143, 17, 0, 0, 1, 12, 0, - 17, 30, 0, 154, 16, 0, 0, 2, 15, - 0, 16, 31, 0, 99, 16, 0, 0, 4, - 12, 0, 255, 58, 1, 208, 14, 0, 0, - 4, 0, 0, 17, 30, 0, 16, 14, 0, - 0, 3, 15, 0, 16, 31, 0, 142, 13, - 0, 0, 5, 12, 0, 16, 31, 0, 94, - 13, 0, 0, 2, 12, 0, 17, 30, 0, - 98, 12, 0, 0, 6, 15, 0, 16, 31, - 0, 144, 11, 0, 0, 4, 12, 0, 17, - 30, 0, 139, 11, 0, 0, 7, 15, 0, - 255, 58, 1, 208, 9, 0, 0, 4, 0, - 0, 17, 30, 0, 111, 9, 0, 0, 1, - 15, 0, 16, 31, 0, 14, 9, 0, 0, - 0, 12, 0, 17, 30, 0, 227, 8, 0, - 0, 2, 15, 0, 16, 31, 0, 222, 8, - 0, 0, 6, 12, 0, 17, 30, 0, 234, - 7, 0, 0, 3, 15, 0, 16, 31, 0, - 208, 7, 0, 0, 0, 12, 0, 16, 31, - 0, 48, 7, 0, 0, 3, 12, 0, 17, - 30, 0, 3, 7, 0, 0, 7, 15, 0, - 16, 31, 0, 98, 6, 0, 0, 5, 12, - 0, 17, 30, 0, 94, 6, 0, 0, 1, - 15, 0, 255, 58, 1, 208, 4, 0, 0, - 4, 0, 0, 17, 30, 0, 202, 3, 0, - 0, 2, 15, 0, 16, 31, 0, 142, 3, - 0, 0, 5, 12, 0, 17, 30, 0, 193, - 2, 0, 0, 0, 15, 0, 16, 31, 0, - 38, 2, 0, 0, 4, 12, 0, 17, 30, - 0, 49, 1, 0, 0, 3, 15, 0 -}; - -const byte ENDRIVER2[10] = { - 16, 31, 0, 4, 1, 0, 0, 6, 12, 0 -}; - -const byte *RIVEROBJECTTBL[6] = { +const RiverStruct RIVER0OBJECTS[45] = { + {16, 31, 6400, 0, 4, 12}, + {16, 31, 6200, 0, 2, 12}, + {17, 30, 6100, 0, 3, 15}, + {16, 31, 5970, 0, 7, 12}, + {17, 30, 5910, 0, 5, 15}, + {17, 30, 5730, 0, 3, 15}, + {16, 31, 5700, 0, 7, 12}, + {-1, 314, 5392, 0, 4, 0}, + {17, 30, 5155, 0, 1, 15}, + {16, 31, 5150, 0, 5, 12}, + {16, 31, 5056, 0, 7, 12}, + {17, 30, 4900, 0, 2, 15}, + {17, 30, 4785, 0, 7, 15}, + {16, 31, 4690, 0, 4, 12}, + {16, 31, 4660, 0, 1, 12}, + {17, 30, 4560, 0, 5, 15}, + {16, 31, 4465, 0, 2, 12}, + {-1, 314, 4112, 0, 4, 0}, + {17, 30, 4005, 0, 3, 15}, + {16, 31, 3865, 0, 6, 12}, + {17, 30, 3605, 0, 4, 15}, + {16, 31, 3360, 0, 1, 12}, + {17, 30, 3105, 0, 0, 15}, + {16, 31, 3080, 0, 7, 12}, + {17, 30, 3014, 0, 4, 15}, + {16, 31, 2992, 0, 3, 12}, + {16, 31, 2976, 0, 2, 12}, + {17, 30, 2880, 0, 7, 15}, + {17, 30, 2860, 0, 0, 15}, + {-1, 314, 2512, 0, 4, 0}, + {17, 30, 2270, 0, 4, 15}, + {16, 31, 2195, 0, 6, 12}, + {17, 30, 1824, 0, 1, 15}, + {16, 31, 1776, 0, 4, 12}, + {17, 30, 1650, 0, 3, 15}, + {16, 31, 1616, 0, 7, 12}, + {17, 30, 1585, 0, 2, 15}, + {-1, 314, 1232, 0, 4, 0}, + {17, 30, 1190, 0, 2, 15}, + {16, 31, 1120, 0, 4, 12}, + {17, 30, 970, 0, 7, 15}, + {16, 31, 910, 0, 5, 12}, + {17, 30, 705, 0, 0, 15}, + {16, 31, 550, 0, 4, 12}, + {17, 30, 305, 0, 2, 15} +}; + +const RiverStruct ENDRIVER0[1] = {16, 31, 260, 0, 7, 12}; + +const RiverStruct RIVER1OBJECTS[49] = { + {16, 31, 6920, 0, 1, 12}, + {16, 31, 6740, 0, 4, 12}, + {17, 30, 6699, 0, 1, 15}, + {16, 31, 6610, 0, 2, 12}, + {17, 30, 6495, 0, 6, 15}, + {17, 30, 6385, 0, 4, 15}, + {16, 31, 6350, 0, 1, 12}, + {17, 30, 6180, 0, 0, 15}, + {-1, 314, 6032, 0, 4, 0}, + {16, 31, 5800, 0, 3, 12}, + {17, 30, 5790, 0, 6, 15}, + {16, 31, 5530, 0, 4, 12}, + {16, 31, 5500, 0, 7, 12}, + {17, 30, 5495, 0, 1, 15}, + {17, 30, 5376, 0, 0, 15}, + {16, 31, 5328, 0, 7, 12}, + {17, 30, 5248, 0, 2, 15}, + {16, 31, 5248, 0, 6, 12}, + {-1, 314, 4752, 0, 4, 0}, + {17, 30, 4432, 0, 2, 15}, + {16, 31, 4432, 0, 7, 12}, + {16, 31, 4384, 0, 2, 12}, + {17, 30, 4368, 0, 5, 15}, + {16, 31, 4336, 0, 4, 12}, + {17, 30, 4185, 0, 1, 15}, + {16, 31, 4125, 0, 3, 12}, + {17, 30, 3817, 0, 7, 15}, + {16, 31, 3612, 0, 4, 12}, + {16, 31, 3360, 0, 5, 12}, + {16, 31, 3265, 0, 7, 12}, + {17, 30, 3200, 0, 1, 15}, + {17, 30, 3056, 0, 6, 15}, + {-1, 314, 2832, 0, 4, 0}, + {16, 31, 2740, 0, 3, 12}, + {17, 30, 2694, 0, 6, 15}, + {16, 31, 2455, 0, 0, 12}, + {17, 30, 2285, 0, 5, 15}, + {16, 31, 2260, 0, 2, 12}, + {16, 31, 1904, 0, 5, 12}, + {17, 30, 1808, 0, 1, 15}, + {16, 31, 1744, 0, 7, 12}, + {17, 30, 1696, 0, 4, 15}, + {16, 31, 1568, 0, 2, 12}, + {-1, 314, 1232, 0, 4, 0}, + {17, 30, 970, 0, 4, 15}, + {16, 31, 910, 0, 7, 12}, + {17, 30, 705, 0, 0, 15}, + {16, 31, 550, 0, 6, 12}, + {17, 30, 305, 0, 3, 15} +}; + +const RiverStruct ENDRIVER1[1] = {16, 31, 260, 0, 1, 12}; + +const RiverStruct RIVER2OBJECTS[53] = { + {16, 31, 8230, 0, 6, 12}, + {16, 31, 8115, 0, 7, 12}, + {17, 30, 7955, 0, 4, 15}, + {16, 31, 7890, 0, 0, 12}, + {16, 31, 7616, 0, 2, 12}, + {17, 30, 7472, 0, 5, 15}, + {16, 31, 7425, 0, 4, 12}, + {17, 30, 7360, 0, 1, 15}, + {16, 31, 7328, 0, 6, 12}, + {-1, 314, 6992, 0, 4, 0}, + {16, 31, 6720, 0, 3, 12}, + {17, 30, 6700, 0, 6, 15}, + {16, 31, 6518, 0, 2, 12}, + {17, 30, 6225, 0, 5, 15}, + {16, 31, 6200, 0, 2, 12}, + {17, 30, 5990, 0, 1, 15}, + {16, 31, 5960, 0, 7, 12}, + {16, 31, 5700, 0, 2, 12}, + {17, 30, 5650, 0, 4, 15}, + {16, 31, 5568, 0, 5, 12}, + {17, 30, 5488, 0, 6, 15}, + {-1, 314, 5072, 0, 4, 0}, + {17, 30, 4825, 0, 4, 15}, + {16, 31, 4782, 0, 2, 12}, + {17, 30, 4660, 0, 5, 15}, + {16, 31, 4510, 0, 7, 12}, + {16, 31, 4495, 0, 1, 12}, + {17, 30, 4250, 0, 2, 15}, + {16, 31, 4195, 0, 4, 12}, + {-1, 314, 3792, 0, 4, 0}, + {17, 30, 3600, 0, 3, 15}, + {16, 31, 3470, 0, 5, 12}, + {16, 31, 3422, 0, 2, 12}, + {17, 30, 3170, 0, 6, 15}, + {16, 31, 2960, 0, 4, 12}, + {17, 30, 2955, 0, 7, 15}, + {-1, 314, 2512, 0, 4, 0}, + {17, 30, 2415, 0, 1, 15}, + {16, 31, 2318, 0, 0, 12}, + {17, 30, 2275, 0, 2, 15}, + {16, 31, 2270, 0, 6, 12}, + {17, 30, 2026, 0, 3, 15}, + {16, 31, 2000, 0, 0, 12}, + {16, 31, 1840, 0, 3, 12}, + {17, 30, 1795, 0, 7, 15}, + {16, 31, 1634, 0, 5, 12}, + {17, 30, 1630, 0, 1, 15}, + {-1, 314, 1232, 0, 4, 0}, + {17, 30, 970, 0, 2, 15}, + {16, 31, 910, 0, 5, 12}, + {17, 30, 705, 0, 0, 15}, + {16, 31, 550, 0, 4, 12}, + {17, 30, 305, 0, 3, 15} +}; + +const RiverStruct ENDRIVER2[1] = {16, 31, 260, 0, 6, 12}; + +const RiverStruct *RIVEROBJECTTBL[6] = { RIVER0OBJECTS, ENDRIVER0, RIVER1OBJECTS, ENDRIVER1, RIVER2OBJECTS, ENDRIVER2 }; diff --git a/engines/access/amazon/amazon_resources.h b/engines/access/amazon/amazon_resources.h index b29bdab2c3..ec412766bc 100644 --- a/engines/access/amazon/amazon_resources.h +++ b/engines/access/amazon/amazon_resources.h @@ -29,6 +29,15 @@ namespace Access { namespace Amazon { +struct RiverStruct { + int _id; + int _field1; + int _field3; + int _field5; + int _lane; + int _field8; +}; + extern const char *const FILENAMES[]; extern const byte *CURSORS[10]; @@ -90,14 +99,14 @@ extern const byte MAP2[32]; extern const byte *MAPTBL[3]; -extern const byte RIVER0OBJECTS[450]; -extern const byte ENDRIVER0[10]; -extern const byte RIVER1OBJECTS[490]; -extern const byte ENDRIVER1[10]; -extern const byte RIVER2OBJECTS[530]; -extern const byte ENDRIVER2[10]; +extern const RiverStruct RIVER0OBJECTS[45]; +extern const RiverStruct ENDRIVER0[1]; +extern const RiverStruct RIVER1OBJECTS[49]; +extern const RiverStruct ENDRIVER1[1]; +extern const RiverStruct RIVER2OBJECTS[53]; +extern const RiverStruct ENDRIVER2[1]; -extern const byte *RIVEROBJECTTBL[6]; +extern const RiverStruct *RIVEROBJECTTBL[6]; } // End of namespace Amazon -- cgit v1.2.3