diff options
author | Gregory Montoir | 2003-12-04 10:54:43 +0000 |
---|---|---|
committer | Gregory Montoir | 2003-12-04 10:54:43 +0000 |
commit | 5b83ecbf671b4c55b104ff073f7608acfc35c360 (patch) | |
tree | 2246fc78eb48c494ff9295721c1a29acf527dfc9 | |
parent | 8c330b712398f80cf69b1e544fb5ff6fd6f437e3 (diff) | |
download | scummvm-rg350-5b83ecbf671b4c55b104ff073f7608acfc35c360.tar.gz scummvm-rg350-5b83ecbf671b4c55b104ff073f7608acfc35c360.tar.bz2 scummvm-rg350-5b83ecbf671b4c55b104ff073f7608acfc35c360.zip |
special moves 14, 25, 27, 29, 30, 33
svn-id: r11493
-rw-r--r-- | queen/cutaway.cpp | 88 | ||||
-rw-r--r-- | queen/defs.h | 7 |
2 files changed, 93 insertions, 2 deletions
diff --git a/queen/cutaway.cpp b/queen/cutaway.cpp index f58f291b16..2654703f62 100644 --- a/queen/cutaway.cpp +++ b/queen/cutaway.cpp @@ -399,6 +399,16 @@ void Cutaway::actionSpecialMove(int index) { } break; + // End game + case 14: { + int i; + for (i = 0; i < 40; ++i) { + _logic->update(); + } + OSystem::instance()->quit(); + } + break; + // Dinocam case 15: _graphics->cameraBob(-1); @@ -417,6 +427,8 @@ void Cutaway::actionSpecialMove(int index) { _graphics->cameraBob(0); break; + // XXX sm17&18 : alternative intro + case 19: _logic->gameState(VAR_AZURA_IN_LOVE, 1); break; @@ -477,6 +489,11 @@ void Cutaway::actionSpecialMove(int index) { } break; + // Turn guard on + case 25: + _logic->gameState(85, 1); + break; + // c69g.CUT - Pan left 320 to 144 case 26: _graphics->cameraBob(-1); @@ -489,6 +506,26 @@ void Cutaway::actionSpecialMove(int index) { } break; + // smooch + case 27: { + _graphics->cameraBob(-1); + BobSlot *bobAzura = _graphics->bob(5); + BobSlot *bobJoe = _graphics->bob(6); + while (_logic->display()->horizontalScroll() < 320) { + _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() + 8); + if (bobJoe->x - bobAzura->x > 128) { + bobAzura->x += 10; + bobJoe->x += 6; + } + else { + bobAzura->x += 8; + bobJoe->x += 8; + } + _logic->update(); + } + } + break; + // c75b.cut - Lightning hits plane case 28: { @@ -575,6 +612,45 @@ void Cutaway::actionSpecialMove(int index) { } break; + // Scale blimp - end game! + case 29: { + int16 z = 256; + BobSlot *bob = _graphics->bob(7); + int16 x = bob->x; + int16 y = bob->y; + while (bob->x > 150) { + bob->x = x * 256 / z + 150; + bob->x = y * 256 / z + 112; + bob->scale = 100 * 256 / z; + + ++z; + if (z % 6 == 0) { + --x; + } + + _logic->update(); + } + } + break; + + // scale ending + case 30: { + _graphics->bob(7)->active = false; // Turn off blimp + BobSlot *b = _graphics->bob(20); + b->x = 160; + b->y = 100; + int i; + for (i = 5; i <= 100; i += 5) { + b->scale = i; + _logic->update(); + } + for (i = 0; i < 50; ++i) { + _logic->update(); + } + _logic->display()->palFadeOut(0, 255, _logic->currentRoom()); + } + break; + // c74a.cut - Wait for car to reach correct position before pouring oil case 31: while (_graphics->bamData()->index != 60) { @@ -590,6 +666,16 @@ void Cutaway::actionSpecialMove(int index) { _logic->update(); break; + // Attempt puzzle + case 33: { + static short n = 0; + ++n; + if (n & 4) { + _logic->joeSpeak(226, true); + } + } + break; + // cred.cut - scale title case 34: { @@ -608,6 +694,8 @@ void Cutaway::actionSpecialMove(int index) { } break; + // XXX sm35: demo + // cdint.cut - pan right fast case 36: { diff --git a/queen/defs.h b/queen/defs.h index 6fc7bd4385..8ac0ebfe86 100644 --- a/queen/defs.h +++ b/queen/defs.h @@ -249,8 +249,11 @@ enum { ROOM_UNUSED_INTRO_4 = 93, ROOM_UNUSED_INTRO_5 = 94, FOTAQ_LOGO = 95, - AZURA_1 = 106, - WARNER_LOGO = 126 + WARNER_LOGO = 126, + + FAYE_HEAD = 37, + AZURA_HEAD = 106, + FRANK_HEAD = 107 }; |