[Scummvm-cvs-logs] CVS: scummvm/queen logic.h,1.76,1.77 logic.cpp,1.117,1.118 talk.cpp,1.51,1.52 cutaway.cpp,1.80,1.81
Gregory Montoir
cyx at users.sourceforge.net
Wed Dec 3 12:55:01 CET 2003
Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv21828
Modified Files:
logic.h logic.cpp talk.cpp cutaway.cpp
Log Message:
- hard coded cutaway stuff for boat room
- hard coded cutaway and talk oracle stuff
- scale Joe during cutaway when changing rooms
- special moves 20 & 24 (temple room 100)
- special move 15 (valley room 67)
- special move 26 (c69g.CUT)
- (game is now completable up to final fight scene)
Index: logic.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.h,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -d -r1.76 -r1.77
--- logic.h 3 Dec 2003 13:00:52 -0000 1.76
+++ logic.h 3 Dec 2003 20:53:59 -0000 1.77
@@ -232,6 +232,7 @@
void animErase(uint16 bobNum);
void animReset(uint16 bobNum);
void animSetup(const GraphicData *gd, uint16 firstImage, uint16 bobNum, bool visible); // FIND_GRAPHIC_ANIMS
+ uint16 personFrames(uint16 bobNum) const { return _personFrames[bobNum]; }
void joeSetupFromBanks(const char *animBank, const char *standBank);
Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -d -r1.117 -r1.118
--- logic.cpp 3 Dec 2003 13:00:53 -0000 1.117
+++ logic.cpp 3 Dec 2003 20:53:59 -0000 1.118
@@ -1225,7 +1225,7 @@
void Logic::roomDisplay(uint16 room, RoomDisplayMode mode, uint16 scale, int comPanel, bool inCutaway) {
- debug(9, "Logic::roomDisplay(%d, %d, %d, %d, %d)", room, mode, scale, comPanel, inCutaway);
+ debug(0, "Logic::roomDisplay(%d, %d, %d, %d, %d)", room, mode, scale, comPanel, inCutaway);
roomErase();
@@ -1646,7 +1646,7 @@
}
}
- debug(0, "Logic::joeSetupInRoom() - oldx=%d, oldy=%d", oldx, oldy);
+ debug(0, "Logic::joeSetupInRoom() - oldx=%d, oldy=%d scale=%d", oldx, oldy, scale);
if (scale > 0 && scale < 100) {
_joe.scale = scale;
Index: talk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- talk.cpp 3 Dec 2003 13:00:56 -0000 1.51
+++ talk.cpp 3 Dec 2003 20:53:59 -0000 1.52
@@ -961,14 +961,12 @@
// It's the oracle!
// Dont turn AMAL animation off, and dont manually anim person
command = SPEAK_ORACLE;
-
- warning("Oracle not yet handled!");
oracle = true;
- // XXX k=PERSON_FRAMES[BNUM];
- // XXX for(i=5;i<=8;i++) {
- // XXX unpack(i,k,BANK);
- // XXX k=k+1;
- // XXX }
+ uint16 frameNum = _logic->personFrames(bobNum);
+ for (i = 5; i <= 8; ++i) {
+ _graphics->bankUnpack(i, frameNum, bankNum);
+ ++frameNum;
+ }
}
else {
bob->animating = false;
@@ -1092,8 +1090,11 @@
_graphics->textClear(0,198);
if (oracle) {
- // lines 1831-1339 in talk.c
- warning("Oracle not yet handled!");
+ uint16 frameNum = _logic->personFrames(bobNum);
+ for (i = 1; i <= 4; ++i) {
+ _graphics->bankUnpack(i, frameNum, bankNum);
+ ++frameNum;
+ }
}
// Ensure that the correct buffer frame is selected
Index: cutaway.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/cutaway.cpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -d -r1.80 -r1.81
--- cutaway.cpp 3 Dec 2003 14:52:05 -0000 1.80
+++ cutaway.cpp 3 Dec 2003 20:53:59 -0000 1.81
@@ -399,16 +399,39 @@
}
break;
- // cdint.cut - put camera on Joe
+ // Dinocam
+ case 15:
+ _graphics->cameraBob(-1);
+ while (_logic->display()->horizontalScroll() < 320) {
+ _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() + 16);
+ if (_logic->display()->horizontalScroll() > 320) {
+ _logic->display()->horizontalScroll(320);
+ }
+ _logic->update();
+ }
+ _graphics->cameraBob(1);
+ break;
+
+ // cdint.cut / room 67 - put camera on Joe
case 16:
_graphics->cameraBob(0);
break;
-
case 19:
_logic->gameState(VAR_AZURA_IN_LOVE, 1);
break;
+ // Pan right from Joe
+ case 20:
+ _graphics->cameraBob(-1);
+ while (_logic->display()->horizontalScroll() < 320) {
+ _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() + 16);
+ if (_logic->display()->horizontalScroll() > 320) {
+ _logic->display()->horizontalScroll(320);
+ }
+ _logic->update();
+ }
+ break;
case 21:
_logic->display()->palCustomLightsOff(_logic->currentRoom());
@@ -423,6 +446,48 @@
_logic->area(ROOM_FLODA_FRONTDESK, 7)->mapNeighbours = ABS(_logic->area(ROOM_FLODA_FRONTDESK, 7)->mapNeighbours);
break;
+ case 24: {
+ int i = _graphics->bob(0)->x - 160;
+ if (i < 0) {
+ i = 0;
+ }
+ else if (i > 320) {
+ i = 320;
+ }
+ _graphics->cameraBob(-1);
+ if (i < _logic->display()->horizontalScroll()) {
+ while (_logic->display()->horizontalScroll() > i) {
+ _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() - 16);
+ if (_logic->display()->horizontalScroll() < i) {
+ _logic->display()->horizontalScroll(i);
+ }
+ _logic->update();
+ }
+ }
+ else {
+ while (_logic->display()->horizontalScroll() < i) {
+ _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() + 16);
+ if (_logic->display()->horizontalScroll() > i ) {
+ _logic->display()->horizontalScroll(i);
+ }
+ }
+ _logic->update();
+ }
+ _graphics->cameraBob(0);
+ }
+ break;
+
+ // c69g.CUT - Pan left 320 to 144
+ case 26:
+ _graphics->cameraBob(-1);
+ while (_logic->display()->horizontalScroll() > 144) {
+ _logic->display()->horizontalScroll(_logic->display()->horizontalScroll() - 8);
+ if (_logic->display()->horizontalScroll() < 144) {
+ _logic->display()->horizontalScroll(144);
+ }
+ _logic->update();
+ }
+ break;
// c75b.cut - Lightning hits plane
case 28:
@@ -843,7 +908,7 @@
mode = RDM_FADE_JOE_XY;
}
- _logic->roomDisplay(_logic->currentRoom(), mode, 0, _comPanel, true);
+ _logic->roomDisplay(_logic->currentRoom(), mode, object.scale, _comPanel, true);
_currentImage = _logic->numFrames();
@@ -1060,9 +1125,10 @@
debug(0, "----- Complex cutaway animation (animType = %i) -----", object.animType);
- if (/*(P_BNUM==1) &&*/ (_logic->currentRoom() == 47 || _logic->currentRoom() == 63)) {
- // The oracle
- warning("The oracle is not yet handled");
+ if ((_logic->currentRoom() == 47 || _logic->currentRoom() == 63) &&
+ objAnim[0].object == 1) {
+ //CR 2 - 3/3/95, Special harcoded section to make Oracle work...
+ makeComplexAnimation(_logic->personFrames(1) - 1, objAnim, frameCount);
}
else {
_currentImage = makeComplexAnimation(_currentImage, objAnim, frameCount);
@@ -1082,14 +1148,14 @@
BobSlot *bob = _graphics->bob(objAnim[i].object);
bob->frameNum = objAnim[i].originalFrame;
bob->move(objAnim[i].mx, objAnim[i].my, (object.specialMove > 0) ? object.specialMove : 4);
+ // Boat room hard coded
+ if (_logic->currentRoom() == ROOM_TEMPLE_OUTSIDE) {
+ BobSlot *bobJoe = _graphics->bob(0);
+ if (bobJoe->x < 320) {
+ bobJoe->move(bobJoe->x + 346, bobJoe->y, 4);
+ }
+ }
}
- }
-
- // Boat room hard coded
- if (_logic->currentRoom() == ROOM_TEMPLE_OUTSIDE) {
- BobSlot *bob = _graphics->bob(0);
- if (bob->x < 320)
- bob->move(bob->x + 346, bob->y, 4);
}
// Normal cutaway
More information about the Scummvm-git-logs
mailing list