[Scummvm-cvs-logs] CVS: scummvm/scumm/insane insane.cpp,1.13,1.14 insane.h,1.8,1.9 insane_ben.cpp,1.7,1.8 insane_enemy.cpp,1.6,1.7 insane_iact.cpp,1.9,1.10 insane_scenes.cpp,1.9,1.10
Eugene Sandulenko
sev at users.sourceforge.net
Sat Jan 31 21:47:07 CET 2004
Update of /cvsroot/scummvm/scummvm/scumm/insane
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23038/scumm/insane
Modified Files:
insane.cpp insane.h insane_ben.cpp insane_enemy.cpp
insane_iact.cpp insane_scenes.cpp
Log Message:
o Major debug of all actors code
o Road signs aligned to match original
o Fixed bug with Ben's velocity not reset with scene switch
o Removed some unused code
o Debug level increased, so console is not flooded anymore
o Rearranged those huge switch statements
I succesfully passed by all insane scenes, so FT should be completable now with
some SAUD related crashes which are easy to avoid.
Index: insane.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- insane.cpp 30 Jan 2004 02:14:29 -0000 1.13
+++ insane.cpp 1 Feb 2004 05:44:18 -0000 1.14
@@ -39,7 +39,6 @@
#include "scumm/insane/insane.h"
// TODO (in no particular order):
-// o Ben's velocity don't get zeroed after crash
// o Road signs are not aligned properly
// o SAUD complaining again
// o Insane::postCase16() has workaround. Cockpit is not transparent so it is
@@ -161,7 +160,7 @@
_val54d = 0;
_val57d = 0;
_val115_ = false;
- _val121_ = false;
+ _roadBumps = false;
_val211d = 0;
_val213d = 0;
_val215d = 0;
@@ -622,28 +621,6 @@
_player->play(filename, _vm->getGameDataPath());
}
-int Insane::smlayer_mainLoop(void) {
- // FIXME: implement
- warning("stub Insane::smlayer_mainLoop");
- mainLoop();
- return 1;
-}
-
-void Insane::smush_proc39(void) {
- // FIXME: implement
- warning("stub Insane::smush_proc39");
-}
-
-void Insane::smush_proc40(void) {
- // FIXME: implement
- warning("stub Insane::smush_proc40");
-}
-
-void Insane::smush_proc41(void) {
- // FIXME: implement
- warning("stub Insane::smush_proc41");
-}
-
void Insane::smush_warpMouse(int x, int y, int buttons) {
_vm->_system->warp_mouse(x, y);
}
@@ -657,15 +634,15 @@
smlayer_putActor(1, 1, _actor[0].x, _actor[0].y1, _smlayer_room);
}
-void Insane::readState(void) {
+void Insane::readState(void) { // PATCH
_actor[0].inventory[INV_CHAIN] = readArray(50) != 0;
_actor[0].inventory[INV_CHAINSAW] = readArray(51) != 0;
_actor[0].inventory[INV_MACE] = readArray(52) != 0;
_actor[0].inventory[INV_2X4] = readArray(53) != 0;
_actor[0].inventory[INV_WRENCH] = readArray(54) != 0;
_actor[0].inventory[INV_DUST] = readArray(55) != 0;
- _actor[0].inventory[INV_HAND] = 1; // Boot
- _actor[0].inventory[INV_BOOT] = 1; // Hand
+ _actor[0].inventory[INV_HAND] = 1;
+ _actor[0].inventory[INV_BOOT] = 1;
_smlayer_room = readArray(320);
_smlayer_room2 = readArray(321);
@@ -780,7 +757,7 @@
}
void Insane::smush_setToFinish(void) {
- debug(0, "Video is set to finish");
+ debug(5, "Video is set to finish");
_vm->_videoFinished = 1;
}
@@ -824,6 +801,8 @@
int tmp, idx = scenePropIdx[scenePropNum];
+ debug(5, "Insane::prepareScenePropScene(%d, %d, %d)", scenePropNum, arg_4, arg_8);
+
if (!loadScenePropSounds(idx))
return;
@@ -864,7 +843,7 @@
int32 arg_C, int32 arg_10, int32 startFrame, int32 numFrames) {
int32 tmp;
- debug(0, "queueSceneSwitch(%d, *, %s, %d, %d, %d, %d)", sceneId, filename, arg_C, arg_10,
+ debug(5, "queueSceneSwitch(%d, *, %s, %d, %d, %d, %d)", sceneId, filename, arg_C, arg_10,
startFrame, numFrames);
if (_needSceneSwitch || _sceneData1Loaded)
return;
@@ -883,7 +862,7 @@
}
void Insane::smush_rewindCurrentSan(int arg_0, int arg_4, int arg_8) {
- debug(0, "smush_rewindCurrentSan(%d, %d, %d)", arg_0, arg_4, arg_8);
+ debug(5, "smush_rewindCurrentSan(%d, %d, %d)", arg_0, arg_4, arg_8);
_smush_setupsan2 = arg_0;
smush_setupSanFile(0, 8, 0);
@@ -980,7 +959,7 @@
if (_needSceneSwitch || _keyboardDisable)
return;
- debug(0, "scene: %d", _currSceneId);
+ debug(5, "scene: %d", _currSceneId);
switch (_currSceneId) {
case 1:
queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, _continueFrame1, 1300);
@@ -1234,8 +1213,8 @@
return false;
}
-void Insane::smlayer_soundSetPan(int32 soundid, int32 pan) {
- _vm->_imuseDigital->parseScriptCmds(12, soundid, 0x700, pan, 0, 0, 0, 0);
+void Insane::smlayer_soundSetPan(int32 soundId, int32 pan) {
+ _vm->_imuseDigital->setPan(soundId, pan);
}
void Insane::smlayer_soundSetPriority(int32 sound, int32 priority) {
@@ -1257,7 +1236,8 @@
int32 pos_x, int32 pos_y, int32 arg_14, int32 arg_18,
int32 flags, const char *formatString, const char *strng) {
SmushFont *sf = _player->_sf[0];
- int color = 1, top = 0;
+ int color = 1;
+ int32 top = 0;
char *str = NULL, *string;
int len = strlen(formatString) + strlen(strng) + 16;
@@ -1303,7 +1283,7 @@
sf->drawStringAbsolute(str, renderBitmap, _player->_width, pos_x, pos_y);
break;
case 1:
- sf->drawStringCentered(str, renderBitmap, _player->_width, _player->_height, pos_x, MAX(pos_y, (int32)top));
+ sf->drawStringCentered(str, renderBitmap, _player->_width, _player->_height, pos_x, MAX(pos_y, top));
break;
default:
warning("Insane::smlayer_showStatusMsg. Not handled flags: %d", flags);
@@ -1361,6 +1341,7 @@
}
const char *Insane::handleTrsTag(int32 trsId) {
+ debug(5, "Insane::handleTrsTag(%d)", trsId);
return _player->getString(trsId);
}
@@ -1412,7 +1393,7 @@
byte *tmp = fluPtr;
int32 offset;
- debug(0, "smush_setupSanWithFlu(%s, %d, %d, %d, %d, %lx, %d)", filename, setupsan2,
+ debug(5, "smush_setupSanWithFlu(%s, %d, %d, %d, %d, %lx, %d)", filename, setupsan2,
step1, step2, setupsan1, fluPtr, numFrames);
_smush_setupsan1 = setupsan1;
@@ -1443,6 +1424,7 @@
_smush_setupsan4 = 1;
_smush_curFrame = numFrames;
smush_setFrameSteps(step1, step2);
+ smush_warpMouse(160, 100, -1);
}
void Insane::smush_setupSanFromStart(const char *filename, int32 setupsan2, int32 step1,
@@ -1452,6 +1434,7 @@
smush_setupSanFile(filename, 8, 0);
_smush_isSanFileSetup = 1;
smush_setFrameSteps(step1, step2);
+ smush_warpMouse(160, 100, -1);
}
void Insane::smush_setFrameSteps(int32 step1, int32 step2) {
@@ -1461,7 +1444,7 @@
}
void Insane::smush_setupSanFile(const char *filename, int32 offset, int32 contFrame) {
- debug(0, "smush_setupSanFile(%s, %x, %d)", filename, offset, contFrame);
+ debug(5, "smush_setupSanFile(%s, %x, %d)", filename, offset, contFrame);
_player->seekSan(filename, _vm->getGameDataPath(), offset, contFrame);
Index: insane.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- insane.h 30 Jan 2004 02:14:29 -0000 1.8
+++ insane.h 1 Feb 2004 05:44:18 -0000 1.9
@@ -169,11 +169,11 @@
bool _benHasGoggles;
bool _mineCaveIsNear;
bool _objectDetected;
+ bool _roadBumps;
int32 _val32d;
int32 _val54d;
int32 _val57d;
bool _val115_;
- bool _val121_;
int32 _val211d;
int32 _val213d;
int32 _val215d;
@@ -292,7 +292,6 @@
int32 readArray(int item);
void writeArray(int item, int value);
- int smlayer_mainLoop(void);
void mainLoop(void);
bool idx1Compare(void);
bool idx2Compare(void);
Index: insane_ben.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_ben.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- insane_ben.cpp 30 Jan 2004 02:14:29 -0000 1.7
+++ insane_ben.cpp 1 Feb 2004 05:44:18 -0000 1.8
@@ -83,7 +83,7 @@
if (_currEnemy == EN_TORQUE)
buttons = 0;
}
- debug(1, "00:%d 01:%d 02:%d 03:%d", _actor[0].act[0].state,
+ debug(5, "00:%d 01:%d 02:%d 03:%d", _actor[0].act[0].state,
_actor[0].act[1].state, _actor[0].act[2].state, _actor[0].act[3].state);
actor01Reaction(buttons);
actor02Reaction(buttons);
@@ -504,198 +504,54 @@
int32 tmp, tmp2;
switch(_actor[0].act[2].state) {
- case 106:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- smlayer_setActorFacing(0, 2, 29, 180);
- _actor[0].act[2].state = 107;
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 107:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 9) {
- _actor[0].act[2].state = 1;
- _actor[0].inventory[INV_MACE] = 0;
- smlayer_startVoice(318);
- switchBenWeapon();
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 104:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- smlayer_setActorFacing(0, 2, 28, 180);
- _actor[0].act[2].state = 105;
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 105:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 5) {
- _actor[0].act[2].state = 1;
- _actor[0].inventory[INV_MACE] = 0;
- smlayer_startVoice(318);
- switchBenWeapon();
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 108:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- smlayer_setActorFacing(0, 2, 28, 180);
- _actor[0].act[2].state = 109;
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 109:
+ case 1:
smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 5) {
- _actor[0].act[2].state = 1;
- _actor[0].inventory[INV_CHAIN] = 0; // Chain
- smlayer_startVoice(318);
- switchBenWeapon();
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 73:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
- smlayer_setActorFacing(0, 2, 19, 180);
- _actor[0].act[2].state = 74;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 74:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 2) {
- smlayer_setActorFacing(0, 2, 9, 180);
- _actor[0].act[2].state = 1;
- _actor[0].weaponClass = 2;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 79:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 2) {
- smlayer_setActorFacing(0, 2, 23, 180);
- _actor[0].act[2].state = 80;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 80:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 6) {
- smlayer_setActorFacing(0, 2, 25, 180);
- _actor[0].act[2].state = 63;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 81:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
- smlayer_setActorFacing(0, 2, 23, 180);
- _actor[0].act[2].state = 82;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 82:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 3) {
- smlayer_setActorFacing(0, 2, 26, 180);
- _actor[0].act[2].state = 64;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 77:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 2) {
- smlayer_setActorFacing(0, 2, 23, 180);
- _actor[0].act[2].state = 78;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 78:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 5) {
- smlayer_setActorFacing(0, 2, 25, 180);
- _actor[0].act[2].state = 65;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 83:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 0;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
- smlayer_setActorFacing(0, 2, 23, 180);
- _actor[0].act[2].state = 84;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 84:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 0;
- _actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 5) {
- smlayer_setActorFacing(0, 2, 25, 180);
- _actor[0].act[2].state = 66;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 75:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- _actor[0].field_44 = true;
- if (_actor[0].act[2].frame >= 4 && !_kickBenProgress) {
- smlayer_setActorFacing(0, 2, 23, 180);
- _actor[0].act[2].state = 76;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 76:
- smlayer_setActorLayer(0, 2, 6);
- _actor[0].weaponClass = 1;
+ _actor[0].weaponClass = 2;
_actor[0].kicking = false;
- _actor[0].field_44 = false;
- if (_actor[0].act[2].frame >= 4) {
- smlayer_setActorFacing(0, 2, 25, 180);
- _actor[0].act[2].state = 62;
+
+ switch (_actor[0].tilt) {
+ case -3:
+ if (_actor[0].act[2].animTilt != -3) {
+ smlayer_setActorFacing(0, 2, 6, 180);
+ _actor[0].act[2].animTilt = -3;
+ }
+ break;
+ case -2:
+ if (_actor[0].field_8 == 48)
+ smlayer_setActorFacing(0, 2, 7, 180);
+ _actor[0].act[2].animTilt = -2;
+ break;
+ case -1:
+ if (_actor[0].field_8 == 46)
+ smlayer_setActorFacing(0, 2, 8, 180);
+ _actor[0].act[2].animTilt = -1;
+ break;
+ case 0:
+ if (_actor[0].act[2].animTilt) {
+ smlayer_setActorFacing(0, 2, 9, 180);
+ _actor[0].act[2].animTilt = 0;
+ }
+ break;
+ case 1:
+ if (_actor[0].field_8 == 49)
+ smlayer_setActorFacing(0, 2, 10, 180);
+ _actor[0].act[2].animTilt = 1;
+ break;
+ case 2:
+ if (_actor[0].field_8 == 51)
+ smlayer_setActorFacing(0, 2, 11, 180);
+ _actor[0].act[2].animTilt = 2;
+ break;
+ case 3:
+ if (_actor[0].act[2].animTilt != 3) {
+ smlayer_setActorFacing(0, 2, 12, 180);
+ _actor[0].act[2].animTilt = 3;
+ }
+ break;
+ default:
+ break;
}
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ _actor[0].act[2].tilt = 0;
break;
case 2:
smlayer_setActorLayer(0, 2, 4);
@@ -746,6 +602,56 @@
case 5:
smlayer_setActorLayer(0, 2, 5);
break;
+ case 6:
+ smlayer_setActorLayer(0, 2, 4);
+ _actor[0].weaponClass = 2;
+ _actor[0].field_34 = 1;
+ _actor[0].kicking = false;
+ smlayer_setActorCostume(0, 2, readArray(22));
+ smlayer_setActorFacing(0, 2, 19, 180);
+ _actor[0].act[2].state = 7;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ smlayer_startSfx(66);
+ break;
+ case 7:
+ smlayer_setActorLayer(0, 2, 4);
+ _actor[0].weaponClass = 2;
+ _actor[0].field_34 = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 1) {
+ smlayer_setActorFacing(0, 2, 20, 180);
+ _actor[0].act[2].state = 8;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 8:
+ smlayer_setActorLayer(0, 2, 4);
+ _actor[0].weaponClass = 2;
+ _actor[0].field_34 = 1;
+ _actor[0].kicking = false;
+ if ((_actor[0].act[2].frame == 3) && (calcEnemyDamage(0, 0) == 1)) {
+ _actor[1].damage = weaponDamage(0);
+ smlayer_startSfx(64);
+ _actor[1].cursorX = 320;
+ }
+ if (_actor[0].act[2].frame >= 5) {
+ smlayer_setActorFacing(0, 2, 21, 180);
+ _actor[0].act[2].state = 9;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 9:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 2;
+ _actor[0].field_34 = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 3) {
+ smlayer_setActorCostume(0, 2, readArray(12));
+ _actor[0].field_34 = 2;
+ _actor[0].act[2].state = 1;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
case 10:
smlayer_setActorLayer(0, 2, 4);
_actor[0].weaponClass = 1;
@@ -789,20 +695,6 @@
}
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
- case 97:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = true;
- if (_actor[0].act[2].frame >= 5) {
- _actor[0].act[2].room = 1;
- _actor[0].act[1].room = 1;
- _actor[0].act[0].room = 1;
- smlayer_setActorFacing(0, 2, 21, 180);
- _actor[0].act[2].state = 13;
- _actor[0].x = _actor[1].x - 116;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
case 12:
smlayer_setActorLayer(0, 2, 4);
_actor[0].weaponClass = 1;
@@ -821,9 +713,7 @@
if (tmp == 1000)
smlayer_startSfx(74);
break;
- case INV_WRENCH:
- case INV_BOOT:
- case INV_HAND:
+ default:
if(calcEnemyDamage(1, 0) == 1)
smlayer_startSfx(73);
break;
@@ -850,56 +740,6 @@
}
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
- case 6:
- smlayer_setActorLayer(0, 2, 4);
- _actor[0].weaponClass = 2;
- _actor[0].field_34 = 1;
- _actor[0].kicking = false;
- smlayer_setActorCostume(0, 2, readArray(22));
- smlayer_setActorFacing(0, 2, 19, 180);
- _actor[0].act[2].state = 7;
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- smlayer_startSfx(66);
- break;
- case 7:
- smlayer_setActorLayer(0, 2, 4);
- _actor[0].weaponClass = 2;
- _actor[0].field_34 = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 1) {
- smlayer_setActorFacing(0, 2, 20, 180);
- _actor[0].act[2].state = 8;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 8:
- smlayer_setActorLayer(0, 2, 4);
- _actor[0].weaponClass = 2;
- _actor[0].field_34 = 1;
- _actor[0].kicking = false;
- if ((_actor[0].act[2].frame == 3) && (calcEnemyDamage(0, 0) == 1)) {
- _actor[1].damage = weaponDamage(0);
- smlayer_startSfx(64);
- _actor[1].cursorX = 320;
- }
- if (_actor[0].act[2].frame >= 5) {
- smlayer_setActorFacing(0, 2, 21, 180);
- _actor[0].act[2].state = 9;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 9:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 2;
- _actor[0].field_34 = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 3) {
- smlayer_setActorCostume(0, 2, readArray(12));
- _actor[0].field_34 = 2;
- _actor[0].act[2].state = 1;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
case 14:
smlayer_setActorLayer(0, 2, 8);
_actor[0].weaponClass = 1;
@@ -1011,7 +851,7 @@
break;
case INV_CHAINSAW:
if (_actor[1].kicking || _actor[1].field_44)
- _actor[0].act[2].state = 106;
+ _actor[0].act[2].state = 20;
else {
smlayer_setActorFacing(0, 2, 20, 180);
_actor[0].act[2].state = 20;
@@ -1024,14 +864,14 @@
_actor[0].act[2].state = 77;
break;
}
+ // break skipped intentionally
default:
- smlayer_setActorFacing(0, 2, 19, 180);
- _actor[0].act[2].state = 19;
+ smlayer_setActorFacing(0, 2, 20, 180);
+ _actor[0].act[2].state = 20;
break;
}
- smlayer_setActorFacing(0, 2, 20, 180);
- _actor[0].act[2].state = 20;
}
+
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
case 20:
@@ -1052,8 +892,8 @@
smlayer_startSfx(68);
break;
default:
- smlayer_setActorFacing(0, 2, 19, 180);
- _actor[0].act[2].state = 19;
+ if (calcEnemyDamage(1, 0))
+ smlayer_startSfx(67);
break;
}
} else {
@@ -1077,25 +917,6 @@
}
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
- case 110:
- smlayer_setActorLayer(0, 2, 4);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- smlayer_setActorFacing(0, 2, 30, 180);
- _actor[0].act[2].state = 111;
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 111:
- smlayer_setActorLayer(0, 2, 4);
- _actor[0].weaponClass = 1;
- _actor[0].kicking = false;
- if (_actor[0].act[2].frame >= 7) {
- smlayer_setActorFacing(0, 2, 25, 180);
- _actor[0].act[2].state = 65;
- _actor[0].inventory[INV_CHAIN] = 1; // Chain
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
case 22:
smlayer_setActorLayer(0, 2, 6);
_actor[0].weaponClass = 0;
@@ -1120,15 +941,14 @@
if (weaponBenIsEffective()) {
smlayer_setActorFacing(0, 2, 22, 180);
_actor[0].act[2].state = 83;
+ break;
}
- break;
+ // break missed intentionally
default:
smlayer_setActorFacing(0, 2, 20, 180);
_actor[0].act[2].state = 24;
break;
}
- smlayer_setActorFacing(0, 2, 21, 180);
- _actor[0].act[2].state = 21;
}
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
@@ -1192,10 +1012,6 @@
_actor[0].kicking = true;
if (_actor[0].act[2].frame >= 1) {
switch (_actor[1].weapon) {
- case INV_HAND:
- smlayer_setActorFacing(0, 2, 20, 180);
- _actor[0].act[2].state = 28;
- break;
case INV_CHAIN:
case INV_CHAINSAW:
case INV_MACE:
@@ -1207,6 +1023,7 @@
_actor[0].act[2].state = 75;
break;
}
+ // break missed intentionaly
default:
smlayer_setActorFacing(0, 2, 20, 180);
_actor[0].act[2].state = 28;
@@ -1234,8 +1051,8 @@
if (tmp == 1000)
smlayer_startSfx(71);
break;
- case 6:
- if (!calcEnemyDamage(0, 1))
+ case INV_HAND:
+ if (!calcEnemyDamage(1, 0))
smlayer_startSfx(70);
break;
default:
@@ -1316,6 +1133,28 @@
}
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
+ case 34:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].kicking = false;
+
+ if (!smlayer_actorNeedRedraw(0, 2)) {
+ setBenState();
+ _actor[0].act[2].tilt = 0;
+ // for some reason there is no break at this
+ // place, so tilt gets overriden on next line
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 35:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].kicking = false;
+
+ if (!smlayer_actorNeedRedraw(0, 2)) {
+ switchBenWeapon();
+ _actor[0].act[2].tilt = 0;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
case 36:
smlayer_setActorLayer(0, 2, 5);
_actor[0].kicking = false;
@@ -1410,28 +1249,6 @@
_actor[0].act[2].state = 38;
}
break;
- case 34:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].kicking = false;
-
- if (!smlayer_actorNeedRedraw(0, 2)) {
- setBenState();
- _actor[0].act[2].tilt = 0;
- // for some reason there is no break at this
- // place, so tilt gets overriden on next line
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
- case 35:
- smlayer_setActorLayer(0, 2, 5);
- _actor[0].kicking = false;
-
- if (!smlayer_actorNeedRedraw(0, 2)) {
- switchBenWeapon();
- _actor[0].act[2].tilt = 0;
- }
- _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- break;
case 63:
smlayer_setActorLayer(0, 2, 5);
if (_actor[0].act[2].animTilt) {
@@ -1482,54 +1299,231 @@
_actor[0].kicking = false;
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
- case 1:
+ case 73:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
+ smlayer_setActorFacing(0, 2, 19, 180);
+ _actor[0].act[2].state = 74;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 74:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 2) {
+ smlayer_setActorFacing(0, 2, 9, 180);
+ _actor[0].act[2].state = 1;
+ _actor[0].weaponClass = 2;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 75:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 4 && !_kickBenProgress) {
+ smlayer_setActorFacing(0, 2, 23, 180);
+ _actor[0].act[2].state = 76;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 76:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 4) {
+ smlayer_setActorFacing(0, 2, 25, 180);
+ _actor[0].act[2].state = 62;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 77:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 2) {
+ smlayer_setActorFacing(0, 2, 23, 180);
+ _actor[0].act[2].state = 78;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 78:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 5) {
+ smlayer_setActorFacing(0, 2, 25, 180);
+ _actor[0].act[2].state = 65;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 79:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 2) {
+ smlayer_setActorFacing(0, 2, 23, 180);
+ _actor[0].act[2].state = 80;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 80:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 6) {
+ smlayer_setActorFacing(0, 2, 25, 180);
+ _actor[0].act[2].state = 63;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 81:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
+ smlayer_setActorFacing(0, 2, 23, 180);
+ _actor[0].act[2].state = 82;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 82:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 3) {
+ smlayer_setActorFacing(0, 2, 26, 180);
+ _actor[0].act[2].state = 64;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 83:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 0;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = true;
+ if (_actor[0].act[2].frame >= 2 && !_kickBenProgress) {
+ smlayer_setActorFacing(0, 2, 23, 180);
+ _actor[0].act[2].state = 84;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 84:
+ smlayer_setActorLayer(0, 2, 6);
+ _actor[0].weaponClass = 0;
+ _actor[0].kicking = false;
+ _actor[0].field_44 = false;
+ if (_actor[0].act[2].frame >= 5) {
+ smlayer_setActorFacing(0, 2, 25, 180);
+ _actor[0].act[2].state = 66;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 97:
smlayer_setActorLayer(0, 2, 5);
- _actor[0].weaponClass = 2;
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = true;
+ if (_actor[0].act[2].frame >= 5) {
+ _actor[0].act[2].room = 1;
+ _actor[0].act[1].room = 1;
+ _actor[0].act[0].room = 1;
+ smlayer_setActorFacing(0, 2, 21, 180);
+ _actor[0].act[2].state = 13;
+ _actor[0].x = _actor[1].x - 116;
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 104:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
_actor[0].kicking = false;
-
- switch (_actor[0].tilt) {
- case -3:
- if (_actor[0].act[2].animTilt != -3) {
- smlayer_setActorFacing(0, 2, 6, 180);
- _actor[0].act[2].animTilt = -3;
- }
- break;
- case -2:
- if (_actor[0].field_8 == 48)
- smlayer_setActorFacing(0, 2, 7, 180);
- _actor[0].act[2].animTilt = -2;
- break;
- case -1:
- if (_actor[0].field_8 == 46)
- smlayer_setActorFacing(0, 2, 8, 180);
- _actor[0].act[2].animTilt = -1;
- break;
- case 0:
- if (_actor[0].act[2].animTilt) {
- smlayer_setActorFacing(0, 2, 9, 180);
- _actor[0].act[2].animTilt = 0;
- }
- break;
- case 1:
- if (_actor[0].field_8 == 49)
- smlayer_setActorFacing(0, 2, 10, 180);
- _actor[0].act[2].animTilt = 1;
- break;
- case 2:
- if (_actor[0].field_8 == 51)
- smlayer_setActorFacing(0, 2, 11, 180);
- _actor[0].act[2].animTilt = 2;
- break;
- case 3:
- if (_actor[0].act[2].animTilt != 3) {
- smlayer_setActorFacing(0, 2, 12, 180);
- _actor[0].act[2].animTilt = 3;
- }
- break;
- default:
- break;
+ smlayer_setActorFacing(0, 2, 28, 180);
+ _actor[0].act[2].state = 105;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 105:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 5) {
+ _actor[0].act[2].state = 1;
+ _actor[0].inventory[INV_MACE] = 0;
+ smlayer_startVoice(318);
+ switchBenWeapon();
}
- _actor[0].act[2].tilt = 0;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 106:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ smlayer_setActorFacing(0, 2, 29, 180);
+ _actor[0].act[2].state = 107;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 107:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 9) {
+ _actor[0].act[2].state = 1;
+ _actor[0].inventory[INV_MACE] = 0;
+ smlayer_startVoice(318);
+ switchBenWeapon();
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 108:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ smlayer_setActorFacing(0, 2, 28, 180);
+ _actor[0].act[2].state = 109;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 109:
+ smlayer_setActorLayer(0, 2, 5);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 5) {
+ _actor[0].act[2].state = 1;
+ _actor[0].inventory[INV_CHAIN] = 0; // Chain
+ smlayer_startVoice(318);
+ switchBenWeapon();
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 110:
+ smlayer_setActorLayer(0, 2, 4);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ smlayer_setActorFacing(0, 2, 30, 180);
+ _actor[0].act[2].state = 111;
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
+ break;
+ case 111:
+ smlayer_setActorLayer(0, 2, 4);
+ _actor[0].weaponClass = 1;
+ _actor[0].kicking = false;
+ if (_actor[0].act[2].frame >= 7) {
+ smlayer_setActorFacing(0, 2, 25, 180);
+ _actor[0].act[2].state = 65;
+ _actor[0].inventory[INV_CHAIN] = 1; // Chain
+ }
+ _actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
break;
default:
break;
@@ -1721,10 +1715,29 @@
int32 tmp;
switch (_actor[0].act[3].state) {
- case 117:
- reinitActors();
- smlayer_setActorFacing(0, 3, 13, 180);
- _actor[0].act[3].state = 69;
+ case 1:
+ _actor[0].field_54 = 0;
+ break;
+ case 52:
+ if (_actor[0].runningSound)
+ smlayer_stopSound(_actor[0].runningSound);
+
+ if (_currScenePropIdx)
+ shutCurrentScene();
+
+ _actor[0].runningSound = 0;
+ _actor[0].defunct = 0;
+ _actor[0].field_54 = 0;
+ smlayer_setActorFacing(0, 3, 15, 180);
+ _actor[0].act[3].state = 53;
+ break;
+ case 53:
+ if (_actor[0].act[3].frame >= 2) {
+ smlayer_setActorFacing(0, 3, 16, 180);
+ _actor[0].act[3].state = 54;
+ }
+ break;
+ case 54:
break;
case 69:
if (_actor[0].act[3].frame >= 2)
@@ -1743,6 +1756,11 @@
_actor[0].act[3].state = 118;
}
break;
+ case 71:
+ _actor[0].field_54 = 0;
+ if (_actor[0].act[3].frame >= 2)
+ _actor[0].act[3].state = 1;
+ break;
case 72:
if (_actor[0].runningSound) {
if (!smlayer_isSoundRunning(_actor[0].runningSound)) {
@@ -1760,39 +1778,15 @@
}
}
break;
+ case 117:
+ reinitActors();
+ smlayer_setActorFacing(0, 3, 13, 180);
+ _actor[0].act[3].state = 69;
+ break;
case 118:
smlayer_setActorFacing(0, 3, 14, 180);
_actor[0].act[3].state = 71;
break;
- case 71:
- _actor[0].field_54 = 0;
- if (_actor[0].act[3].frame >= 2)
- _actor[0].act[3].state = 1;
- break;
- case 52:
- if (_actor[0].runningSound)
- smlayer_stopSound(_actor[0].runningSound);
-
- if (_currScenePropIdx)
- shutCurrentScene();
-
- _actor[0].runningSound = 0;
- _actor[0].defunct = 0;
- _actor[0].field_54 = 0;
- smlayer_setActorFacing(0, 3, 15, 180);
- _actor[0].act[3].state = 53;
- break;
- case 53:
- if (_actor[0].act[3].frame >= 2) {
- smlayer_setActorFacing(0, 3, 16, 180);
- _actor[0].act[3].state = 54;
- }
- break;
- case 54:
- break;
- case 1:
- _actor[0].field_54 = 0;
- break;
default:
break;
}
Index: insane_enemy.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_enemy.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- insane_enemy.cpp 30 Jan 2004 02:14:29 -0000 1.6
+++ insane_enemy.cpp 1 Feb 2004 05:44:18 -0000 1.7
@@ -166,7 +166,7 @@
retval = 1;
}
if (_actor[actor2].kicking) {
- if (weaponMaxRange(actor2) <= dist)
+ if (weaponMaxRange(actor2) >= dist)
if (rand() % (probability * 2) <= 1)
retval = 1;
}
@@ -330,7 +330,7 @@
retval = 1;
}
[...1188 lines suppressed...]
- _actor[1].runningSound = 0;
- _actor[1].defunct = 0;
- _actor[1].field_54 = 0;
- smlayer_setActorFacing(1, 3, 15, 180);
- _actor[1].act[3].state = 53;
- break;
- case 53:
- _actor[1].field_54 = 0;
- if (_actor[1].act[3].frame >= 2) {
- smlayer_setActorFacing(1, 3, 16, 180);
- _actor[1].act[3].state = 54;
- }
- break;
- case 54:
- case 1:
- _actor[1].field_54 = 0;
- break;
default:
break;
}
Index: insane_iact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_iact.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- insane_iact.cpp 30 Jan 2004 02:14:29 -0000 1.9
+++ insane_iact.cpp 1 Feb 2004 05:44:18 -0000 1.10
@@ -86,7 +86,7 @@
}
if (_val32d == -1) {
- proc62();
+ proc62(); //PATCH
_val32d = _enemy[_currEnemy].field_34;
}
@@ -133,7 +133,8 @@
case 6:
switch (par2) {
case 38:
- smlayer_drawSomething(renderBitmap, codecparam, 50, 20, 3,
+ // left branch sign
+ smlayer_drawSomething(renderBitmap, codecparam, 50-19, 20-13, 3,
_smush_iconsNut, 7, 0, 0);
_roadLeftBranch = true;
_iactSceneId = par4;
@@ -142,9 +143,10 @@
if (readArray(4) != 0)
return;
- _roadRightBranch = true;
- smlayer_drawSomething(renderBitmap, codecparam, 160, 20, 3,
+ // right branch sign
+ smlayer_drawSomething(renderBitmap, codecparam, 160-19, 20-13, 3,
_smush_icons2Nut, 8, 0, 0);
+ _roadRightBranch = true;
break;
case 8:
if (readArray(4) == 0 || readArray(6) == 0)
@@ -156,7 +158,7 @@
break;
case 25:
- _val121_ = true;
+ _roadBumps = true;
_actor[0].y1 = -_actor[0].y1;
break;
case 11:
@@ -194,7 +196,7 @@
if (_val32d < 0 || _val32d > 4)
if (readArray(8)) {
- smlayer_drawSomething(renderBitmap, codecparam, 270, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 270-19, 20-18, 3,
_smush_iconsNut, 20, 0, 0);
_benHasGoggles = true;
}
@@ -385,7 +387,7 @@
smlayer_setFluPalette(_smush_roadrashRip, 0);
}
} else if (par1 == 25) {
- _val121_ = true;
+ _roadBumps = true;
_actor[0].y1 = -_actor[0].y1;
_actor[1].y1 = -_actor[1].y1;
}
@@ -432,7 +434,8 @@
case 6:
switch (par2) {
case 38:
- smlayer_drawSomething(renderBitmap, codecparam, 270, 20, 3,
+
+ smlayer_drawSomething(renderBitmap, codecparam, 270-19, 20-13, 3,
_smush_icons2Nut, 10, 0, 0);
_roadLeftBranch = true;
_iactSceneId = par4;
@@ -441,9 +444,9 @@
if (readArray(4) != 0)
return;
- _roadRightBranch = true;
- smlayer_drawSomething(renderBitmap, codecparam, 160, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 160-19, 20-13, 3,
_smush_icons2Nut, 8, 0, 0);
+ _roadRightBranch = true;
break;
case 8:
if (readArray(4) == 0 || readArray(6) == 0)
@@ -459,11 +462,11 @@
return;
_carIsBroken = true;
- smlayer_drawSomething(renderBitmap, codecparam, 160, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 160-12, 20-10, 3,
_smush_icons2Nut, 8, 0, 0);
break;
case 11:
- smlayer_drawSomething(renderBitmap, codecparam, 50, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 50-19, 20-13, 3,
_smush_icons2Nut, 9, 0, 0);
_roadLeftBranch = true;
_iactSceneId = par4;
@@ -523,7 +526,7 @@
case 6:
switch (par2) {
case 38:
- smlayer_drawSomething(renderBitmap, codecparam, 270, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 270-19, 20-13, 3,
_smush_icons2Nut, 10, 0, 0);
_roadLeftBranch = true;
_iactSceneId = par4;
@@ -533,7 +536,7 @@
return;
_roadRightBranch = true;
- smlayer_drawSomething(renderBitmap, codecparam, 160, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 160-19, 20-13, 3,
_smush_icons2Nut, 8, 0, 0);
break;
case 8:
@@ -550,11 +553,11 @@
return;
_carIsBroken = true;
- smlayer_drawSomething(renderBitmap, codecparam, 160, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 160-12, 20-10, 3,
_smush_icons2Nut, 8, 0, 0);
break;
case 11:
- smlayer_drawSomething(renderBitmap, codecparam, 50, 20, 3,
+ smlayer_drawSomething(renderBitmap, codecparam, 50-19, 20-13, 3,
_smush_icons2Nut, 9, 0, 0);
_roadLeftBranch = true;
_iactSceneId = par4;
Index: insane_scenes.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_scenes.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- insane_scenes.cpp 30 Jan 2004 02:14:29 -0000 1.9
+++ insane_scenes.cpp 1 Feb 2004 05:44:18 -0000 1.10
@@ -51,12 +51,11 @@
_currScenePropSubIdx = 0;
_currTrsMsg = 0;
- smush_proc41();
smush_warpMouse(160, 100, -1);
putActors();
readState();
- debug(0, "INSANE Arg: %d", readArray(0));
+ debug(5, "INSANE Arg: %d", readArray(0));
switch (readArray(0)) {
case 1:
@@ -131,9 +130,7 @@
break;
}
- smush_proc39();
putActors();
- smush_proc40();
_vm->_sound->pauseSounds(0); // IMUSE_Resume();
_enemy[EN_ROTT3].maxdamage = 120;
@@ -167,7 +164,7 @@
}
int Insane::initScene(int sceneId) {
- debug(0, "initScene(%d)", sceneId);
+ debug(5, "initScene(%d)", sceneId);
if (_needSceneSwitch)
return 1;
@@ -189,7 +186,7 @@
void Insane::stopSceneSounds(int sceneId) {
int flag = 0;
- debug(0, "stopSceneSounds(%d)", sceneId);
+ debug(5, "stopSceneSounds(%d)", sceneId);
switch (sceneId) {
case 1:
@@ -267,7 +264,6 @@
case 23:
break;
}
- smush_proc39();
if (!flag)
return;
@@ -282,7 +278,7 @@
}
void Insane::shutCurrentScene(void) {
- debug(0, "shutCurrentScene()");
+ debug(5, "shutCurrentScene()");
_currScenePropIdx = 0;
_currTrsMsg = 0;
@@ -311,7 +307,7 @@
int Insane::loadSceneData(int scene, int flag, int phase) {
int retvalue = 1;
- debug(0, "Insane::loadSceneData(%d, %d, %d)", scene, flag, phase);
+ debug(5, "Insane::loadSceneData(%d, %d, %d)", scene, flag, phase);
//if (phase == 1) /// FIXME
// insane_unlock();
switch (scene) {
@@ -605,7 +601,7 @@
}
void Insane::setSceneCostumes(int sceneId) {
- debug(0, "Insane::setSceneCostumes(%d)", sceneId);
+ debug(5, "Insane::setSceneCostumes(%d)", sceneId);
switch (sceneId) {
case 1:
@@ -631,7 +627,7 @@
return;
break;
case 21:
- _currEnemy = EN_ROTT3;
+ _currEnemy = EN_ROTT3; //PATCH
setEnemyCostumes();
_actor[1].y = 200;
smlayer_setFluPalette(_smush_roadrashRip, 0);
@@ -655,7 +651,7 @@
void Insane::setEnemyCostumes(void) {
int i;
- debug(0, "setEnemyCostumes(%d)", _currEnemy);
+ debug(5, "setEnemyCostumes(%d)", _currEnemy);
smlayer_setActorCostume(0, 2, readArray(12));
smlayer_setActorCostume(0, 0, readArray(14));
@@ -1005,7 +1001,7 @@
if (curFrame >= maxFrame)
smush_rewindCurrentSan(1088, -1, -1);
- _val121_ = false;
+ _roadBumps = false;
_roadLeftBranch = false;
_roadRightBranch = false;
_benHasGoggles = false;
@@ -1064,7 +1060,7 @@
smush_rewindCurrentSan(1088, -1, -1);
smlayer_setFluPalette(_smush_goglpaltRip, 0);
}
- _val121_ = false;
+ _roadBumps = false;
_mineCaveIsNear = false;
_roadLeftBranch = false;
_roadRightBranch = false;
@@ -1099,7 +1095,7 @@
if (curFrame >= maxFrame)
smush_rewindCurrentSan(1088, -1, -1);
- _val121_ = false;
+ _roadBumps = false;
_roadLeftBranch = false;
_roadRightBranch = false;
_continueFrame = curFrame;
@@ -1113,7 +1109,7 @@
if (curFrame >= maxFrame)
smush_rewindCurrentSan(1088, -1, -1);
- _val121_ = false;
+ _roadBumps = false;
_roadLeftBranch = false;
_roadRightBranch = false;
_continueFrame = curFrame;
@@ -1331,10 +1327,12 @@
prepareScenePropScene(16, 0, 1);
break;
case EN_VULTM2:
- turnBen(true);
-
- prepareScenePropScene(18, 0, 1);
- _battleScene = false;
+ if (_enemy[EN_VULTM2].occurences <= 1) {
+ turnBen(false);
+ prepareScenePropScene(18, 0, 1);
+ _battleScene = false;
+ } else
+ turnBen(true);
break;
case EN_TORQUE:
turnBen(false);
More information about the Scummvm-git-logs
mailing list