diff options
-rw-r--r-- | engines/mads/dragonsphere/dragonsphere_scenes.cpp | 4 | ||||
-rw-r--r-- | engines/mads/menu_views.cpp | 77 | ||||
-rw-r--r-- | engines/mads/menu_views.h | 17 | ||||
-rw-r--r-- | engines/mads/module.mk | 2 | ||||
-rw-r--r-- | engines/mads/phantom/game_phantom.cpp | 4 | ||||
-rw-r--r-- | engines/mads/phantom/game_phantom.h | 11 | ||||
-rw-r--r-- | engines/mads/phantom/globals_phantom.cpp | 49 | ||||
-rw-r--r-- | engines/mads/phantom/globals_phantom.h | 75 | ||||
-rw-r--r-- | engines/mads/phantom/phantom_scenes.cpp | 7 | ||||
-rw-r--r-- | engines/mads/phantom/phantom_scenes.h | 40 | ||||
-rw-r--r-- | engines/mads/phantom/phantom_scenes1.cpp | 182 | ||||
-rw-r--r-- | engines/mads/phantom/phantom_scenes1.h | 74 | ||||
-rw-r--r-- | engines/mads/scene.cpp | 6 |
13 files changed, 481 insertions, 67 deletions
diff --git a/engines/mads/dragonsphere/dragonsphere_scenes.cpp b/engines/mads/dragonsphere/dragonsphere_scenes.cpp index ff01c32174..6f5a28bff9 100644 --- a/engines/mads/dragonsphere/dragonsphere_scenes.cpp +++ b/engines/mads/dragonsphere/dragonsphere_scenes.cpp @@ -201,6 +201,10 @@ Common::String DragonsphereScene::formAnimName(char sepChar, int suffixNum) { /*------------------------------------------------------------------------*/ void SceneInfoDragonsphere::loadCodes(MSurface &depthSurface, int variant) { + // The intro scenes do not have any codes + if (_sceneId >= 900) + return; + Common::String ext = Common::String::format(".WW%d", variant); File f(Resources::formatName(RESPREFIX_RM, _sceneId, ext)); MadsPack codesPack(&f); diff --git a/engines/mads/menu_views.cpp b/engines/mads/menu_views.cpp index cfc3b09461..10d5a2179a 100644 --- a/engines/mads/menu_views.cpp +++ b/engines/mads/menu_views.cpp @@ -1,24 +1,24 @@ /* ScummVM - Graphic Adventure Engine - * - * ScummVM is the legal property of its developers, whose names - * are too numerous to list here. Please refer to the COPYRIGHT - * file distributed with this source distribution. - * - * 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. - * - */ +* +* ScummVM is the legal property of its developers, whose names +* are too numerous to list here. Please refer to the COPYRIGHT +* file distributed with this source distribution. +* +* 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. +* +*/ #include "common/scummsys.h" #include "mads/game.h" @@ -254,6 +254,7 @@ void TextView::processCommand() { sceneInfo->_width = MADS_SCREEN_WIDTH; sceneInfo->_height = MADS_SCENE_HEIGHT; _spareScreens[spareIndex].setSize(MADS_SCREEN_WIDTH, MADS_SCENE_HEIGHT); + sceneInfo->loadMadsV1Background(screenId, "", SCENEFLAG_TRANSLATE, _spareScreens[spareIndex]); delete sceneInfo; @@ -795,4 +796,40 @@ int AnimationView::getParameter() { return result; } +void AnimationView::checkResource(const Common::String &resourceName) { + //bool hasSuffix = false; + +} + +int AnimationView::scanResourceIndex(const Common::String &resourceName) { + int foundIndex = -1; + + if (_v1) { + const char *chP = strchr(resourceName.c_str(), '\\'); + if (!chP) { + chP = strchr(resourceName.c_str(), '*'); + } + + Common::String resName = chP ? Common::String(chP + 1) : resourceName; + + if (_v2 != 3) { + assert(_resIndex.size() == 0); + } + + // Scan for the resource name + for (uint resIndex = 0; resIndex < _resIndex.size(); ++resIndex) { + ResIndexEntry &resEntry = _resIndex[resIndex]; + if (resEntry._resourceName.compareToIgnoreCase(resourceName)) { + foundIndex = resIndex; + break; + } + } + } + + if (foundIndex >= 0) { + // TODO + } + return -1; +} + } // End of namespace MADS diff --git a/engines/mads/menu_views.h b/engines/mads/menu_views.h index 6c8a2a8bdd..c203248ad9 100644 --- a/engines/mads/menu_views.h +++ b/engines/mads/menu_views.h @@ -8,12 +8,20 @@ * 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. +<<<<<<< HEAD + +======= * +>>>>>>> master * 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. +<<<<<<< HEAD + +======= * +>>>>>>> master * 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. @@ -119,8 +127,8 @@ protected: virtual void doFrame(); /** - * Called when the script is finished - */ + * Called when the script is finished + */ virtual void scriptDone(); public: /** @@ -191,6 +199,11 @@ private: int _manualFrame2; int _animFrameNumber; bool _nextCyclingActive; +private: + void checkResource(const Common::String &resourceName); + + int scanResourceIndex(const Common::String &resourceName); + uint _scrollFrameCtr; private: void load(); diff --git a/engines/mads/module.mk b/engines/mads/module.mk index fc04a2f8ba..7cb7a91e8c 100644 --- a/engines/mads/module.mk +++ b/engines/mads/module.mk @@ -4,7 +4,9 @@ MODULE_OBJS := \ dragonsphere/game_dragonsphere.o \ dragonsphere/dragonsphere_scenes.o \ phantom/game_phantom.o \ + phantom/globals_phantom.o \ phantom/phantom_scenes.o \ + phantom/phantom_scenes1.o \ nebular/dialogs_nebular.o \ nebular/game_nebular.o \ nebular/globals_nebular.o \ diff --git a/engines/mads/phantom/game_phantom.cpp b/engines/mads/phantom/game_phantom.cpp index cbeb6b0d26..959a726edf 100644 --- a/engines/mads/phantom/game_phantom.cpp +++ b/engines/mads/phantom/game_phantom.cpp @@ -28,7 +28,7 @@ #include "mads/msurface.h" #include "mads/phantom/game_phantom.h" //#include "mads/nebular/dialogs_nebular.h" -//#include "mads/nebular/globals_nebular.h" +#include "mads/phantom/globals_phantom.h" #include "mads/phantom/phantom_scenes.h" namespace MADS { @@ -57,6 +57,8 @@ void GamePhantom::initializeGlobals() { _player._facing = FACING_NORTH; _player._turnToFacing = FACING_NORTH; + _globals[kCurrentYear] = 1993; + /* Section #1 variables */ // TODO diff --git a/engines/mads/phantom/game_phantom.h b/engines/mads/phantom/game_phantom.h index 5504054bcf..44b2321f42 100644 --- a/engines/mads/phantom/game_phantom.h +++ b/engines/mads/phantom/game_phantom.h @@ -26,7 +26,7 @@ #include "common/scummsys.h" #include "mads/game.h" #include "mads/globals.h" -//#include "mads/nebular/globals_nebular.h" +#include "mads/phantom/globals_phantom.h" namespace MADS { @@ -64,15 +64,6 @@ enum InventoryObject { OBJ_OAR = 24 }; -// HACK: A stub for now, remove from here once it's implemented properly -class PhantomGlobals : public Globals { -public: - PhantomGlobals() { - resize(210); // Rex has 210 globals - } - virtual ~PhantomGlobals() {} -}; - class GamePhantom : public Game { friend class Game; protected: diff --git a/engines/mads/phantom/globals_phantom.cpp b/engines/mads/phantom/globals_phantom.cpp new file mode 100644 index 0000000000..e0db0a1bb0 --- /dev/null +++ b/engines/mads/phantom/globals_phantom.cpp @@ -0,0 +1,49 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#include "common/scummsys.h" +#include "common/config-manager.h" +#include "mads/phantom/globals_phantom.h" + +namespace MADS { + +namespace Phantom { + +PhantomGlobals::PhantomGlobals() + : Globals() { + // Initialize lists + resize(210); + _spriteIndexes.resize(30); + _sequenceIndexes.resize(30); +} + +void PhantomGlobals::synchronize(Common::Serializer &s) { + Globals::synchronize(s); + + _spriteIndexes.synchronize(s); + _sequenceIndexes.synchronize(s); +} + + +} // End of namespace Phantom + +} // End of namespace MADS diff --git a/engines/mads/phantom/globals_phantom.h b/engines/mads/phantom/globals_phantom.h new file mode 100644 index 0000000000..44d8c9e4bc --- /dev/null +++ b/engines/mads/phantom/globals_phantom.h @@ -0,0 +1,75 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#ifndef MADS_GLOBALS_PHANTOM_H +#define MADS_GLOBALS_PHANTOM_H + +#include "common/scummsys.h" +#include "common/array.h" +#include "mads/game.h" +#include "mads/resources.h" + +namespace MADS { + +namespace Phantom { + +enum GlobalId { + kWalkerTiming = 0, +// kWalkerTiming0 = 1, + + kCurrentYear = 10, // current year (1881 or 1993) + + //kTalkInanimateCount = 4, + + /* Section #1 variables */ + + /* Section #2 variables */ + + /* Section #3 Variables */ + + /* Section #4 Variables */ + + /* Section #5 Variables */ + +}; + +class PhantomGlobals : public Globals { +public: + SynchronizedList _spriteIndexes; + SynchronizedList _sequenceIndexes; +public: + /** + * Constructor + */ + PhantomGlobals(); + + /** + * Synchronize the globals data + */ + virtual void synchronize(Common::Serializer &s); +}; + +} // End of namespace Phantom + +} // End of namespace MADS + +#endif /* MADS_GLOBALS_PHANTOM_H */ diff --git a/engines/mads/phantom/phantom_scenes.cpp b/engines/mads/phantom/phantom_scenes.cpp index c2cec47bd9..57c2bb2c9b 100644 --- a/engines/mads/phantom/phantom_scenes.cpp +++ b/engines/mads/phantom/phantom_scenes.cpp @@ -28,6 +28,7 @@ #include "mads/scene.h" #include "mads/phantom/game_phantom.h" #include "mads/phantom/phantom_scenes.h" +#include "mads/phantom/phantom_scenes1.h" namespace MADS { @@ -44,7 +45,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) { case 101: // seats return new DummyScene(vm); // TODO case 102: // music stands - return new DummyScene(vm); // TODO + return new Scene102(vm); case 103: // below stage return new DummyScene(vm); // TODO case 104: // stage @@ -169,6 +170,10 @@ Common::String PhantomScene::formAnimName(char sepChar, int suffixNum) { /*------------------------------------------------------------------------*/ void SceneInfoPhantom::loadCodes(MSurface &depthSurface, int variant) { + // The intro scenes do not have any codes + if (_sceneId >= 900) + return; + Common::String ext = Common::String::format(".WW%d", variant); File f(Resources::formatName(RESPREFIX_RM, _sceneId, ext)); MadsPack codesPack(&f); diff --git a/engines/mads/phantom/phantom_scenes.h b/engines/mads/phantom/phantom_scenes.h index 0e22610086..55218f219a 100644 --- a/engines/mads/phantom/phantom_scenes.h +++ b/engines/mads/phantom/phantom_scenes.h @@ -34,6 +34,17 @@ namespace MADS { namespace Phantom { +enum Verb { + VERB_LOOK_AT = 0x60, + VERB_TURN_OFF = 0x95, + VERB_TURN_ON = 0x96, + VERB_UNLOCK = 0x97, + VERB_WALK_ACROSS = 0x99, + VERB_WALK_DOWN = 0x9A, + VERB_WALK_THROUGH = 0x9B, + VERB_WALK_UP = 0x9C, +}; + enum Noun { NOUN_GAME = 0x1, NOUN_QSAVE = 0x2, @@ -130,7 +141,6 @@ enum Noun { NOUN_LOCK = 0x5D, NOUN_LOCKING_RAIL = 0x5E, NOUN_LOCKRAIL = 0x5F, - NOUN_LOOK_AT = 0x60, NOUN_LOOK_THROUGH = 0x61, NOUN_MANNEQUINS = 0x62, NOUN_MIRROR = 0x63, @@ -183,14 +193,7 @@ enum Noun { NOUN_TICKET = 0x92, NOUN_TRAP_CEILING = 0x93, NOUN_TRAP_DOOR = 0x94, - NOUN_TURN_OFF = 0x95, - NOUN_TURN_ON = 0x96, - NOUN_UNLOCK = 0x97, NOUN_URN = 0x98, - NOUN_WALK_ACROSS = 0x99, - NOUN_WALK_DOWN = 0x9A, - NOUN_WALK_THROUGH = 0x9B, - NOUN_WALK_UP = 0x9C, NOUN_WALL = 0x9D, NOUN_WARDROBE = 0x9E, NOUN_WASTE_BASKET = 0x9F, @@ -482,27 +485,6 @@ protected: }; // TODO: Temporary, remove once implemented properly -class Scene1xx : public PhantomScene { -protected: - /** - * Plays an appropriate sound when entering a scene - */ - void sceneEntrySound() {} - - /** - *Sets the AA file to use for the scene - */ - void setAAName() {} - - /** - * Updates the prefix used for getting player sprites for the scene - */ - void setPlayerSpritesPrefix() {} -public: - Scene1xx(MADSEngine *vm) : PhantomScene(vm) {} -}; - -// TODO: Temporary, remove once implemented properly class DummyScene : public PhantomScene { public: DummyScene(MADSEngine *vm) : PhantomScene(vm) { diff --git a/engines/mads/phantom/phantom_scenes1.cpp b/engines/mads/phantom/phantom_scenes1.cpp new file mode 100644 index 0000000000..b4035dc68b --- /dev/null +++ b/engines/mads/phantom/phantom_scenes1.cpp @@ -0,0 +1,182 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#include "common/scummsys.h" +#include "mads/mads.h" +#include "mads/scene.h" +#include "mads/phantom/phantom_scenes.h" +#include "mads/phantom/phantom_scenes1.h" + +namespace MADS { + +namespace Phantom { + +void Scene1xx::setAAName() { + // TODO + //int idx = 0; + //_game._aaName = Resources::formatAAName(idx); +} + +void Scene1xx::sceneEntrySound() { + // TODO +} + +/*------------------------------------------------------------------------*/ + +Scene102::Scene102(MADSEngine *vm) : Scene1xx(vm) { + _animRunningFl = false; +} + +void Scene102::synchronize(Common::Serializer &s) { + Scene1xx::synchronize(s); + + s.syncAsByte(_animRunningFl); +} + +void Scene102::setup() { + //setPlayerSpritesPrefix(); + setAAName(); +} + +void Scene102::enter() { + _animRunningFl = false; + + // TODO: Load sprite series + + if (_scene->_priorSceneId == 101) { + _game._player._playerPos = Common::Point(97, 79); + _game._player._facing = FACING_SOUTHEAST; + // TODO + } else if (_scene->_priorSceneId == 104) { + // Player fell from pit -> death + // TODO + } else if (_scene->_priorSceneId == 103 || _scene->_priorSceneId != -1) { + _game._player._playerPos = Common::Point(282, 145); + _game._player._facing = FACING_WEST; + // TODO: Door closing animation + _animRunningFl = true; + } else if (_scene->_priorSceneId == -1) { + // TODO + } + + sceneEntrySound(); +} + +void Scene102::step() { + if (_game._trigger == 60) { // Door closes + // TODO + _animRunningFl = false; + } else if (_game._trigger == 65) { // Death + // TODO + _scene->_currentSceneId = 104; + } +} + +void Scene102::preActions() { + if (_action.isAction(VERB_OPEN, NOUN_ORCHESTRA_DOOR) || _action.isAction(VERB_PUSH, NOUN_ORCHESTRA_DOOR)) { + _game._player.walk(Common::Point(282, 145), FACING_EAST); + } +} + +void Scene102::actions() { + if (_action.isAction(VERB_WALK_DOWN, NOUN_AISLE)) { + _scene->_nextSceneId = 101; + _game._player._stepEnabled = true; + } + + if (_action.isAction(VERB_WALK_THROUGH, NOUN_ORCHESTRA_DOOR) || + _action.isAction(VERB_PUSH, NOUN_ORCHESTRA_DOOR) || + _action.isAction(VERB_OPEN, NOUN_ORCHESTRA_DOOR)) { + if (_animRunningFl) { + // TODO + } else { + switch (_game._trigger) { + case 70: // try again + case 0: + // TODO + break; + case 1: + _scene->_nextSceneId = 103; + break; + } + } + + _game._player._stepEnabled = true; + } + + // TODO: Look around + + if (_action.isAction(VERB_LOOK) || _action.isAction(VERB_LOOK_AT)) { + if (_action.isObject(NOUN_PIT)) + _vm->_dialogs->show(10211); + else if (_action.isObject(NOUN_SEATS)) + if (_globals[kCurrentYear] == 1881) + _vm->_dialogs->show(10212); + else + _vm->_dialogs->show(10230); + else if (_action.isObject(NOUN_ORCHESTRA_DOOR)) + _vm->_dialogs->show(10213); + else if (_action.isObject(NOUN_CONDUCTORS_STAND)) + _vm->_dialogs->show(10214); + else if (_action.isObject(NOUN_MUSIC_STAND) || _action.isObject(NOUN_MUSIC_STANDS)) + _vm->_dialogs->show(10215); + else if (_action.isObject(NOUN_PROMPTERS_BOX)) + _vm->_dialogs->show(10217); + else if (_action.isObject(NOUN_STAGE)) + _vm->_dialogs->show(10218); + else if (_action.isObject(NOUN_APRON)) + _vm->_dialogs->show(10219); + else if (_action.isObject(NOUN_SIDE_WALL)) + _vm->_dialogs->show(10220); + else if (_action.isObject(NOUN_FOLDING_CHAIRS)) + _vm->_dialogs->show(10221); + else if (_action.isObject(NOUN_AISLE)) + _vm->_dialogs->show(10222); + else if (_action.isObject(NOUN_PROSCENIUM_ARCH)) + _vm->_dialogs->show(10223); + else if (_action.isObject(NOUN_ACT_CURTAIN)) + _vm->_dialogs->show(10224); + else if (_action.isObject(NOUN_IN_ONE)) + _vm->_dialogs->show(10225); + else if (_action.isObject(NOUN_IN_TWO)) + _vm->_dialogs->show(10226); + else if (_action.isObject(NOUN_LEG)) + _vm->_dialogs->show(10227); + else if (_action.isObject(NOUN_CHANDELIER)) + _vm->_dialogs->show(10231); + else + return; + + _game._player._stepEnabled = true; + } + + if (_action.isAction(VERB_CLOSE, NOUN_ORCHESTRA_DOOR)) { + _vm->_dialogs->show(10228); + _game._player._stepEnabled = true; + } +} + + +/*------------------------------------------------------------------------*/ + +} // End of namespace Phantom +} // End of namespace MADS diff --git a/engines/mads/phantom/phantom_scenes1.h b/engines/mads/phantom/phantom_scenes1.h new file mode 100644 index 0000000000..ef2cdb7aa0 --- /dev/null +++ b/engines/mads/phantom/phantom_scenes1.h @@ -0,0 +1,74 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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. + * + */ + +#ifndef MADS_PHANTOM_SCENES1_H +#define MADS_PHANTOM_SCENES1_H + +#include "common/scummsys.h" +#include "common/serializer.h" +#include "mads/game.h" +#include "mads/scene.h" +#include "mads/phantom/phantom_scenes.h" + +namespace MADS { + +namespace Phantom { + +class Scene1xx : public PhantomScene { +protected: + /** + * Plays an appropriate sound when entering a scene + */ + void sceneEntrySound(); + + /** + *Sets the AA file to use for the scene + */ + void setAAName(); + + /** + * Updates the prefix used for getting player sprites for the scene + */ + void setPlayerSpritesPrefix(); +public: + Scene1xx(MADSEngine *vm) : PhantomScene(vm) {} +}; + +class Scene102 : public Scene1xx { +private: + bool _animRunningFl; + +public: + Scene102(MADSEngine *vm); + virtual void synchronize(Common::Serializer &s); + + virtual void setup(); + virtual void enter(); + virtual void step(); + virtual void preActions(); + virtual void actions(); +}; + +} // End of namespace Phantom +} // End of namespace MADS + +#endif /* MADS_PHANTOM_SCENES1_H */ diff --git a/engines/mads/scene.cpp b/engines/mads/scene.cpp index 5662d8349a..ee5f1a5440 100644 --- a/engines/mads/scene.cpp +++ b/engines/mads/scene.cpp @@ -500,14 +500,12 @@ void Scene::drawElements(ScreenTransition transitionType, bool surfaceFlag) { _dirtyAreas.copy(&_backgroundSurface, &_vm->_screen, _posAdjust); // Handle dirty areas for foreground objects - if (_vm->getGameID() == GType_RexNebular) // TODO: Implement for V2 games - _spriteSlots.setDirtyAreas(); + _spriteSlots.setDirtyAreas(); _textDisplay.setDirtyAreas2(); _dirtyAreas.merge(1, DIRTY_AREAS_SIZE); // Draw sprites that have changed - if (_vm->getGameID() == GType_RexNebular) // TODO: Implement for V2 games - _spriteSlots.drawSprites(&_sceneSurface); + _spriteSlots.drawSprites(&_sceneSurface); // Draw text elements onto the view _textDisplay.draw(&_vm->_screen); |