diff options
author | Max Horn | 2006-02-11 22:45:04 +0000 |
---|---|---|
committer | Max Horn | 2006-02-11 22:45:04 +0000 |
commit | 26ee630756ebdd7c96bccede0881a8c8b98e8f2b (patch) | |
tree | 26e378d5cf990a2b81c2c96e9e683a7f333b62e8 /scumm/insane/insane_scenes.cpp | |
parent | 2a9a0d4211b1ea5723f1409d91cb95de8984429e (diff) | |
download | scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.gz scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.tar.bz2 scummvm-rg350-26ee630756ebdd7c96bccede0881a8c8b98e8f2b.zip |
Moved engines to the new engines/ directory
svn-id: r20582
Diffstat (limited to 'scumm/insane/insane_scenes.cpp')
-rw-r--r-- | scumm/insane/insane_scenes.cpp | 1499 |
1 files changed, 0 insertions, 1499 deletions
diff --git a/scumm/insane/insane_scenes.cpp b/scumm/insane/insane_scenes.cpp deleted file mode 100644 index 7cc01fc2cf..0000000000 --- a/scumm/insane/insane_scenes.cpp +++ /dev/null @@ -1,1499 +0,0 @@ -/* ScummVM - Scumm Interpreter - * Copyright (C) 2001 Ludvig Strigeus - * Copyright (C) 2001-2006 The ScummVM project - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * $URL$ - * $Id$ - * - */ - -#include "common/stdafx.h" - -#include "base/engine.h" - -#include "common/config-manager.h" - -#include "scumm/scumm.h" -#include "scumm/sound.h" - -#include "scumm/insane/insane.h" - -namespace Scumm { - -void Insane::runScene(int arraynum) { - _insaneIsRunning = true; - _player = new SmushPlayer(_vm, _speed); - _player->insanity(true); - - _numberArray = arraynum; - - // zeroValues1() - _objArray2Idx = 0; - _objArray2Idx2 = 0; - // zeroValues2() - _objArray1Idx = 0; - _objArray1Idx2 = 0; - // zeroValues3() - _currScenePropIdx = 0; - _currScenePropSubIdx = 0; - _currTrsMsg = 0; - - smush_warpMouse(160, 100, -1); - putActors(); - readState(); - - debugC(DEBUG_INSANE, "INSANE Arg: %d", readArray(0)); - - switch (readArray(0)) { - case 1: - initScene(1); - setupValues(); - smlayer_setActorCostume(0, 2, readArray(10)); - smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2); - startVideo("minedriv.san", 1, 32, 12, 0); - break; - case 2: - setupValues(); - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) - 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 ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { - 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) { - initScene(5); - startVideo("tovista2.san", 1, 32, 12, 0, _smush_tovista2Flu, 60); - } else { - initScene(4); - startVideo("tovista1.san", 1, 32, 12, 0); - } - break; - case 3: - setupValues(); - 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) { - initScene(6); - startVideo("toranch.san", 1, 32, 12, 0, _smush_toranchFlu, 300); - } else if (_mainRoadPos == _posBrokenCar) { - initScene(6); - startVideo("toranch.san", 1, 32, 12, 0, _smush_toranchFlu, 240); - } else { - initScene(6); - startVideo("toranch.san", 1, 32, 12, 0); - } - break; - case 4: - _firstBattle = true; - _currEnemy = EN_ROTT1; - initScene(13); - startVideo("minefite.san", 1, 32, 12, 0); - break; - case 5: - writeArray(1, _val54d); - initScene(24); - startVideo("rottopen.san", 1, 32, 12, 0); - break; - case 6: - initScene(1); - setupValues(); - smlayer_setFluPalette(_smush_roadrashRip, 1); - smlayer_setActorCostume(0, 2, readArray(10)); - smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2); - startVideo("minedriv.san", 1, 32, 12, 0, _smush_minedrivFlu, 420); - break; - case 7: - case 8: - case 9: - break; - case 10: - initScene(26); - writeArray(1, _val54d); - startVideo("credits.san", 1, 32, 12, 0); - break; - default: - error("Unknown FT_INSANE mode %d", readArray(0)); - } - - putActors(); - _enemy[EN_ROTT3].maxdamage = 120; - - _insaneIsRunning = false; - - if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { - 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(56, _enemy[EN_CAVEFISH].isEmpty); - 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].isEmpty); - writeArray(340, _enemy[EN_VULTM2].isEmpty); - } - // insane_unlock(); // FIXME - _vm->_sound->stopAllSounds(); // IMUSE_StopAllSounds(); - - delete _player; -} - -int Insane::initScene(int sceneId) { - debugC(DEBUG_INSANE, "initScene(%d)", sceneId); - - if (_needSceneSwitch) - return 1; - - stopSceneSounds(_currSceneId); // do it for previous scene - loadSceneData(sceneId, 0, 1); - if (loadSceneData(sceneId, 0, 2)) { - setSceneCostumes(sceneId); - _sceneData2Loaded = 0; - _sceneData1Loaded = 0; - } else - _sceneData2Loaded = 1; - - _currSceneId = sceneId; - - return 1; -} - -void Insane::stopSceneSounds(int sceneId) { - int flag = 0; - - debugC(DEBUG_INSANE, "stopSceneSounds(%d)", sceneId); - - switch (sceneId) { - case 1: - smlayer_stopSound(88); - smlayer_stopSound(86); - smlayer_stopSound(87); - flag = 1; - break; - case 18: - case 19: - smlayer_stopSound(88); - flag = 1; - break; - case 17: - smlayer_stopSound(88); - smlayer_stopSound(94); - flag = 1; - break; - case 2: - case 7: - case 8: - flag = 1; - break; - case 3: - case 21: - flag = 1; - // break is omittted intentionally - case 13: - if (_actor[0].runningSound != 0) - smlayer_stopSound(_actor[0].runningSound); - _actor[0].runningSound = 0; - - if (_actor[1].runningSound != 0) - smlayer_stopSound(_actor[1].runningSound); - _actor[1].runningSound = 0; - - if (_currScenePropIdx != 0) - shutCurrentScene(); - - _currScenePropSubIdx = 0; - _currTrsMsg = 0; - _actor[0].defunct = 0; - _actor[0].scenePropSubIdx = 0; - _actor[0].field_54 = 0; - _actor[1].defunct = 0; - _actor[1].scenePropSubIdx = 0; - _actor[1].field_54 = 0; - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { - 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: - case 6: - smlayer_stopSound(88); - smlayer_stopSound(86); - flag = 1; - break; - case 24: - smlayer_stopSound(90); - break; - case 9: - case 10: - case 11: - case 12: - case 14: - case 15: - case 16: - case 20: - case 22: - case 23: - break; - } - if (!flag) - return; - - smlayer_setActorCostume(0, 2, 0); - smlayer_setActorCostume(0, 0, 0); - smlayer_setActorCostume(0, 1, 0); - smlayer_setActorCostume(1, 2, 0); - smlayer_setActorCostume(1, 0, 0); - smlayer_setActorCostume(1, 1, 0); - - return; -} - -void Insane::shutCurrentScene(void) { - debugC(DEBUG_INSANE, "shutCurrentScene()"); - - _currScenePropIdx = 0; - _currTrsMsg = 0; - _currScenePropSubIdx = 0; - _actor[1].scenePropSubIdx = 0; - _actor[1].defunct = 0; - - if (_actor[1].runningSound != 0) { - smlayer_stopSound(_actor[1].runningSound); - _actor[1].runningSound = 0; - } - - _actor[0].scenePropSubIdx = 0; - _actor[0].defunct = 0; - - if (_actor[0].runningSound != 0) { - smlayer_stopSound(_actor[0].runningSound); - _actor[0].runningSound = 0; - } - - _battleScene = true; -} - - -// insane_loadSceneData1 & insane_loadSceneData2 -int Insane::loadSceneData(int scene, int flag, int phase) { - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) - return 1; - - int retvalue = 1; - - debugC(DEBUG_INSANE, "Insane::loadSceneData(%d, %d, %d)", scene, flag, phase); - //if (phase == 1) /// FIXME - // insane_unlock(); - switch (scene) { - case 1: - smlayer_loadSound(88, flag, phase); - smlayer_loadSound(86, flag, phase); - smlayer_loadSound(87, flag, phase); - smlayer_loadCostume(10, phase); - break; - case 4: - case 5: - case 6: - smlayer_loadSound(88, flag, phase); - smlayer_loadCostume(11, phase); - break; - case 3: - case 13: - switch(_currEnemy) { - case EN_TORQUE: - smlayer_loadSound(59, flag, phase); - smlayer_loadSound(93, flag, phase); - smlayer_loadCostume(57, phase); - smlayer_loadCostume(37, phase); - break; - case EN_ROTT1: - smlayer_loadSound(201, flag, phase); - smlayer_loadSound(194, flag, phase); - smlayer_loadSound(195, flag, phase); - smlayer_loadSound(199, flag, phase); - smlayer_loadSound(205, flag, phase); - smlayer_loadSound(212, flag, phase); - smlayer_loadSound(198, flag, phase); - smlayer_loadSound(203, flag, phase); - smlayer_loadSound(213, flag, phase); - smlayer_loadSound(215, flag, phase); - smlayer_loadSound(216, flag, phase); - smlayer_loadSound(217, flag, phase); - smlayer_loadSound(218, flag, phase); - smlayer_loadSound(90, flag, phase); - smlayer_loadCostume(26, phase); - smlayer_loadCostume(16, phase); - smlayer_loadCostume(17, phase); - smlayer_loadCostume(27, phase); - break; - case EN_ROTT2: - smlayer_loadSound(242, flag, phase); - smlayer_loadSound(244, flag, phase); - smlayer_loadSound(236, flag, phase); - smlayer_loadSound(238, flag, phase); - smlayer_loadSound(239, flag, phase); - smlayer_loadSound(240, flag, phase); - smlayer_loadSound(258, flag, phase); - smlayer_loadSound(259, flag, phase); - smlayer_loadSound(260, flag, phase); - smlayer_loadSound(243, flag, phase); - smlayer_loadSound(244, flag, phase); - smlayer_loadSound(245, flag, phase); - smlayer_loadSound(246, flag, phase); - smlayer_loadSound(233, flag, phase); - smlayer_loadSound(234, flag, phase); - smlayer_loadSound(241, flag, phase); - smlayer_loadSound(242, flag, phase); - smlayer_loadSound(90, flag, phase); - smlayer_loadCostume(28, phase); - smlayer_loadCostume(16, phase); - smlayer_loadCostume(17, phase); - smlayer_loadCostume(42, phase); - break; - case EN_ROTT3: - smlayer_loadSound(223, flag, phase); - smlayer_loadSound(224, flag, phase); - smlayer_loadSound(225, flag, phase); - smlayer_loadSound(226, flag, phase); - smlayer_loadSound(228, flag, phase); - smlayer_loadSound(229, flag, phase); - smlayer_loadSound(230, flag, phase); - smlayer_loadSound(232, flag, phase); - smlayer_loadSound(220, flag, phase); - smlayer_loadSound(221, flag, phase); - smlayer_loadSound(222, flag, phase); - smlayer_loadSound(90, flag, phase); - smlayer_loadCostume(15, phase); - smlayer_loadCostume(16, phase); - smlayer_loadCostume(17, phase); - smlayer_loadCostume(43, phase); - smlayer_loadCostume(47, phase); - break; - case EN_VULTF1: - smlayer_loadSound(282, flag, phase); - smlayer_loadSound(283, flag, phase); - smlayer_loadSound(284, flag, phase); - smlayer_loadSound(285, flag, phase); - smlayer_loadSound(286, flag, phase); - smlayer_loadSound(287, flag, phase); - smlayer_loadSound(279, flag, phase); - smlayer_loadSound(280, flag, phase); - smlayer_loadSound(281, flag, phase); - smlayer_loadSound(277, flag, phase); - smlayer_loadSound(288, flag, phase); - smlayer_loadSound(278, flag, phase); - smlayer_loadSound(91, flag, phase); - smlayer_loadCostume(29, phase); - smlayer_loadCostume(33, phase); - smlayer_loadCostume(32, phase); - smlayer_loadCostume(37, phase); - break; - case EN_VULTM1: - smlayer_loadSound(160, flag, phase); - smlayer_loadSound(161, flag, phase); - smlayer_loadSound(174, flag, phase); - smlayer_loadSound(167, flag, phase); - smlayer_loadSound(163, flag, phase); - smlayer_loadSound(164, flag, phase); - smlayer_loadSound(170, flag, phase); - smlayer_loadSound(166, flag, phase); - smlayer_loadSound(175, flag, phase); - smlayer_loadSound(162, flag, phase); - smlayer_loadSound(91, flag, phase); - smlayer_loadCostume(30, phase); - smlayer_loadCostume(33, phase); - smlayer_loadCostume(32, phase); - smlayer_loadCostume(36, phase); - break; - case EN_VULTF2: - smlayer_loadSound(263, flag, phase); - smlayer_loadSound(264, flag, phase); - smlayer_loadSound(265, flag, phase); - smlayer_loadSound(266, flag, phase); - smlayer_loadSound(267, flag, phase); - smlayer_loadSound(268, flag, phase); - smlayer_loadSound(270, flag, phase); - smlayer_loadSound(271, flag, phase); - smlayer_loadSound(275, flag, phase); - smlayer_loadSound(276, flag, phase); - smlayer_loadSound(261, flag, phase); - smlayer_loadSound(262, flag, phase); - smlayer_loadSound(263, flag, phase); - smlayer_loadSound(274, flag, phase); - smlayer_loadSound(91, flag, phase); - smlayer_loadCostume(31, phase); - smlayer_loadCostume(33, phase); - smlayer_loadCostume(32, phase); - smlayer_loadCostume(35, phase); - smlayer_loadCostume(46, phase); - break; - case EN_VULTM2: - smlayer_loadSound(179, flag, phase); - smlayer_loadSound(183, flag, phase); - smlayer_loadSound(184, flag, phase); - smlayer_loadSound(186, flag, phase); - smlayer_loadSound(191, flag, phase); - smlayer_loadSound(192, flag, phase); - smlayer_loadSound(180, flag, phase); - smlayer_loadSound(101, flag, phase); - smlayer_loadSound(289, flag, phase); - smlayer_loadSound(177, flag, phase); - smlayer_loadSound(178, flag, phase); - smlayer_loadSound(290, flag, phase); - smlayer_loadSound(102, flag, phase); - smlayer_loadSound(91, flag, phase); - smlayer_loadCostume(34, phase); - smlayer_loadCostume(33, phase); - smlayer_loadCostume(32, phase); - smlayer_loadCostume(44, phase); - smlayer_loadCostume(45, phase); - break; - case EN_CAVEFISH: - smlayer_loadSound(291, flag, phase); - smlayer_loadSound(100, flag, phase); - smlayer_loadSound(92, flag, phase); - smlayer_loadCostume(39, phase); - smlayer_loadCostume(40, phase); - smlayer_loadCostume(41, phase); - break; - default: - retvalue = 0; - break; - } - smlayer_loadSound(64, flag, phase); - smlayer_loadSound(65, flag, phase); - smlayer_loadSound(66, flag, phase); - smlayer_loadSound(67, flag, phase); - smlayer_loadSound(68, flag, phase); - smlayer_loadSound(69, flag, phase); - smlayer_loadSound(70, flag, phase); - smlayer_loadSound(71, flag, phase); - smlayer_loadSound(72, flag, phase); - smlayer_loadSound(73, flag, phase); - smlayer_loadSound(74, flag, phase); - smlayer_loadSound(75, flag, phase); - smlayer_loadSound(76, flag, phase); - smlayer_loadSound(77, flag, phase); - smlayer_loadSound(78, flag, phase); - smlayer_loadSound(79, flag, phase); - smlayer_loadSound(80, flag, phase); - smlayer_loadSound(81, flag, phase); - smlayer_loadSound(82, flag, phase); - smlayer_loadSound(83, flag, phase); - smlayer_loadSound(84, flag, phase); - smlayer_loadSound(85, flag, phase); - smlayer_loadSound(86, flag, phase); - smlayer_loadSound(87, flag, phase); - smlayer_loadSound(62, flag, phase); - smlayer_loadSound(63, flag, phase); - smlayer_loadSound(60, flag, phase); - smlayer_loadSound(61, flag, phase); - smlayer_loadSound(315, flag, phase); - smlayer_loadSound(316, flag, phase); - smlayer_loadSound(317, flag, phase); - smlayer_loadSound(98, flag, phase); - smlayer_loadSound(318, flag, phase); - smlayer_loadSound(96, flag, phase); - smlayer_loadSound(97, flag, phase); - smlayer_loadSound(95, flag, phase); - smlayer_loadSound(89, flag, phase); - smlayer_loadCostume(12, phase); - smlayer_loadCostume(13, phase); - smlayer_loadCostume(14, phase); - smlayer_loadCostume(18, phase); - smlayer_loadCostume(22, phase); - smlayer_loadCostume(19, phase); - smlayer_loadCostume(38, phase); - smlayer_loadCostume(20, phase); - smlayer_loadCostume(21, phase); - smlayer_loadCostume(23, phase); - smlayer_loadCostume(24, phase); - smlayer_loadCostume(25, phase); - break; - case 21: - case 24: - case 25: - smlayer_loadSound(223, flag, phase); - smlayer_loadSound(224, flag, phase); - smlayer_loadSound(225, flag, phase); - smlayer_loadSound(226, flag, phase); - smlayer_loadSound(228, flag, phase); - smlayer_loadSound(229, flag, phase); - smlayer_loadSound(230, flag, phase); - smlayer_loadSound(232, flag, phase); - smlayer_loadSound(90, flag, phase); - smlayer_loadCostume(15, phase); - smlayer_loadCostume(16, phase); - smlayer_loadCostume(17, phase); - smlayer_loadCostume(43, phase); - smlayer_loadSound(62, flag, phase); - smlayer_loadSound(63, flag, phase); - smlayer_loadSound(60, flag, phase); - smlayer_loadSound(61, flag, phase); - smlayer_loadSound(315, flag, phase); - smlayer_loadSound(316, flag, phase); - smlayer_loadSound(317, flag, phase); - smlayer_loadSound(98, flag, phase); - smlayer_loadSound(318, flag, phase); - smlayer_loadSound(96, flag, phase); - smlayer_loadSound(97, flag, phase); - smlayer_loadSound(95, flag, phase); - smlayer_loadSound(89, flag, phase); - smlayer_loadCostume(12, phase); - smlayer_loadCostume(13, phase); - smlayer_loadCostume(14, phase); - smlayer_loadCostume(18, phase); - smlayer_loadCostume(22, phase); - break; - case 17: - smlayer_loadSound(88, flag, phase); - smlayer_loadSound(94, flag, phase); - break; - case 2: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 14: - case 15: - case 16: - case 18: - case 19: - case 20: - case 22: - case 23: - break; - default: - retvalue = 0; - } - if (phase == 1) { - _sceneData1Loaded = 1; - } - return retvalue; -} - -void Insane::setSceneCostumes(int sceneId) { - debugC(DEBUG_INSANE, "Insane::setSceneCostumes(%d)", sceneId); - - switch (sceneId) { - case 1: - smlayer_setActorCostume(0, 2, readArray(10)); - smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2); - smlayer_setFluPalette(_smush_roadrashRip, 0); - setupValues(); - return; - break; - case 17: - smlayer_setFluPalette(_smush_goglpaltRip, 0); - setupValues(); - return; - break; - case 2: - smlayer_setActorCostume(0, 2, readArray(10)); - setupValues(); - return; - break; - case 13: - setEnemyCostumes(); - smlayer_setFluPalette(_smush_roadrashRip, 0); - return; - break; - case 21: - _currEnemy = EN_ROTT3; //PATCH - setEnemyCostumes(); - _actor[1].y = 200; - smlayer_setFluPalette(_smush_roadrashRip, 0); - return; - break; - case 4: - case 5: - case 6: - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) - 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; - break; - case 7: - case 8: - writeArray(4, 0); - return; - } -} - -void Insane::setEnemyCostumes(void) { - int i; - - debugC(DEBUG_INSANE, "setEnemyCostumes(%d)", _currEnemy); - - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { - 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); - smlayer_putActor(0, 2, _actor[0].x+11, _actor[0].y1+102, _smlayer_room2); - smlayer_putActor(0, 1, _actor[0].x, _actor[0].y1+200, _smlayer_room2); - smlayer_putActor(0, 0, _actor[0].x, _actor[0].y1+200, _smlayer_room2); - - if (_currEnemy == EN_CAVEFISH) { - smlayer_setActorCostume(1, 2, readArray(_enemy[_currEnemy].costume4)); - _actor[1].act[2].room = 1; - _actor[1].act[1].room = 0; - _actor[1].act[0].room = 0; - _actor[1].act[2].animTilt = 1; - _actor[1].field_8 = 98; - _actor[1].act[2].state = 98; - _actor[1].act[0].state = 98; - _actor[1].act[1].state = 98; - - smlayer_putActor(1, 2, _actor[1].x + _actor[1].act[2].tilt - 17, - _actor[1].y + _actor[1].y1 - 98, _smlayer_room2); - } else if (_currEnemy == EN_TORQUE) { - smlayer_setActorCostume(1, 2, readArray(_enemy[_currEnemy].costume4)); - _actor[1].act[2].room = 1; - _actor[1].act[1].room = 0; - _actor[1].act[0].room = 0; - _actor[1].field_8 = 1; - _actor[1].act[2].state = 1; - _actor[1].act[0].state = 1; - _actor[1].act[1].state = 1; - smlayer_putActor(1, 2, _actor[1].x + _actor[1].act[2].tilt - 17, - _actor[1].y + _actor[1].y1 - 98, _smlayer_room2); - } else { - _actor[1].act[2].room = 1; - _actor[1].act[1].room = 1; - _actor[1].act[0].room = 1; - - if (_enemy[_currEnemy].costume4) - smlayer_setActorCostume(1, 2, readArray(_enemy[_currEnemy].costume4)); - - if (_enemy[_currEnemy].costume5) - smlayer_setActorCostume(1, 0, readArray(_enemy[_currEnemy].costume5)); - - if (_enemy[_currEnemy].costume6) - smlayer_setActorCostume(1, 1, readArray(_enemy[_currEnemy].costume6)); - - _actor[1].field_8 = 1; - _actor[1].act[2].state = 1; - _actor[1].act[0].state = 1; - _actor[1].act[1].state = 1; - - if (_actor[1].act[2].room != 0) - smlayer_putActor(1, 2, _actor[1].x + _actor[1].act[2].tilt - 17, - _actor[1].y + _actor[1].y1 - 98, - _smlayer_room2); - } - - if (_actor[1].act[1].room != 0) - smlayer_putActor(1, 1, _actor[1].x, _actor[1].y + _actor[1].y1, - _smlayer_room2); - - if (_actor[1].act[0].room != 0) - smlayer_putActor(1, 0, _actor[1].x, _actor[1].y + _actor[1].y1, - _smlayer_room2); - - smlayer_setActorLayer(1, 1, 1); - smlayer_setActorLayer(1, 2, 5); - smlayer_setActorLayer(1, 0, 10); - - _actor[1].damage = 0; - _actor[1].x = 250; - _actor[1].y = 300; - _actor[1].cursorX = 0; - _actor[1].tilt = 0; - _actor[1].weapon = -1; - _actor[1].weaponClass = 2; - _enemy[_currEnemy].occurences++; - _actor[1].maxdamage = _enemy[_currEnemy].maxdamage; - _actor[1].enemyHandler = _enemy[_currEnemy].handler; - _actor[1].animWeaponClass = 0; - for (i = 0; i < 8; i++) - _actor[1].inventory[i] = 0; - _actor[0].damage = 0; - _actor[0].x = 100; - _actor[0].y = 200; - _actor[0].weapon = INV_HAND; - _actor[0].weaponClass = 2; - _actor[0].animWeaponClass = 0; - _actor[0].newFacingFlag = 2; - _actor[0].curFacingFlag = 0; - _actor[0].tilt = 0; - _actor[0].field_8 = 1; - _actor[0].act[2].state = 1; - _actor[0].act[2].animTilt = 1; - _actor[0].act[0].state = 0; - _actor[0].act[1].state = 1; - _actor[0].act[2].room = 1; - _actor[0].act[1].room = 1; - _actor[0].act[0].room = 1; - _actor[0].cursorX = 0; - _actor[0].defunct = 0; - _actor[0].scenePropSubIdx = 0; - _actor[0].field_54 = 0; - _actor[0].runningSound = 0; - _actor[0].lost = false; - _actor[0].kicking = false; - _actor[0].field_44 = false; - _actor[1].inventory[_enemy[_currEnemy].weapon] = 1; - _actor[0].field_48 = false; - _actor[1].defunct = 0; - _actor[1].scenePropSubIdx = 0; - _actor[1].field_54 = 0; - _actor[1].runningSound = 0; - _actor[1].lost = false; - _actor[1].kicking = false; - _actor[1].field_44 = false; - _actor[1].field_48 = false; - if (_enemy[_currEnemy].initializer != -1) - enemyInitializer(_enemy[_currEnemy].initializer, _actor[1].damage, - _actor[0].damage, _actor[1].probability); - - smush_warpMouse(160, 100, -1); -} - -void Insane::procPreRendering(void) { - _smush_isSanFileSetup = 0; // FIXME: This shouldn't be here - - switchSceneIfNeeded(); - - if (_sceneData1Loaded) { - _val115_ = true; - if (!_keyboardDisable) { - smush_changeState(1); - _keyboardDisable = 1; - } - } else { - _val115_ = false; - if (_keyboardDisable) { - smush_changeState(0); - _keyboardDisable = 0; - } - } - - _lastKey = getLastKey(1); -} - -void Insane::procPostRendering(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - int32 tmpSnd; - bool needMore = false; - - if (!_keyboardDisable) { - switch (_currSceneId) { - case 12: - postCase11(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 1: - postCase0(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - if (!smlayer_isSoundRunning(88)) - smlayer_startSfx(88); - smlayer_soundSetPan(88, ((_actor[0].x+160)>>2)+64); - if (_tiresRustle) { - if (!smlayer_isSoundRunning(87)) - smlayer_startSfx(87); - } else { - smlayer_stopSound(87); - } - break; - case 18: - case 19: - postCase17(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - smlayer_stopSound(95); - smlayer_stopSound(87); - smlayer_stopSound(88); - if (!smlayer_isSoundRunning(88)) - smlayer_startSfx(88); - break; - case 17: - postCase16(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - if (!smlayer_isSoundRunning(88)) - smlayer_startSfx(88); - break; - case 2: - postCase1(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 3: - postCase2(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - needMore = true; - if (!smlayer_isSoundRunning(89)) { - smlayer_startSfx(89); - smlayer_soundSetPriority(89, 100); - } - tmpSnd = _enemy[_currEnemy].sound; - if (!smlayer_isSoundRunning(tmpSnd)) { - smlayer_startSfx(tmpSnd); - smlayer_soundSetPriority(tmpSnd, 100); - } - smlayer_soundSetPan(89, ((_actor[0].x+160)>>2)+64); - smlayer_soundSetPan(tmpSnd, ((_actor[1].x+160)>>2)+64); - if (!_tiresRustle) { - smlayer_stopSound(87); - } else { - if (!smlayer_isSoundRunning(87)) - smlayer_startSfx(87); - } - break; - case 21: - postCase20(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - needMore = true; - if (!smlayer_isSoundRunning(89)) { - smlayer_startSfx(89); - smlayer_soundSetPriority(89, 100); - } - tmpSnd = _enemy[_currEnemy].sound; - if (!smlayer_isSoundRunning(tmpSnd)) { - smlayer_startSfx(tmpSnd); - smlayer_soundSetPriority(tmpSnd, 100); - } - smlayer_soundSetPan(89, ((_actor[0].x+160)>>2)+64); - smlayer_soundSetPan(tmpSnd, ((_actor[1].x+160)>>2)+64); - break; - case 4: - case 5: - postCase3(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - if (!smlayer_isSoundRunning(88)) - smlayer_startSfx(88); - smlayer_soundSetPan(88, ((_actor[0].x+160)>>2)+64); - break; - case 6: - postCase5(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - if (!smlayer_isSoundRunning(88)) - smlayer_startSfx(88); - smlayer_soundSetPan(88, ((_actor[0].x+160)>>2)+64); - break; - case 7: - case 8: - postCase6(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 9: - case 23: - postCase8(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 10: - postCase9(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 11: - case 20: - case 22: - postCase10(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 14: - postCase23(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 13: - postCase12(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - needMore = true; - if (!smlayer_isSoundRunning(89)) { - smlayer_startSfx(89); - smlayer_soundSetPriority(89, 100); - } - tmpSnd = _enemy[_currEnemy].sound; - if (!smlayer_isSoundRunning(tmpSnd)) { - smlayer_startSfx(tmpSnd); - smlayer_soundSetPriority(tmpSnd, 100); - } - smlayer_soundSetPan(89, ((_actor[0].x+160)>>2)+64); - smlayer_soundSetPan(tmpSnd, ((_actor[1].x+160)>>2)+64); - break; - case 24: - if (!smlayer_isSoundRunning(90)) { - smlayer_startSfx(90); - smlayer_soundSetPriority(90, 100); - } - postCase23(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 15: - case 16: - postCase14(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - break; - case 25: - case 26: - break; - } - - if (_currScenePropIdx) - postCaseAll(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - - _actor[0].frame++; - _actor[0].act[3].frame++; - _actor[0].act[2].frame++; - _actor[0].act[1].frame++; - _actor[0].act[0].frame++; - _actor[1].act[3].frame++; - _actor[1].frame++; - _actor[1].act[2].frame++; - _actor[1].act[1].frame++; - _actor[1].act[0].frame++; - } - - if (!_val115_) { - smlayer_overrideDrawActorAt(&renderBitmap[0], renderBitmap[2], renderBitmap[3]); - _isBenCut = 0; - } - - if (_isBenCut) - smlayer_drawSomething(renderBitmap, codecparam, 89, 56, 1, _smush_bencutNut, 0, 0, 0); - - if (!_keyboardDisable) - _vm->processActors(); - - if (needMore) - postCaseMore(renderBitmap, codecparam, setupsan12, setupsan13, curFrame, maxFrame); - - _lastKey = 0; - _tiresRustle = false; -} - -void Insane::postCase11(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame && !_needSceneSwitch) { - if (_firstBattle) { - smush_setToFinish(); - } else { - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame, 1300); - } - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase0(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - turnBen(true); - - if (!curFrame || curFrame == 420) - smlayer_setFluPalette(_smush_roadrashRip, 0); - - if (curFrame >= maxFrame) - smush_rewindCurrentSan(1088, -1, -1); - - _roadBumps = false; - _roadBranch = false; - _roadStop = false; - _benHasGoggles = false; - _mineCaveIsNear = false; - _continueFrame1 = curFrame; -} - -void Insane::postCase17(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame && !_needSceneSwitch) { - if (_currSceneId == 18) { - queueSceneSwitch(17, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame1, 1300); - writeArray(9, 1); - } else { - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame1, 1300); - writeArray(9, 0); - } - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase16(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - char buf[12]; - int32 tmp; - - turnBen(true); - sprintf(buf, "^f01%02o", curFrame & 0x3f); - smlayer_showStatusMsg(-1, renderBitmap, codecparam, 180, 168, 1, 2, 0, "%s", buf); - tmp = 400-curFrame; - - if (tmp < 0) - tmp += 1300; - - sprintf(buf, "^f01%04d", tmp); - smlayer_showStatusMsg(-1, renderBitmap, codecparam, 202, 168, 1, 2, 0, "%s", buf); - - sprintf(buf, "^f01%02o", curFrame & 0xff); - smlayer_showStatusMsg(-1, renderBitmap, codecparam, 240, 168, 1, 2, 0, "%s", buf); - smlayer_showStatusMsg(-1, renderBitmap, codecparam, 170, 43, 1, 2, 0, "%s", buf); - - smlayer_drawSomething(renderBitmap, codecparam, 0, 0, 1, _smush_bensgoggNut, 0, 0, 0); - - if (!_objectDetected) - smlayer_drawSomething(renderBitmap, codecparam, 24, 170, 1, - _smush_iconsNut, 23, 0, 0); - - if (!curFrame) - smlayer_setFluPalette(_smush_goglpaltRip, 0); - - if (curFrame >= maxFrame) { - smush_rewindCurrentSan(1088, -1, -1); - smlayer_setFluPalette(_smush_goglpaltRip, 0); - } - _roadBumps = false; - _mineCaveIsNear = false; - _roadBranch = false; - _roadStop = false; - _objectDetected = false; - _counter1++; - _continueFrame1 = curFrame; - if (_counter1 >= 10) - _counter1 = 0; -} - -void Insane::postCase1(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - struct fluConf *flu; - - if ((curFrame >= maxFrame) && !_needSceneSwitch) { - flu = &_fluConf[14 + _iactSceneId2]; - queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0, - flu->startFrame, flu->numFrames); - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase2(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - turnBen(_battleScene != 0); - turnEnemy(true); - - if (!curFrame) - smlayer_setFluPalette(_smush_roadrashRip, 0); - - if (curFrame >= maxFrame) - smush_rewindCurrentSan(1088, -1, -1); - - _roadBumps = false; - _roadBranch = false; - _roadStop = false; - _continueFrame = curFrame; -} - -void Insane::postCase20(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - turnBen(true); - turnEnemy(true); - - if (curFrame >= maxFrame) - smush_rewindCurrentSan(1088, -1, -1); - - _roadBumps = false; - _roadBranch = false; - _roadStop = false; - _continueFrame = curFrame; -} - -void Insane::postCase3(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) - turnBen(false); - else - turnBen(true); - - if (_actor[0].x >= 158 && _actor[0].x <= 168) { - if (!smlayer_isSoundRunning(86)) - smlayer_startSfx(86); - } else { - if (smlayer_isSoundRunning(86)) - smlayer_stopSound(86); - } - - if (curFrame >= maxFrame) { - if (_currSceneId == 4) { - if (!_needSceneSwitch) { - if (readArray(6)) { - if (readArray(4)) - queueSceneSwitch(14, 0, "hitdust2.san", 64, 0, 0, 0); - else - queueSceneSwitch(14, 0, "hitdust4.san", 64, 0, 0, 0); - } else { - if (readArray(4)) - queueSceneSwitch(14, 0, "hitdust1.san", 64, 0, 0, 0); - else - queueSceneSwitch(14, 0, "hitdust3.san", 64, 0, 0, 0); - } - } - } else { - if (readArray(4)) { - if (!_needSceneSwitch) - queueSceneSwitch(15, 0, "vistthru.san", 64, 0, 0, 0); - } else { - writeArray(1, _posVista); - smush_setToFinish(); - } - } - } - - _carIsBroken = false; - _roadStop = false; - _roadBranch = false; - _iactSceneId = 0; -} - -void Insane::postCase5(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - turnBen(true); - - if (_actor[0].x >= 158 && _actor[0].x <= 168) { - if (!smlayer_isSoundRunning(86)) - smlayer_startSfx(86); - } else { - if (smlayer_isSoundRunning(86)) - smlayer_stopSound(86); - } - - if (curFrame >= maxFrame) { - if (readArray(4)) { - if (!_needSceneSwitch) - queueSceneSwitch(15, 0, "chasthru.san", 64, 0, 0, 0); - } else { - if (readArray(5)) { - writeArray(1, _val57d); - smush_setToFinish(); - } else { - writeArray(4, 1); - queueSceneSwitch(15, 0, "chasout.san", 64, 0, 0, 0); - } - } - } - - _carIsBroken = false; - _roadStop = false; - _roadBranch = false; - _iactSceneId = 0; -} - -void Insane::postCase6(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - struct fluConf *flu; - - if ((curFrame >= maxFrame) && !_needSceneSwitch) { - if (_currSceneId == 8) - flu = &_fluConf[7 + _iactSceneId2]; - else - flu = &_fluConf[0 + _iactSceneId2]; - - queueSceneSwitch(flu->sceneId, *flu->fluPtr, flu->filenamePtr, 64, 0, - flu->startFrame, flu->numFrames); - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase8(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame && !_needSceneSwitch) { - _actor[0].damage = 0; - - if (_firstBattle) { - queueSceneSwitch(13, _smush_minefiteFlu, "minefite.san", 64, 0, - _continueFrame, 1300); - } else { - if (_currSceneId == 23) { - queueSceneSwitch(21, 0, "rottfite.san", 64, 0, 0, 0); - } else { - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame, 1300); - } - } - } - - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase9(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame && !_needSceneSwitch) { - _actor[0].damage = 0; - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame1, 1300); - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase10(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame && !_needSceneSwitch) { - _actor[0].damage = 0; - - switch (_currSceneId) { - case 20: - writeArray(8, 1); - queueSceneSwitch(12, 0, "liftgog.san", 0, 0, 0, 0); - break; - case 22: - writeArray(1, _val54d); - smush_setToFinish(); - break; - default: - if (_actor[0].inventory[_enemy[_currEnemy].weapon]) { - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame, 1300); - break; - } - - switch (_enemy[_currEnemy].weapon) { - case INV_CHAIN: - _actor[0].inventory[INV_CHAIN] = 1; - queueSceneSwitch(12, 0, "liftchay.san", 0, 0, 0, 0); - break; - case INV_CHAINSAW: - _actor[0].inventory[INV_CHAINSAW] = 1; - queueSceneSwitch(12, 0, "liftsaw.san", 0, 0, 0, 0); - break; - case INV_MACE: - _actor[0].inventory[INV_MACE] = 1; - queueSceneSwitch(12, 0, "liftmace.san", 0, 0, 0, 0); - break; - case INV_2X4: - _actor[0].inventory[INV_2X4] = 1; - queueSceneSwitch(12, 0, "liftbord.san", 0, 0, 0, 0); - break; - default: - queueSceneSwitch(1, _smush_minedrivFlu, "minedriv.san", 64, 0, - _continueFrame, 1300); - break; - } - } - } - - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase12(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (_actor[1].y <= 200) { - initScene(3); - _actor[1].y = 200; - - switch (_currEnemy) { - case EN_ROTT2: - turnBen(true); - - if (_enemy[EN_ROTT2].occurences <= 1) - prepareScenePropScene(32, 0, 1); - else - prepareScenePropScene(33, 0, 1); - break; - case EN_ROTT3: - turnBen(true); - - if (_enemy[EN_ROTT3].occurences <= 1) - prepareScenePropScene(25, 0, 1); - break; - case EN_VULTF1: - turnBen(true); - - if (_enemy[EN_VULTF1].occurences <= 1) - prepareScenePropScene(2, 0, 1); - break; - case EN_VULTF2: - turnBen(true); - - if (_enemy[EN_VULTF2].occurences <= 1) - prepareScenePropScene(9, 0, 1); - else - prepareScenePropScene(16, 0, 1); - break; - case EN_VULTM2: - if (_enemy[EN_VULTM2].occurences <= 1) { - turnBen(false); - prepareScenePropScene(18, 0, 1); - _battleScene = false; - } else - turnBen(true); - break; - case EN_TORQUE: - turnBen(false); - writeArray(1, _posFatherTorque); - smush_setToFinish(); - break; - case EN_ROTT1: - case EN_VULTM1: - case EN_CAVEFISH: - default: - turnBen(true); - break; - } - } else { - switch (_currEnemy) { - case EN_VULTM2: - if (_enemy[EN_VULTM2].occurences <= 1) - turnBen(false); - else - turnBen(true); - break; - case EN_TORQUE: - turnBen(false); - if (_actor[1].y != 300) - prepareScenePropScene(57, 1, 0); - break; - default: - turnBen(true); - } - _actor[1].y -= (_actor[1].y - 200) / 20 + 1; - } - - turnEnemy(false); - - if (curFrame == 0) - smlayer_setFluPalette(_smush_roadrashRip, 0); - - if (curFrame >= maxFrame) - smush_rewindCurrentSan(1088, -1, -1); - - _roadBranch = false; - _roadStop = false; - _continueFrame = curFrame; -} - -void Insane::postCase23(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame) { - if (_currSceneId == 24) { - queueSceneSwitch(21, 0, "rottfite.san", 64, 0, 0, 0); - } else { - if (readArray(6) && readArray(4)) - queueSceneSwitch(16, 0, "limocrsh.san", 64, 0, 0, 0); - else - queueSceneSwitch(5, 0, "tovista2.san", 64, 0, 0, 290); - } - } - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCase14(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (curFrame >= maxFrame) { - if (_currSceneId == 16) { - writeArray(4, 0); - writeArray(5, 1); - writeArray(1, _posBrokenCar); - writeArray(3, _posBrokenTruck); - smush_setToFinish(); - } else { - switch (_tempSceneId) { - case 5: - queueSceneSwitch(6, 0, "toranch.san", 64, 0, 0, 530); - break; - case 6: - queueSceneSwitch(4, 0, "tovista1.san", 64, 0, 0, 230); - break; - } - } - } - - _roadBranch = false; - _roadStop = false; -} - -void Insane::postCaseAll(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - struct sceneProp *tsceneProp; - - tsceneProp = &_sceneProp[_currScenePropIdx + _currScenePropSubIdx]; - if (tsceneProp->actor != -1) { - if (_actor[tsceneProp->actor].field_54) { - tsceneProp->counter++; - if (!_actor[tsceneProp->actor].runningSound || ConfMan.getBool("subtitles")) { - if (_actor[tsceneProp->actor].act[3].state == 72 && - _currTrsMsg) { - _player->setPaletteValue(0, tsceneProp->r, tsceneProp->g, tsceneProp->b); - _player->setPaletteValue(1, tsceneProp->r, tsceneProp->g, tsceneProp->b); - _player->setPaletteValue(0, 0, 0, 0); - smlayer_showStatusMsg(-1, renderBitmap, codecparam, 160, 20, 1, 2, 5, - "^f00%s", _currTrsMsg); - } - } - } else { - _currScenePropSubIdx = tsceneProp->index; - if (_currScenePropSubIdx && _currScenePropIdx) { - tsceneProp = &_sceneProp[_currScenePropIdx + _currScenePropSubIdx]; - tsceneProp->counter = 0; - if (tsceneProp->trsId) - _currTrsMsg = handleTrsTag(tsceneProp->trsId); - else - _currTrsMsg = 0; - - if (tsceneProp->actor != -1) { - _actor[tsceneProp->actor].field_54 = 1; - _actor[tsceneProp->actor].act[3].state = 117; - _actor[tsceneProp->actor].scenePropSubIdx = _currScenePropSubIdx; - } - } else { - _currScenePropIdx = 0; - _currTrsMsg = 0; - _currScenePropSubIdx = 0; - _actor[0].defunct = 0; - _actor[1].defunct = 0; - _battleScene = true; - } - } - } - _roadBranch = false; - _roadStop = false; - _continueFrame = curFrame; -} - -void Insane::postCaseMore(byte *renderBitmap, int32 codecparam, int32 setupsan12, - int32 setupsan13, int32 curFrame, int32 maxFrame) { - if (_actor[0].weapon <= 7) { - smlayer_drawSomething(renderBitmap, codecparam, 5, 160, 1, _smush_iconsNut, - _actor[0].weapon + 11, 0, 0); - } -} - -} - |