Skip to content

Commit

Permalink
ACCESS: Fix the mWhileDownRiver cutscene
Browse files Browse the repository at this point in the history
  • Loading branch information
dreammaster committed Dec 13, 2014
1 parent 36a3c5d commit 74a15d6
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 44 deletions.
17 changes: 17 additions & 0 deletions engines/access/amazon/amazon_resources.cpp
Expand Up @@ -1557,6 +1557,23 @@ const byte MAP2[32] = {

const byte *MAPTBL[3] = {MAP0, MAP1, MAP2};

const int DOWNRIVEROBJ[14][4] = {
{ 3, 77, 0, 40 },
{ 2, 30, 0, 30 },
{ 2, 290, 0, 50 },
{ 1, 210, 0, 70 },
{ 2, 350, 0, 30 },
{ 1, 370, 0, 20 },
{ 2, 480, 0, 60 },
{ 3, 395, 0, 10 },
{ 1, 550, 0, 30 },
{ 2, 620, 0, 50 },
{ 1, 690, 0, 10 },
{ 2, 715, 0, 40 },
{ 1, 770, 0, 30 },
{ 3, 700, 0, 20 }
};

const RiverStruct RIVER0OBJECTS[45] = {
{16, 31, 6400, 0, 4, 12},
{16, 31, 6200, 0, 2, 12},
Expand Down
2 changes: 2 additions & 0 deletions engines/access/amazon/amazon_resources.h
Expand Up @@ -99,6 +99,8 @@ extern const byte MAP2[32];

extern const byte *MAPTBL[3];

extern const int DOWNRIVEROBJ[14][4];

extern const RiverStruct RIVER0OBJECTS[45];
extern const RiverStruct ENDRIVER0[1];
extern const RiverStruct RIVER1OBJECTS[49];
Expand Down
70 changes: 26 additions & 44 deletions engines/access/amazon/amazon_scripts.cpp
Expand Up @@ -782,23 +782,6 @@ void AmazonScripts::scrollRiver() {
}

void AmazonScripts::mWhileDownRiver() {
static const int RIVEROBJ[14][4] = {
{3, 77, 0, 40},
{2, 30, 0, 30},
{2, 290, 0, 50},
{1, 210, 0, 70},
{2, 350, 0, 30},
{1, 370, 0, 20},
{2, 480, 0, 60},
{3, 395, 0, 10},
{1, 550, 0, 30},
{2, 620, 0, 50},
{1, 690, 0, 10},
{2, 715, 0, 40},
{1, 770, 0, 30},
{3, 700, 0, 20}
};

_vm->_events->hideCursor();
_vm->_screen->setDisplayScan();
_vm->_screen->clearScreen();
Expand All @@ -813,8 +796,6 @@ void AmazonScripts::mWhileDownRiver() {
_vm->_room->buildScreen();
_vm->copyBF2Vid();

// KEYFLG = 0;

_vm->_player->_scrollAmount = 2;
_vm->_destIn = &_vm->_buffer2;
_xTrack = -7;
Expand All @@ -829,10 +810,10 @@ void AmazonScripts::mWhileDownRiver() {
_pNumObj = 14;
for (int i = 0; i <_pNumObj; i++) {
_pObject[i] = _vm->_objectsTable[33];
_pImgNum[i] = RIVEROBJ[i][0];
_pObjX[i] = RIVEROBJ[i][1];
_pObjY[i] = RIVEROBJ[i][2];
_pObjZ[i] = RIVEROBJ[i][3];
_pImgNum[i] = DOWNRIVEROBJ[i][0];
_pObjX[i] = DOWNRIVEROBJ[i][1];
_pObjY[i] = DOWNRIVEROBJ[i][2];
_pObjZ[i] = DOWNRIVEROBJ[i][3];
_pObjXl[i] = _pObjYl[i] = 0;
}

Expand All @@ -843,34 +824,35 @@ void AmazonScripts::mWhileDownRiver() {
_game->_timers[4]._initTm = 350;
++_game->_timers[4]._flag;

while(true) {
while (!_vm->shouldQuit() && !_vm->_events->isKeyMousePressed() &&
(_vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth != _vm->_room->_playFieldWidth)) {
_vm->_images.clear();
_vm->_events->_vbCount = 6;
while ((_vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth != _vm->_room->_playFieldWidth) && _vm->_events->_vbCount) {
jungleMove();
while (_vm->_screen->_scrollX >= TILE_WIDTH) {
_vm->_screen->_scrollX -= TILE_WIDTH;
++_vm->_screen->_scrollCol;
_vm->_buffer1.moveBufferLeft();
_vm->_room->buildColumn(_vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth, _vm->_screen->_vWindowBytesWide);
}

pan();
scrollRiver();
_vm->_screen->_scrollX += _vm->_player->_scrollAmount;
while (_vm->_screen->_scrollX >= TILE_WIDTH) {
_vm->_screen->_scrollX -= TILE_WIDTH;
++_vm->_screen->_scrollCol;
_vm->_buffer1.moveBufferLeft();
_vm->_room->buildColumn(_vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth, _vm->_screen->_vWindowBytesWide);
}

if (_game->_timers[3]._flag == 0) {
_game->_timers[3]._flag = 1;
_vm->_sound->playSound(1);
} else if (_game->_timers[4]._flag == 0) {
_game->_timers[4]._flag = 1;
_vm->_sound->playSound(0);
}
pan();
scrollRiver();

while (!_vm->shouldQuit() && _vm->_events->_vbCount > 0) {
_vm->_events->pollEventsAndWait();
}
if (!_game->_timers[3]._flag) {
++_game->_timers[3]._flag;
_vm->_sound->playSound(1);
} else if (!_game->_timers[4]._flag) {
++_game->_timers[4]._flag;
_vm->_sound->playSound(0);
}

while (!_vm->shouldQuit() && _vm->_events->_vbCount > 0) {
_vm->_events->pollEventsAndWait();
}
}

_vm->_events->showCursor();
}

Expand Down

0 comments on commit 74a15d6

Please sign in to comment.