[Scummvm-cvs-logs] CVS: scummvm/scumm/smush insane.cpp,1.5,1.6
Eugene Sandulenko
sev at users.sourceforge.net
Mon Dec 8 20:10:17 CET 2003
Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1:/tmp/cvs-serv8239
Modified Files:
insane.cpp
Log Message:
Add preliminary support for Mac FT demo insane.
Index: insane.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/insane.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- insane.cpp 8 Dec 2003 23:21:03 -0000 1.5
+++ insane.cpp 9 Dec 2003 04:08:31 -0000 1.6
@@ -1361,13 +1361,14 @@
if (!smlayer_isSoundRunning(87))
smlayer_startSound1(87);
+ _scumm->_sound->processSoundQues();
+
_scumm->parseEvents();
_scumm->processKbd();
_scumm->setActorRedrawFlags();
_scumm->resetActorBgs();
_scumm->processActors();
- _scumm->_sound->processSoundQues();
_scumm->drawDirtyScreenParts();
_scumm->_system->update_screen();
@@ -1487,6 +1488,10 @@
_actor[0].inventory[INV_DUST] = readArray(_numberArray, 55) != 0; // Dust
_actor[0].inventory[INV_HAND] = 1; // Boot
_actor[0].inventory[INV_BOOT] = 1; // Hand
+
+ for (int i = 0; i < 7; i++) // PATCH
+ _actor[0].inventory[i] = 1;
+
_smlayer_room = readArray(_numberArray, 320);
_smlayer_room2 = readArray(_numberArray, 321);
_val55d = readArray(_numberArray, 322);
@@ -2704,8 +2709,87 @@
void Insane::postCase12(byte *renderBitmap, int32 codecparam, int32 setupsan12,
int32 setupsan13, int32 curFrame, int32 maxFrame) {
- // FIXME: implement
- warning("stub Insane::postCase12(...)");
+ if (_actor[1].y <= 200) {
+ initScene(3);
+ _actor[1].y = 200;
+
+ switch (_currEnemy) {
+ case EN_ROTT2:
+ actorsReaction(true);
+
+ if (_enemy[1].field_8 <= 1)
+ prepareScenePropScene(scenePropIdx[32], 0, 1);
+ else
+ prepareScenePropScene(scenePropIdx[33], 0, 1);
+ break;
+ case EN_ROTT3:
+ actorsReaction(true);
+
+ if (_enemy[1].field_8 <= 1)
+ prepareScenePropScene(scenePropIdx[25], 0, 1);
+ break;
+ case EN_VULTF1:
+ actorsReaction(true);
+
+ if (_enemy[1].field_8 <= 1)
+ prepareScenePropScene(scenePropIdx[2], 0, 1);
+ break;
+ case EN_VULTF2:
+ actorsReaction(true);
+
+ if (_enemy[1].field_8 <= 1)
+ prepareScenePropScene(scenePropIdx[9], 0, 1);
+ else
+ prepareScenePropScene(scenePropIdx[16], 0, 1);
+ break;
+ case EN_VULTM2:
+ actorsReaction(true);
+
+ prepareScenePropScene(scenePropIdx[18], 0, 1);
+ _val39_ = false;
+ break;
+ case EN_TORQUE:
+ actorsReaction(false);
+ setWordInString(_numberArray, 1, _val51d);
+ smush_setToFinish();
+ break;
+ case EN_ROTT1:
+ case EN_VULTM1:
+ case EN_CAVEFISH:
+ default:
+ actorsReaction(true);
+ break;
+ }
+ } else {
+ switch (_currEnemy) {
+ case EN_VULTM2:
+ if (_enemy[EN_VULTM2].field_8 <= 1)
+ actorsReaction(false);
+ else
+ actorsReaction(true);
+ break;
+ case EN_TORQUE:
+ actorsReaction(false);
+ if (_actor[1].y != 300)
+ prepareScenePropScene(scenePropIdx[57], 1, 0);
+ break;
+ default:
+ actorsReaction(true);
+ }
+ _actor[1].y -= (_actor[1].y - 200) / 20 + 1;
+ }
+
+ checkEnemyLoose(false);
+
+ if (curFrame == 0)
+ smlayer_setFluPalette(_smush_roadrashRip, 0);
+
+ if (curFrame >= maxFrame)
+ smush_rewindCurrentSan(1088, -1, -1);
+
+ _val119_ = 0;
+ _val120_ = 0;
+ _continueFrame = curFrame;
}
void Insane::postCase23(byte *renderBitmap, int32 codecparam, int32 setupsan12,
@@ -5333,6 +5417,9 @@
debug(0, "smush_setupSanFile(%s, %d)", filename, offset);
_player->seekSan(filename, _scumm->getGameDataPath(), offset);
+
+ _scumm->_imuseDigital->pause(false);
+ _scumm->_sound->pauseBundleMusic(false);
}
}
More information about the Scummvm-git-logs
mailing list