aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2003-12-04 10:54:43 +0000
committerGregory Montoir2003-12-04 10:54:43 +0000
commit5b83ecbf671b4c55b104ff073f7608acfc35c360 (patch)
tree2246fc78eb48c494ff9295721c1a29acf527dfc9
parent8c330b712398f80cf69b1e544fb5ff6fd6f437e3 (diff)
downloadscummvm-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.cpp88
-rw-r--r--queen/defs.h7
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
};