Skip to content

Commit

Permalink
ACCESS: Use a new structure instead of a byte array for River Objects
Browse files Browse the repository at this point in the history
  • Loading branch information
Strangerke authored and dreammaster committed Dec 13, 2014
1 parent c1b3db9 commit 7fbd145
Show file tree
Hide file tree
Showing 4 changed files with 185 additions and 196 deletions.
7 changes: 4 additions & 3 deletions engines/access/amazon/amazon_game.cpp
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -793,6 +793,7 @@ void AmazonEngine::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_esTabTable[i]);

warning("TODO: s.syncAsSint16LE(_topList);");
warning("TODO: s.syncAsSint16LE(_botList);");
}

/*------------------------------------------------------------------------*/
Expand Down
4 changes: 2 additions & 2 deletions engines/access/amazon/amazon_game.h
Expand Up @@ -55,7 +55,6 @@ class Guard {
class AmazonEngine : public AccessEngine {
private:
// Fields that are included in savegames
int _botList;
int _esTabTable[100];

// Other fields
Expand Down Expand Up @@ -105,7 +104,8 @@ class AmazonEngine : public AccessEngine {
int _canoeLane;
int _canoeYPos;
int _hitCount;
const byte *_topList;
const RiverStruct *_topList;
const RiverStruct *_botList;
int _riverIndex;
int _saveRiver;
int _canoeDir;
Expand Down
347 changes: 163 additions & 184 deletions engines/access/amazon/amazon_resources.cpp
Expand Up @@ -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
};
Expand Down

0 comments on commit 7fbd145

Please sign in to comment.