aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Montoir2003-12-27 12:58:26 +0000
committerGregory Montoir2003-12-27 12:58:26 +0000
commit5bbb3be15957d664ec67d9ed7efc5cc02f750b75 (patch)
tree1da5294048ace87717f6d31a6733ee61627525ff
parent9bb75693b0f95bba536a5db931d7d583f1c5c866 (diff)
downloadscummvm-rg350-5bbb3be15957d664ec67d9ed7efc5cc02f750b75.tar.gz
scummvm-rg350-5bbb3be15957d664ec67d9ed7efc5cc02f750b75.tar.bz2
scummvm-rg350-5bbb3be15957d664ec67d9ed7efc5cc02f750b75.zip
enable alternative introduction
svn-id: r11959
-rw-r--r--README1
-rw-r--r--queen/graphics.cpp2
-rw-r--r--queen/logic.cpp53
-rw-r--r--queen/logic.h2
4 files changed, 49 insertions, 9 deletions
diff --git a/README b/README
index c34500413e..255a1acf3b 100644
--- a/README
+++ b/README
@@ -850,6 +850,7 @@ Broken Sword II adds the following non-standard keywords:
Flight of the Amazon Queen adds the following non-standard keywords:
+ alt_intro bool Use alternative version of introduction
music_mute bool If true, music is muted
sfx_mute bool If true, sound effects are muted
speech_mute bool If true, speech is muted
diff --git a/queen/graphics.cpp b/queen/graphics.cpp
index 278b06b337..6cdda3e44a 100644
--- a/queen/graphics.cpp
+++ b/queen/graphics.cpp
@@ -598,11 +598,9 @@ void Graphics::bobCustomParallax(uint16 roomNum) {
break;
case ROOM_CAR_CHASE:
_vm->bam()->updateCarAnimation();
-// updateCarBamScene();
break;
case ROOM_FINAL_FIGHT:
_vm->bam()->updateFightAnimation();
-// updateFightBamScene();
break;
case ROOM_INTRO_RITA_JOE_HEADS: // CR 2 - CD-Rom pan right while Rita talks...
_cameraBob = -1;
diff --git a/queen/logic.cpp b/queen/logic.cpp
index fa2826fca6..38192c7ae4 100644
--- a/queen/logic.cpp
+++ b/queen/logic.cpp
@@ -2481,13 +2481,17 @@ void Logic::changeRoom() {
playCutaway("copy.cut");
playCutaway("clogo.cut");
- // TODO enable talking for talkie version
+ // XXX enable talking for talkie version
- playCutaway("cdint.cut");
+ if (ConfMan.getBool("alt_intro")) {
+ _vm->graphics()->loadPanel();
+ playCutaway("cintr.cut");
+ }
+ else {
+ playCutaway("cdint.cut");
+ _vm->graphics()->loadPanel();
+ }
- // restore palette colors ranging from 144 to 256
- _vm->graphics()->loadPanel();
-
playCutaway("cred.cut");
}
@@ -2630,8 +2634,8 @@ void Logic::executeSpecialMove(uint16 sm) {
&Logic::asmPutCameraOnDino,
/* 16 */
&Logic::asmPutCameraOnJoe,
- NULL, // XXX alternative introduction
- NULL, // XXX alternative introduction
+ &Logic::asmAltIntroPanRight, // cintr.cut
+ &Logic::asmAltIntroPanLeft, // cintr.cut
&Logic::asmSetAzuraInLove,
/* 20 */
&Logic::asmPanRightFromJoe,
@@ -2827,6 +2831,41 @@ void Logic::asmPutCameraOnJoe() {
}
+void Logic::asmAltIntroPanRight() {
+
+ _vm->graphics()->cameraBob(-1);
+ _vm->input()->fastMode(true);
+ update();
+ int16 scrollx = _vm->display()->horizontalScroll();
+ while (scrollx < 285 && !_vm->input()->cutawayQuit()) {
+ ++scrollx;
+ if (scrollx > 285) {
+ scrollx = 285;
+ }
+ _vm->display()->horizontalScroll(scrollx);
+ update();
+ }
+ _vm->input()->fastMode(false);
+}
+
+
+void Logic::asmAltIntroPanLeft() {
+
+ _vm->graphics()->cameraBob(-1);
+ _vm->input()->fastMode(true);
+ int16 scrollx = _vm->display()->horizontalScroll();
+ while (scrollx > 0 && !_vm->input()->cutawayQuit()) {
+ scrollx -= 4;
+ if (scrollx < 0) {
+ scrollx = 0;
+ }
+ _vm->display()->horizontalScroll(scrollx);
+ update();
+ }
+ _vm->input()->fastMode(false);
+}
+
+
void Logic::asmSetAzuraInLove() {
gameState(VAR_AZURA_IN_LOVE, 1);
diff --git a/queen/logic.h b/queen/logic.h
index d82881aba1..0ec497f96e 100644
--- a/queen/logic.h
+++ b/queen/logic.h
@@ -264,6 +264,8 @@ public:
void asmEndGame();
void asmPutCameraOnDino();
void asmPutCameraOnJoe();
+ void asmAltIntroPanRight();
+ void asmAltIntroPanLeft();
void asmSetAzuraInLove();
void asmPanRightFromJoe();
void asmSetLightsOff();