ACCESS: Implement mWhileFall
This commit is contained in:
parent
43e8e90590
commit
d5ddd22681
2 changed files with 83 additions and 1 deletions
|
@ -226,6 +226,27 @@ void AmazonScripts::doFlyCell() {
|
|||
}
|
||||
}
|
||||
|
||||
void AmazonScripts::doFallCell() {
|
||||
if (_vm->_scaleI <= 0)
|
||||
return;
|
||||
|
||||
_game->_destIn = &_game->_buffer2;
|
||||
|
||||
// 115, 11, i
|
||||
_vm->_screen->plotImage(_vm->_objectsTable[20], _game->_plane._planeCount / 6, Common::Point(115, 11));
|
||||
_vm->_scaleI -= 3;
|
||||
_vm->_scale = _vm->_scaleI;
|
||||
_vm->_screen->setScaleTable(_vm->_scale);
|
||||
++_game->_plane._xCount;
|
||||
if (_game->_plane._xCount == 5)
|
||||
return;
|
||||
_game->_plane._xCount = 0;
|
||||
if (_game->_plane._planeCount == 18)
|
||||
_game->_plane._planeCount = 0;
|
||||
else
|
||||
_game->_plane._planeCount += 6;
|
||||
}
|
||||
|
||||
void AmazonScripts::scrollFly() {
|
||||
_vm->copyBF1BF2();
|
||||
_vm->_newRects.clear();
|
||||
|
@ -234,6 +255,14 @@ void AmazonScripts::scrollFly() {
|
|||
_vm->copyBF2Vid();
|
||||
}
|
||||
|
||||
void AmazonScripts::scrollFall() {
|
||||
_vm->copyBF1BF2();
|
||||
_vm->_newRects.clear();
|
||||
doFallCell();
|
||||
_vm->copyRects();
|
||||
_vm->copyBF2Vid();
|
||||
}
|
||||
|
||||
void AmazonScripts::mWhileFly() {
|
||||
_vm->_events->hideCursor();
|
||||
_vm->_screen->clearScreen();
|
||||
|
@ -290,6 +319,56 @@ void AmazonScripts::mWhileFly() {
|
|||
}
|
||||
}
|
||||
|
||||
void AmazonScripts::mWhileFall() {
|
||||
_vm->_events->hideCursor();
|
||||
_vm->_screen->clearScreen();
|
||||
_vm->_screen->setBufferScan();
|
||||
_vm->_screen->fadeOut();
|
||||
_vm->_screen->_scrollX = 0;
|
||||
|
||||
_vm->_room->buildScreen();
|
||||
_vm->copyBF2Vid();
|
||||
_vm->_screen->fadeIn();
|
||||
_vm->_oldRects.clear();
|
||||
_vm->_newRects.clear();
|
||||
|
||||
// KEYFLG = 0;
|
||||
|
||||
_vm->_screen->_scrollRow = _vm->_screen->_scrollCol = 0;
|
||||
_vm->_screen->_scrollX = _vm->_screen->_scrollY = 0;
|
||||
_vm->_player->_scrollAmount = 3;
|
||||
_vm->_scaleI = 255;
|
||||
|
||||
_game->_plane._xCount = 0;
|
||||
_game->_plane._planeCount = 0;
|
||||
|
||||
while (true) {
|
||||
int _vbCount = 4;
|
||||
if (_vm->_screen->_scrollCol + _vm->_screen->_vWindowWidth == _vm->_room->_playFieldWidth) {
|
||||
_vm->_events->showCursor();
|
||||
return;
|
||||
}
|
||||
|
||||
_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);
|
||||
}
|
||||
|
||||
scrollFall();
|
||||
g_system->delayMillis(10);
|
||||
|
||||
while(_vbCount > 0) {
|
||||
// To be rewritten when NEWTIMER is done
|
||||
_vm->_events->checkForNextFrameCounter();
|
||||
_vbCount--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AmazonScripts::mWhile(int param1) {
|
||||
switch(param1) {
|
||||
case 1:
|
||||
|
@ -299,7 +378,7 @@ void AmazonScripts::mWhile(int param1) {
|
|||
mWhileFly();
|
||||
break;
|
||||
case 3:
|
||||
warning("TODO FALL");
|
||||
mWhileFall();
|
||||
break;
|
||||
case 4:
|
||||
warning("TODO JWALK");
|
||||
|
|
|
@ -40,11 +40,14 @@ protected:
|
|||
virtual void executeCommand(int commandIndex);
|
||||
|
||||
void doFlyCell();
|
||||
void doFallCell();
|
||||
void scrollFly();
|
||||
void scrollFall();
|
||||
void cLoop();
|
||||
void mWhile1();
|
||||
void mWhile2();
|
||||
void mWhileFly();
|
||||
void mWhileFall();
|
||||
void mWhile(int param1);
|
||||
void guardSee();
|
||||
void setGuardFrame();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue