[Scummvm-cvs-logs] CVS: scummvm/scumm/insane insane.cpp,1.19.2.5,1.19.2.6 insane.h,1.12.2.1,1.12.2.2 insane_ben.cpp,1.10.2.1,1.10.2.2 insane_enemy.cpp,1.10,1.10.2.1 insane_iact.cpp,1.14,1.14.2.1 insane_scenes.cpp,1.14,1.14.2.1
Travis Howell
kirben at users.sourceforge.net
Thu Aug 12 18:53:53 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/insane
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21273/scumm/insane
Modified Files:
Tag: branch-0-6-0
insane.cpp insane.h insane_ben.cpp insane_enemy.cpp
insane_iact.cpp insane_scenes.cpp
Log Message:
Back port:
V1 costume fixes
INSANE and smush support for PC FT demo
Index: insane.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane.cpp,v
retrieving revision 1.19.2.5
retrieving revision 1.19.2.6
diff -u -d -r1.19.2.5 -r1.19.2.6
--- insane.cpp 26 Jun 2004 09:37:27 -0000 1.19.2.5
+++ insane.cpp 13 Aug 2004 01:52:06 -0000 1.19.2.6
@@ -40,7 +40,6 @@
// TODO (in no particular order):
// o Code review/cleanup
-// o DOS demo INSANE
namespace Scumm {
@@ -51,13 +50,6 @@
Insane::Insane(ScummEngine_v6 *scumm) {
_vm = scumm;
-#ifndef FTDOSDEMO
- if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
- _insaneIsRunning = false;
- return;
- }
-#endif
-
initvars();
if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) {
@@ -182,8 +174,14 @@
for (i = 0; i < 0x80; i++)
_iactBits[i] = 0;
- init_enemyStruct(EN_ROTT1, EN_ROTT1, 0, 0, 160, 0, INV_MACE, 90, "wr2_rott.san",
- 26, 16, 17, 27, 11, 3);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ init_enemyStruct(EN_ROTT1, EN_ROTT1, 0, 0, 160, 0, INV_MACE, 63, "endcrshr.san",
+ 25, 15, 16, 26, 11, 3);
+ } else {
+ init_enemyStruct(EN_ROTT1, EN_ROTT1, 0, 0, 160, 0, INV_MACE, 90, "wr2_rott.san",
+ 26, 16, 17, 27, 11, 3);
+ }
+
init_enemyStruct(EN_ROTT2, EN_ROTT2, 1, 0, 250, 0, INV_2X4, 90, "wr2_rott.san",
28, 16, 17, 42, 11, 3);
init_enemyStruct(EN_ROTT3, EN_ROTT3, 2, 0, 120, 0, INV_HAND, 90, "wr2_rott.san",
@@ -632,36 +630,47 @@
}
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;
- _actor[0].inventory[INV_BOOT] = 1;
-
- _smlayer_room = readArray(320);
- _smlayer_room2 = readArray(321);
- _posBrokenTruck = readArray(322);
- _posVista = readArray(323);
- _val57d = readArray(324);
- _posCave = readArray(325);
- _posBrokenCar = readArray(326);
- _val54d = readArray(327);
- _posFatherTorque = readArray(328);
- _enemy[EN_TORQUE].occurences = readArray(337);
- _enemy[EN_ROTT1].occurences = readArray(329);
- _enemy[EN_ROTT2].occurences = readArray(330);
- _enemy[EN_ROTT3].occurences = readArray(331);
- _enemy[EN_VULTF1].occurences = readArray(332);
- _enemy[EN_VULTM1].occurences = readArray(333);
- _enemy[EN_VULTF2].occurences = readArray(334);
- _enemy[EN_VULTM2].occurences = readArray(335);
- _enemy[EN_CAVEFISH].occurences = readArray(336);
- _enemy[EN_VULTM2].field_10 = readArray(340);
- _enemy[EN_CAVEFISH].field_10 = readArray(56);
- _enemy[EN_VULTF2].field_10 = readArray(339);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ _actor[0].inventory[INV_CHAIN] = 0;
+ _actor[0].inventory[INV_CHAINSAW] = 0;
+ _actor[0].inventory[INV_MACE] = 0;
+ _actor[0].inventory[INV_2X4] = 0;
+ _actor[0].inventory[INV_WRENCH] = 1;
+ _actor[0].inventory[INV_DUST] = 0;
+ _actor[0].inventory[INV_HAND] = 1;
+ _actor[0].inventory[INV_BOOT] = 0;
+ _smlayer_room2 = 13;
+ } else {
+ _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;
+ _actor[0].inventory[INV_BOOT] = 1;
+ _smlayer_room = readArray(320);
+ _smlayer_room2 = readArray(321);
+ _posBrokenTruck = readArray(322);
+ _posVista = readArray(323);
+ _val57d = readArray(324);
+ _posCave = readArray(325);
+ _posBrokenCar = readArray(326);
+ _val54d = readArray(327);
+ _posFatherTorque = readArray(328);
+ _enemy[EN_TORQUE].occurences = readArray(337);
+ _enemy[EN_ROTT1].occurences = readArray(329);
+ _enemy[EN_ROTT2].occurences = readArray(330);
+ _enemy[EN_ROTT3].occurences = readArray(331);
+ _enemy[EN_VULTF1].occurences = readArray(332);
+ _enemy[EN_VULTM1].occurences = readArray(333);
+ _enemy[EN_VULTF2].occurences = readArray(334);
+ _enemy[EN_VULTM2].occurences = readArray(335);
+ _enemy[EN_CAVEFISH].occurences = readArray(336);
+ _enemy[EN_VULTM2].field_10 = readArray(340);
+ _enemy[EN_CAVEFISH].field_10 = readArray(56);
+ _enemy[EN_VULTF2].field_10 = readArray(339);
+ }
}
void Insane::setupValues(void) {
@@ -800,8 +809,8 @@
debug(INSANE_DBG, "Insane::prepareScenePropScene(%d, %d, %d)", scenePropNum, arg_4, arg_8);
- if (!loadScenePropSounds(idx))
- return;
+ if (((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) || !loadScenePropSounds(idx))
+ return;
_actor[0].defunct = arg_4;
_actor[1].defunct = arg_8;
@@ -897,9 +906,15 @@
}
void Insane::reinitActors(void) {
- smlayer_setActorCostume(0, 2, readArray(12));
- smlayer_setActorCostume(0, 0, readArray(14));
- smlayer_setActorCostume(0, 1, readArray(13));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ smlayer_setActorCostume(0, 2, readArray(11));
+ smlayer_setActorCostume(0, 0, readArray(13));
+ smlayer_setActorCostume(0, 1, readArray(12));
+ } else {
+ smlayer_setActorCostume(0, 2, readArray(12));
+ smlayer_setActorCostume(0, 0, readArray(14));
+ smlayer_setActorCostume(0, 1, readArray(13));
+ }
smlayer_setActorLayer(0, 1, 1);
smlayer_setActorLayer(0, 2, 5);
smlayer_setActorLayer(0, 0, 10);
@@ -1181,6 +1196,9 @@
}
void Insane::smlayer_setFluPalette(byte *pal, int shut_flag) {
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ return;
+
// if (shut_flag)
// // FIXME: shut colors and make picture appear smoothly
// SmushPlayer::setPalette(pal);
@@ -1291,13 +1309,22 @@
}
void Insane::procSKIP(Chunk &b) {
- _player->checkBlock(b, TYPE_SKIP, 4);
int16 par1, par2;
+ _player->_skipNext = false;
+
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ _player->checkBlock(b, TYPE_SKIP, 2);
+ par1 = b.getWord();
+ if (isBitSet(par1))
+ _player->_skipNext = true;
+ return;
+ }
+
+ _player->checkBlock(b, TYPE_SKIP, 4);
par1 = b.getWord();
par2 = b.getWord();
- _player->_skipNext = false;
if (!par2) {
if (isBitSet(par1))
Index: insane.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane.h,v
retrieving revision 1.12.2.1
retrieving revision 1.12.2.2
diff -u -d -r1.12.2.1 -r1.12.2.2
--- insane.h 22 Apr 2004 12:27:22 -0000 1.12.2.1
+++ insane.h 13 Aug 2004 01:52:06 -0000 1.12.2.2
@@ -53,8 +53,6 @@
#define INSANE_DBG 5
-#undef FTDOSDEMO
-
class Insane {
public:
Insane(ScummEngine_v6 *scumm);
Index: insane_ben.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_ben.cpp,v
retrieving revision 1.10.2.1
retrieving revision 1.10.2.2
diff -u -d -r1.10.2.1 -r1.10.2.2
--- insane_ben.cpp 23 Jun 2004 03:24:55 -0000 1.10.2.1
+++ insane_ben.cpp 13 Aug 2004 01:52:07 -0000 1.10.2.2
@@ -122,6 +122,12 @@
int32 Insane::actionBen(void) {
int32 buttons, tmp;
bool doDamage = false;
+ int sound;
+
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ sound = 59;
+ else
+ sound = 95;
if (_actor[0].enemyHandler != -1)
buttons = enemyHandler(_actor[0].enemyHandler, 0, 1, _actor[0].probability);
@@ -165,11 +171,11 @@
_val213d = 0;
}
- if (!smlayer_isSoundRunning(95))
- smlayer_startSfx(95);
+ if (!smlayer_isSoundRunning(sound))
+ smlayer_startSfx(sound);
} else {
- if (smlayer_isSoundRunning(95))
- smlayer_stopSound(95);
+ if (smlayer_isSoundRunning(sound))
+ smlayer_stopSound(sound);
_val213d = 0;
}
@@ -568,10 +574,15 @@
if (_actor[0].act[2].frame == 2) {
if (_currEnemy != EN_CAVEFISH) {
tmp = calcEnemyDamage(1, 1);
- if (tmp == 1)
- smlayer_startSfx(60);
- if (tmp == 1000)
- smlayer_startSfx(62);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(50);
+ } else {
+ if (tmp == 1)
+ smlayer_startSfx(60);
+ if (tmp == 1000)
+ smlayer_startSfx(62);
+ }
} else {
if ((_actor[1].x - _actor[0].x <= weaponMaxRange(0)) &&
(_actor[1].x - _actor[0].x >= weaponMinRange(0)) &&
@@ -886,10 +897,17 @@
case INV_2X4:
case INV_BOOT:
tmp = calcEnemyDamage(1, 1);
- if (tmp == 1)
- smlayer_startSfx(67);
- if (tmp == 1000)
- smlayer_startSfx(68);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(52);
+ if (tmp == 1000)
+ smlayer_startSfx(56);
+ } else {
+ if (tmp == 1)
+ smlayer_startSfx(67);
+ if (tmp == 1000)
+ smlayer_startSfx(68);
+ }
break;
default:
if (calcEnemyDamage(1, 0))
@@ -1004,7 +1022,8 @@
smlayer_setActorFacing(0, 2, 19, 180);
_actor[0].act[2].state = 27;
_actor[0].act[2].tilt = calcTilt(_actor[0].tilt);
- smlayer_startSfx(72);
+ if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)))
+ smlayer_startSfx(72);
break;
case 27:
smlayer_setActorLayer(0, 2, 4);
@@ -1046,10 +1065,17 @@
case INV_BOOT:
case INV_DUST:
tmp = calcEnemyDamage(1, 1);
- if (tmp == 1)
- smlayer_startSfx(70);
- if (tmp == 1000)
- smlayer_startSfx(71);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(58);
+ if (tmp == 1000)
+ smlayer_startSfx(56);
+ } else {
+ if (tmp == 1)
+ smlayer_startSfx(70);
+ if (tmp == 1000)
+ smlayer_startSfx(71);
+ }
break;
case INV_HAND:
if (!calcEnemyDamage(1, 0))
@@ -1158,7 +1184,10 @@
case 36:
smlayer_setActorLayer(0, 2, 5);
_actor[0].kicking = false;
- smlayer_setActorCostume(0, 2, readArray(18));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ smlayer_setActorCostume(0, 2, readArray(17));
+ else
+ smlayer_setActorCostume(0, 2, readArray(18));
smlayer_setActorFacing(0, 2, 6, 180);
smlayer_startSfx(96);
switch (_currEnemy) {
@@ -1201,7 +1230,10 @@
case EN_ROTT1:
case EN_ROTT2:
case EN_ROTT3:
- queueSceneSwitch(9, 0, "wr2_benr.san", 64, 0, 0, 0);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ queueSceneSwitch(9, 0, "bencrshe.san", 64, 0, 0, 0);
+ else
+ queueSceneSwitch(9, 0, "wr2_benr.san", 64, 0, 0, 0);
break;
case EN_VULTF1:
case EN_VULTM1:
@@ -1899,7 +1931,10 @@
_actor[0].act[2].state = 34;
break;
case INV_WRENCH:
- smlayer_setActorCostume(0, 2, readArray(25));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ smlayer_setActorCostume(0, 2, readArray(24));
+ else
+ smlayer_setActorCostume(0, 2, readArray(25));
smlayer_setActorFacing(0, 2, 18, 180);
_actor[0].weaponClass = 0;
_actor[0].act[2].state = 34;
@@ -1907,7 +1942,10 @@
case INV_BOOT:
case INV_HAND:
case INV_DUST:
- smlayer_setActorCostume(0, 2, readArray(12));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ smlayer_setActorCostume(0, 2, readArray(11));
+ else
+ smlayer_setActorCostume(0, 2, readArray(12));
_actor[0].weaponClass = 2;
_actor[0].act[2].state = 1;
break;
@@ -1955,6 +1993,11 @@
void Insane::ouchSoundBen(void) {
_actor[0].act[3].state = 52;
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ smlayer_startVoice(54);
+ return;
+ }
+
switch (_vm->_rnd.getRandomNumber(3)) {
case 0:
smlayer_startVoice(315);
Index: insane_enemy.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_enemy.cpp,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -d -r1.10 -r1.10.2.1
--- insane_enemy.cpp 10 Feb 2004 04:15:36 -0000 1.10
+++ insane_enemy.cpp 13 Aug 2004 01:52:07 -0000 1.10.2.1
@@ -1265,6 +1265,11 @@
_actor[1].act[3].state = 52;
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ smlayer_startVoice(55);
+ return;
+ }
+
switch (_currEnemy) {
case EN_VULTF1:
if (_actor[0].weapon == INV_DUST) {
@@ -1694,7 +1699,10 @@
_actor[1].weaponClass = 1;
if (_actor[1].act[2].frame >= 6) {
tmp = calcBenDamage(1, 1);
- if (tmp == 1)
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(50);
+ } else if (tmp == 1)
smlayer_startSfx(60);
if (tmp == 1000)
smlayer_startSfx(62);
@@ -1863,15 +1871,17 @@
smlayer_setActorFacing(1, 2, 19, 180);
_actor[1].act[2].state = 19;
_actor[1].act[2].tilt = calcTilt(_actor[1].tilt);
- smlayer_startSfx(69);
-
- if (!_actor[1].field_54) {
- tmp = _vm->_rnd.getRandomNumber(4);
- if (tmp == 1) {
- smlayer_startSfx(213);
- } else if (tmp == 3) {
- smlayer_startSfx(215);
+ if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) {
+ smlayer_startSfx(69);
+ if (!_actor[1].field_54) {
+ tmp = _vm->_rnd.getRandomNumber(4);
+ if (tmp == 1)
+ smlayer_startSfx(213);
+ else if (tmp == 3)
+ smlayer_startSfx(215);
}
+ } else {
+ smlayer_startSfx(53);
}
break;
case 19:
@@ -1925,10 +1935,17 @@
case INV_2X4:
case INV_BOOT:
tmp = calcBenDamage(1, 1);
- if (tmp == 1)
- smlayer_startSfx(67);
- if (tmp == 1000)
- smlayer_startSfx(68);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(52);
+ else if (tmp == 1000)
+ smlayer_startSfx(56);
+ } else {
+ if (tmp == 1)
+ smlayer_startSfx(67);
+ if (tmp == 1000)
+ smlayer_startSfx(68);
+ }
break;
default:
calcBenDamage(1, 0);
@@ -2036,7 +2053,10 @@
_actor[1].kicking = true;
if (_actor[1].act[2].frame >= 3) {
tmp = calcBenDamage(1, 1);
- if (tmp == 1)
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ if (tmp == 1)
+ smlayer_startSfx(57);
+ } else if (tmp == 1)
smlayer_startSfx(70);
if (tmp == 1000)
smlayer_startSfx(71);
@@ -2087,24 +2107,26 @@
smlayer_setActorCostume(1, 2, readArray(_enemy[_currEnemy].costumevar));
smlayer_setActorFacing(1, 2, 6, 180);
smlayer_setActorLayer(1, 2, 25);
- smlayer_startSfx(96);
_actor[1].act[2].state = 37;
- switch (_currEnemy) {
- case EN_ROTT1:
- smlayer_startVoice(212);
- break;
- case EN_ROTT2:
- smlayer_startVoice(259);
- break;
- case EN_ROTT3:
- smlayer_startVoice(232);
- break;
- case EN_VULTF1:
- smlayer_startVoice(281);
- break;
- case EN_VULTF2:
- smlayer_startVoice(276);
- break;
+ if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) {
+ smlayer_startSfx(96);
+ switch (_currEnemy) {
+ case EN_ROTT1:
+ smlayer_startVoice(212);
+ break;
+ case EN_ROTT2:
+ smlayer_startVoice(259);
+ break;
+ case EN_ROTT3:
+ smlayer_startVoice(232);
+ break;
+ case EN_VULTF1:
+ smlayer_startVoice(281);
+ break;
+ case EN_VULTF2:
+ smlayer_startVoice(276);
+ break;
+ }
}
case 37:
_actor[1].cursorX = 0;
Index: insane_iact.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_iact.cpp,v
retrieving revision 1.14
retrieving revision 1.14.2.1
diff -u -d -r1.14 -r1.14.2.1
--- insane_iact.cpp 10 Feb 2004 04:02:34 -0000 1.14
+++ insane_iact.cpp 13 Aug 2004 01:52:07 -0000 1.14.2.1
@@ -379,6 +379,9 @@
int32 setupsan13, Chunk &b, int32 size, int32 flags) {
_player->checkBlock(b, TYPE_IACT, 8);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ return;
+
int16 par1, par2, par3, par4, par5;
par1 = b.getWord(); // edx
Index: insane_scenes.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/insane/insane_scenes.cpp,v
retrieving revision 1.14
retrieving revision 1.14.2.1
diff -u -d -r1.14 -r1.14.2.1
--- insane_scenes.cpp 9 Feb 2004 18:57:03 -0000 1.14
+++ insane_scenes.cpp 13 Aug 2004 01:52:07 -0000 1.14.2.1
@@ -34,11 +34,6 @@
namespace Scumm {
void Insane::runScene(int arraynum) {
-#ifndef FTDOSDEMO
- if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
- return;
-#endif
-
_insaneIsRunning = true;
_player = new SmushPlayer(_vm, _speed);
_player->insanity(true);
@@ -72,11 +67,17 @@
break;
case 2:
setupValues();
- smlayer_setActorCostume(0, 2, readArray(11));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ smlayer_setActorCostume(0, 2, readArray(10));
+ else
+ smlayer_setActorCostume(0, 2, readArray(11));
smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2);
_mainRoadPos = readArray(2);
- if (_mainRoadPos == _posBrokenTruck) {
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ initScene(5);
+ startVideo("tovista.san", 1, 32, 12, 0);
+ } else if (_mainRoadPos == _posBrokenTruck) {
initScene(5);
startVideo("tovista2.san", 1, 32, 12, 0);
} else if (_mainRoadPos == _posBrokenCar) {
@@ -141,24 +142,26 @@
_insaneIsRunning = false;
- writeArray(50, _actor[0].inventory[INV_CHAIN]);
- writeArray(51, _actor[0].inventory[INV_CHAINSAW]);
- writeArray(52, _actor[0].inventory[INV_MACE]);
- writeArray(53, _actor[0].inventory[INV_2X4]);
- writeArray(54, _actor[0].inventory[INV_WRENCH]);
- writeArray(55, _actor[0].inventory[INV_DUST]);
- writeArray(337, _enemy[EN_TORQUE].occurences);
- writeArray(329, _enemy[EN_ROTT1].occurences);
- writeArray(330, _enemy[EN_ROTT2].occurences);
- writeArray(331, _enemy[EN_ROTT3].occurences);
- writeArray(332, _enemy[EN_VULTF1].occurences);
- writeArray(333, _enemy[EN_VULTM1].occurences);
- writeArray(334, _enemy[EN_VULTF2].occurences);
- writeArray(335, _enemy[EN_VULTM2].occurences);
- writeArray(336, _enemy[EN_CAVEFISH].occurences);
- writeArray(339, _enemy[EN_VULTF2].field_10);
- writeArray(56, _enemy[EN_CAVEFISH].field_10);
- writeArray(340, _enemy[EN_VULTM2].field_10);
+ if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) {
+ writeArray(50, _actor[0].inventory[INV_CHAIN]);
+ writeArray(51, _actor[0].inventory[INV_CHAINSAW]);
+ writeArray(52, _actor[0].inventory[INV_MACE]);
+ writeArray(53, _actor[0].inventory[INV_2X4]);
+ writeArray(54, _actor[0].inventory[INV_WRENCH]);
+ writeArray(55, _actor[0].inventory[INV_DUST]);
+ writeArray(337, _enemy[EN_TORQUE].occurences);
+ writeArray(329, _enemy[EN_ROTT1].occurences);
+ writeArray(330, _enemy[EN_ROTT2].occurences);
+ writeArray(331, _enemy[EN_ROTT3].occurences);
+ writeArray(332, _enemy[EN_VULTF1].occurences);
+ writeArray(333, _enemy[EN_VULTM1].occurences);
+ writeArray(334, _enemy[EN_VULTF2].occurences);
+ writeArray(335, _enemy[EN_VULTM2].occurences);
+ writeArray(336, _enemy[EN_CAVEFISH].occurences);
+ writeArray(339, _enemy[EN_VULTF2].field_10);
+ writeArray(56, _enemy[EN_CAVEFISH].field_10);
+ writeArray(340, _enemy[EN_VULTM2].field_10);
+ }
// insane_unlock(); // FIXME
_vm->_sound->stopAllSounds(); // IMUSE_StopAllSounds();
if (_memoryAllocatedNotOK) {
@@ -239,13 +242,18 @@
_actor[1].defunct = 0;
_actor[1].scenePropSubIdx = 0;
_actor[1].field_54 = 0;
- smlayer_stopSound(89);
- smlayer_stopSound(90);
- smlayer_stopSound(91);
- smlayer_stopSound(92);
- smlayer_stopSound(93);
- smlayer_stopSound(95);
- smlayer_stopSound(87);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ smlayer_stopSound(59);
+ smlayer_stopSound(63);
+ } else {
+ smlayer_stopSound(89);
+ smlayer_stopSound(90);
+ smlayer_stopSound(91);
+ smlayer_stopSound(92);
+ smlayer_stopSound(93);
+ smlayer_stopSound(95);
+ smlayer_stopSound(87);
+ }
break;
case 4:
case 5:
@@ -310,6 +318,9 @@
// insane_loadSceneData1 & insane_loadSceneData2
int Insane::loadSceneData(int scene, int flag, int phase) {
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ return 1;
+
int retvalue = 1;
debug(INSANE_DBG, "Insane::loadSceneData(%d, %d, %d)", scene, flag, phase);
@@ -641,7 +652,10 @@
case 4:
case 5:
case 6:
- smlayer_setActorCostume(0, 2, readArray(11));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ smlayer_setActorCostume(0, 2, readArray(10));
+ else
+ smlayer_setActorCostume(0, 2, readArray(11));
smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1+190, _smlayer_room2);
setupValues();
return;
@@ -658,9 +672,15 @@
debug(INSANE_DBG, "setEnemyCostumes(%d)", _currEnemy);
- smlayer_setActorCostume(0, 2, readArray(12));
- smlayer_setActorCostume(0, 0, readArray(14));
- smlayer_setActorCostume(0, 1, readArray(13));
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) {
+ smlayer_setActorCostume(0, 2, readArray(11));
+ smlayer_setActorCostume(0, 0, readArray(13));
+ smlayer_setActorCostume(0, 1, readArray(12));
+ } else {
+ smlayer_setActorCostume(0, 2, readArray(12));
+ smlayer_setActorCostume(0, 0, readArray(14));
+ smlayer_setActorCostume(0, 1, readArray(13));
+ }
smlayer_setActorLayer(0, 1, 1);
smlayer_setActorLayer(0, 2, 5);
smlayer_setActorLayer(0, 0, 10);
@@ -1121,7 +1141,10 @@
void Insane::postCase3(byte *renderBitmap, int32 codecparam, int32 setupsan12,
int32 setupsan13, int32 curFrame, int32 maxFrame) {
- turnBen(true);
+ if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))
+ turnBen(false);
+ else
+ turnBen(true);
if (_actor[0].x >= 158 && _actor[0].x <= 168) {
if (!smlayer_isSoundRunning(86))
More information about the Scummvm-git-logs
mailing list