diff options
Diffstat (limited to 'engines/tsage/globals.cpp')
-rw-r--r-- | engines/tsage/globals.cpp | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index 7068c2fa1a..9bd7249902 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -427,34 +427,34 @@ void Ringworld2Globals::reset() { _spillLocation[12] = 27; _spillLocation[13] = 31; + // Initialise the vampire data within the Flub maze for (int i = 0; i < 18; i++) { - _v56613[(i * 4) ] = 1; - _v56613[(i * 4) + 2] = 0; - _v56613[(i * 4) + 3] = 0; + _vampireData[i]._isAlive = true; + _vampireData[i]._position = Common::Point(); } - _v56613[( 0 * 4) + 1] = 1; - _v56613[( 1 * 4) + 1] = 2; - _v56613[( 2 * 4) + 1] = 2; - _v56613[( 3 * 4) + 1] = 3; - _v56613[( 4 * 4) + 1] = 2; - _v56613[( 5 * 4) + 1] = 2; - _v56613[( 6 * 4) + 1] = 3; - _v56613[( 7 * 4) + 1] = 1; - _v56613[( 8 * 4) + 1] = 1; - _v56613[( 9 * 4) + 1] = 3; - _v56613[(10 * 4) + 1] = 3; - _v56613[(11 * 4) + 1] = 1; - _v56613[(12 * 4) + 1] = 2; - _v56613[(13 * 4) + 1] = 3; - _v56613[(14 * 4) + 1] = 2; - _v56613[(15 * 4) + 1] = 3; - _v56613[(16 * 4) + 1] = 1; - _v56613[(17 * 4) + 1] = 1; + _vampireData[0]._shotsRequired = 1; + _vampireData[1]._shotsRequired = 2; + _vampireData[2]._shotsRequired = 2; + _vampireData[3]._shotsRequired = 3; + _vampireData[4]._shotsRequired = 2; + _vampireData[5]._shotsRequired = 2; + _vampireData[6]._shotsRequired = 3; + _vampireData[7]._shotsRequired = 1; + _vampireData[8]._shotsRequired = 1; + _vampireData[9]._shotsRequired = 3; + _vampireData[10]._shotsRequired = 3; + _vampireData[11]._shotsRequired = 1; + _vampireData[12]._shotsRequired = 2; + _vampireData[13]._shotsRequired = 3; + _vampireData[14]._shotsRequired = 2; + _vampireData[15]._shotsRequired = 3; + _vampireData[16]._shotsRequired = 1; + _vampireData[17]._shotsRequired = 1; _v566A6 = 3800; _landerSuitNumber = 2; - _v566A4 = 1; - _v566A5 = 0; + _flubMazeArea = 1; + _flubMazeEntryDirection = 0; _desertStepsRemaining = 5; _desertCorrectDirection = 0; _desertPreviousDirection = 0; @@ -463,11 +463,10 @@ void Ringworld2Globals::reset() { _desertWrongDirCtr = -1; _balloonAltitude = 5; _scene1925CurrLevel = 0; //_v56A9C - _v56A9E = 0; + _walkwaySceneNumber = 0; _v56AA0 = 0; - _v56AA1 = 0; - _v56AA2 = 60; - _v56AA4 = 660; + _scientistConvIndex = 0; + _ventCellPos = Common::Point(60, 660); _v56AA6 = 1; _v56AA7 = 1; _v56AA8 = 1; @@ -504,7 +503,7 @@ void Ringworld2Globals::reset() { _player._characterIndex = R2_QUINN; _player._characterScene[R2_QUINN] = 100; _player._characterScene[R2_SEEKER] = 300; - _player._characterScene[3] = 300; + _player._characterScene[R2_MIRANDA] = 300; } void Ringworld2Globals::synchronize(Serializer &s) { @@ -530,9 +529,9 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsSint16LE(_v566A6); s.syncAsSint16LE(_desertWrongDirCtr); s.syncAsSint16LE(_scene1925CurrLevel); // _v56A9C - s.syncAsSint16LE(_v56A9E); - s.syncAsSint16LE(_v56AA2); - s.syncAsSint16LE(_v56AA4); + s.syncAsSint16LE(_walkwaySceneNumber); + s.syncAsSint16LE(_ventCellPos.x); + s.syncAsSint16LE(_ventCellPos.y); s.syncAsSint16LE(_v56AAB); s.syncAsSint16LE(_scene180Mode); s.syncAsSint16LE(_v57709); @@ -553,13 +552,13 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsByte(_scannerFrequencies[i]); s.syncAsByte(_v565AE); - s.syncAsByte(_v566A4); - s.syncAsByte(_v566A5); + s.syncAsByte(_flubMazeArea); + s.syncAsByte(_flubMazeEntryDirection); s.syncAsByte(_desertStepsRemaining); s.syncAsByte(_desertCorrectDirection); s.syncAsByte(_desertPreviousDirection); s.syncAsByte(_v56AA0); - s.syncAsByte(_v56AA1); + s.syncAsByte(_scientistConvIndex); s.syncAsByte(_v56AA6); s.syncAsByte(_v56AA7); s.syncAsByte(_v56AA8); @@ -580,6 +579,14 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsSint16LE(_balloonPosition.x); s.syncAsSint16LE(_balloonPosition.y); + + // Synchronise Flub maze vampire data + for (i = 0; i < 18; ++i) { + s.syncAsSint16LE(_vampireData[i]._isAlive); + s.syncAsSint16LE(_vampireData[i]._shotsRequired); + s.syncAsSint16LE(_vampireData[i]._position.x); + s.syncAsSint16LE(_vampireData[i]._position.y); + } } } // end of namespace Ringworld2 |