From 8aae164c168b880c390148e2fa8fb6b97ad411e2 Mon Sep 17 00:00:00 2001 From: JenniBee Date: Tue, 17 Sep 2013 01:10:23 -0400 Subject: [PATCH 001/105] AGI: Adding detection for the Ultimate AGI Fangame Demo. --- engines/agi/detection_tables.h | 1 + 1 file changed, 1 insertion(+) diff --git a/engines/agi/detection_tables.h b/engines/agi/detection_tables.h index f1bb079ffcf1..a7a3920df834 100644 --- a/engines/agi/detection_tables.h +++ b/engines/agi/detection_tables.h @@ -849,6 +849,7 @@ static const AGIGameDescription gameDescriptions[] = { FANMADE("Tonight The Shrieking Corpses Bleed (Demo v0.11)", "bcc57a7c8d563fa0c333107ae1c0a6e6"), FANMADE("Tonight The Shrieking Corpses Bleed (v1.01)", "36b38f621b38e8d104aa0807302dc8c9"), FANMADE("Turks' Quest - Heir to the Planet", "3d19254b737c8b218e5bc4580542b79a"), + FANMADE("Ultimate AGI Fangame (Demo)", "2d14d6fa2a2136d681e46e06821905bf"), FANMADE("URI Quest (v0.173 Feb 27)", "3986eefcf546dafc45f920ae91a697c3"), FANMADE("URI Quest (v0.173 Jan 29)", "494150940d34130605a4f2e67ee40b12"), { From 719782a040c5a57797ecabbc734f58c1f30bbb7b Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Mon, 4 Nov 2013 21:09:40 +0100 Subject: [PATCH 002/105] SCI: script patcher documentation --- engines/sci/engine/script_patches.cpp | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index ac42764e5b8e..992dd9e8bba0 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -30,6 +30,52 @@ namespace Sci { +// IMPORTANT: +// every patch entry needs the following: +// - script number (pretty obvious) +// +// - apply count +// specifies the number of times a patch is supposed to get applied. +// Most of the time, it should be 1. +// +// - magicDWORD + magicOffset +// please ALWAYS put 0 for those two. Both will get filled out at runtime by the patcher. +// +// - signature data (is used to identify certain script code, that needs patching) +// every signature needs to contain SIG_MAGICDWORD once. +// The following 4 bytes after SIG_MAGICDWORD - which don't have to be fixed, you may for example +// use SIG_SELECTOR16, will get used to quickly search for a partly match before verifying that +// the whole signature actually matches. If it's not included, the script patcher will error() out +// right when loading up the game. +// If selector-IDs are included, please use SIG_SELECTOR16 + SIG_SELECTOR8 [1]. Simply +// specify the selector that way, so that the patcher will search for the specific +// selector instead of looking for a hardcoded value. Selectors may not be the same +// between game versions. +// For UINT16s either use SIG_UINT16 or SIG_SELECTOR16. +// Macintosh versions of SCI games are using BE ordering instead of LE since SCI1.1 for UINT16s in scripts +// By using those 2 commands, it's possible to make patches work for PC and Mac versions of the same game. +// You may also skip bytes by using the SIG_ADDTOOFFSET command +// Every signature data needs to get terminated using SIGNATURE_END +// +// - patch data (is used for actually patching scripts) +// When a match is found, the patch data will get applied. +// Patch data is similar to signature data. Just use PATCH_SELECTOR16 + PATCH_SELECTOR8 [1] +// for patching in selectors. +// There are also patch specific commands. +// Those are PATCH_GETORIGINALBYTE, which fetches a byte from the original script +// and PATCH_GETORIGINALBYTEADJUST, which does the same but gets a second value +// from the uint16 array and uses that value to adjust the original byte. +// Every patch data needs to get terminated using PATCH_END +// +// - and please always add a comment about why the patch was done and what's causing issues. +// If possible make sure, that the patch works on localized (or just different) game versions +// as well in case those need patching too. +// +// [1] - selectors need to get specified in selectorTable[] and ScriptPatcherSelectors-enum +// before they can get used using the SIG_SELECTORx and PATCH_SELECTORx commands. +// You have to use the exact same order in both the table and the enum, otherwise +// it won't work. + #define SIG_END 0xFFFF #define SIG_MISMATCH 0xFFFE #define SIG_COMMANDMASK 0xF000 From 34169a817c0f995fdbb353e76742a071a7bde95e Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Mon, 4 Nov 2013 21:25:00 +0100 Subject: [PATCH 003/105] SWORD25: Revert "Fix compilation on some 32-bit systems" This reverts commit 6dc3768faaa272a12e3c6e7ce0965905338132ad. This commit was the wrong fix to the compilation problem later fixed by 8e9aefbf6edafa9eed41bd90e5579e5bcde34b03. --- engines/sword25/util/pluto/pluto.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/engines/sword25/util/pluto/pluto.cpp b/engines/sword25/util/pluto/pluto.cpp index b7a8fd3c8b35..fb477c1687a9 100644 --- a/engines/sword25/util/pluto/pluto.cpp +++ b/engines/sword25/util/pluto/pluto.cpp @@ -19,7 +19,6 @@ * for Mobile Lua (http://luaos.net/pages/mobile-lua.php) */ -#include "config.h" #include "sword25/util/lua/lua.h" #include "pluto.h" From 532fe7b84ef6a8436c467c3979a4531bb8edeb14 Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Tue, 5 Nov 2013 00:11:41 +0100 Subject: [PATCH 004/105] SCI: Script Patch to fix German LSL5 Patti Textbox fixes Patti's head overlapping a textbox near the end of the game (German text only!), also occured in Sierra SCI --- engines/sci/engine/script_patches.cpp | 32 +++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp index 992dd9e8bba0..9bf284d543ab 100644 --- a/engines/sci/engine/script_patches.cpp +++ b/engines/sci/engine/script_patches.cpp @@ -1011,6 +1011,35 @@ SciScriptPatcherEntry larry2Signatures[] = { SCI_SIGNATUREENTRY_TERMINATOR }; +// =========================================================================== +// Leisure Suit Larry 5 +// In one of the conversations near the end (to be exact - room 380 and the text +// about using champagne on Reverse Biaz - only used when you actually did that +// in the game), the German text is too large, causing the textbox to get too large. +// Because of that the talking head of Patti is drawn over the textbox. A translation oversight. +// Applies to at least: German floppy +// Responsible method: none, position of talker object on screen needs to get modified +const uint16 larry5SignatureGermanEndingPattiTalker[] = { + SIG_MAGICDWORD, + SIG_UINT16 + 0x6e, 0x00, // object pattiTalker::x (110) + SIG_UINT16 + 0xb4, 0x00, // object pattiTalker::y (180) + SIG_ADDTOOFFSET + 469, // verify that it's really the German version + 0x59, 0x6f, 0x75, // (object name) "You" + 0x23, 0x47, 0x44, 0x75, // "#GDu" + SIG_END +}; + +const uint16 larry5PatchGermanEndingPattiTalker[] = { + PATCH_UINT16 + 0x5a, 0x00, // change pattiTalker::x to 90 + PATCH_END +}; + +// script, description, signature patch +SciScriptPatcherEntry larry5Signatures[] = { + { 380, "German-only: Enlarge Patti Textbox", 1, 0, 0, larry5SignatureGermanEndingPattiTalker, larry5PatchGermanEndingPattiTalker }, + SCI_SIGNATUREENTRY_TERMINATOR +}; + // =========================================================================== // this is called on every death dialog. Problem is at least the german // version of lsl6 gets title text that is far too long for the @@ -2076,6 +2105,9 @@ void Script::patcherProcessScript(uint16 scriptNr, byte *scriptData, const uint3 case GID_LSL2: signatureTable = larry2Signatures; break; + case GID_LSL5: + signatureTable = larry5Signatures; + break; case GID_LSL6: signatureTable = larry6Signatures; break; From daa244b73c07ac1e0261632c55a449840cab90f4 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 5 Nov 2013 00:15:37 +0100 Subject: [PATCH 005/105] TSAGE: R2R - Fix a couple of issues in scene 1850, some renaming --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 26 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes1.h | 12 ++++----- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 3d99ecd0359f..ee133edb8efd 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -11360,7 +11360,7 @@ bool Scene1800::PassengerDoor::startAction(CursorType action, Event &event) { return true; } -void Scene1800::Exit1::changeScene() { +void Scene1800::SouthExit::changeScene() { Scene1800 *scene = (Scene1800 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -11843,7 +11843,7 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { } } -bool Scene1850::Actor6::startAction(CursorType action, Event &event) { +bool Scene1850::Door::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneHotspot::startAction(action, event); @@ -11855,7 +11855,7 @@ bool Scene1850::Actor6::startAction(CursorType action, Event &event) { } R2_GLOBALS._player.disableControl(); - if (scene->_field412 == 1851) + if (scene->_sceneMode == 1851) R2_GLOBALS._player._effect = 1; if (_position.x >= 160) @@ -11909,7 +11909,7 @@ bool Scene1850::DisplayScreen::startAction(CursorType action, Event &event) { /*------------------------------------------------------------------------*/ Scene1850::Scene1850() { - _field412 = 0; + _sceneMode = 0; _field414 = 0; _field416 = 0; _field418 = 0; @@ -11919,7 +11919,7 @@ Scene1850::Scene1850() { void Scene1850::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field412); + s.syncAsSint16LE(_sceneMode); s.syncAsSint16LE(_field414); s.syncAsSint16LE(_field416); s.syncAsSint16LE(_field418); @@ -11937,10 +11937,10 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(0); if (R2_GLOBALS.getFlag(31)) { - _field412 = 1850; + _sceneMode = 1850; g_globals->_scenePalette.loadPalette(1850); } else { - _field412 = 1851; + _sceneMode = 1851; g_globals->_scenePalette.loadPalette(1851); } @@ -12268,14 +12268,14 @@ void Scene1850::signal() { case 1852: // No break on purpose: case 1853: - if (_field412 == 1851) { + if (_sceneMode == 1851) { // At this point, SceneMode can't be equal to 1851 => dead code R2_GLOBALS.setFlag(31); _palette1.loadPalette(1850); - _field412 = 1850; + _sceneMode = 1850; } else { R2_GLOBALS.clearFlag(31); _palette1.loadPalette(1851); - _field412 = 1851; + _sceneMode = 1851; } _field418 = 1; @@ -12292,7 +12292,7 @@ void Scene1850::signal() { } else if (R2_GLOBALS.getFlag(33)) { R2_GLOBALS.setFlag(62); R2_GLOBALS.setFlag(34); - R2_GLOBALS._walkRegions.disableRegion(2); + R2_GLOBALS._walkRegions.enableRegion(2); _actor2.postInit(); _actor2.setDetails(1850, 6, -1, -1, 5, &_robot); @@ -12309,7 +12309,7 @@ void Scene1850::signal() { else R2_GLOBALS._scenePalette.addFader(_palette1._palette, 256, 5, this); - if (_field412 == 1851) + if (_sceneMode == 1851) _field416 = -20; else _field416 = 20; @@ -12469,7 +12469,7 @@ void Scene1850::process(Event &event) { } else { setAction(&_sequenceManager1, this, 1859, &R2_GLOBALS._player, &_robot, NULL); } - R2_GLOBALS.clearFlag(32); + R2_GLOBALS.clearFlag(30); event.handled = true; } diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index a663fbe5bc91..c9b6244cb44e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -861,7 +861,7 @@ class Scene1800 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -883,7 +883,7 @@ class Scene1800 : public SceneExt { Doors _doors; PassengerDoor _leftDoor; PassengerDoor _rightDoor; - Exit1 _southExit; + SouthExit _southExit; SequenceManager _sequenceManager; Scene1800(); @@ -904,7 +904,7 @@ class Scene1850 : public SceneExt { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor6 : public SceneActor { + class Door : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -914,7 +914,7 @@ class Scene1850 : public SceneExt { }; public: - int _field412; + int _sceneMode; int _field414; int _field416; int _field418; @@ -930,8 +930,8 @@ class Scene1850 : public SceneExt { SceneActor _actor3; SceneActor _actor4; Robot _robot; - Actor6 _leftDoor; - Actor6 _rightDoor; + Door _leftDoor; + Door _rightDoor; DisplayScreen _displayScreen; SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; From f716952e88588716fa33a3402886f5bed7d1deef Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 5 Nov 2013 01:32:48 +0200 Subject: [PATCH 006/105] FULLPIPE: Continued work on scene 3 --- engines/fullpipe/scenes.cpp | 104 +++++++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index fdc28e8092e7..a655ee872c9c 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1601,7 +1601,109 @@ int scene03_updateCursor() { } int sceneHandler03(ExCommand *ex) { - warning("STUB: sceneHandler03()"); +#if 0 + if (ex->_messageKind != 17) { + if (ex->_messageKind == 57) + sceneHandler03_giveItem(ex); + return 0; + } + + switch (ex->messageNum) { + case MSG_LIFT_EXITLIFT: + lift_exitSeq(ex); + break; + + case MSG_LIFT_CLOSEDOOR: + lift_closedoorSeq(); + break; + + case MSG_SC3_ONTAKECOIN: + sceneHandler03_eaterFat(); + break; + + case MSG_LIFT_STARTEXITQUEUE: + sceneHandlers_startExitQueue(); + break; + + case MSG_SC3_RELEASEEGG: + sceneHandler03_releaseEgg(); + break; + + case MSG_LIFT_CLICKBUTTON: + lift_animation3(); + break; + + case MSG_SC3_HIDEDOMINO: + g_vars->scene03_domino->_flags &= 0xFFFB; + break; + + case MSG_SC3_TAKEEGG: + sceneHandler03_takeEgg(ex); + break; + + case MSG_LIFT_GO: + lift_goAnimation(); + break; + + case MSG_SC3_UTRUBACLICK: + sceneHandler03_goLadder(); + break; + + case MSG_SC3_TESTFAT: + sceneHandler03_giveCoin(ex); + break; + + case 64: + sceneHandlers_sub05(ex); + break; + + case 93: + { + StaticANIObject *ani = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY); + if (ani && ani->_id == ANI_LIFTBUTTON) { + lift_sub1(ani); + ex->_messageKind = 0; + + return 0; + } + + if (g_fullpipe->_currentScene->getPictureObjectIdAtPos(ex->_sceneClickX, ex->_sceneClickY) == PIC_SC3_DOMIN) { + if (g_vars->scene03_domino) + if (g_vars->scene03_domino->_flags & 4) + if (g_fullpipe->_aniMan->isIdle()) + if (!(g_fullpipe->_aniMan->_flags & 0x100) && g_fullpipe->_msgObjectId2 != g_vars->scene03_domino->_id) { + handleObjectInteraction(g_fullpipe->_aniMan, g_vars->scene03_domino, ex->_keyCode); + ex->_messageKind = 0; + + return 0; + } + } + + break; + } + + case 97: + { + int res = 0; + + if (g_fullpipe->_aniMan2) { + if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200) { + g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300; + v7 = g_fullpipe->_aniMan2; + } + + if (g_fullpipe->_aniMan2->_ox > g_fullpipe->_sceneRect.right - 200) + g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300; + res = 1; + } + g_fullpipe->_behaviorManager->updateBehaviors(); + + startSceneTrack(); + + return res; + } + } +#endif return 0; } From 5f6156ddb6f8cd636385266db409a5859e9ef394 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 5 Nov 2013 00:54:43 +0100 Subject: [PATCH 007/105] TSAGE: R2R - Disable region 2 in signal() --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index ee133edb8efd..42f13f6ce115 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -12292,7 +12292,7 @@ void Scene1850::signal() { } else if (R2_GLOBALS.getFlag(33)) { R2_GLOBALS.setFlag(62); R2_GLOBALS.setFlag(34); - R2_GLOBALS._walkRegions.enableRegion(2); + R2_GLOBALS._walkRegions.disableRegion(2); _actor2.postInit(); _actor2.setDetails(1850, 6, -1, -1, 5, &_robot); From 1d6ed07723f57f27fb4f2a08c0d91835291a05bd Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 4 Nov 2013 21:17:23 -0500 Subject: [PATCH 008/105] TSAGE: Renamings for effects and shadow palette map --- engines/tsage/core.cpp | 2 +- engines/tsage/core.h | 4 +- engines/tsage/ringworld2/ringworld2_logic.cpp | 8 +- engines/tsage/ringworld2/ringworld2_logic.h | 2 +- .../tsage/ringworld2/ringworld2_scenes0.cpp | 28 ++-- .../tsage/ringworld2/ringworld2_scenes1.cpp | 76 ++++----- .../tsage/ringworld2/ringworld2_scenes3.cpp | 152 +++++++++--------- .../tsage/ringworld2/ringworld2_speakers.cpp | 44 ++--- 8 files changed, 158 insertions(+), 158 deletions(-) diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index e703b714b2da..553c3216e699 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2106,7 +2106,7 @@ SceneObject::SceneObject() : SceneHotspot() { _endFrame = 0; _field68 = 0; _regionIndex = 0; - _field9C = NULL; + _shadowMap = NULL; } SceneObject::SceneObject(const SceneObject &so) : SceneHotspot() { diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 2c88f6be7955..04d6101821ba 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -467,7 +467,7 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD }; enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, - EFFECT_4 = 4, EFFECT_5 = 5 }; + EFFECT_4 = 4, EFFECT_5 = 5, EFFECT_6 = 6 }; class SceneObject; @@ -552,7 +552,7 @@ class SceneObject : public SceneHotspot { uint32 _regionBitList; // Ringworld 2 specific fields - byte *_field9C; + byte *_shadowMap; int _shade, _oldShade; int _effect; SceneObject *_linkedActor; diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index e5d8b0702b88..b3ea27018de1 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -336,7 +336,7 @@ SceneExt::SceneExt(): Scene() { _stripManager._onEnd = SceneExt::endStrip; for (int i = 0; i < 256; i++) - _field312[i] = 0; + _shadowPaletteMap[i] = 0; _savedPlayerEnabled = false; _savedUiEnabled = false; @@ -356,7 +356,7 @@ SceneExt::SceneExt(): Scene() { void SceneExt::synchronize(Serializer &s) { Scene::synchronize(s); - s.syncBytes(&_field312[0], 256); + s.syncBytes(&_shadowPaletteMap[0], 256); _sceneAreas.synchronize(s); } @@ -585,7 +585,7 @@ void SceneExt::scalePalette(int RFactor, int GFactor, int BFactor) { varC = tmp; varD = j; } - this->_field312[i] = varD; + this->_shadowPaletteMap[i] = varD; } } @@ -1285,7 +1285,7 @@ void SceneActor::postInit(SceneObjectList *OwnerList) { void SceneActor::remove() { R2_GLOBALS._sceneItems.remove(this); - _field9C = NULL; + _shadowMap = NULL; _linkedActor = NULL; SceneObject::remove(); diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h index ff5bfc0b6f69..50e506de1106 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.h +++ b/engines/tsage/ringworld2/ringworld2_logic.h @@ -81,7 +81,7 @@ class SceneExt: public Scene { static void startStrip(); static void endStrip(); public: - byte _field312[256]; + byte _shadowPaletteMap[256]; bool _savedPlayerEnabled; bool _savedUiEnabled; bool _savedCanWalk; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index aabcd261c761..b050e8f00ff1 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -3491,7 +3491,7 @@ void Scene300::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == 1500) { R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] = 3150; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3150; - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; R2_GLOBALS._player.setAction(NULL); R2_GLOBALS._player.disableControl(); @@ -3676,7 +3676,7 @@ void Scene300::signal() { case 313: _sceneMode = 14; - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; _seeker.setAction(&_sequenceManager3, this, 314, &_seeker, &_doorway, NULL); R2_GLOBALS._events.setCursor(CURSOR_ARROW); _stripManager.start(301, this); @@ -3685,7 +3685,7 @@ void Scene300::signal() { case 314: R2_GLOBALS._player.disableControl(); _sceneMode = 315; - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; setAction(&_sequenceManager1, this, 315, &R2_GLOBALS._player, &_doorway, NULL); break; @@ -5290,7 +5290,7 @@ void Scene500::PanelDialog::Button::doButtonPress() { } else { scene->_suit.postInit(); scene->_suit.hide(); - scene->_suit._effect = 1; + scene->_suit._effect = EFFECT_SHADED; scene->_suit.setDetails(500, -1, -1, -1, 2, (SceneItem *)NULL); scene->_suit.setup(502, R2_GLOBALS._landerSuitNumber + 2, 1); @@ -5325,14 +5325,14 @@ void Scene500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._walkRegions.enableRegion(1); _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; _seeker.setup(1505, 1, 1); _seeker._moveDiff.x = 5; _seeker.setPosition(Common::Point(42, 151)); _seeker.setDetails(500, 34, 35, 36, 1, (SceneItem *)NULL); } else if (R2_GLOBALS._player._characterScene[R2_QUINN] == 500) { _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; _seeker.setup(R2_GLOBALS.getFlag(26) ? 1500 : 10, 1, 1); _seeker.setPosition(Common::Point(42, 151)); @@ -5407,7 +5407,7 @@ void Scene500::postInit(SceneObjectList *OwnerList) { } _suits.postInit(); - _suits._effect = 1; + _suits._effect = EFFECT_SHADED; _suits.setup(502, 1, 1); _suits.setPosition(Common::Point(258, 99)); _suits.fixPriority(50); @@ -5421,7 +5421,7 @@ void Scene500::postInit(SceneObjectList *OwnerList) { _transparentDoor.setup(500, 8, 7); _suit.postInit(); - _suit._effect = 1; + _suit._effect = EFFECT_SHADED; _suit.setPosition(Common::Point(247, 52)); _suit.setDetails(500, -1, -1, -1, 2, (SceneItem *)NULL); @@ -5594,7 +5594,7 @@ void Scene525::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(105); _actor1.postInit(); - _actor1._effect = 1; + _actor1._effect = EFFECT_SHADED; R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -5767,7 +5767,7 @@ bool Scene600::Laser::startAction(CursorType action, Event &event) { scene->_smoke.postInit(); scene->_smoke.setup(601, 3, 1); - scene->_smoke._effect = 3; + scene->_smoke._effect = EFFECT_3; scene->_smoke._moveDiff = Common::Point(1, 1); scene->_smoke._moveRate = 2; scene->_smoke._numFrames = 3; @@ -5948,7 +5948,7 @@ void Scene600::postInit(SceneObjectList *OwnerList) { _smoke._numFrames = 3; _smoke.animate(ANIM_MODE_2, NULL); _smoke.fixPriority(130); - _smoke._effect = 3; + _smoke._effect = EFFECT_3; _smoke.setDetails(600, 24, 25, 26, 1, (SceneItem *) NULL); _smoke.signal(); } @@ -6019,7 +6019,7 @@ void Scene600::signal() { R2_INVENTORY.setObjectScene(R2_AEROSOL, 600); R2_GLOBALS.setFlag(5); - _smoke._effect = 3; + _smoke._effect = EFFECT_3; _smoke.signal(); break; case 606: @@ -7002,7 +7002,7 @@ void Scene825::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._interfaceY = SCREEN_HEIGHT; R2_GLOBALS._player.postInit(); - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; R2_GLOBALS._player.setVisage(10); R2_GLOBALS._player.hide(); R2_GLOBALS._player.disableControl(); @@ -7613,7 +7613,7 @@ void Scene900::postInit(SceneObjectList *OwnerList) { _electromagnet.fixPriority(1); _electromagnet.setup(900, 1, 2); _electromagnet.setPosition(Common::Point(89, 0)); - _electromagnet._effect = 1; + _electromagnet._effect = EFFECT_SHADED; _electromagnet.setDetails(900, 6, -1, 8, 1, (SceneItem *) NULL); if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) != 1) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) != 1)) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 42f13f6ce115..2d6ff30d2609 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -868,8 +868,8 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(1101); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.disableControl(); - R2_GLOBALS._player._effect = 5; - R2_GLOBALS._player._field9C = _field312; + R2_GLOBALS._player._effect = EFFECT_5; + R2_GLOBALS._player._shadowMap = _shadowPaletteMap; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setObjectWrapper(NULL); R2_GLOBALS._player.setPosition(Common::Point(111,-20)); @@ -894,8 +894,8 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _shipFormationShadow.setup(1102, 6, 2); _shipFormationShadow._moveRate = 30; _shipFormationShadow._moveDiff.x = 2; - _shipFormationShadow._effect = 5; - _shipFormationShadow._field9C = _field312; + _shipFormationShadow._effect = EFFECT_5; + _shipFormationShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._sound1.play(86); @@ -1038,12 +1038,12 @@ void Scene1100::signal() { break; case 5: _runningGuy1.postInit(); - _runningGuy1._effect = 6; + _runningGuy1._effect = EFFECT_6; _runningGuy1.setup(1103, 3, 1); _runningGuy1._moveRate = 30; _runningGuy2.postInit(); - _runningGuy2._effect = 6; + _runningGuy2._effect = EFFECT_6; _runningGuy2.setup(1103, 4, 1); _runningGuy2._moveRate = 25; @@ -1063,7 +1063,7 @@ void Scene1100::signal() { setAction(&_sequenceManager1, this, 1103, &_chief, &_laserShot, NULL); break; case 8: - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; _animation.postInit(); setAction(&_sequenceManager1, this, 1105, &R2_GLOBALS._player, &_laserShot, &_animation, &_chief, NULL); break; @@ -1084,7 +1084,7 @@ void Scene1100::signal() { case 11: { setAction(&_sequenceManager1, this, 1106, &_animation, &_laserShot, &_leftImpacts, NULL); - R2_GLOBALS._player._effect = 5; + R2_GLOBALS._player._effect = EFFECT_5; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setPosition(Common::Point(-50, 131)); R2_GLOBALS._sound2.play(84); @@ -6908,9 +6908,9 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { _starshipShadow.postInit(); _starshipShadow.setup(1401, 1, 1); - _starshipShadow._effect = 5; + _starshipShadow._effect = EFFECT_5; _starshipShadow.fixPriority(10); - _starshipShadow._field9C = _field312; + _starshipShadow._shadowMap = _shadowPaletteMap; _starship.postInit(); _starship.setup(1400, 1, 1); @@ -6920,9 +6920,9 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene != 1010) { _smallShipShadow.postInit(); _smallShipShadow.setup(1401, 2, 1); - _smallShipShadow._effect = 5; + _smallShipShadow._effect = EFFECT_5; _smallShipShadow.fixPriority(10); - _smallShipShadow._field9C = _field312; + _smallShipShadow._shadowMap = _shadowPaletteMap; _smallShip.postInit(); _smallShip._moveRate = 30; @@ -7147,7 +7147,7 @@ void Scene1530::postInit(SceneObjectList *OwnerList) { _sceneMode = 1; } else { _seeker.postInit(); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); @@ -7814,7 +7814,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_seekerSpeaker); R2_GLOBALS._player.postInit(); - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; if (R2_GLOBALS._player._characterIndex == R2_QUINN) R2_GLOBALS._player.setup(1500, 3, 1); @@ -9020,7 +9020,7 @@ void Scene1550::enterArea() { (R2_GLOBALS._scene1550JunkLocations[i + 2] != 0)) { tmpIdx = R2_GLOBALS._scene1550JunkLocations[i + 3]; _junk[di].postInit(); - _junk[di]._effect = 6; + _junk[di]._effect = EFFECT_6; _junk[di]._shade = 0; _junk[di]._fieldA4 = tmpIdx; _junk[di]._junkNumber = i; @@ -9264,7 +9264,7 @@ void Scene1550::enterArea() { if (R2_GLOBALS._s1550PlayerArea[R2_QUINN] == R2_GLOBALS._s1550PlayerArea[R2_SEEKER]) { _companion.postInit(); - _companion._effect = 7; + _companion._effect = EFFECT_6; _companion.changeZoom(-1); assert((_field419 >= 1550) && (_field419 <= 2008)); @@ -10577,8 +10577,8 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { else _actor1.setVisage(1111); - _actor1._effect = 5; - _actor1._field9C = _field312; + _actor1._effect = EFFECT_5; + _actor1._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_actor1; _actor2.postInit(); @@ -10588,8 +10588,8 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { else _actor2.setVisage(1112); - _actor2._effect = 5; - _actor2._field9C = _field312; + _actor2._effect = EFFECT_5; + _actor2._shadowMap = _shadowPaletteMap; _actor12._linkedActor = &_actor2; R2_GLOBALS._sound1.play(134); @@ -11526,8 +11526,8 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _playerShadow.setVisage(1110); - _playerShadow._effect = 5; - _playerShadow._field9C = _field312; + _playerShadow._effect = EFFECT_5; + _playerShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_playerShadow; @@ -11538,8 +11538,8 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _companionShadow.setVisage(1111); - _companionShadow._effect = 5; - _companionShadow._field9C = _field312; + _companionShadow._effect = EFFECT_5; + _companionShadow._shadowMap = _shadowPaletteMap; _companion._linkedActor = &_companionShadow; @@ -11856,7 +11856,7 @@ bool Scene1850::Door::startAction(CursorType action, Event &event) { R2_GLOBALS._player.disableControl(); if (scene->_sceneMode == 1851) - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; if (_position.x >= 160) R2_GLOBALS.setFlag(29); @@ -12004,8 +12004,8 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { } if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 1850) { - R2_GLOBALS._player._effect = 6; - _companion._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; + _companion._effect = EFFECT_6; if (R2_GLOBALS.getFlag(31)) { R2_GLOBALS._player._shade = 0; _companion._shade = 0; @@ -12041,7 +12041,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor3.setup(1853, 3, 1); _actor3.setPosition(Common::Point(122, 113)); _actor3.fixPriority(114); - _actor3._effect = 6; + _actor3._effect = EFFECT_6; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12055,7 +12055,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor4.setup(1853, 3, 2); _actor4.setPosition(Common::Point(139, 111)); _actor4.fixPriority(114); - _actor4._effect = 6; + _actor4._effect = EFFECT_6; // Still totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12085,7 +12085,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor3.setup(1853, 3, 1); _actor3.setPosition(Common::Point(122, 113)); _actor3.fixPriority(114); - _actor3._effect = 6; + _actor3._effect = EFFECT_6; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12099,7 +12099,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor4.setup(1853, 3, 2); _actor4.setPosition(Common::Point(139, 111)); _actor4.fixPriority(114); - _actor4._effect = 6; + _actor4._effect = EFFECT_6; // Again, useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12157,8 +12157,8 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.enableControl(); } else { // R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] != 1850 - R2_GLOBALS._player._effect = 1; - _companion._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion._effect = EFFECT_SHADED; R2_GLOBALS._player.disableControl(); _sceneMode = 10; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12224,10 +12224,10 @@ void Scene1850::remove() { void Scene1850::signal() { switch (_sceneMode) { case 10: - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; R2_GLOBALS._player._shade = 6; - _companion._effect = 6; + _companion._effect = EFFECT_6; _companion._shade = 6; R2_GLOBALS._walkRegions.disableRegion(5); @@ -12406,7 +12406,7 @@ void Scene1850::signal() { break; case 1877: _actor3.postInit(); - _actor3._effect = 6; + _actor3._effect = EFFECT_6; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); @@ -12415,7 +12415,7 @@ void Scene1850::signal() { } _actor4.postInit(); - _actor4._effect = 6; + _actor4._effect = EFFECT_6; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); @@ -14893,7 +14893,7 @@ void Scene1950::enterArea() { _vampire._numFrames = 6; _vampire._moveRate = 6; _vampire._moveDiff = Common::Point(3, 2); - _vampire._effect = 1; + _vampire._effect = EFFECT_SHADED; if (!R2_GLOBALS._vampireData[_vampireIndex - 1]._isAlive) { // Show vampire ashes diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 788b8c77dd91..57640363559c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -396,7 +396,7 @@ bool Scene3150::LightFixture::startAction(CursorType action, Event &event) { if ((R2_INVENTORY.getObjectScene(R2_LIGHT_BULB) != 3150) && (R2_GLOBALS.getFlag(75))) { R2_GLOBALS._player.disableControl(); scene->_bulbOrWire.postInit(); - scene->_bulbOrWire._effect = 3; + scene->_bulbOrWire._effect = EFFECT_3; scene->_bulbOrWire._shade = 5; scene->_sceneMode = 3155; scene->setAction(&scene->_sequenceManager, scene, 3155, &R2_GLOBALS._player, &scene->_bulbOrWire, NULL); @@ -417,7 +417,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { case R2_PILLOW: R2_GLOBALS._player.disableControl(); scene->_water.postInit(); - scene->_water._effect = 6; + scene->_water._effect = EFFECT_6; scene->_water._shade = 3; R2_GLOBALS._player.disableControl(); scene->_sceneMode = 3158; @@ -428,7 +428,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { (R2_INVENTORY.getObjectScene(R2_SUPERCONDUCTOR_WIRE) == 3150) && (R2_GLOBALS.getFlag(75))) { scene->_foodTray.postInit(); - scene->_foodTray._effect = 6; + scene->_foodTray._effect = EFFECT_6; scene->_foodTray._shade = 3; scene->_foodTray.setDetails(3150, 30, -1, -1, 2, (SceneItem *)NULL); @@ -579,7 +579,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _guard.postInit(); _guard.setup(3154, 1, 16); _guard.setPosition(Common::Point(104, 129)); - _guard._effect = 6; + _guard._effect = EFFECT_6; _guard._shade = 3; _guard.setDetails(3150, 24, -1, -1, -1, (SceneItem *)NULL); } @@ -609,7 +609,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { } _water.fixPriority(110); _water.setPosition(Common::Point(83, 88)); - _water._effect = 6; + _water._effect = EFFECT_6; _water._shade = 3; } else { _water.setup(3152, 7, 3); @@ -629,7 +629,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _bulbOrWire.setup(3152, 7, 3); _bulbOrWire.setPosition(Common::Point(70, 55)); _bulbOrWire.fixPriority(111); - _bulbOrWire._effect = 6; + _bulbOrWire._effect = EFFECT_6; _bulbOrWire._shade = 5; } @@ -639,7 +639,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _foodTray.setup(3152, 7, 8); _foodTray.setPosition(Common::Point(82, 92)); _foodTray.fixPriority(111); - _foodTray._effect = 6; + _foodTray._effect = EFFECT_6; _foodTray._shade = 3; } else { _foodTray.setup(3152, 7, 7); @@ -664,7 +664,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { case 0: _sceneMode = 3150; _guard.postInit(); - _guard._effect = 6; + _guard._effect = EFFECT_6; _guard._shade = 5; setAction(&_sequenceManager, this, 3150, &R2_GLOBALS._player, &_guard, &_doorBars, NULL); break; @@ -689,12 +689,12 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { ++R2_GLOBALS._v56AA0; _sceneMode = 3156; _guard.postInit(); - _guard._effect = 6; + _guard._effect = EFFECT_6; _guard._shade = 3; _doorBars.postInit(); _foodTray.postInit(); - _foodTray._effect = 6; + _foodTray._effect = EFFECT_6; _foodTray._shade = 3; setAction(&_sequenceManager, this, 3156, &R2_GLOBALS._player, &_guard, &_doorBars, &_foodTray, NULL); @@ -789,12 +789,12 @@ void Scene3150::signal() { void Scene3150::dispatch() { if (_foodTray._position.x == 155) { - _foodTray._effect = 0; + _foodTray._effect = EFFECT_NONE; _foodTray._shade = 0; } if (_guard._visage == 3154) { - _guard._effect = 0; + _guard._effect = EFFECT_NONE; _guard._shade = 0; } @@ -1211,18 +1211,18 @@ void Scene3250::postInit(SceneObjectList *OwnerList) { case 1200: _sceneMode = 3250; _grate.postInit(); - R2_GLOBALS._player._effect = 0; + R2_GLOBALS._player._effect = EFFECT_NONE; setAction(&_sequenceManager, this, 3250, &R2_GLOBALS._player, &_grate, NULL); break; case 3125: if (R2_GLOBALS.getFlag(79)) { _sceneMode = 3254; _ghoul1.postInit(); - _ghoul1._effect = 1; + _ghoul1._effect = EFFECT_SHADED; _ghoul2.postInit(); - _ghoul2._effect = 1; + _ghoul2._effect = EFFECT_SHADED; _ghoul3.postInit(); - _ghoul3._effect = 1; + _ghoul3._effect = EFFECT_SHADED; setAction(&_sequenceManager, this, 3254, &R2_GLOBALS._player, &_rightDoor, &_ghoul1, &_ghoul2, &_ghoul3, &_leftDoor, NULL); } else { @@ -1252,7 +1252,7 @@ void Scene3250::postInit(SceneObjectList *OwnerList) { void Scene3250::signal() { switch(_sceneMode) { case 3250: - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; R2_GLOBALS._player.enableControl(); break; case 3254: @@ -1274,7 +1274,7 @@ void Scene3250::signal() { void Scene3250::dispatch() { if ((R2_GLOBALS._player._visage == 3250) && (R2_GLOBALS._player._strip == 3) && (R2_GLOBALS._player._effect == 0)) { - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; R2_GLOBALS._player._shade = 6; } @@ -1305,7 +1305,7 @@ void Scene3255::postInit(SceneObjectList *OwnerList) { _sceneMode = 3257; _door.postInit(); _quinn.postInit(); - _quinn._effect = 1; + _quinn._effect = EFFECT_SHADED; setAction(&_sequenceManager, this, 3257, &R2_GLOBALS._player, &_quinn, &_door, NULL); } else { _teal.postInit(); @@ -1354,9 +1354,9 @@ void Scene3255::dispatch() { if (_ghoul1._position.y <= 110) _ghoul1._shade = 6 - (_ghoul1._position.y - 95) / 3; else - _ghoul1._effect = 1; + _ghoul1._effect = EFFECT_SHADED; } else { - _ghoul1._effect = 6; + _ghoul1._effect = EFFECT_6; _ghoul1._shade = 6; } @@ -1364,9 +1364,9 @@ void Scene3255::dispatch() { if (_ghoul2._position.y <= 110) _ghoul2._shade = 6 - (_ghoul2._position.y - 95) / 3; else - _ghoul2._effect = 1; + _ghoul2._effect = EFFECT_SHADED; } else { - _ghoul2._effect = 6; + _ghoul2._effect = EFFECT_6; _ghoul2._shade = 6; } @@ -1374,16 +1374,16 @@ void Scene3255::dispatch() { if (_ghoul3._position.y <= 110) _ghoul3._shade = 6 - (_ghoul3._position.y - 95) / 3; else - _ghoul3._effect = 1; + _ghoul3._effect = EFFECT_SHADED; } else { - _ghoul3._effect = 6; + _ghoul3._effect = EFFECT_6; _ghoul3._shade = 6; } } if ((R2_GLOBALS._player._position.x > 250) && (R2_GLOBALS._player._shade == 1)) { - R2_GLOBALS._player._effect = 6; - _quinn._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; + _quinn._effect = EFFECT_6; } Scene::dispatch(); } @@ -1762,11 +1762,11 @@ void Scene3375::enterArea(int sceneMode) { R2_GLOBALS._player.setPosition(Common::Point(148, 230)); _companion1.setPosition(Common::Point(191, 274)); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(124, 255)); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(155, 245)); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; break; case 3381: --R2_GLOBALS._walkwaySceneNumber; @@ -1780,11 +1780,11 @@ void Scene3375::enterArea(int sceneMode) { R2_GLOBALS._player.setPosition(Common::Point(201, 131)); _companion1.setPosition(Common::Point(231, 127)); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(231, 127)); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(231, 127)); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; break; default: R2_GLOBALS._player.setPosition(Common::Point(192, 155)); @@ -1925,7 +1925,7 @@ void Scene3375::DownExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -1947,7 +1947,7 @@ void Scene3375::RightExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -2034,7 +2034,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; int tmpStrip, tmpVisage; if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -2053,7 +2053,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._sceneManager._previousScene == 3385) tmpStrip = 1; else @@ -2071,7 +2071,7 @@ void Scene3375::postInit(SceneObjectList *OwnerList) { _webbster._moveRate = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; if (R2_GLOBALS._sceneManager._previousScene == 3385) tmpStrip = 1; else @@ -2126,10 +2126,10 @@ void Scene3375::signalCase3379() { _sceneMode = 1; ADD_MOVER(R2_GLOBALS._player, 70, R2_GLOBALS._player._position.y); R2_GLOBALS._sceneManager._previousScene = 3375; - R2_GLOBALS._player._effect = 1; - _companion1._effect = 1; - _companion2._effect = 1; - _webbster._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion1._effect = EFFECT_SHADED; + _companion2._effect = EFFECT_SHADED; + _webbster._effect = EFFECT_SHADED; return; //R2_GLOBALS._walkRegions.disableRegion(1); @@ -2159,10 +2159,10 @@ void Scene3375::signalCase3379() { break; } R2_GLOBALS._sceneManager._previousScene = 3375; - R2_GLOBALS._player._effect = 1; - _companion1._effect = 1; - _companion2._effect = 1; - _webbster._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; + _companion1._effect = EFFECT_SHADED; + _companion2._effect = EFFECT_SHADED; + _webbster._effect = EFFECT_SHADED; R2_GLOBALS._player.enableControl(CURSOR_WALK); } @@ -2183,11 +2183,11 @@ void Scene3375::signal() { _sceneMode = _newSceneMode; _newSceneMode = 0; - _companion1._effect = 6; + _companion1._effect = EFFECT_6; _companion1._shade = 4; - _companion2._effect = 6; + _companion2._effect = EFFECT_6; _companion2._shade = 4; - _webbster._effect = 6; + _webbster._effect = EFFECT_6; _webbster._shade = 4; enterArea(_sceneMode); break; @@ -2212,24 +2212,24 @@ void Scene3375::signal() { void Scene3375::dispatch() { if ((R2_GLOBALS._player._position.y >= 168) && (R2_GLOBALS._player._effect == 1)) - R2_GLOBALS._player._effect = 6; + R2_GLOBALS._player._effect = EFFECT_6; else if ((R2_GLOBALS._player._position.y < 168) && (R2_GLOBALS._player._effect == 6)) - R2_GLOBALS._player._effect = 1; + R2_GLOBALS._player._effect = EFFECT_SHADED; if ((_companion1._position.y >= 168) && (_companion1._effect == 1)) - _companion1._effect = 6; + _companion1._effect = EFFECT_6; else if ((_companion1._position.y < 168) && (_companion1._effect == 6)) - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if ((_companion2._position.y >= 168) && (_companion2._effect == 1)) - _companion2._effect = 6; + _companion2._effect = EFFECT_6; else if ((_companion2._position.y < 168) && (_companion2._effect == 6)) - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if ((_webbster._position.y >= 168) && (_webbster._effect == 1)) - _webbster._effect = 6; + _webbster._effect = EFFECT_6; else if ((_webbster._position.y < 168) && (_webbster._effect == 6)) - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; Scene::dispatch(); } @@ -2384,7 +2384,7 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, _playerStrip, 1); else @@ -2395,7 +2395,7 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, _playerStrip, 1); else @@ -2406,7 +2406,7 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _webbster.postInit(); _webbster._moveDiff = Common::Point(3, 2); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setup(40, _playerStrip, 1); _webbster.animate(ANIM_MODE_1, NULL); _webbster.setDetails(3385, 15, -1, -1, 1, (SceneItem *) NULL); @@ -2607,7 +2607,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, _playerStrip, 1); else @@ -2618,7 +2618,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, _playerStrip, 1); else @@ -2629,7 +2629,7 @@ void Scene3395::postInit(SceneObjectList *OwnerList) { _webbster.postInit(); _webbster._moveDiff = Common::Point(3, 2); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setup(40, _playerStrip, 1); _webbster.animate(ANIM_MODE_1, NULL); _webbster.setDetails(3395, 18, -1, -1, 1, (SceneItem *) NULL); @@ -2764,7 +2764,7 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _companion1._moveDiff = Common::Point(5, 3); } _companion1.changeZoom(-1); - _companion1._effect = 1; + _companion1._effect = EFFECT_SHADED; _companion1.setPosition(Common::Point(247, 63)); if (R2_GLOBALS._player._characterIndex == R2_SEEKER) _companion1.setup(10, 5, 1); @@ -2775,7 +2775,7 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _companion2.postInit(); _companion2._moveDiff = Common::Point(3, 2); _companion2.changeZoom(-1); - _companion2._effect = 1; + _companion2._effect = EFFECT_SHADED; _companion2.setPosition(Common::Point(225, 63)); if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) _companion2.setup(10, 5, 1); @@ -2787,7 +2787,7 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _webbster._numFrames = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setPosition(Common::Point(235, 61)); _webbster.setup(40, 3, 1); _webbster.animate(ANIM_MODE_1, NULL); @@ -2899,7 +2899,7 @@ void Scene3400::signal() { _teal._numFrames = 7; _teal._moveDiff = Common::Point(3, 2); _teal.changeZoom(-1); - _teal._effect = 1; + _teal._effect = EFFECT_SHADED; _teal.setPosition(Common::Point(-15, 90)); _teal.setup(3402, 1, 1); _teal.animate(ANIM_MODE_1, NULL); @@ -4444,7 +4444,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _quinn.postInit(); _quinn._moveDiff = Common::Point(3, 2); _quinn.changeZoom(-1); - _quinn._effect = 1; + _quinn._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 1) _quinn.setDetails(9001, 0, -1, -1, 1, (SceneItem *) NULL); @@ -4453,7 +4453,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _seeker._numFrames = 7; _seeker._moveDiff = Common::Point(5, 3); _seeker.changeZoom(-1); - _seeker._effect = 1; + _seeker._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 2) _seeker.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); @@ -4461,7 +4461,7 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _miranda.postInit(); _miranda._moveDiff = Common::Point(3, 2); _miranda.changeZoom(-1); - _miranda._effect = 1; + _miranda._effect = EFFECT_SHADED; if (R2_GLOBALS._player._characterIndex != 3) _miranda.setDetails(9003, 1, -1, -1, 1, (SceneItem *) NULL); @@ -4475,14 +4475,14 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _webbster._numFrames = 7; _webbster._moveDiff = Common::Point(5, 3); _webbster.changeZoom(-1); - _webbster._effect = 1; + _webbster._effect = EFFECT_SHADED; _webbster.setDetails(3600, 27, -1, -1, 1, (SceneItem *) NULL); _teal.postInit(); _teal._numFrames = 7; _teal._moveDiff = Common::Point(3, 2); _teal.changeZoom(-1); - _teal._effect = 1; + _teal._effect = EFFECT_SHADED; _teal.setDetails(3600, 12, -1, -1, 1, (SceneItem *) NULL); _palette1.loadPalette(0); @@ -5208,8 +5208,8 @@ void Scene3800::enterArea() { _balloonQuinn.fixPriority(10); _balloonQuinn.changeZoom(-1); _balloonQuinn.setVisage(1110); - _balloonQuinn._effect = 5; - _balloonQuinn._field9C = this->_field312; + _balloonQuinn._effect = EFFECT_5; + _balloonQuinn._shadowMap = this->_shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_balloonQuinn; switch (R2_GLOBALS._sceneManager._previousScene) { case 2600: @@ -5518,8 +5518,8 @@ void Scene3900::postInit(SceneObjectList *OwnerList) { _linkedQuinn.fixPriority(10); _linkedQuinn.changeZoom(-1); _linkedQuinn.setVisage(1110); - _linkedQuinn._effect = 5; - _linkedQuinn._field9C = _field312; + _linkedQuinn._effect = EFFECT_5; + _linkedQuinn._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_linkedQuinn; if ((R2_GLOBALS._desertPreviousDirection == 2) && (R2_GLOBALS._sceneManager._previousScene != 2700)) { diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index a6bfc39e2a71..61236ee50474 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -654,7 +654,7 @@ void SpeakerMiranda3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -704,7 +704,7 @@ void SpeakerMiranda3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -753,7 +753,7 @@ void SpeakerMiranda3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -803,7 +803,7 @@ void SpeakerMiranda3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -847,7 +847,7 @@ void SpeakerMiranda3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -1139,7 +1139,7 @@ void SpeakerProtector3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); @@ -1528,7 +1528,7 @@ void SpeakerQuinn3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -1579,7 +1579,7 @@ void SpeakerQuinn3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -1634,7 +1634,7 @@ void SpeakerQuinn3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -1689,7 +1689,7 @@ void SpeakerQuinn3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); if (_object2->_mover) @@ -1735,7 +1735,7 @@ void SpeakerQuinn3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2241,7 +2241,7 @@ void SpeakerSeeker3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -2290,7 +2290,7 @@ void SpeakerSeeker3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -2339,7 +2339,7 @@ void SpeakerSeeker3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -2388,7 +2388,7 @@ void SpeakerSeeker3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2447,7 +2447,7 @@ void SpeakerSeeker3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2771,7 +2771,7 @@ void SpeakerTeal3400::proc15() { _object2->hide(); _object1.postInit(); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -2829,7 +2829,7 @@ void SpeakerTeal3600::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -3017,7 +3017,7 @@ void SpeakerWebbster3375::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (scene->_companion1._position.y != 163) @@ -3061,7 +3061,7 @@ void SpeakerWebbster3385::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3375) @@ -3105,7 +3105,7 @@ void SpeakerWebbster3395::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); if (R2_GLOBALS._sceneManager._previousScene == 3385) @@ -3149,7 +3149,7 @@ void SpeakerWebbster3400::proc15() { _object1.postInit(); _object1.setPosition(_object2->_position); _object1._numFrames = 7; - _object1._effect = 1; + _object1._effect = EFFECT_SHADED; _object1.changeZoom(-1); R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); From e03f0f1e924d238f01d297ef1e7bcdbd264ae2aa Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 5 Nov 2013 07:18:49 +0100 Subject: [PATCH 009/105] TSAGE: R2R - Rename Effect 5 --- engines/tsage/core.h | 2 +- engines/tsage/ringworld2/ringworld2_logic.cpp | 2 +- .../tsage/ringworld2/ringworld2_scenes1.cpp | 19 ++++++++++--------- .../tsage/ringworld2/ringworld2_scenes3.cpp | 4 ++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 04d6101821ba..59711513d6da 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -467,7 +467,7 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD }; enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, - EFFECT_4 = 4, EFFECT_5 = 5, EFFECT_6 = 6 }; + EFFECT_4 = 4, EFFECT_SHADOW = 5, EFFECT_6 = 6 }; class SceneObject; diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index b3ea27018de1..5cda153e595c 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -1329,7 +1329,7 @@ GfxSurface SceneActor::getFrame() { // TODO: Proper effects handling switch (_effect) { case EFFECT_NONE: - case EFFECT_5: + case EFFECT_SHADOW: // TODO: Figure out purpose of setting image flags to 64, and getting // scene priorities -1 or _shade break; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 2d6ff30d2609..1247000cd28b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -868,7 +868,7 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(1101); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.disableControl(); - R2_GLOBALS._player._effect = EFFECT_5; + R2_GLOBALS._player._effect = EFFECT_SHADOW; R2_GLOBALS._player._shadowMap = _shadowPaletteMap; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setObjectWrapper(NULL); @@ -894,7 +894,7 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _shipFormationShadow.setup(1102, 6, 2); _shipFormationShadow._moveRate = 30; _shipFormationShadow._moveDiff.x = 2; - _shipFormationShadow._effect = EFFECT_5; + _shipFormationShadow._effect = EFFECT_SHADOW; _shipFormationShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._sound1.play(86); @@ -1084,7 +1084,8 @@ void Scene1100::signal() { case 11: { setAction(&_sequenceManager1, this, 1106, &_animation, &_laserShot, &_leftImpacts, NULL); - R2_GLOBALS._player._effect = EFFECT_5; + // CHECKME: Shadow effect should be set next to shadowmap + R2_GLOBALS._player._effect = EFFECT_SHADOW; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setPosition(Common::Point(-50, 131)); R2_GLOBALS._sound2.play(84); @@ -6908,7 +6909,7 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { _starshipShadow.postInit(); _starshipShadow.setup(1401, 1, 1); - _starshipShadow._effect = EFFECT_5; + _starshipShadow._effect = EFFECT_SHADOW; _starshipShadow.fixPriority(10); _starshipShadow._shadowMap = _shadowPaletteMap; @@ -6920,7 +6921,7 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene != 1010) { _smallShipShadow.postInit(); _smallShipShadow.setup(1401, 2, 1); - _smallShipShadow._effect = EFFECT_5; + _smallShipShadow._effect = EFFECT_SHADOW; _smallShipShadow.fixPriority(10); _smallShipShadow._shadowMap = _shadowPaletteMap; @@ -10577,7 +10578,7 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { else _actor1.setVisage(1111); - _actor1._effect = EFFECT_5; + _actor1._effect = EFFECT_SHADOW; _actor1._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_actor1; @@ -10588,7 +10589,7 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { else _actor2.setVisage(1112); - _actor2._effect = EFFECT_5; + _actor2._effect = EFFECT_SHADOW; _actor2._shadowMap = _shadowPaletteMap; _actor12._linkedActor = &_actor2; @@ -11526,7 +11527,7 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _playerShadow.setVisage(1110); - _playerShadow._effect = EFFECT_5; + _playerShadow._effect = EFFECT_SHADOW; _playerShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_playerShadow; @@ -11538,7 +11539,7 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _companionShadow.setVisage(1111); - _companionShadow._effect = EFFECT_5; + _companionShadow._effect = EFFECT_SHADOW; _companionShadow._shadowMap = _shadowPaletteMap; _companion._linkedActor = &_companionShadow; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 57640363559c..dd01c3d8d9b3 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -5208,7 +5208,7 @@ void Scene3800::enterArea() { _balloonQuinn.fixPriority(10); _balloonQuinn.changeZoom(-1); _balloonQuinn.setVisage(1110); - _balloonQuinn._effect = EFFECT_5; + _balloonQuinn._effect = EFFECT_SHADOW; _balloonQuinn._shadowMap = this->_shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_balloonQuinn; switch (R2_GLOBALS._sceneManager._previousScene) { @@ -5518,7 +5518,7 @@ void Scene3900::postInit(SceneObjectList *OwnerList) { _linkedQuinn.fixPriority(10); _linkedQuinn.changeZoom(-1); _linkedQuinn.setVisage(1110); - _linkedQuinn._effect = EFFECT_5; + _linkedQuinn._effect = EFFECT_SHADOW; _linkedQuinn._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_linkedQuinn; From 7892188bcf45ec7eaeee9eed1c92b84839c1224b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 13:31:13 +0100 Subject: [PATCH 010/105] WINTERMUTE: Transfer Uint32s explicitly when saving/loading. --- engines/wintermute/ad/ad_node_state.cpp | 2 +- engines/wintermute/ad/ad_region.cpp | 2 +- engines/wintermute/ad/ad_scene.cpp | 34 +++++++++---------- engines/wintermute/ad/ad_sentence.cpp | 4 +-- engines/wintermute/ad/ad_talk_node.cpp | 4 +-- engines/wintermute/base/base_fader.cpp | 4 +-- engines/wintermute/base/base_frame.cpp | 2 +- engines/wintermute/base/base_game.cpp | 4 +-- engines/wintermute/base/base_game_music.cpp | 6 ++-- .../wintermute/base/base_keyboard_state.cpp | 4 +-- engines/wintermute/base/base_object.cpp | 4 +-- .../base/base_persistence_manager.cpp | 2 +- .../base/base_persistence_manager.h | 2 +- engines/wintermute/base/base_sprite.cpp | 2 +- engines/wintermute/base/base_sub_frame.cpp | 4 +-- .../wintermute/base/font/base_font_truetype.h | 2 +- .../base/particles/part_emitter.cpp | 8 ++--- .../base/particles/part_particle.cpp | 4 +-- .../wintermute/base/scriptables/script.cpp | 10 +++--- .../base/scriptables/script_ext_file.cpp | 4 +-- engines/wintermute/base/sound/base_sound.cpp | 4 +-- engines/wintermute/base/timer.cpp | 6 ++-- engines/wintermute/ui/ui_edit.cpp | 2 +- engines/wintermute/ui/ui_object.cpp | 2 +- engines/wintermute/ui/ui_window.cpp | 2 +- .../wintermute/video/video_theora_player.cpp | 2 +- 26 files changed, 63 insertions(+), 63 deletions(-) diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp index 193aa7519450..8793c40d6b03 100644 --- a/engines/wintermute/ad/ad_node_state.cpp +++ b/engines/wintermute/ad/ad_node_state.cpp @@ -99,7 +99,7 @@ bool AdNodeState::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_name)); persistMgr->transfer(TMEMBER(_filename)); persistMgr->transfer(TMEMBER(_cursor)); - persistMgr->transfer(TMEMBER(_alphaColor)); + persistMgr->transferUint32(TMEMBER(_alphaColor)); for (int i = 0; i < 7; i++) { persistMgr->transfer(TMEMBER(_caption[i])); } diff --git a/engines/wintermute/ad/ad_region.cpp b/engines/wintermute/ad/ad_region.cpp index 215ec495a1b2..2e8e73a1cf6e 100644 --- a/engines/wintermute/ad/ad_region.cpp +++ b/engines/wintermute/ad/ad_region.cpp @@ -401,7 +401,7 @@ bool AdRegion::saveAsText(BaseDynamicBuffer *buffer, int indent) { bool AdRegion::persist(BasePersistenceManager *persistMgr) { BaseRegion::persist(persistMgr); - persistMgr->transfer(TMEMBER(_alpha)); + persistMgr->transferUint32(TMEMBER(_alpha)); persistMgr->transferBool(TMEMBER(_blocked)); persistMgr->transferBool(TMEMBER(_decoration)); persistMgr->transferFloat(TMEMBER(_zoom)); diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp index 296ef430a2e0..fddd7f881bd8 100644 --- a/engines/wintermute/ad/ad_scene.cpp +++ b/engines/wintermute/ad/ad_scene.cpp @@ -2301,18 +2301,18 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); persistMgr->transferBool(TMEMBER(_autoScroll)); - persistMgr->transfer(TMEMBER(_editorColBlocked)); - persistMgr->transfer(TMEMBER(_editorColBlockedSel)); - persistMgr->transfer(TMEMBER(_editorColDecor)); - persistMgr->transfer(TMEMBER(_editorColDecorSel)); - persistMgr->transfer(TMEMBER(_editorColEntity)); - persistMgr->transfer(TMEMBER(_editorColEntitySel)); - persistMgr->transfer(TMEMBER(_editorColFrame)); - persistMgr->transfer(TMEMBER(_editorColRegion)); - persistMgr->transfer(TMEMBER(_editorColRegionSel)); - persistMgr->transfer(TMEMBER(_editorColScale)); - persistMgr->transfer(TMEMBER(_editorColWaypoints)); - persistMgr->transfer(TMEMBER(_editorColWaypointsSel)); + persistMgr->transferUint32(TMEMBER(_editorColBlocked)); + persistMgr->transferUint32(TMEMBER(_editorColBlockedSel)); + persistMgr->transferUint32(TMEMBER(_editorColDecor)); + persistMgr->transferUint32(TMEMBER(_editorColDecorSel)); + persistMgr->transferUint32(TMEMBER(_editorColEntity)); + persistMgr->transferUint32(TMEMBER(_editorColEntitySel)); + persistMgr->transferUint32(TMEMBER(_editorColFrame)); + persistMgr->transferUint32(TMEMBER(_editorColRegion)); + persistMgr->transferUint32(TMEMBER(_editorColRegionSel)); + persistMgr->transferUint32(TMEMBER(_editorColScale)); + persistMgr->transferUint32(TMEMBER(_editorColWaypoints)); + persistMgr->transferUint32(TMEMBER(_editorColWaypointsSel)); persistMgr->transfer(TMEMBER(_editorMarginH)); persistMgr->transfer(TMEMBER(_editorMarginV)); persistMgr->transferBool(TMEMBER(_editorShowBlocked)); @@ -2323,8 +2323,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_fader)); persistMgr->transfer(TMEMBER(_height)); persistMgr->transferBool(TMEMBER(_initialized)); - persistMgr->transfer(TMEMBER(_lastTimeH)); - persistMgr->transfer(TMEMBER(_lastTimeV)); + persistMgr->transferUint32(TMEMBER(_lastTimeH)); + persistMgr->transferUint32(TMEMBER(_lastTimeV)); _layers.persist(persistMgr); persistMgr->transferPtr(TMEMBER_PTR(_mainLayer)); _objects.persist(persistMgr); @@ -2333,7 +2333,7 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_paralaxScrolling)); persistMgr->transferBool(TMEMBER(_persistentState)); persistMgr->transferBool(TMEMBER(_persistentStateSprites)); - persistMgr->transfer(TMEMBER(_pfMaxTime)); + persistMgr->transferUint32(TMEMBER(_pfMaxTime)); _pfPath.persist(persistMgr); persistMgr->transfer(TMEMBER(_pfPointsNum)); persistMgr->transferBool(TMEMBER(_pfReady)); @@ -2344,8 +2344,8 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) { _scaleLevels.persist(persistMgr); persistMgr->transfer(TMEMBER(_scrollPixelsH)); persistMgr->transfer(TMEMBER(_scrollPixelsV)); - persistMgr->transfer(TMEMBER(_scrollTimeH)); - persistMgr->transfer(TMEMBER(_scrollTimeV)); + persistMgr->transferUint32(TMEMBER(_scrollTimeH)); + persistMgr->transferUint32(TMEMBER(_scrollTimeV)); persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow)); persistMgr->transfer(TMEMBER(_targetOffsetLeft)); persistMgr->transfer(TMEMBER(_targetOffsetTop)); diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp index 773181b373e4..a43cac615c1c 100644 --- a/engines/wintermute/ad/ad_sentence.cpp +++ b/engines/wintermute/ad/ad_sentence.cpp @@ -253,13 +253,13 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_currentStance)); persistMgr->transferPtr(TMEMBER_PTR(_currentSprite)); persistMgr->transfer(TMEMBER(_currentSkelAnim)); - persistMgr->transfer(TMEMBER(_duration)); + persistMgr->transferUint32(TMEMBER(_duration)); persistMgr->transferPtr(TMEMBER_PTR(_font)); persistMgr->transferPoint32(TMEMBER(_pos)); persistMgr->transferPtr(TMEMBER_PTR(_sound)); persistMgr->transferBool(TMEMBER(_soundStarted)); persistMgr->transfer(TMEMBER(_stances)); - persistMgr->transfer(TMEMBER(_startTime)); + persistMgr->transferUint32(TMEMBER(_startTime)); persistMgr->transferPtr(TMEMBER_PTR(_talkDef)); persistMgr->transfer(TMEMBER(_tempStance)); persistMgr->transfer(TMEMBER(_text)); diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp index b9be62e58197..2afaaec2b4d3 100644 --- a/engines/wintermute/ad/ad_talk_node.cpp +++ b/engines/wintermute/ad/ad_talk_node.cpp @@ -192,8 +192,8 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) { ////////////////////////////////////////////////////////////////////////// bool AdTalkNode::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_comment)); - persistMgr->transfer(TMEMBER(_startTime)); - persistMgr->transfer(TMEMBER(_endTime)); + persistMgr->transferUint32(TMEMBER(_startTime)); + persistMgr->transferUint32(TMEMBER(_endTime)); persistMgr->transferBool(TMEMBER(_playToEnd)); persistMgr->transferPtr(TMEMBER_PTR(_sprite)); persistMgr->transfer(TMEMBER(_spriteFilename)); diff --git a/engines/wintermute/base/base_fader.cpp b/engines/wintermute/base/base_fader.cpp index b5590abb082d..c7dac8be27a5 100644 --- a/engines/wintermute/base/base_fader.cpp +++ b/engines/wintermute/base/base_fader.cpp @@ -178,11 +178,11 @@ bool BaseFader::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_active)); persistMgr->transferByte(TMEMBER(_blue)); persistMgr->transferByte(TMEMBER(_currentAlpha)); - persistMgr->transfer(TMEMBER(_duration)); + persistMgr->transferUint32(TMEMBER(_duration)); persistMgr->transferByte(TMEMBER(_green)); persistMgr->transferByte(TMEMBER(_red)); persistMgr->transferByte(TMEMBER(_sourceAlpha)); - persistMgr->transfer(TMEMBER(_startTime)); + persistMgr->transferUint32(TMEMBER(_startTime)); persistMgr->transferByte(TMEMBER(_targetAlpha)); persistMgr->transferBool(TMEMBER(_system)); diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp index 2e371223c85b..8c87cfb9885c 100644 --- a/engines/wintermute/base/base_frame.cpp +++ b/engines/wintermute/base/base_frame.cpp @@ -414,7 +414,7 @@ bool BaseFrame::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); _applyEvent.persist(persistMgr); - persistMgr->transfer(TMEMBER(_delay)); + persistMgr->transferUint32(TMEMBER(_delay)); persistMgr->transferBool(TMEMBER(_editorExpanded)); persistMgr->transferBool(TMEMBER(_keyframe)); persistMgr->transferBool(TMEMBER(_killSound)); diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp index 033f01971215..d4ecca0d7603 100644 --- a/engines/wintermute/base/base_game.cpp +++ b/engines/wintermute/base/base_game.cpp @@ -3061,7 +3061,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_fontStorage)); persistMgr->transferBool(TMEMBER(_interactive)); persistMgr->transferPtr(TMEMBER_PTR(_keyboardState)); - persistMgr->transfer(TMEMBER(_lastTime)); + persistMgr->transferUint32(TMEMBER(_lastTime)); persistMgr->transferPtr(TMEMBER_PTR(_mainObject)); _musicSystem->persistChannels(persistMgr); _musicSystem->persistCrossfadeSettings(persistMgr); @@ -3107,7 +3107,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_autorunDisabled)); persistMgr->transferBool(TMEMBER(_autoSaveOnExit)); - persistMgr->transfer(TMEMBER(_autoSaveSlot)); + persistMgr->transferUint32(TMEMBER(_autoSaveSlot)); persistMgr->transferBool(TMEMBER(_cursorHidden)); if (!persistMgr->getIsSaving()) { diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp index 9462757a8af0..a401da2d9781 100644 --- a/engines/wintermute/base/base_game_music.cpp +++ b/engines/wintermute/base/base_game_music.cpp @@ -215,15 +215,15 @@ bool BaseGameMusic::updateMusicCrossfade() { bool BaseGameMusic::persistChannels(BasePersistenceManager *persistMgr) { for (int i = 0; i < NUM_MUSIC_CHANNELS; i++) { persistMgr->transferPtr(TMEMBER_PTR(_music[i])); - persistMgr->transfer(TMEMBER(_musicStartTime[i])); + persistMgr->transferUint32(TMEMBER(_musicStartTime[i])); } return true; } bool BaseGameMusic::persistCrossfadeSettings(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_musicCrossfadeRunning)); - persistMgr->transfer(TMEMBER(_musicCrossfadeStartTime)); - persistMgr->transfer(TMEMBER(_musicCrossfadeLength)); + persistMgr->transferUint32(TMEMBER(_musicCrossfadeStartTime)); + persistMgr->transferUint32(TMEMBER(_musicCrossfadeLength)); persistMgr->transfer(TMEMBER(_musicCrossfadeChannel1)); persistMgr->transfer(TMEMBER(_musicCrossfadeChannel2)); persistMgr->transferBool(TMEMBER(_musicCrossfadeSwap)); diff --git a/engines/wintermute/base/base_keyboard_state.cpp b/engines/wintermute/base/base_keyboard_state.cpp index 014802d71532..785af64fadd3 100644 --- a/engines/wintermute/base/base_keyboard_state.cpp +++ b/engines/wintermute/base/base_keyboard_state.cpp @@ -222,9 +222,9 @@ bool BaseKeyboardState::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); persistMgr->transferBool(TMEMBER(_currentAlt)); - persistMgr->transfer(TMEMBER(_currentCharCode)); + persistMgr->transferUint32(TMEMBER(_currentCharCode)); persistMgr->transferBool(TMEMBER(_currentControl)); - persistMgr->transfer(TMEMBER(_currentKeyData)); + persistMgr->transferUint32(TMEMBER(_currentKeyData)); persistMgr->transferBool(TMEMBER(_currentPrintable)); persistMgr->transferBool(TMEMBER(_currentShift)); diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp index 14e15b71610a..802edfcf3212 100644 --- a/engines/wintermute/base/base_object.cpp +++ b/engines/wintermute/base/base_object.cpp @@ -956,7 +956,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_caption[i])); } persistMgr->transferPtr(TMEMBER_PTR(_activeCursor)); - persistMgr->transfer(TMEMBER(_alphaColor)); + persistMgr->transferUint32(TMEMBER(_alphaColor)); persistMgr->transferBool(TMEMBER(_autoSoundPanning)); persistMgr->transferPtr(TMEMBER_PTR(_cursor)); persistMgr->transferBool(TMEMBER(_sharedCursors)); @@ -972,7 +972,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_rotatable)); persistMgr->transferFloat(TMEMBER(_scale)); persistMgr->transferPtr(TMEMBER_PTR(_sFX)); - persistMgr->transfer(TMEMBER(_sFXStart)); + persistMgr->transferUint32(TMEMBER(_sFXStart)); persistMgr->transfer(TMEMBER(_sFXVolume)); persistMgr->transferBool(TMEMBER(_ready)); persistMgr->transferRect32(TMEMBER(_rect)); diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 1caa0ad20bd8..1ee4b247e9f9 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -625,7 +625,7 @@ bool BasePersistenceManager::transfer(const char *name, int32 *val) { ////////////////////////////////////////////////////////////////////////// // DWORD -bool BasePersistenceManager::transfer(const char *name, uint32 *val) { +bool BasePersistenceManager::transferUint32(const char *name, uint32 *val) { if (_saving) { _saveStream->writeUint32LE(*val); if (_saveStream->err()) { diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index 03316d9d1976..9d39670703b1 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -75,7 +75,7 @@ class BasePersistenceManager { bool transferPtr(const char *name, void *val); bool transfer(const char *name, int32 *val); - bool transfer(const char *name, uint32 *val); + bool transferUint32(const char *name, uint32 *val); bool transferFloat(const char *name, float *val); bool transferDouble(const char *name, double *val); bool transferBool(const char *name, bool *val); diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp index df696f21a2bc..afc33121efac 100644 --- a/engines/wintermute/base/base_sprite.cpp +++ b/engines/wintermute/base/base_sprite.cpp @@ -535,7 +535,7 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) { _frames.persist(persistMgr); - persistMgr->transfer(TMEMBER(_lastFrameTime)); + persistMgr->transferUint32(TMEMBER(_lastFrameTime)); persistMgr->transferBool(TMEMBER(_looping)); persistMgr->transfer(TMEMBER(_moveX)); persistMgr->transfer(TMEMBER(_moveY)); diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp index 490a9945dbf3..e214ef9d81b3 100644 --- a/engines/wintermute/base/base_sub_frame.cpp +++ b/engines/wintermute/base/base_sub_frame.cpp @@ -386,7 +386,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_2DOnly)); persistMgr->transferBool(TMEMBER(_3DOnly)); - persistMgr->transfer(TMEMBER(_alpha)); + persistMgr->transferUint32(TMEMBER(_alpha)); persistMgr->transferBool(TMEMBER(_decoration)); persistMgr->transferBool(TMEMBER(_editorSelected)); persistMgr->transfer(TMEMBER(_hotspotX)); @@ -404,7 +404,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_keepLoaded)); persistMgr->transferBool(TMEMBER(_mirrorX)); persistMgr->transferBool(TMEMBER(_mirrorY)); - persistMgr->transfer(TMEMBER(_transparent)); + persistMgr->transferUint32(TMEMBER(_transparent)); return STATUS_OK; } diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h index 9e0a08259304..47b9edd2b227 100644 --- a/engines/wintermute/base/font/base_font_truetype.h +++ b/engines/wintermute/base/font/base_font_truetype.h @@ -86,7 +86,7 @@ class BaseFontTT : public BaseFont { bool persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_offsetX)); persistMgr->transfer(TMEMBER(_offsetY)); - persistMgr->transfer(TMEMBER(_color)); + persistMgr->transferUint32(TMEMBER(_color)); return STATUS_OK; } diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp index c5c049a37ca1..bd59a7a6673c 100644 --- a/engines/wintermute/base/particles/part_emitter.cpp +++ b/engines/wintermute/base/particles/part_emitter.cpp @@ -1219,12 +1219,12 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) { uint32 numForces; if (persistMgr->getIsSaving()) { numForces = _forces.size(); - persistMgr->transfer(TMEMBER(numForces)); + persistMgr->transferUint32(TMEMBER(numForces)); for (uint32 i = 0; i < _forces.size(); i++) { _forces[i]->persist(persistMgr); } } else { - persistMgr->transfer(TMEMBER(numForces)); + persistMgr->transferUint32(TMEMBER(numForces)); for (uint32 i = 0; i < numForces; i++) { PartForce *force = new PartForce(_gameRef); force->persist(persistMgr); @@ -1235,12 +1235,12 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) { uint32 numParticles; if (persistMgr->getIsSaving()) { numParticles = _particles.size(); - persistMgr->transfer(TMEMBER(numParticles)); + persistMgr->transferUint32(TMEMBER(numParticles)); for (uint32 i = 0; i < _particles.size(); i++) { _particles[i]->persist(persistMgr); } } else { - persistMgr->transfer(TMEMBER(numParticles)); + persistMgr->transferUint32(TMEMBER(numParticles)); for (uint32 i = 0; i < numParticles; i++) { PartParticle *particle = new PartParticle(_gameRef); particle->persist(persistMgr); diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp index c5bf0f832669..62faf73e7eb8 100644 --- a/engines/wintermute/base/particles/part_particle.cpp +++ b/engines/wintermute/base/particles/part_particle.cpp @@ -237,11 +237,11 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) { persistMgr->transferFloat(TMEMBER(_posZ)); persistMgr->transferVector2(TMEMBER(_velocity)); persistMgr->transferFloat(TMEMBER(_scale)); - persistMgr->transfer(TMEMBER(_creationTime)); + persistMgr->transferUint32(TMEMBER(_creationTime)); persistMgr->transfer(TMEMBER(_lifeTime)); persistMgr->transferBool(TMEMBER(_isDead)); persistMgr->transfer(TMEMBER_INT(_state)); - persistMgr->transfer(TMEMBER(_fadeStart)); + persistMgr->transferUint32(TMEMBER(_fadeStart)); persistMgr->transfer(TMEMBER(_fadeTime)); persistMgr->transfer(TMEMBER(_currentAlpha)); persistMgr->transferFloat(TMEMBER(_angVelocity)); diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp index 49152eca0030..e3f821978202 100644 --- a/engines/wintermute/base/scriptables/script.cpp +++ b/engines/wintermute/base/scriptables/script.cpp @@ -1249,7 +1249,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { // buffer if (persistMgr->getIsSaving()) { if (_state != SCRIPT_PERSISTENT && _state != SCRIPT_FINISHED && _state != SCRIPT_THREAD_FINISHED) { - persistMgr->transfer(TMEMBER(_bufferSize)); + persistMgr->transferUint32(TMEMBER(_bufferSize)); persistMgr->putBytes(_buffer, _bufferSize); } else { // don't save idle/finished scripts @@ -1257,7 +1257,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(bufferSize)); } } else { - persistMgr->transfer(TMEMBER(_bufferSize)); + persistMgr->transferUint32(TMEMBER(_bufferSize)); if (_bufferSize > 0) { _buffer = new byte[_bufferSize]; persistMgr->getBytes(_buffer, _bufferSize); @@ -1275,7 +1275,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_filename)); persistMgr->transferBool(TMEMBER(_freezable)); persistMgr->transferPtr(TMEMBER_PTR(_globals)); - persistMgr->transfer(TMEMBER(_iP)); + persistMgr->transferUint32(TMEMBER(_iP)); persistMgr->transferPtr(TMEMBER_PTR(_scopeStack)); persistMgr->transferPtr(TMEMBER_PTR(_stack)); persistMgr->transfer(TMEMBER_INT(_state)); @@ -1286,10 +1286,10 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_thread)); persistMgr->transfer(TMEMBER(_threadEvent)); persistMgr->transferPtr(TMEMBER_PTR(_thisStack)); - persistMgr->transfer(TMEMBER(_timeSlice)); + persistMgr->transferUint32(TMEMBER(_timeSlice)); persistMgr->transferPtr(TMEMBER_PTR(_waitObject)); persistMgr->transferPtr(TMEMBER_PTR(_waitScript)); - persistMgr->transfer(TMEMBER(_waitTime)); + persistMgr->transferUint32(TMEMBER(_waitTime)); persistMgr->transferBool(TMEMBER(_waitFrozen)); persistMgr->transferBool(TMEMBER(_methodThread)); diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp index 5e6f0570addd..fad2f926ad9a 100644 --- a/engines/wintermute/base/scriptables/script_ext_file.cpp +++ b/engines/wintermute/base/scriptables/script_ext_file.cpp @@ -773,9 +773,9 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) { uint32 pos = 0; if (persistMgr->getIsSaving()) { pos = getPos(); - persistMgr->transfer(TMEMBER(pos)); + persistMgr->transferUint32(TMEMBER(pos)); } else { - persistMgr->transfer(TMEMBER(pos)); + persistMgr->transferUint32(TMEMBER(pos)); // try to re-open file if needed _writeFile = nullptr; diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp index c3f2ff047625..9fc58713a4ed 100644 --- a/engines/wintermute/base/sound/base_sound.cpp +++ b/engines/wintermute/base/sound/base_sound.cpp @@ -171,11 +171,11 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_soundPaused)); persistMgr->transferBool(TMEMBER(_soundFreezePaused)); persistMgr->transferBool(TMEMBER(_soundPlaying)); - persistMgr->transfer(TMEMBER(_soundPosition)); + persistMgr->transferUint32(TMEMBER(_soundPosition)); persistMgr->transfer(TMEMBER(_soundPrivateVolume)); persistMgr->transferBool(TMEMBER(_soundStreamed)); persistMgr->transfer(TMEMBER_INT(_soundType)); - persistMgr->transfer(TMEMBER(_soundLoopStart)); + persistMgr->transferUint32(TMEMBER(_soundLoopStart)); return STATUS_OK; } diff --git a/engines/wintermute/base/timer.cpp b/engines/wintermute/base/timer.cpp index 96097c10d594..f1f79af7601c 100644 --- a/engines/wintermute/base/timer.cpp +++ b/engines/wintermute/base/timer.cpp @@ -66,9 +66,9 @@ uint32 Timer::getTimeLast() const { } void Timer::persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_timer)); - persistMgr->transfer(TMEMBER(_timerDelta)); - persistMgr->transfer(TMEMBER(_timerLast)); + persistMgr->transferUint32(TMEMBER(_timer)); + persistMgr->transferUint32(TMEMBER(_timerDelta)); + persistMgr->transferUint32(TMEMBER(_timerLast)); } } // End of namespace Wintermute diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp index 4de1965b5999..5608bccd466a 100644 --- a/engines/wintermute/ui/ui_edit.cpp +++ b/engines/wintermute/ui/ui_edit.cpp @@ -932,7 +932,7 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) { UIObject::persist(persistMgr); - persistMgr->transfer(TMEMBER(_cursorBlinkRate)); + persistMgr->transferUint32(TMEMBER(_cursorBlinkRate)); persistMgr->transfer(TMEMBER(_cursorChar)); persistMgr->transferPtr(TMEMBER_PTR(_fontSelected)); persistMgr->transfer(TMEMBER(_frameWidth)); diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp index a1a89b7b01e3..8dfd95f9f988 100644 --- a/engines/wintermute/ui/ui_object.cpp +++ b/engines/wintermute/ui/ui_object.cpp @@ -630,7 +630,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_image)); persistMgr->transferPtr(TMEMBER_PTR(_listenerObject)); persistMgr->transferPtr(TMEMBER_PTR(_listenerParamObject)); - persistMgr->transfer(TMEMBER(_listenerParamDWORD)); + persistMgr->transferUint32(TMEMBER(_listenerParamDWORD)); persistMgr->transferPtr(TMEMBER_PTR(_parent)); persistMgr->transferBool(TMEMBER(_parentNotify)); persistMgr->transferBool(TMEMBER(_sharedFonts)); diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp index c9262198cfa4..2aaa3fd1b0c8 100644 --- a/engines/wintermute/ui/ui_window.cpp +++ b/engines/wintermute/ui/ui_window.cpp @@ -1263,7 +1263,7 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_dragging)); persistMgr->transferRect32(TMEMBER(_dragRect)); persistMgr->transferBool(TMEMBER(_fadeBackground)); - persistMgr->transfer(TMEMBER(_fadeColor)); + persistMgr->transferUint32(TMEMBER(_fadeColor)); persistMgr->transferPtr(TMEMBER_PTR(_fontInactive)); persistMgr->transferPtr(TMEMBER_PTR(_imageInactive)); persistMgr->transferBool(TMEMBER(_inGame)); diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp index 5dbb3013746c..33d10109abe6 100644 --- a/engines/wintermute/video/video_theora_player.cpp +++ b/engines/wintermute/video/video_theora_player.cpp @@ -491,7 +491,7 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) { } persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_savedPos)); + persistMgr->transferUint32(TMEMBER(_savedPos)); persistMgr->transfer(TMEMBER(_savedState)); persistMgr->transfer(TMEMBER(_filename)); persistMgr->transfer(TMEMBER(_alphaFilename)); From d07409def7cf63296a11f0cdea3bf5b7e1c3427a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 13:48:11 +0100 Subject: [PATCH 011/105] WINTERMUTE: Transfer Sint32s explicitly when saving/loading. --- engines/wintermute/ad/ad_actor.cpp | 8 ++-- engines/wintermute/ad/ad_entity.cpp | 8 ++-- engines/wintermute/ad/ad_game.cpp | 4 +- engines/wintermute/ad/ad_inventory.cpp | 2 +- engines/wintermute/ad/ad_inventory_box.cpp | 10 ++--- engines/wintermute/ad/ad_item.cpp | 8 ++-- engines/wintermute/ad/ad_layer.cpp | 4 +- engines/wintermute/ad/ad_object.cpp | 16 ++++---- engines/wintermute/ad/ad_path.cpp | 2 +- engines/wintermute/ad/ad_path_point.cpp | 2 +- engines/wintermute/ad/ad_response.cpp | 4 +- engines/wintermute/ad/ad_response_box.cpp | 8 ++-- engines/wintermute/ad/ad_response_context.cpp | 2 +- engines/wintermute/ad/ad_scene.cpp | 22 +++++----- engines/wintermute/ad/ad_scene_node.cpp | 2 +- engines/wintermute/ad/ad_sentence.cpp | 6 +-- engines/wintermute/ad/ad_waypoint_group.cpp | 6 +-- engines/wintermute/base/base_frame.cpp | 4 +- engines/wintermute/base/base_game.cpp | 16 ++++---- engines/wintermute/base/base_game_music.cpp | 4 +- engines/wintermute/base/base_object.cpp | 12 +++--- .../base/base_persistence_manager.cpp | 2 +- .../base/base_persistence_manager.h | 2 +- engines/wintermute/base/base_point.cpp | 4 +- engines/wintermute/base/base_region.cpp | 6 +-- engines/wintermute/base/base_scriptable.cpp | 2 +- engines/wintermute/base/base_sprite.cpp | 12 +++--- engines/wintermute/base/base_sub_frame.cpp | 6 +-- engines/wintermute/base/base_viewport.cpp | 4 +- .../wintermute/base/font/base_font_bitmap.cpp | 8 ++-- .../base/font/base_font_truetype.cpp | 6 +-- .../wintermute/base/font/base_font_truetype.h | 4 +- engines/wintermute/base/gfx/base_renderer.cpp | 8 ++-- .../base/particles/part_emitter.cpp | 40 +++++++++---------- .../wintermute/base/particles/part_force.cpp | 2 +- .../base/particles/part_particle.cpp | 14 +++---- .../wintermute/base/scriptables/script.cpp | 8 ++-- .../base/scriptables/script_ext_array.cpp | 2 +- .../base/scriptables/script_ext_date.cpp | 14 +++---- .../base/scriptables/script_ext_file.cpp | 2 +- .../scriptables/script_ext_mem_buffer.cpp | 2 +- .../base/scriptables/script_ext_string.cpp | 2 +- .../base/scriptables/script_stack.cpp | 2 +- .../base/scriptables/script_value.cpp | 8 ++-- engines/wintermute/base/sound/base_sound.cpp | 4 +- engines/wintermute/coll_templ.h | 12 +++--- engines/wintermute/ui/ui_button.cpp | 2 +- engines/wintermute/ui/ui_edit.cpp | 10 ++--- engines/wintermute/ui/ui_object.cpp | 6 +-- engines/wintermute/ui/ui_text.cpp | 4 +- engines/wintermute/ui/ui_window.cpp | 4 +- .../wintermute/video/video_theora_player.cpp | 10 ++--- 52 files changed, 181 insertions(+), 181 deletions(-) diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp index 590d7c4f0101..e440a13d57b4 100644 --- a/engines/wintermute/ad/ad_actor.cpp +++ b/engines/wintermute/ad/ad_actor.cpp @@ -1319,9 +1319,9 @@ BaseSprite *AdActor::getTalkStanceOld(const char *stance) { bool AdActor::persist(BasePersistenceManager *persistMgr) { AdTalkHolder::persist(persistMgr); - persistMgr->transfer(TMEMBER_INT(_dir)); + persistMgr->transferSint32(TMEMBER_INT(_dir)); persistMgr->transferPtr(TMEMBER_PTR(_path)); - persistMgr->transfer(TMEMBER(_pFCount)); + persistMgr->transferSint32(TMEMBER(_pFCount)); persistMgr->transferDouble(TMEMBER(_pFStepX)); persistMgr->transferDouble(TMEMBER(_pFStepY)); persistMgr->transferDouble(TMEMBER(_pFX)); @@ -1329,8 +1329,8 @@ bool AdActor::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_standSprite)); _talkSprites.persist(persistMgr); _talkSpritesEx.persist(persistMgr); - persistMgr->transfer(TMEMBER_INT(_targetDir)); - persistMgr->transfer(TMEMBER_INT(_afterWalkDir)); + persistMgr->transferSint32(TMEMBER_INT(_targetDir)); + persistMgr->transferSint32(TMEMBER_INT(_afterWalkDir)); persistMgr->transferPtr(TMEMBER_PTR(_targetPoint)); persistMgr->transferPtr(TMEMBER_PTR(_turnLeftSprite)); persistMgr->transferPtr(TMEMBER_PTR(_turnRightSprite)); diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp index e7471a413e84..a927c17231a6 100644 --- a/engines/wintermute/ad/ad_entity.cpp +++ b/engines/wintermute/ad/ad_entity.cpp @@ -1095,13 +1095,13 @@ bool AdEntity::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_item)); persistMgr->transferPtr(TMEMBER_PTR(_region)); //persistMgr->transfer(TMEMBER(_sprite)); - persistMgr->transfer(TMEMBER_INT(_subtype)); + persistMgr->transferSint32(TMEMBER_INT(_subtype)); _talkSprites.persist(persistMgr); _talkSpritesEx.persist(persistMgr); - persistMgr->transfer(TMEMBER(_walkToX)); - persistMgr->transfer(TMEMBER(_walkToY)); - persistMgr->transfer(TMEMBER_INT(_walkToDir)); + persistMgr->transferSint32(TMEMBER(_walkToX)); + persistMgr->transferSint32(TMEMBER(_walkToY)); + persistMgr->transferSint32(TMEMBER_INT(_walkToDir)); persistMgr->transferPtr(TMEMBER_PTR(_theora)); diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp index fc5f20164bda..e06d6cda59f3 100644 --- a/engines/wintermute/ad/ad_game.cpp +++ b/engines/wintermute/ad/ad_game.cpp @@ -1428,12 +1428,12 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_scheduledFadeIn)); persistMgr->transfer(TMEMBER(_scheduledScene)); persistMgr->transferPtr(TMEMBER_PTR(_selectedItem)); - persistMgr->transfer(TMEMBER_INT(_talkSkipButton)); + persistMgr->transferSint32(TMEMBER_INT(_talkSkipButton)); _sentences.persist(persistMgr); persistMgr->transferPtr(TMEMBER_PTR(_sceneViewport)); - persistMgr->transfer(TMEMBER_INT(_stateEx)); + persistMgr->transferSint32(TMEMBER_INT(_stateEx)); persistMgr->transferBool(TMEMBER(_initialScene)); persistMgr->transfer(TMEMBER(_debugStartupScene)); diff --git a/engines/wintermute/ad/ad_inventory.cpp b/engines/wintermute/ad/ad_inventory.cpp index 544d8310d0bf..f9352c77c67f 100644 --- a/engines/wintermute/ad/ad_inventory.cpp +++ b/engines/wintermute/ad/ad_inventory.cpp @@ -128,7 +128,7 @@ bool AdInventory::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); _takenItems.persist(persistMgr); - persistMgr->transfer(TMEMBER(_scrollOffset)); + persistMgr->transferSint32(TMEMBER(_scrollOffset)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_inventory_box.cpp b/engines/wintermute/ad/ad_inventory_box.cpp index a6e10fee9c65..5d7f053bb5b6 100644 --- a/engines/wintermute/ad/ad_inventory_box.cpp +++ b/engines/wintermute/ad/ad_inventory_box.cpp @@ -373,12 +373,12 @@ bool AdInventoryBox::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_closeButton)); persistMgr->transferBool(TMEMBER(_hideSelected)); - persistMgr->transfer(TMEMBER(_itemHeight)); + persistMgr->transferSint32(TMEMBER(_itemHeight)); persistMgr->transferRect32(TMEMBER(_itemsArea)); - persistMgr->transfer(TMEMBER(_itemWidth)); - persistMgr->transfer(TMEMBER(_scrollBy)); - persistMgr->transfer(TMEMBER(_scrollOffset)); - persistMgr->transfer(TMEMBER(_spacing)); + persistMgr->transferSint32(TMEMBER(_itemWidth)); + persistMgr->transferSint32(TMEMBER(_scrollBy)); + persistMgr->transferSint32(TMEMBER(_scrollOffset)); + persistMgr->transferSint32(TMEMBER(_spacing)); persistMgr->transferBool(TMEMBER(_visible)); persistMgr->transferPtr(TMEMBER_PTR(_window)); persistMgr->transferBool(TMEMBER(_exclusive)); diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp index ae249de8199d..c8359addd52c 100644 --- a/engines/wintermute/ad/ad_item.cpp +++ b/engines/wintermute/ad/ad_item.cpp @@ -789,10 +789,10 @@ bool AdItem::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_spriteHover)); persistMgr->transferBool(TMEMBER(_inInventory)); persistMgr->transferBool(TMEMBER(_displayAmount)); - persistMgr->transfer(TMEMBER(_amount)); - persistMgr->transfer(TMEMBER(_amountOffsetX)); - persistMgr->transfer(TMEMBER(_amountOffsetY)); - persistMgr->transfer(TMEMBER_INT(_amountAlign)); + persistMgr->transferSint32(TMEMBER(_amount)); + persistMgr->transferSint32(TMEMBER(_amountOffsetX)); + persistMgr->transferSint32(TMEMBER(_amountOffsetY)); + persistMgr->transferSint32(TMEMBER_INT(_amountAlign)); persistMgr->transfer(TMEMBER(_amountString)); return STATUS_OK; diff --git a/engines/wintermute/ad/ad_layer.cpp b/engines/wintermute/ad/ad_layer.cpp index 7bbdf27cc693..17dd83a8b7b0 100644 --- a/engines/wintermute/ad/ad_layer.cpp +++ b/engines/wintermute/ad/ad_layer.cpp @@ -553,10 +553,10 @@ bool AdLayer::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_active)); persistMgr->transferBool(TMEMBER(_closeUp)); - persistMgr->transfer(TMEMBER(_height)); + persistMgr->transferSint32(TMEMBER(_height)); persistMgr->transferBool(TMEMBER(_main)); _nodes.persist(persistMgr); - persistMgr->transfer(TMEMBER(_width)); + persistMgr->transferSint32(TMEMBER(_width)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp index 6ab2e9bc7597..fbeacee05396 100644 --- a/engines/wintermute/ad/ad_object.cpp +++ b/engines/wintermute/ad/ad_object.cpp @@ -1038,22 +1038,22 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_drawn)); persistMgr->transferPtr(TMEMBER_PTR(_font)); persistMgr->transferBool(TMEMBER(_ignoreItems)); - persistMgr->transfer(TMEMBER_INT(_nextState)); + persistMgr->transferSint32(TMEMBER_INT(_nextState)); persistMgr->transferPtr(TMEMBER_PTR(_sentence)); - persistMgr->transfer(TMEMBER_INT(_state)); + persistMgr->transferSint32(TMEMBER_INT(_state)); persistMgr->transferPtr(TMEMBER_PTR(_animSprite)); persistMgr->transferBool(TMEMBER(_sceneIndependent)); persistMgr->transfer(TMEMBER(_forcedTalkAnimName)); persistMgr->transferBool(TMEMBER(_forcedTalkAnimUsed)); persistMgr->transferPtr(TMEMBER_PTR(_tempSprite2)); - persistMgr->transfer(TMEMBER_INT(_type)); + persistMgr->transferSint32(TMEMBER_INT(_type)); persistMgr->transferPtr(TMEMBER_PTR(_wptGroup)); persistMgr->transferPtr(TMEMBER_PTR(_stickRegion)); persistMgr->transferBool(TMEMBER(_subtitlesModRelative)); - persistMgr->transfer(TMEMBER(_subtitlesModX)); - persistMgr->transfer(TMEMBER(_subtitlesModY)); + persistMgr->transferSint32(TMEMBER(_subtitlesModX)); + persistMgr->transferSint32(TMEMBER(_subtitlesModY)); persistMgr->transferBool(TMEMBER(_subtitlesModXCenter)); - persistMgr->transfer(TMEMBER(_subtitlesWidth)); + persistMgr->transferSint32(TMEMBER(_subtitlesWidth)); persistMgr->transferPtr(TMEMBER_PTR(_inventory)); persistMgr->transferPtr(TMEMBER_PTR(_partEmitter)); @@ -1066,8 +1066,8 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_registerAlias)); persistMgr->transferBool(TMEMBER(_partFollowParent)); - persistMgr->transfer(TMEMBER(_partOffsetX)); - persistMgr->transfer(TMEMBER(_partOffsetY)); + persistMgr->transferSint32(TMEMBER(_partOffsetX)); + persistMgr->transferSint32(TMEMBER(_partOffsetY)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_path.cpp b/engines/wintermute/ad/ad_path.cpp index bdb7eba495f7..156fc8095833 100644 --- a/engines/wintermute/ad/ad_path.cpp +++ b/engines/wintermute/ad/ad_path.cpp @@ -110,7 +110,7 @@ bool AdPath::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_currIndex)); + persistMgr->transferSint32(TMEMBER(_currIndex)); _points.persist(persistMgr); persistMgr->transferBool(TMEMBER(_ready)); diff --git a/engines/wintermute/ad/ad_path_point.cpp b/engines/wintermute/ad/ad_path_point.cpp index 3e99d12f5d2c..5ee95686081b 100644 --- a/engines/wintermute/ad/ad_path_point.cpp +++ b/engines/wintermute/ad/ad_path_point.cpp @@ -65,7 +65,7 @@ bool AdPathPoint::persist(BasePersistenceManager *persistMgr) { BasePoint::persist(persistMgr); - persistMgr->transfer(TMEMBER(_distance)); + persistMgr->transferSint32(TMEMBER(_distance)); persistMgr->transferBool(TMEMBER(_marked)); persistMgr->transferPtr(TMEMBER_PTR(_origin)); diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp index fa05224b06b7..8d8f9a15ada6 100644 --- a/engines/wintermute/ad/ad_response.cpp +++ b/engines/wintermute/ad/ad_response.cpp @@ -134,10 +134,10 @@ bool AdResponse::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_icon)); persistMgr->transferPtr(TMEMBER_PTR(_iconHover)); persistMgr->transferPtr(TMEMBER_PTR(_iconPressed)); - persistMgr->transfer(TMEMBER(_iD)); + persistMgr->transferSint32(TMEMBER(_iD)); persistMgr->transfer(TMEMBER(_text)); persistMgr->transfer(TMEMBER(_textOrig)); - persistMgr->transfer(TMEMBER_INT(_responseType)); + persistMgr->transferSint32(TMEMBER_INT(_responseType)); persistMgr->transferPtr(TMEMBER_PTR(_font)); return STATUS_OK; diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp index 5c0efb547ba6..ea2e22310688 100644 --- a/engines/wintermute/ad/ad_response_box.cpp +++ b/engines/wintermute/ad/ad_response_box.cpp @@ -589,14 +589,14 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) { _respButtons.persist(persistMgr); persistMgr->transferRect32(TMEMBER(_responseArea)); _responses.persist(persistMgr); - persistMgr->transfer(TMEMBER(_scrollOffset)); + persistMgr->transferSint32(TMEMBER(_scrollOffset)); persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow)); - persistMgr->transfer(TMEMBER(_spacing)); + persistMgr->transferSint32(TMEMBER(_spacing)); persistMgr->transferPtr(TMEMBER_PTR(_waitingScript)); persistMgr->transferPtr(TMEMBER_PTR(_window)); - persistMgr->transfer(TMEMBER_INT(_verticalAlign)); - persistMgr->transfer(TMEMBER_INT(_align)); + persistMgr->transferSint32(TMEMBER_INT(_verticalAlign)); + persistMgr->transferSint32(TMEMBER_INT(_align)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_response_context.cpp b/engines/wintermute/ad/ad_response_context.cpp index 0b58f5ba0ce8..dcafc55166f9 100644 --- a/engines/wintermute/ad/ad_response_context.cpp +++ b/engines/wintermute/ad/ad_response_context.cpp @@ -51,7 +51,7 @@ AdResponseContext::~AdResponseContext() { bool AdResponseContext::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); persistMgr->transfer(TMEMBER(_context)); - persistMgr->transfer(TMEMBER(_id)); + persistMgr->transferSint32(TMEMBER(_id)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_scene.cpp b/engines/wintermute/ad/ad_scene.cpp index fddd7f881bd8..ab7ab51f3042 100644 --- a/engines/wintermute/ad/ad_scene.cpp +++ b/engines/wintermute/ad/ad_scene.cpp @@ -2313,45 +2313,45 @@ bool AdScene::persist(BasePersistenceManager *persistMgr) { persistMgr->transferUint32(TMEMBER(_editorColScale)); persistMgr->transferUint32(TMEMBER(_editorColWaypoints)); persistMgr->transferUint32(TMEMBER(_editorColWaypointsSel)); - persistMgr->transfer(TMEMBER(_editorMarginH)); - persistMgr->transfer(TMEMBER(_editorMarginV)); + persistMgr->transferSint32(TMEMBER(_editorMarginH)); + persistMgr->transferSint32(TMEMBER(_editorMarginV)); persistMgr->transferBool(TMEMBER(_editorShowBlocked)); persistMgr->transferBool(TMEMBER(_editorShowDecor)); persistMgr->transferBool(TMEMBER(_editorShowEntities)); persistMgr->transferBool(TMEMBER(_editorShowRegions)); persistMgr->transferBool(TMEMBER(_editorShowScale)); persistMgr->transferPtr(TMEMBER_PTR(_fader)); - persistMgr->transfer(TMEMBER(_height)); + persistMgr->transferSint32(TMEMBER(_height)); persistMgr->transferBool(TMEMBER(_initialized)); persistMgr->transferUint32(TMEMBER(_lastTimeH)); persistMgr->transferUint32(TMEMBER(_lastTimeV)); _layers.persist(persistMgr); persistMgr->transferPtr(TMEMBER_PTR(_mainLayer)); _objects.persist(persistMgr); - persistMgr->transfer(TMEMBER(_offsetLeft)); - persistMgr->transfer(TMEMBER(_offsetTop)); + persistMgr->transferSint32(TMEMBER(_offsetLeft)); + persistMgr->transferSint32(TMEMBER(_offsetTop)); persistMgr->transferBool(TMEMBER(_paralaxScrolling)); persistMgr->transferBool(TMEMBER(_persistentState)); persistMgr->transferBool(TMEMBER(_persistentStateSprites)); persistMgr->transferUint32(TMEMBER(_pfMaxTime)); _pfPath.persist(persistMgr); - persistMgr->transfer(TMEMBER(_pfPointsNum)); + persistMgr->transferSint32(TMEMBER(_pfPointsNum)); persistMgr->transferBool(TMEMBER(_pfReady)); persistMgr->transferPtr(TMEMBER_PTR(_pfRequester)); persistMgr->transferPtr(TMEMBER_PTR(_pfTarget)); persistMgr->transferPtr(TMEMBER_PTR(_pfTargetPath)); _rotLevels.persist(persistMgr); _scaleLevels.persist(persistMgr); - persistMgr->transfer(TMEMBER(_scrollPixelsH)); - persistMgr->transfer(TMEMBER(_scrollPixelsV)); + persistMgr->transferSint32(TMEMBER(_scrollPixelsH)); + persistMgr->transferSint32(TMEMBER(_scrollPixelsV)); persistMgr->transferUint32(TMEMBER(_scrollTimeH)); persistMgr->transferUint32(TMEMBER(_scrollTimeV)); persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow)); - persistMgr->transfer(TMEMBER(_targetOffsetLeft)); - persistMgr->transfer(TMEMBER(_targetOffsetTop)); + persistMgr->transferSint32(TMEMBER(_targetOffsetLeft)); + persistMgr->transferSint32(TMEMBER(_targetOffsetTop)); _waypointGroups.persist(persistMgr); persistMgr->transferPtr(TMEMBER_PTR(_viewport)); - persistMgr->transfer(TMEMBER(_width)); + persistMgr->transferSint32(TMEMBER(_width)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_scene_node.cpp b/engines/wintermute/ad/ad_scene_node.cpp index 8548da91dbfd..5f6207c23adb 100644 --- a/engines/wintermute/ad/ad_scene_node.cpp +++ b/engines/wintermute/ad/ad_scene_node.cpp @@ -74,7 +74,7 @@ bool AdSceneNode::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_entity)); persistMgr->transferPtr(TMEMBER_PTR(_region)); - persistMgr->transfer(TMEMBER_INT(_type)); + persistMgr->transferSint32(TMEMBER_INT(_type)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp index a43cac615c1c..514a6b86311b 100644 --- a/engines/wintermute/ad/ad_sentence.cpp +++ b/engines/wintermute/ad/ad_sentence.cpp @@ -249,8 +249,8 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER_INT(_align)); - persistMgr->transfer(TMEMBER(_currentStance)); + persistMgr->transferSint32(TMEMBER_INT(_align)); + persistMgr->transferSint32(TMEMBER(_currentStance)); persistMgr->transferPtr(TMEMBER_PTR(_currentSprite)); persistMgr->transfer(TMEMBER(_currentSkelAnim)); persistMgr->transferUint32(TMEMBER(_duration)); @@ -263,7 +263,7 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_talkDef)); persistMgr->transfer(TMEMBER(_tempStance)); persistMgr->transfer(TMEMBER(_text)); - persistMgr->transfer(TMEMBER(_width)); + persistMgr->transferSint32(TMEMBER(_width)); persistMgr->transferBool(TMEMBER(_fixedPos)); persistMgr->transferBool(TMEMBER(_freezable)); diff --git a/engines/wintermute/ad/ad_waypoint_group.cpp b/engines/wintermute/ad/ad_waypoint_group.cpp index a8d474bf35ab..ae6b18e266cc 100644 --- a/engines/wintermute/ad/ad_waypoint_group.cpp +++ b/engines/wintermute/ad/ad_waypoint_group.cpp @@ -195,10 +195,10 @@ bool AdWaypointGroup::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); persistMgr->transferBool(TMEMBER(_active)); - persistMgr->transfer(TMEMBER(_editorSelectedPoint)); + persistMgr->transferSint32(TMEMBER(_editorSelectedPoint)); persistMgr->transferFloat(TMEMBER(_lastMimicScale)); - persistMgr->transfer(TMEMBER(_lastMimicX)); - persistMgr->transfer(TMEMBER(_lastMimicY)); + persistMgr->transferSint32(TMEMBER(_lastMimicX)); + persistMgr->transferSint32(TMEMBER(_lastMimicY)); _points.persist(persistMgr); return STATUS_OK; diff --git a/engines/wintermute/base/base_frame.cpp b/engines/wintermute/base/base_frame.cpp index 8c87cfb9885c..14557334611e 100644 --- a/engines/wintermute/base/base_frame.cpp +++ b/engines/wintermute/base/base_frame.cpp @@ -418,8 +418,8 @@ bool BaseFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_editorExpanded)); persistMgr->transferBool(TMEMBER(_keyframe)); persistMgr->transferBool(TMEMBER(_killSound)); - persistMgr->transfer(TMEMBER(_moveX)); - persistMgr->transfer(TMEMBER(_moveY)); + persistMgr->transferSint32(TMEMBER(_moveX)); + persistMgr->transferSint32(TMEMBER(_moveY)); persistMgr->transferPtr(TMEMBER_PTR(_sound)); _subframes.persist(persistMgr); diff --git a/engines/wintermute/base/base_game.cpp b/engines/wintermute/base/base_game.cpp index d4ecca0d7603..6b7e1cf80341 100644 --- a/engines/wintermute/base/base_game.cpp +++ b/engines/wintermute/base/base_game.cpp @@ -3056,7 +3056,7 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_cursorNoninteractive)); persistMgr->transferBool(TMEMBER(_editorMode)); persistMgr->transferPtr(TMEMBER_PTR(_fader)); - persistMgr->transfer(TMEMBER(_freezeLevel)); + persistMgr->transferSint32(TMEMBER(_freezeLevel)); persistMgr->transferPtr(TMEMBER_PTR(_focusedWindow)); persistMgr->transferPtr(TMEMBER_PTR(_fontStorage)); persistMgr->transferBool(TMEMBER(_interactive)); @@ -3066,13 +3066,13 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { _musicSystem->persistChannels(persistMgr); _musicSystem->persistCrossfadeSettings(persistMgr); - persistMgr->transfer(TMEMBER(_offsetX)); - persistMgr->transfer(TMEMBER(_offsetY)); + persistMgr->transferSint32(TMEMBER(_offsetX)); + persistMgr->transferSint32(TMEMBER(_offsetY)); persistMgr->transferFloat(TMEMBER(_offsetPercentX)); persistMgr->transferFloat(TMEMBER(_offsetPercentY)); persistMgr->transferBool(TMEMBER(_origInteractive)); - persistMgr->transfer(TMEMBER_INT(_origState)); + persistMgr->transferSint32(TMEMBER_INT(_origState)); persistMgr->transferBool(TMEMBER(_personalizedSave)); persistMgr->transferBool(TMEMBER(_quitting)); @@ -3080,10 +3080,10 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_scEngine)); //persistMgr->transfer(TMEMBER(_soundMgr)); - persistMgr->transfer(TMEMBER_INT(_state)); + persistMgr->transferSint32(TMEMBER_INT(_state)); //persistMgr->transfer(TMEMBER(_surfaceStorage)); persistMgr->transferBool(TMEMBER(_subtitles)); - persistMgr->transfer(TMEMBER(_subtitlesSpeed)); + persistMgr->transferSint32(TMEMBER(_subtitlesSpeed)); persistMgr->transferPtr(TMEMBER_PTR(_systemFont)); persistMgr->transferPtr(TMEMBER_PTR(_videoFont)); persistMgr->transferBool(TMEMBER(_videoSubtitles)); @@ -3093,10 +3093,10 @@ bool BaseGame::persist(BasePersistenceManager *persistMgr) { _renderer->persistSaveLoadImages(persistMgr); - persistMgr->transfer(TMEMBER_INT(_textEncoding)); + persistMgr->transferSint32(TMEMBER_INT(_textEncoding)); persistMgr->transferBool(TMEMBER(_textRTL)); - persistMgr->transfer(TMEMBER(_soundBufferSizeSec)); + persistMgr->transferSint32(TMEMBER(_soundBufferSizeSec)); persistMgr->transferBool(TMEMBER(_suspendedRendering)); persistMgr->transferRect32(TMEMBER(_mouseLockRect)); diff --git a/engines/wintermute/base/base_game_music.cpp b/engines/wintermute/base/base_game_music.cpp index a401da2d9781..8894fb843f78 100644 --- a/engines/wintermute/base/base_game_music.cpp +++ b/engines/wintermute/base/base_game_music.cpp @@ -224,8 +224,8 @@ bool BaseGameMusic::persistCrossfadeSettings(BasePersistenceManager *persistMgr) persistMgr->transferBool(TMEMBER(_musicCrossfadeRunning)); persistMgr->transferUint32(TMEMBER(_musicCrossfadeStartTime)); persistMgr->transferUint32(TMEMBER(_musicCrossfadeLength)); - persistMgr->transfer(TMEMBER(_musicCrossfadeChannel1)); - persistMgr->transfer(TMEMBER(_musicCrossfadeChannel2)); + persistMgr->transferSint32(TMEMBER(_musicCrossfadeChannel1)); + persistMgr->transferSint32(TMEMBER(_musicCrossfadeChannel2)); persistMgr->transferBool(TMEMBER(_musicCrossfadeSwap)); return true; } diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp index 802edfcf3212..2e0c612da0f2 100644 --- a/engines/wintermute/base/base_object.cpp +++ b/engines/wintermute/base/base_object.cpp @@ -963,17 +963,17 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_editorAlwaysRegister)); persistMgr->transferBool(TMEMBER(_editorOnly)); persistMgr->transferBool(TMEMBER(_editorSelected)); - persistMgr->transfer(TMEMBER(_iD)); + persistMgr->transferSint32(TMEMBER(_iD)); persistMgr->transferBool(TMEMBER(_is3D)); persistMgr->transferBool(TMEMBER(_movable)); - persistMgr->transfer(TMEMBER(_posX)); - persistMgr->transfer(TMEMBER(_posY)); + persistMgr->transferSint32(TMEMBER(_posX)); + persistMgr->transferSint32(TMEMBER(_posY)); persistMgr->transferFloat(TMEMBER(_relativeScale)); persistMgr->transferBool(TMEMBER(_rotatable)); persistMgr->transferFloat(TMEMBER(_scale)); persistMgr->transferPtr(TMEMBER_PTR(_sFX)); persistMgr->transferUint32(TMEMBER(_sFXStart)); - persistMgr->transfer(TMEMBER(_sFXVolume)); + persistMgr->transferSint32(TMEMBER(_sFXVolume)); persistMgr->transferBool(TMEMBER(_ready)); persistMgr->transferRect32(TMEMBER(_rect)); persistMgr->transferBool(TMEMBER(_rectSet)); @@ -992,14 +992,14 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_saveState)); persistMgr->transferBool(TMEMBER(_nonIntMouseEvents)); - persistMgr->transfer(TMEMBER_INT(_sFXType)); + persistMgr->transferSint32(TMEMBER_INT(_sFXType)); persistMgr->transferFloat(TMEMBER(_sFXParam1)); persistMgr->transferFloat(TMEMBER(_sFXParam2)); persistMgr->transferFloat(TMEMBER(_sFXParam3)); persistMgr->transferFloat(TMEMBER(_sFXParam4)); - persistMgr->transfer(TMEMBER_INT(_blendMode)); + persistMgr->transferSint32(TMEMBER_INT(_blendMode)); return STATUS_OK; } diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 1ee4b247e9f9..eb2bffeba5bd 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -606,7 +606,7 @@ bool BasePersistenceManager::transferBool(const char *name, bool *val) { ////////////////////////////////////////////////////////////////////////// // int -bool BasePersistenceManager::transfer(const char *name, int32 *val) { +bool BasePersistenceManager::transferSint32(const char *name, int32 *val) { if (_saving) { _saveStream->writeSint32LE(*val); if (_saveStream->err()) { diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index 9d39670703b1..aba4776a31ab 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -74,7 +74,7 @@ class BasePersistenceManager { byte *_richBuffer; bool transferPtr(const char *name, void *val); - bool transfer(const char *name, int32 *val); + bool transferSint32(const char *name, int32 *val); bool transferUint32(const char *name, uint32 *val); bool transferFloat(const char *name, float *val); bool transferDouble(const char *name, double *val); diff --git a/engines/wintermute/base/base_point.cpp b/engines/wintermute/base/base_point.cpp index fe6ca941f308..84b6a629c770 100644 --- a/engines/wintermute/base/base_point.cpp +++ b/engines/wintermute/base/base_point.cpp @@ -54,8 +54,8 @@ BasePoint::BasePoint(int initX, int initY) { ////////////////////////////////////////////////////////////////////////// bool BasePoint::persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(x)); - persistMgr->transfer(TMEMBER(y)); + persistMgr->transferSint32(TMEMBER(x)); + persistMgr->transferSint32(TMEMBER(y)); return STATUS_OK; } diff --git a/engines/wintermute/base/base_region.cpp b/engines/wintermute/base/base_region.cpp index 2953adc8a5ea..dc17b18ea2c3 100644 --- a/engines/wintermute/base/base_region.cpp +++ b/engines/wintermute/base/base_region.cpp @@ -431,10 +431,10 @@ bool BaseRegion::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); persistMgr->transferBool(TMEMBER(_active)); - persistMgr->transfer(TMEMBER(_editorSelectedPoint)); + persistMgr->transferSint32(TMEMBER(_editorSelectedPoint)); persistMgr->transferFloat(TMEMBER(_lastMimicScale)); - persistMgr->transfer(TMEMBER(_lastMimicX)); - persistMgr->transfer(TMEMBER(_lastMimicY)); + persistMgr->transferSint32(TMEMBER(_lastMimicX)); + persistMgr->transferSint32(TMEMBER(_lastMimicY)); _points.persist(persistMgr); return STATUS_OK; diff --git a/engines/wintermute/base/base_scriptable.cpp b/engines/wintermute/base/base_scriptable.cpp index be1e18c2c43d..d2ff627f0a7c 100644 --- a/engines/wintermute/base/base_scriptable.cpp +++ b/engines/wintermute/base/base_scriptable.cpp @@ -153,7 +153,7 @@ void BaseScriptable::scSetBool(bool val) { ////////////////////////////////////////////////////////////////////////// bool BaseScriptable::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_refCount)); + persistMgr->transferSint32(TMEMBER(_refCount)); persistMgr->transferPtr(TMEMBER_PTR(_scProp)); persistMgr->transferPtr(TMEMBER_PTR(_scValue)); diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp index afc33121efac..c8e0d8714a62 100644 --- a/engines/wintermute/base/base_sprite.cpp +++ b/engines/wintermute/base/base_sprite.cpp @@ -524,12 +524,12 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_changed)); persistMgr->transferBool(TMEMBER(_paused)); persistMgr->transferBool(TMEMBER(_continuous)); - persistMgr->transfer(TMEMBER(_currentFrame)); + persistMgr->transferSint32(TMEMBER(_currentFrame)); persistMgr->transferBool(TMEMBER(_editorAllFrames)); - persistMgr->transfer(TMEMBER(_editorBgAlpha)); + persistMgr->transferSint32(TMEMBER(_editorBgAlpha)); persistMgr->transfer(TMEMBER(_editorBgFile)); - persistMgr->transfer(TMEMBER(_editorBgOffsetX)); - persistMgr->transfer(TMEMBER(_editorBgOffsetY)); + persistMgr->transferSint32(TMEMBER(_editorBgOffsetX)); + persistMgr->transferSint32(TMEMBER(_editorBgOffsetY)); persistMgr->transferBool(TMEMBER(_editorMuted)); persistMgr->transferBool(TMEMBER(_finished)); @@ -537,8 +537,8 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) { persistMgr->transferUint32(TMEMBER(_lastFrameTime)); persistMgr->transferBool(TMEMBER(_looping)); - persistMgr->transfer(TMEMBER(_moveX)); - persistMgr->transfer(TMEMBER(_moveY)); + persistMgr->transferSint32(TMEMBER(_moveX)); + persistMgr->transferSint32(TMEMBER(_moveY)); persistMgr->transferPtr(TMEMBER_PTR(_owner)); persistMgr->transferBool(TMEMBER(_precise)); persistMgr->transferBool(TMEMBER(_streamed)); diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp index e214ef9d81b3..5d78dfa45682 100644 --- a/engines/wintermute/base/base_sub_frame.cpp +++ b/engines/wintermute/base/base_sub_frame.cpp @@ -389,8 +389,8 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferUint32(TMEMBER(_alpha)); persistMgr->transferBool(TMEMBER(_decoration)); persistMgr->transferBool(TMEMBER(_editorSelected)); - persistMgr->transfer(TMEMBER(_hotspotX)); - persistMgr->transfer(TMEMBER(_hotspotY)); + persistMgr->transferSint32(TMEMBER(_hotspotX)); + persistMgr->transferSint32(TMEMBER(_hotspotY)); persistMgr->transferRect32(TMEMBER(_rect)); persistMgr->transferBool(TMEMBER(_wantsDefaultRect)); @@ -399,7 +399,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferByte(TMEMBER(_cKRed)); persistMgr->transferByte(TMEMBER(_cKGreen)); persistMgr->transferByte(TMEMBER(_cKBlue)); - persistMgr->transfer(TMEMBER(_lifeTime)); + persistMgr->transferSint32(TMEMBER(_lifeTime)); persistMgr->transferBool(TMEMBER(_keepLoaded)); persistMgr->transferBool(TMEMBER(_mirrorX)); diff --git a/engines/wintermute/base/base_viewport.cpp b/engines/wintermute/base/base_viewport.cpp index acc0ee7561ee..a6e8b179277d 100644 --- a/engines/wintermute/base/base_viewport.cpp +++ b/engines/wintermute/base/base_viewport.cpp @@ -55,8 +55,8 @@ bool BaseViewport::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); persistMgr->transferPtr(TMEMBER_PTR(_mainObject)); - persistMgr->transfer(TMEMBER(_offsetX)); - persistMgr->transfer(TMEMBER(_offsetY)); + persistMgr->transferSint32(TMEMBER(_offsetX)); + persistMgr->transferSint32(TMEMBER(_offsetY)); persistMgr->transferRect32(TMEMBER(_rect)); return STATUS_OK; diff --git a/engines/wintermute/base/font/base_font_bitmap.cpp b/engines/wintermute/base/font/base_font_bitmap.cpp index dd54e5eb3f5e..95f9a83a6ade 100644 --- a/engines/wintermute/base/font/base_font_bitmap.cpp +++ b/engines/wintermute/base/font/base_font_bitmap.cpp @@ -495,13 +495,13 @@ bool BaseFontBitmap::loadBuffer(char *buffer) { bool BaseFontBitmap::persist(BasePersistenceManager *persistMgr) { BaseFont::persist(persistMgr); - persistMgr->transfer(TMEMBER(_numColumns)); + persistMgr->transferSint32(TMEMBER(_numColumns)); persistMgr->transferPtr(TMEMBER_PTR(_subframe)); - persistMgr->transfer(TMEMBER(_tileHeight)); - persistMgr->transfer(TMEMBER(_tileWidth)); + persistMgr->transferSint32(TMEMBER(_tileHeight)); + persistMgr->transferSint32(TMEMBER(_tileWidth)); persistMgr->transferPtr(TMEMBER_PTR(_sprite)); - persistMgr->transfer(TMEMBER(_widthsFrame)); + persistMgr->transferSint32(TMEMBER(_widthsFrame)); if (persistMgr->getIsSaving()) { persistMgr->putBytes(_widths, sizeof(_widths)); diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp index 13e88f573435..ac975883a02b 100644 --- a/engines/wintermute/base/font/base_font_truetype.cpp +++ b/engines/wintermute/base/font/base_font_truetype.cpp @@ -524,7 +524,7 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_isItalic)); persistMgr->transferBool(TMEMBER(_isUnderline)); persistMgr->transferBool(TMEMBER(_isStriked)); - persistMgr->transfer(TMEMBER(_fontHeight)); + persistMgr->transferSint32(TMEMBER(_fontHeight)); persistMgr->transfer(TMEMBER(_fontFile)); @@ -532,13 +532,13 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) { int32 numLayers; if (persistMgr->getIsSaving()) { numLayers = _layers.size(); - persistMgr->transfer(TMEMBER(numLayers)); + persistMgr->transferSint32(TMEMBER(numLayers)); for (int i = 0; i < numLayers; i++) { _layers[i]->persist(persistMgr); } } else { numLayers = _layers.size(); - persistMgr->transfer(TMEMBER(numLayers)); + persistMgr->transferSint32(TMEMBER(numLayers)); for (int i = 0; i < numLayers; i++) { BaseTTFontLayer *layer = new BaseTTFontLayer; layer->persist(persistMgr); diff --git a/engines/wintermute/base/font/base_font_truetype.h b/engines/wintermute/base/font/base_font_truetype.h index 47b9edd2b227..2d7ebba69112 100644 --- a/engines/wintermute/base/font/base_font_truetype.h +++ b/engines/wintermute/base/font/base_font_truetype.h @@ -84,8 +84,8 @@ class BaseFontTT : public BaseFont { } bool persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_offsetX)); - persistMgr->transfer(TMEMBER(_offsetY)); + persistMgr->transferSint32(TMEMBER(_offsetX)); + persistMgr->transferSint32(TMEMBER(_offsetY)); persistMgr->transferUint32(TMEMBER(_color)); return STATUS_OK; } diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp index 818010e00e1a..6bc27f06f478 100644 --- a/engines/wintermute/base/gfx/base_renderer.cpp +++ b/engines/wintermute/base/gfx/base_renderer.cpp @@ -175,10 +175,10 @@ void BaseRenderer::endSaveLoad() { void BaseRenderer::persistSaveLoadImages(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(_loadImageName)); persistMgr->transfer(TMEMBER(_saveImageName)); - persistMgr->transfer(TMEMBER(_saveImageX)); - persistMgr->transfer(TMEMBER(_saveImageY)); - persistMgr->transfer(TMEMBER(_loadImageX)); - persistMgr->transfer(TMEMBER(_loadImageY)); + persistMgr->transferSint32(TMEMBER(_saveImageX)); + persistMgr->transferSint32(TMEMBER(_saveImageY)); + persistMgr->transferSint32(TMEMBER(_loadImageX)); + persistMgr->transferSint32(TMEMBER(_loadImageY)); } ////////////////////////////////////////////////////////////////////// diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp index bd59a7a6673c..73f98d15d9a1 100644 --- a/engines/wintermute/base/particles/part_emitter.cpp +++ b/engines/wintermute/base/particles/part_emitter.cpp @@ -1156,11 +1156,11 @@ const char *PartEmitter::scToString() { bool PartEmitter::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); - persistMgr->transfer(TMEMBER(_width)); - persistMgr->transfer(TMEMBER(_height)); + persistMgr->transferSint32(TMEMBER(_width)); + persistMgr->transferSint32(TMEMBER(_height)); - persistMgr->transfer(TMEMBER(_angle1)); - persistMgr->transfer(TMEMBER(_angle2)); + persistMgr->transferSint32(TMEMBER(_angle1)); + persistMgr->transferSint32(TMEMBER(_angle2)); persistMgr->transferFloat(TMEMBER(_velocity1)); persistMgr->transferFloat(TMEMBER(_velocity2)); @@ -1170,29 +1170,29 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) { persistMgr->transferFloat(TMEMBER(_scale2)); persistMgr->transferBool(TMEMBER(_scaleZBased)); - persistMgr->transfer(TMEMBER(_maxParticles)); + persistMgr->transferSint32(TMEMBER(_maxParticles)); - persistMgr->transfer(TMEMBER(_lifeTime1)); - persistMgr->transfer(TMEMBER(_lifeTime2)); + persistMgr->transferSint32(TMEMBER(_lifeTime1)); + persistMgr->transferSint32(TMEMBER(_lifeTime2)); persistMgr->transferBool(TMEMBER(_lifeTimeZBased)); - persistMgr->transfer(TMEMBER(_genInterval)); - persistMgr->transfer(TMEMBER(_genAmount)); + persistMgr->transferSint32(TMEMBER(_genInterval)); + persistMgr->transferSint32(TMEMBER(_genAmount)); persistMgr->transferBool(TMEMBER(_running)); - persistMgr->transfer(TMEMBER(_overheadTime)); + persistMgr->transferSint32(TMEMBER(_overheadTime)); persistMgr->transferRect32(TMEMBER(_border)); - persistMgr->transfer(TMEMBER(_borderThicknessLeft)); - persistMgr->transfer(TMEMBER(_borderThicknessRight)); - persistMgr->transfer(TMEMBER(_borderThicknessTop)); - persistMgr->transfer(TMEMBER(_borderThicknessBottom)); + persistMgr->transferSint32(TMEMBER(_borderThicknessLeft)); + persistMgr->transferSint32(TMEMBER(_borderThicknessRight)); + persistMgr->transferSint32(TMEMBER(_borderThicknessTop)); + persistMgr->transferSint32(TMEMBER(_borderThicknessBottom)); - persistMgr->transfer(TMEMBER(_fadeInTime)); - persistMgr->transfer(TMEMBER(_fadeOutTime)); + persistMgr->transferSint32(TMEMBER(_fadeInTime)); + persistMgr->transferSint32(TMEMBER(_fadeOutTime)); - persistMgr->transfer(TMEMBER(_alpha1)); - persistMgr->transfer(TMEMBER(_alpha2)); + persistMgr->transferSint32(TMEMBER(_alpha1)); + persistMgr->transferSint32(TMEMBER(_alpha2)); persistMgr->transferBool(TMEMBER(_alphaTimeBased)); persistMgr->transferFloat(TMEMBER(_angVelocity1)); @@ -1207,8 +1207,8 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_useRegion)); - persistMgr->transfer(TMEMBER_INT(_maxBatches)); - persistMgr->transfer(TMEMBER_INT(_batchesGenerated)); + persistMgr->transferSint32(TMEMBER_INT(_maxBatches)); + persistMgr->transferSint32(TMEMBER_INT(_batchesGenerated)); persistMgr->transfer(TMEMBER(_emitEvent)); persistMgr->transferPtr(TMEMBER_PTR(_owner)); diff --git a/engines/wintermute/base/particles/part_force.cpp b/engines/wintermute/base/particles/part_force.cpp index e7583e554a61..4355e654c064 100644 --- a/engines/wintermute/base/particles/part_force.cpp +++ b/engines/wintermute/base/particles/part_force.cpp @@ -57,7 +57,7 @@ bool PartForce::persist(BasePersistenceManager *persistMgr) { } persistMgr->transferVector2(TMEMBER(_pos)); persistMgr->transferVector2(TMEMBER(_direction)); - persistMgr->transfer(TMEMBER_INT(_type)); + persistMgr->transferSint32(TMEMBER_INT(_type)); return STATUS_OK; } diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp index 62faf73e7eb8..7c38f5477b60 100644 --- a/engines/wintermute/base/particles/part_particle.cpp +++ b/engines/wintermute/base/particles/part_particle.cpp @@ -230,25 +230,25 @@ bool PartParticle::fadeOut(uint32 currentTime, int fadeTime) { ////////////////////////////////////////////////////////////////////////// bool PartParticle::persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_alpha1)); - persistMgr->transfer(TMEMBER(_alpha2)); + persistMgr->transferSint32(TMEMBER(_alpha1)); + persistMgr->transferSint32(TMEMBER(_alpha2)); persistMgr->transferRect32(TMEMBER(_border)); persistMgr->transferVector2(TMEMBER(_pos)); persistMgr->transferFloat(TMEMBER(_posZ)); persistMgr->transferVector2(TMEMBER(_velocity)); persistMgr->transferFloat(TMEMBER(_scale)); persistMgr->transferUint32(TMEMBER(_creationTime)); - persistMgr->transfer(TMEMBER(_lifeTime)); + persistMgr->transferSint32(TMEMBER(_lifeTime)); persistMgr->transferBool(TMEMBER(_isDead)); - persistMgr->transfer(TMEMBER_INT(_state)); + persistMgr->transferSint32(TMEMBER_INT(_state)); persistMgr->transferUint32(TMEMBER(_fadeStart)); - persistMgr->transfer(TMEMBER(_fadeTime)); - persistMgr->transfer(TMEMBER(_currentAlpha)); + persistMgr->transferSint32(TMEMBER(_fadeTime)); + persistMgr->transferSint32(TMEMBER(_currentAlpha)); persistMgr->transferFloat(TMEMBER(_angVelocity)); persistMgr->transferFloat(TMEMBER(_rotation)); persistMgr->transferFloat(TMEMBER(_growthRate)); persistMgr->transferBool(TMEMBER(_exponentialGrowth)); - persistMgr->transfer(TMEMBER(_fadeStartAlpha)); + persistMgr->transferSint32(TMEMBER(_fadeStartAlpha)); if (persistMgr->getIsSaving()) { const char *filename = _sprite->getFilename(); diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp index e3f821978202..ebe9758c496a 100644 --- a/engines/wintermute/base/scriptables/script.cpp +++ b/engines/wintermute/base/scriptables/script.cpp @@ -1254,7 +1254,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { } else { // don't save idle/finished scripts int32 bufferSize = 0; - persistMgr->transfer(TMEMBER(bufferSize)); + persistMgr->transferSint32(TMEMBER(bufferSize)); } } else { persistMgr->transferUint32(TMEMBER(_bufferSize)); @@ -1270,7 +1270,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { } persistMgr->transferPtr(TMEMBER_PTR(_callStack)); - persistMgr->transfer(TMEMBER(_currentLine)); + persistMgr->transferSint32(TMEMBER(_currentLine)); persistMgr->transferPtr(TMEMBER_PTR(_engine)); persistMgr->transfer(TMEMBER(_filename)); persistMgr->transferBool(TMEMBER(_freezable)); @@ -1278,9 +1278,9 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transferUint32(TMEMBER(_iP)); persistMgr->transferPtr(TMEMBER_PTR(_scopeStack)); persistMgr->transferPtr(TMEMBER_PTR(_stack)); - persistMgr->transfer(TMEMBER_INT(_state)); + persistMgr->transferSint32(TMEMBER_INT(_state)); persistMgr->transferPtr(TMEMBER_PTR(_operand)); - persistMgr->transfer(TMEMBER_INT(_origState)); + persistMgr->transferSint32(TMEMBER_INT(_origState)); persistMgr->transferPtr(TMEMBER_PTR(_owner)); persistMgr->transferPtr(TMEMBER_PTR(_reg1)); persistMgr->transferBool(TMEMBER(_thread)); diff --git a/engines/wintermute/base/scriptables/script_ext_array.cpp b/engines/wintermute/base/scriptables/script_ext_array.cpp index 7f1c769ec544..c4ad04555792 100644 --- a/engines/wintermute/base/scriptables/script_ext_array.cpp +++ b/engines/wintermute/base/scriptables/script_ext_array.cpp @@ -214,7 +214,7 @@ bool SXArray::scSetProperty(const char *name, ScValue *value) { bool SXArray::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); - persistMgr->transfer(TMEMBER(_length)); + persistMgr->transferSint32(TMEMBER(_length)); persistMgr->transferPtr(TMEMBER_PTR(_values)); return STATUS_OK; diff --git a/engines/wintermute/base/scriptables/script_ext_date.cpp b/engines/wintermute/base/scriptables/script_ext_date.cpp index d88bfc585155..6b9c5ff68add 100644 --- a/engines/wintermute/base/scriptables/script_ext_date.cpp +++ b/engines/wintermute/base/scriptables/script_ext_date.cpp @@ -243,15 +243,15 @@ bool SXDate::persist(BasePersistenceManager *persistMgr) { int32 hour = _tm.tm_hour; int32 min = _tm.tm_min; int32 sec = _tm.tm_sec; - persistMgr->transfer(TMEMBER(year)); - persistMgr->transfer(TMEMBER(mon)); - persistMgr->transfer(TMEMBER(mday)); - persistMgr->transfer(TMEMBER(hour)); - persistMgr->transfer(TMEMBER(min)); - persistMgr->transfer(TMEMBER(sec)); + persistMgr->transferSint32(TMEMBER(year)); + persistMgr->transferSint32(TMEMBER(mon)); + persistMgr->transferSint32(TMEMBER(mday)); + persistMgr->transferSint32(TMEMBER(hour)); + persistMgr->transferSint32(TMEMBER(min)); + persistMgr->transferSint32(TMEMBER(sec)); if (persistMgr->checkVersion(1, 2, 1)) { int32 wday = _tm.tm_wday; - persistMgr->transfer(TMEMBER(wday)); + persistMgr->transferSint32(TMEMBER(wday)); _tm.tm_wday = wday; } _tm.tm_year = year; diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp index fad2f926ad9a..cb1648608bd2 100644 --- a/engines/wintermute/base/scriptables/script_ext_file.cpp +++ b/engines/wintermute/base/scriptables/script_ext_file.cpp @@ -767,7 +767,7 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); persistMgr->transfer(TMEMBER(_filename)); - persistMgr->transfer(TMEMBER(_mode)); + persistMgr->transferSint32(TMEMBER(_mode)); persistMgr->transferBool(TMEMBER(_textMode)); uint32 pos = 0; diff --git a/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp b/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp index 6a47c09136c4..39f8b5864442 100644 --- a/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp +++ b/engines/wintermute/base/scriptables/script_ext_mem_buffer.cpp @@ -498,7 +498,7 @@ bool SXMemBuffer::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); - persistMgr->transfer(TMEMBER(_size)); + persistMgr->transferSint32(TMEMBER(_size)); if (persistMgr->getIsSaving()) { if (_size > 0) { diff --git a/engines/wintermute/base/scriptables/script_ext_string.cpp b/engines/wintermute/base/scriptables/script_ext_string.cpp index 2f2422cdf94c..b6d284442da9 100644 --- a/engines/wintermute/base/scriptables/script_ext_string.cpp +++ b/engines/wintermute/base/scriptables/script_ext_string.cpp @@ -406,7 +406,7 @@ bool SXString::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); - persistMgr->transfer(TMEMBER(_capacity)); + persistMgr->transferSint32(TMEMBER(_capacity)); if (persistMgr->getIsSaving()) { if (_capacity > 0) { diff --git a/engines/wintermute/base/scriptables/script_stack.cpp b/engines/wintermute/base/scriptables/script_stack.cpp index 801ac6ab52c9..c828b3918edc 100644 --- a/engines/wintermute/base/scriptables/script_stack.cpp +++ b/engines/wintermute/base/scriptables/script_stack.cpp @@ -186,7 +186,7 @@ bool ScStack::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_sP)); + persistMgr->transferSint32(TMEMBER(_sP)); _values.persist(persistMgr); return STATUS_OK; diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp index 5b275746c060..94e66fccb101 100644 --- a/engines/wintermute/base/scriptables/script_value.cpp +++ b/engines/wintermute/base/scriptables/script_value.cpp @@ -793,17 +793,17 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_persistent)); persistMgr->transferBool(TMEMBER(_isConstVar)); - persistMgr->transfer(TMEMBER_INT(_type)); + persistMgr->transferSint32(TMEMBER_INT(_type)); persistMgr->transferBool(TMEMBER(_valBool)); persistMgr->transferDouble(TMEMBER(_valFloat)); - persistMgr->transfer(TMEMBER(_valInt)); + persistMgr->transferSint32(TMEMBER(_valInt)); persistMgr->transferPtr(TMEMBER_PTR(_valNative)); int32 size; const char *str; if (persistMgr->getIsSaving()) { size = _valObject.size(); - persistMgr->transfer("", &size); + persistMgr->transferSint32("", &size); _valIter = _valObject.begin(); while (_valIter != _valObject.end()) { str = _valIter->_key.c_str(); @@ -814,7 +814,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) { } } else { ScValue *val = nullptr; - persistMgr->transfer("", &size); + persistMgr->transferSint32("", &size); for (int i = 0; i < size; i++) { persistMgr->transfer("", &str); persistMgr->transferPtr("", &val); diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp index 9fc58713a4ed..11408c27c38f 100644 --- a/engines/wintermute/base/sound/base_sound.cpp +++ b/engines/wintermute/base/sound/base_sound.cpp @@ -172,9 +172,9 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_soundFreezePaused)); persistMgr->transferBool(TMEMBER(_soundPlaying)); persistMgr->transferUint32(TMEMBER(_soundPosition)); - persistMgr->transfer(TMEMBER(_soundPrivateVolume)); + persistMgr->transferSint32(TMEMBER(_soundPrivateVolume)); persistMgr->transferBool(TMEMBER(_soundStreamed)); - persistMgr->transfer(TMEMBER_INT(_soundType)); + persistMgr->transferSint32(TMEMBER_INT(_soundType)); persistMgr->transferUint32(TMEMBER(_soundLoopStart)); return STATUS_OK; diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h index a3df92d6c8b8..d688fa06d040 100644 --- a/engines/wintermute/coll_templ.h +++ b/engines/wintermute/coll_templ.h @@ -67,7 +67,7 @@ class BaseArray : public BaseArrayBase { int32 j; if (persistMgr->getIsSaving()) { j = Common::Array::size(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); typename Common::Array::const_iterator it = Common::Array::begin(); for (; it != Common::Array::end(); ++it) { TYPE obj = *it; @@ -75,7 +75,7 @@ class BaseArray : public BaseArrayBase { } } else { Common::Array::clear(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); for (int i = 0; i < j; i++) { TYPE obj = nullptr; persistMgr->transferPtr("", &obj); @@ -93,7 +93,7 @@ class BaseArray : public BaseArrayBase { int32 j; if (persistMgr->getIsSaving()) { j = Common::Array::size(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); Common::Array::const_iterator it = Common::Array::begin(); for (; it != Common::Array::end(); ++it) { char * obj = *it; @@ -101,7 +101,7 @@ class BaseArray : public BaseArrayBase { } } else { Common::Array::clear(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); for (int i = 0; i < j; i++) { char * obj = nullptr; persistMgr->transfer("", &obj); @@ -119,7 +119,7 @@ class BaseArray : public BaseArrayBase { int32 j; if (persistMgr->getIsSaving()) { j = Common::Array::size(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); Common::Array::const_iterator it = Common::Array::begin(); for (; it != Common::Array::end(); ++it) { const char * obj = *it; @@ -127,7 +127,7 @@ class BaseArray : public BaseArrayBase { } } else { Common::Array::clear(); - persistMgr->transfer("ArraySize", &j); + persistMgr->transferSint32("ArraySize", &j); for (int i = 0; i < j; i++) { const char * obj = nullptr; persistMgr->transfer("", &obj); diff --git a/engines/wintermute/ui/ui_button.cpp b/engines/wintermute/ui/ui_button.cpp index 3cc33f23623d..7526174b64b3 100644 --- a/engines/wintermute/ui/ui_button.cpp +++ b/engines/wintermute/ui/ui_button.cpp @@ -1178,7 +1178,7 @@ bool UIButton::persist(BasePersistenceManager *persistMgr) { UIObject::persist(persistMgr); - persistMgr->transfer(TMEMBER_INT(_align)); + persistMgr->transferSint32(TMEMBER_INT(_align)); persistMgr->transferPtr(TMEMBER_PTR(_backDisable)); persistMgr->transferPtr(TMEMBER_PTR(_backFocus)); persistMgr->transferPtr(TMEMBER_PTR(_backHover)); diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp index 5608bccd466a..8df33f1382ee 100644 --- a/engines/wintermute/ui/ui_edit.cpp +++ b/engines/wintermute/ui/ui_edit.cpp @@ -935,11 +935,11 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) { persistMgr->transferUint32(TMEMBER(_cursorBlinkRate)); persistMgr->transfer(TMEMBER(_cursorChar)); persistMgr->transferPtr(TMEMBER_PTR(_fontSelected)); - persistMgr->transfer(TMEMBER(_frameWidth)); - persistMgr->transfer(TMEMBER(_maxLength)); - persistMgr->transfer(TMEMBER(_scrollOffset)); - persistMgr->transfer(TMEMBER(_selEnd)); - persistMgr->transfer(TMEMBER(_selStart)); + persistMgr->transferSint32(TMEMBER(_frameWidth)); + persistMgr->transferSint32(TMEMBER(_maxLength)); + persistMgr->transferSint32(TMEMBER(_scrollOffset)); + persistMgr->transferSint32(TMEMBER(_selEnd)); + persistMgr->transferSint32(TMEMBER(_selStart)); if (!persistMgr->getIsSaving()) { _cursorVisible = false; diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp index 8dfd95f9f988..27fc91c03ee4 100644 --- a/engines/wintermute/ui/ui_object.cpp +++ b/engines/wintermute/ui/ui_object.cpp @@ -626,7 +626,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_disable)); persistMgr->transferPtr(TMEMBER_PTR(_focusedWidget)); persistMgr->transferPtr(TMEMBER_PTR(_font)); - persistMgr->transfer(TMEMBER(_height)); + persistMgr->transferSint32(TMEMBER(_height)); persistMgr->transferPtr(TMEMBER_PTR(_image)); persistMgr->transferPtr(TMEMBER_PTR(_listenerObject)); persistMgr->transferPtr(TMEMBER_PTR(_listenerParamObject)); @@ -636,9 +636,9 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_sharedFonts)); persistMgr->transferBool(TMEMBER(_sharedImages)); persistMgr->transfer(TMEMBER(_text)); - persistMgr->transfer(TMEMBER_INT(_type)); + persistMgr->transferSint32(TMEMBER_INT(_type)); persistMgr->transferBool(TMEMBER(_visible)); - persistMgr->transfer(TMEMBER(_width)); + persistMgr->transferSint32(TMEMBER(_width)); return STATUS_OK; } diff --git a/engines/wintermute/ui/ui_text.cpp b/engines/wintermute/ui/ui_text.cpp index 117b1ff6cf09..b255e6e790b5 100644 --- a/engines/wintermute/ui/ui_text.cpp +++ b/engines/wintermute/ui/ui_text.cpp @@ -503,8 +503,8 @@ const char *UIText::scToString() { bool UIText::persist(BasePersistenceManager *persistMgr) { UIObject::persist(persistMgr); - persistMgr->transfer(TMEMBER_INT(_textAlign)); - persistMgr->transfer(TMEMBER_INT(_verticalAlign)); + persistMgr->transferSint32(TMEMBER_INT(_textAlign)); + persistMgr->transferSint32(TMEMBER_INT(_verticalAlign)); return STATUS_OK; } diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp index 2aaa3fd1b0c8..842bf700b56a 100644 --- a/engines/wintermute/ui/ui_window.cpp +++ b/engines/wintermute/ui/ui_window.cpp @@ -1268,10 +1268,10 @@ bool UIWindow::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_imageInactive)); persistMgr->transferBool(TMEMBER(_inGame)); persistMgr->transferBool(TMEMBER(_isMenu)); - persistMgr->transfer(TMEMBER_INT(_mode)); + persistMgr->transferSint32(TMEMBER_INT(_mode)); persistMgr->transferPtr(TMEMBER_PTR(_shieldButton)); persistMgr->transferPtr(TMEMBER_PTR(_shieldWindow)); - persistMgr->transfer(TMEMBER_INT(_titleAlign)); + persistMgr->transferSint32(TMEMBER_INT(_titleAlign)); persistMgr->transferRect32(TMEMBER(_titleRect)); persistMgr->transferBool(TMEMBER(_transparent)); persistMgr->transferPtr(TMEMBER_PTR(_viewport)); diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp index 33d10109abe6..d27ca5a1ed9e 100644 --- a/engines/wintermute/video/video_theora_player.cpp +++ b/engines/wintermute/video/video_theora_player.cpp @@ -492,15 +492,15 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); persistMgr->transferUint32(TMEMBER(_savedPos)); - persistMgr->transfer(TMEMBER(_savedState)); + persistMgr->transferSint32(TMEMBER(_savedState)); persistMgr->transfer(TMEMBER(_filename)); persistMgr->transfer(TMEMBER(_alphaFilename)); - persistMgr->transfer(TMEMBER(_posX)); - persistMgr->transfer(TMEMBER(_posY)); + persistMgr->transferSint32(TMEMBER(_posX)); + persistMgr->transferSint32(TMEMBER(_posY)); persistMgr->transferFloat(TMEMBER(_playZoom)); - persistMgr->transfer(TMEMBER_INT(_playbackType)); + persistMgr->transferSint32(TMEMBER_INT(_playbackType)); persistMgr->transferBool(TMEMBER(_looping)); - persistMgr->transfer(TMEMBER(_volume)); + persistMgr->transferSint32(TMEMBER(_volume)); if (!persistMgr->getIsSaving() && (_savedState != THEORA_STATE_NONE)) { initializeSimple(); From 237d3d86ecd84fc2084c7739a6ff054e3b0c829b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 13:54:25 +0100 Subject: [PATCH 012/105] WINTERMUTE: Transfer Char* explicitly when saving/loading. --- engines/wintermute/ad/ad_entity.cpp | 2 +- engines/wintermute/ad/ad_game.cpp | 12 ++++++------ engines/wintermute/ad/ad_item.cpp | 2 +- engines/wintermute/ad/ad_node_state.cpp | 8 ++++---- engines/wintermute/ad/ad_object.cpp | 2 +- engines/wintermute/ad/ad_response.cpp | 4 ++-- engines/wintermute/ad/ad_response_box.cpp | 4 ++-- engines/wintermute/ad/ad_response_context.cpp | 2 +- engines/wintermute/ad/ad_scene_state.cpp | 2 +- engines/wintermute/ad/ad_sentence.cpp | 8 ++++---- engines/wintermute/ad/ad_talk_def.cpp | 4 ++-- engines/wintermute/ad/ad_talk_node.cpp | 6 +++--- engines/wintermute/base/base_object.cpp | 4 ++-- engines/wintermute/base/base_persistence_manager.cpp | 2 +- engines/wintermute/base/base_persistence_manager.h | 2 +- engines/wintermute/base/base_script_holder.cpp | 4 ++-- engines/wintermute/base/base_sprite.cpp | 2 +- engines/wintermute/base/base_sub_frame.cpp | 2 +- engines/wintermute/base/font/base_font_truetype.cpp | 2 +- engines/wintermute/base/particles/part_emitter.cpp | 2 +- engines/wintermute/base/particles/part_particle.cpp | 2 +- engines/wintermute/base/scriptables/script.cpp | 4 ++-- .../wintermute/base/scriptables/script_ext_file.cpp | 2 +- engines/wintermute/base/scriptables/script_value.cpp | 2 +- engines/wintermute/coll_templ.h | 4 ++-- engines/wintermute/ui/ui_edit.cpp | 2 +- engines/wintermute/ui/ui_object.cpp | 2 +- 27 files changed, 47 insertions(+), 47 deletions(-) diff --git a/engines/wintermute/ad/ad_entity.cpp b/engines/wintermute/ad/ad_entity.cpp index a927c17231a6..098da49750a7 100644 --- a/engines/wintermute/ad/ad_entity.cpp +++ b/engines/wintermute/ad/ad_entity.cpp @@ -1092,7 +1092,7 @@ void AdEntity::updatePosition() { bool AdEntity::persist(BasePersistenceManager *persistMgr) { AdTalkHolder::persist(persistMgr); - persistMgr->transfer(TMEMBER(_item)); + persistMgr->transferCharPtr(TMEMBER(_item)); persistMgr->transferPtr(TMEMBER_PTR(_region)); //persistMgr->transfer(TMEMBER(_sprite)); persistMgr->transferSint32(TMEMBER_INT(_subtype)); diff --git a/engines/wintermute/ad/ad_game.cpp b/engines/wintermute/ad/ad_game.cpp index e06d6cda59f3..904b8a541c93 100644 --- a/engines/wintermute/ad/ad_game.cpp +++ b/engines/wintermute/ad/ad_game.cpp @@ -1417,8 +1417,8 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) { _objects.persist(persistMgr); - persistMgr->transfer(TMEMBER(_prevSceneName)); - persistMgr->transfer(TMEMBER(_prevSceneFilename)); + persistMgr->transferCharPtr(TMEMBER(_prevSceneName)); + persistMgr->transferCharPtr(TMEMBER(_prevSceneFilename)); persistMgr->transferPtr(TMEMBER_PTR(_responseBox)); _responsesBranch.persist(persistMgr); @@ -1426,7 +1426,7 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_scene)); _sceneStates.persist(persistMgr); persistMgr->transferBool(TMEMBER(_scheduledFadeIn)); - persistMgr->transfer(TMEMBER(_scheduledScene)); + persistMgr->transferCharPtr(TMEMBER(_scheduledScene)); persistMgr->transferPtr(TMEMBER_PTR(_selectedItem)); persistMgr->transferSint32(TMEMBER_INT(_talkSkipButton)); @@ -1435,14 +1435,14 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_sceneViewport)); persistMgr->transferSint32(TMEMBER_INT(_stateEx)); persistMgr->transferBool(TMEMBER(_initialScene)); - persistMgr->transfer(TMEMBER(_debugStartupScene)); + persistMgr->transferCharPtr(TMEMBER(_debugStartupScene)); persistMgr->transferPtr(TMEMBER_PTR(_invObject)); persistMgr->transferPtr(TMEMBER_PTR(_inventoryOwner)); persistMgr->transferBool(TMEMBER(_tempDisableSaveState)); _items.persist(persistMgr); - persistMgr->transfer(TMEMBER(_itemsFile)); + persistMgr->transferCharPtr(TMEMBER(_itemsFile)); _speechDirs.persist(persistMgr); persistMgr->transferBool(TMEMBER(_smartItemCursor)); @@ -1451,7 +1451,7 @@ bool AdGame::persist(BasePersistenceManager *persistMgr) { _initialScene = false; } - persistMgr->transfer(TMEMBER(_startupScene)); + persistMgr->transferCharPtr(TMEMBER(_startupScene)); return STATUS_OK; diff --git a/engines/wintermute/ad/ad_item.cpp b/engines/wintermute/ad/ad_item.cpp index c8359addd52c..1f19a3eeae3e 100644 --- a/engines/wintermute/ad/ad_item.cpp +++ b/engines/wintermute/ad/ad_item.cpp @@ -793,7 +793,7 @@ bool AdItem::persist(BasePersistenceManager *persistMgr) { persistMgr->transferSint32(TMEMBER(_amountOffsetX)); persistMgr->transferSint32(TMEMBER(_amountOffsetY)); persistMgr->transferSint32(TMEMBER_INT(_amountAlign)); - persistMgr->transfer(TMEMBER(_amountString)); + persistMgr->transferCharPtr(TMEMBER(_amountString)); return STATUS_OK; } diff --git a/engines/wintermute/ad/ad_node_state.cpp b/engines/wintermute/ad/ad_node_state.cpp index 8793c40d6b03..dd07f23762d2 100644 --- a/engines/wintermute/ad/ad_node_state.cpp +++ b/engines/wintermute/ad/ad_node_state.cpp @@ -96,12 +96,12 @@ bool AdNodeState::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); persistMgr->transferBool(TMEMBER(_active)); - persistMgr->transfer(TMEMBER(_name)); - persistMgr->transfer(TMEMBER(_filename)); - persistMgr->transfer(TMEMBER(_cursor)); + persistMgr->transferCharPtr(TMEMBER(_name)); + persistMgr->transferCharPtr(TMEMBER(_filename)); + persistMgr->transferCharPtr(TMEMBER(_cursor)); persistMgr->transferUint32(TMEMBER(_alphaColor)); for (int i = 0; i < 7; i++) { - persistMgr->transfer(TMEMBER(_caption[i])); + persistMgr->transferCharPtr(TMEMBER(_caption[i])); } return STATUS_OK; diff --git a/engines/wintermute/ad/ad_object.cpp b/engines/wintermute/ad/ad_object.cpp index fbeacee05396..3664e0fd8ae1 100644 --- a/engines/wintermute/ad/ad_object.cpp +++ b/engines/wintermute/ad/ad_object.cpp @@ -1043,7 +1043,7 @@ bool AdObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferSint32(TMEMBER_INT(_state)); persistMgr->transferPtr(TMEMBER_PTR(_animSprite)); persistMgr->transferBool(TMEMBER(_sceneIndependent)); - persistMgr->transfer(TMEMBER(_forcedTalkAnimName)); + persistMgr->transferCharPtr(TMEMBER(_forcedTalkAnimName)); persistMgr->transferBool(TMEMBER(_forcedTalkAnimUsed)); persistMgr->transferPtr(TMEMBER_PTR(_tempSprite2)); persistMgr->transferSint32(TMEMBER_INT(_type)); diff --git a/engines/wintermute/ad/ad_response.cpp b/engines/wintermute/ad/ad_response.cpp index 8d8f9a15ada6..e7b4188de693 100644 --- a/engines/wintermute/ad/ad_response.cpp +++ b/engines/wintermute/ad/ad_response.cpp @@ -135,8 +135,8 @@ bool AdResponse::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_iconHover)); persistMgr->transferPtr(TMEMBER_PTR(_iconPressed)); persistMgr->transferSint32(TMEMBER(_iD)); - persistMgr->transfer(TMEMBER(_text)); - persistMgr->transfer(TMEMBER(_textOrig)); + persistMgr->transferCharPtr(TMEMBER(_text)); + persistMgr->transferCharPtr(TMEMBER(_textOrig)); persistMgr->transferSint32(TMEMBER_INT(_responseType)); persistMgr->transferPtr(TMEMBER_PTR(_font)); diff --git a/engines/wintermute/ad/ad_response_box.cpp b/engines/wintermute/ad/ad_response_box.cpp index ea2e22310688..f2e986cbdcf2 100644 --- a/engines/wintermute/ad/ad_response_box.cpp +++ b/engines/wintermute/ad/ad_response_box.cpp @@ -584,8 +584,8 @@ bool AdResponseBox::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_font)); persistMgr->transferPtr(TMEMBER_PTR(_fontHover)); persistMgr->transferBool(TMEMBER(_horizontal)); - persistMgr->transfer(TMEMBER(_lastResponseText)); - persistMgr->transfer(TMEMBER(_lastResponseTextOrig)); + persistMgr->transferCharPtr(TMEMBER(_lastResponseText)); + persistMgr->transferCharPtr(TMEMBER(_lastResponseTextOrig)); _respButtons.persist(persistMgr); persistMgr->transferRect32(TMEMBER(_responseArea)); _responses.persist(persistMgr); diff --git a/engines/wintermute/ad/ad_response_context.cpp b/engines/wintermute/ad/ad_response_context.cpp index dcafc55166f9..44b43a6077be 100644 --- a/engines/wintermute/ad/ad_response_context.cpp +++ b/engines/wintermute/ad/ad_response_context.cpp @@ -50,7 +50,7 @@ AdResponseContext::~AdResponseContext() { ////////////////////////////////////////////////////////////////////////// bool AdResponseContext::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_context)); + persistMgr->transferCharPtr(TMEMBER(_context)); persistMgr->transferSint32(TMEMBER(_id)); return STATUS_OK; diff --git a/engines/wintermute/ad/ad_scene_state.cpp b/engines/wintermute/ad/ad_scene_state.cpp index 58cb5f514a51..a4218751c3f9 100644 --- a/engines/wintermute/ad/ad_scene_state.cpp +++ b/engines/wintermute/ad/ad_scene_state.cpp @@ -56,7 +56,7 @@ AdSceneState::~AdSceneState() { ////////////////////////////////////////////////////////////////////////// bool AdSceneState::persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_filename)); + persistMgr->transferCharPtr(TMEMBER(_filename)); _nodeStates.persist(persistMgr); return STATUS_OK; diff --git a/engines/wintermute/ad/ad_sentence.cpp b/engines/wintermute/ad/ad_sentence.cpp index 514a6b86311b..21ffac5aaff3 100644 --- a/engines/wintermute/ad/ad_sentence.cpp +++ b/engines/wintermute/ad/ad_sentence.cpp @@ -252,17 +252,17 @@ bool AdSentence::persist(BasePersistenceManager *persistMgr) { persistMgr->transferSint32(TMEMBER_INT(_align)); persistMgr->transferSint32(TMEMBER(_currentStance)); persistMgr->transferPtr(TMEMBER_PTR(_currentSprite)); - persistMgr->transfer(TMEMBER(_currentSkelAnim)); + persistMgr->transferCharPtr(TMEMBER(_currentSkelAnim)); persistMgr->transferUint32(TMEMBER(_duration)); persistMgr->transferPtr(TMEMBER_PTR(_font)); persistMgr->transferPoint32(TMEMBER(_pos)); persistMgr->transferPtr(TMEMBER_PTR(_sound)); persistMgr->transferBool(TMEMBER(_soundStarted)); - persistMgr->transfer(TMEMBER(_stances)); + persistMgr->transferCharPtr(TMEMBER(_stances)); persistMgr->transferUint32(TMEMBER(_startTime)); persistMgr->transferPtr(TMEMBER_PTR(_talkDef)); - persistMgr->transfer(TMEMBER(_tempStance)); - persistMgr->transfer(TMEMBER(_text)); + persistMgr->transferCharPtr(TMEMBER(_tempStance)); + persistMgr->transferCharPtr(TMEMBER(_text)); persistMgr->transferSint32(TMEMBER(_width)); persistMgr->transferBool(TMEMBER(_fixedPos)); persistMgr->transferBool(TMEMBER(_freezable)); diff --git a/engines/wintermute/ad/ad_talk_def.cpp b/engines/wintermute/ad/ad_talk_def.cpp index 1fdeed418f87..22e3d7b4cc43 100644 --- a/engines/wintermute/ad/ad_talk_def.cpp +++ b/engines/wintermute/ad/ad_talk_def.cpp @@ -209,9 +209,9 @@ bool AdTalkDef::persist(BasePersistenceManager *persistMgr) { BaseObject::persist(persistMgr); persistMgr->transferPtr(TMEMBER_PTR(_defaultSprite)); - persistMgr->transfer(TMEMBER(_defaultSpriteFilename)); + persistMgr->transferCharPtr(TMEMBER(_defaultSpriteFilename)); persistMgr->transferPtr(TMEMBER_PTR(_defaultSpriteSet)); - persistMgr->transfer(TMEMBER(_defaultSpriteSetFilename)); + persistMgr->transferCharPtr(TMEMBER(_defaultSpriteSetFilename)); _nodes.persist(persistMgr); diff --git a/engines/wintermute/ad/ad_talk_node.cpp b/engines/wintermute/ad/ad_talk_node.cpp index 2afaaec2b4d3..6c0d2e1f068e 100644 --- a/engines/wintermute/ad/ad_talk_node.cpp +++ b/engines/wintermute/ad/ad_talk_node.cpp @@ -191,14 +191,14 @@ bool AdTalkNode::loadBuffer(char *buffer, bool complete) { ////////////////////////////////////////////////////////////////////////// bool AdTalkNode::persist(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_comment)); + persistMgr->transferCharPtr(TMEMBER(_comment)); persistMgr->transferUint32(TMEMBER(_startTime)); persistMgr->transferUint32(TMEMBER(_endTime)); persistMgr->transferBool(TMEMBER(_playToEnd)); persistMgr->transferPtr(TMEMBER_PTR(_sprite)); - persistMgr->transfer(TMEMBER(_spriteFilename)); + persistMgr->transferCharPtr(TMEMBER(_spriteFilename)); persistMgr->transferPtr(TMEMBER_PTR(_spriteSet)); - persistMgr->transfer(TMEMBER(_spriteSetFilename)); + persistMgr->transferCharPtr(TMEMBER(_spriteSetFilename)); return STATUS_OK; } diff --git a/engines/wintermute/base/base_object.cpp b/engines/wintermute/base/base_object.cpp index 2e0c612da0f2..540c7dd16421 100644 --- a/engines/wintermute/base/base_object.cpp +++ b/engines/wintermute/base/base_object.cpp @@ -953,7 +953,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { BaseScriptHolder::persist(persistMgr); for (int i = 0; i < 7; i++) { - persistMgr->transfer(TMEMBER(_caption[i])); + persistMgr->transferCharPtr(TMEMBER(_caption[i])); } persistMgr->transferPtr(TMEMBER_PTR(_activeCursor)); persistMgr->transferUint32(TMEMBER(_alphaColor)); @@ -979,7 +979,7 @@ bool BaseObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_rectSet)); persistMgr->transferBool(TMEMBER(_registrable)); persistMgr->transferBool(TMEMBER(_shadowable)); - persistMgr->transfer(TMEMBER(_soundEvent)); + persistMgr->transferCharPtr(TMEMBER(_soundEvent)); persistMgr->transferBool(TMEMBER(_zoomable)); persistMgr->transferFloat(TMEMBER(_scaleX)); diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index eb2bffeba5bd..b9f52b286d4d 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -682,7 +682,7 @@ bool BasePersistenceManager::transferDouble(const char *name, double *val) { ////////////////////////////////////////////////////////////////////////// // char* -bool BasePersistenceManager::transfer(const char *name, char **val) { +bool BasePersistenceManager::transferCharPtr(const char *name, char **val) { if (_saving) { putString(*val); return STATUS_OK; diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index aba4776a31ab..2735e2bd019d 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -83,7 +83,7 @@ class BasePersistenceManager { bool transferRect32(const char *name, Rect32 *val); bool transferPoint32(const char *name, Point32 *val); bool transfer(const char *name, const char **val); - bool transfer(const char *name, char **val); + bool transferCharPtr(const char *name, char **val); bool transfer(const char *name, Common::String *val); bool transferVector2(const char *name, Vector2 *val); bool transfer(const char *name, AnsiStringArray &Val); diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp index 2e21b3e8aa6d..d59aac44c548 100644 --- a/engines/wintermute/base/base_script_holder.cpp +++ b/engines/wintermute/base/base_script_holder.cpp @@ -280,14 +280,14 @@ bool BaseScriptHolder::saveAsText(BaseDynamicBuffer *buffer, int indent) { bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); - persistMgr->transfer(TMEMBER(_filename)); + persistMgr->transferCharPtr(TMEMBER(_filename)); persistMgr->transferBool(TMEMBER(_freezable)); if (persistMgr->getIsSaving()) { const char *name = getName(); persistMgr->transfer(TMEMBER(name)); } else { char *name; - persistMgr->transfer(TMEMBER(name)); + persistMgr->transferCharPtr(TMEMBER(name)); setName(name); delete[] name; } diff --git a/engines/wintermute/base/base_sprite.cpp b/engines/wintermute/base/base_sprite.cpp index c8e0d8714a62..b1fcb42dcc8f 100644 --- a/engines/wintermute/base/base_sprite.cpp +++ b/engines/wintermute/base/base_sprite.cpp @@ -527,7 +527,7 @@ bool BaseSprite::persist(BasePersistenceManager *persistMgr) { persistMgr->transferSint32(TMEMBER(_currentFrame)); persistMgr->transferBool(TMEMBER(_editorAllFrames)); persistMgr->transferSint32(TMEMBER(_editorBgAlpha)); - persistMgr->transfer(TMEMBER(_editorBgFile)); + persistMgr->transferCharPtr(TMEMBER(_editorBgFile)); persistMgr->transferSint32(TMEMBER(_editorBgOffsetX)); persistMgr->transferSint32(TMEMBER(_editorBgOffsetY)); persistMgr->transferBool(TMEMBER(_editorMuted)); diff --git a/engines/wintermute/base/base_sub_frame.cpp b/engines/wintermute/base/base_sub_frame.cpp index 5d78dfa45682..38eebb067b72 100644 --- a/engines/wintermute/base/base_sub_frame.cpp +++ b/engines/wintermute/base/base_sub_frame.cpp @@ -394,7 +394,7 @@ bool BaseSubFrame::persist(BasePersistenceManager *persistMgr) { persistMgr->transferRect32(TMEMBER(_rect)); persistMgr->transferBool(TMEMBER(_wantsDefaultRect)); - persistMgr->transfer(TMEMBER(_surfaceFilename)); + persistMgr->transferCharPtr(TMEMBER(_surfaceFilename)); persistMgr->transferBool(TMEMBER(_cKDefault)); persistMgr->transferByte(TMEMBER(_cKRed)); persistMgr->transferByte(TMEMBER(_cKGreen)); diff --git a/engines/wintermute/base/font/base_font_truetype.cpp b/engines/wintermute/base/font/base_font_truetype.cpp index ac975883a02b..55481c7c0322 100644 --- a/engines/wintermute/base/font/base_font_truetype.cpp +++ b/engines/wintermute/base/font/base_font_truetype.cpp @@ -525,7 +525,7 @@ bool BaseFontTT::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_isUnderline)); persistMgr->transferBool(TMEMBER(_isStriked)); persistMgr->transferSint32(TMEMBER(_fontHeight)); - persistMgr->transfer(TMEMBER(_fontFile)); + persistMgr->transferCharPtr(TMEMBER(_fontFile)); // persist layers diff --git a/engines/wintermute/base/particles/part_emitter.cpp b/engines/wintermute/base/particles/part_emitter.cpp index 73f98d15d9a1..061352b60fc2 100644 --- a/engines/wintermute/base/particles/part_emitter.cpp +++ b/engines/wintermute/base/particles/part_emitter.cpp @@ -1210,7 +1210,7 @@ bool PartEmitter::persist(BasePersistenceManager *persistMgr) { persistMgr->transferSint32(TMEMBER_INT(_maxBatches)); persistMgr->transferSint32(TMEMBER_INT(_batchesGenerated)); - persistMgr->transfer(TMEMBER(_emitEvent)); + persistMgr->transferCharPtr(TMEMBER(_emitEvent)); persistMgr->transferPtr(TMEMBER_PTR(_owner)); diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp index 7c38f5477b60..5ba1a70240eb 100644 --- a/engines/wintermute/base/particles/part_particle.cpp +++ b/engines/wintermute/base/particles/part_particle.cpp @@ -255,7 +255,7 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) { persistMgr->transfer(TMEMBER(filename)); } else { char *filename; - persistMgr->transfer(TMEMBER(filename)); + persistMgr->transferCharPtr(TMEMBER(filename)); SystemClassRegistry::getInstance()->_disabled = true; setSprite(filename); SystemClassRegistry::getInstance()->_disabled = false; diff --git a/engines/wintermute/base/scriptables/script.cpp b/engines/wintermute/base/scriptables/script.cpp index ebe9758c496a..5e4ae3ea9501 100644 --- a/engines/wintermute/base/scriptables/script.cpp +++ b/engines/wintermute/base/scriptables/script.cpp @@ -1272,7 +1272,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_callStack)); persistMgr->transferSint32(TMEMBER(_currentLine)); persistMgr->transferPtr(TMEMBER_PTR(_engine)); - persistMgr->transfer(TMEMBER(_filename)); + persistMgr->transferCharPtr(TMEMBER(_filename)); persistMgr->transferBool(TMEMBER(_freezable)); persistMgr->transferPtr(TMEMBER_PTR(_globals)); persistMgr->transferUint32(TMEMBER(_iP)); @@ -1284,7 +1284,7 @@ bool ScScript::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_owner)); persistMgr->transferPtr(TMEMBER_PTR(_reg1)); persistMgr->transferBool(TMEMBER(_thread)); - persistMgr->transfer(TMEMBER(_threadEvent)); + persistMgr->transferCharPtr(TMEMBER(_threadEvent)); persistMgr->transferPtr(TMEMBER_PTR(_thisStack)); persistMgr->transferUint32(TMEMBER(_timeSlice)); persistMgr->transferPtr(TMEMBER_PTR(_waitObject)); diff --git a/engines/wintermute/base/scriptables/script_ext_file.cpp b/engines/wintermute/base/scriptables/script_ext_file.cpp index cb1648608bd2..dcd4f01f7cd1 100644 --- a/engines/wintermute/base/scriptables/script_ext_file.cpp +++ b/engines/wintermute/base/scriptables/script_ext_file.cpp @@ -766,7 +766,7 @@ bool SXFile::persist(BasePersistenceManager *persistMgr) { BaseScriptable::persist(persistMgr); - persistMgr->transfer(TMEMBER(_filename)); + persistMgr->transferCharPtr(TMEMBER(_filename)); persistMgr->transferSint32(TMEMBER(_mode)); persistMgr->transferBool(TMEMBER(_textMode)); diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp index 94e66fccb101..e0c8609b0f45 100644 --- a/engines/wintermute/base/scriptables/script_value.cpp +++ b/engines/wintermute/base/scriptables/script_value.cpp @@ -825,7 +825,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) { } persistMgr->transferPtr(TMEMBER_PTR(_valRef)); - persistMgr->transfer(TMEMBER(_valString)); + persistMgr->transferCharPtr(TMEMBER(_valString)); if (!persistMgr->getIsSaving() && !persistMgr->checkVersion(1,2,2)) { // Savegames prior to 1.2.2 stored empty strings as NULL. diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h index d688fa06d040..552cd4a3436e 100644 --- a/engines/wintermute/coll_templ.h +++ b/engines/wintermute/coll_templ.h @@ -97,14 +97,14 @@ class BaseArray : public BaseArrayBase { Common::Array::const_iterator it = Common::Array::begin(); for (; it != Common::Array::end(); ++it) { char * obj = *it; - persistMgr->transfer("", &obj); + persistMgr->transferCharPtr("", &obj); } } else { Common::Array::clear(); persistMgr->transferSint32("ArraySize", &j); for (int i = 0; i < j; i++) { char * obj = nullptr; - persistMgr->transfer("", &obj); + persistMgr->transferCharPtr("", &obj); add(obj); } } diff --git a/engines/wintermute/ui/ui_edit.cpp b/engines/wintermute/ui/ui_edit.cpp index 8df33f1382ee..1f224c79c87d 100644 --- a/engines/wintermute/ui/ui_edit.cpp +++ b/engines/wintermute/ui/ui_edit.cpp @@ -933,7 +933,7 @@ bool UIEdit::persist(BasePersistenceManager *persistMgr) { UIObject::persist(persistMgr); persistMgr->transferUint32(TMEMBER(_cursorBlinkRate)); - persistMgr->transfer(TMEMBER(_cursorChar)); + persistMgr->transferCharPtr(TMEMBER(_cursorChar)); persistMgr->transferPtr(TMEMBER_PTR(_fontSelected)); persistMgr->transferSint32(TMEMBER(_frameWidth)); persistMgr->transferSint32(TMEMBER(_maxLength)); diff --git a/engines/wintermute/ui/ui_object.cpp b/engines/wintermute/ui/ui_object.cpp index 27fc91c03ee4..c04c7cbd28de 100644 --- a/engines/wintermute/ui/ui_object.cpp +++ b/engines/wintermute/ui/ui_object.cpp @@ -635,7 +635,7 @@ bool UIObject::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_parentNotify)); persistMgr->transferBool(TMEMBER(_sharedFonts)); persistMgr->transferBool(TMEMBER(_sharedImages)); - persistMgr->transfer(TMEMBER(_text)); + persistMgr->transferCharPtr(TMEMBER(_text)); persistMgr->transferSint32(TMEMBER_INT(_type)); persistMgr->transferBool(TMEMBER(_visible)); persistMgr->transferSint32(TMEMBER(_width)); From 4e2bec5311c3f1cad1beb21d5c46539fdc8a7747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 13:58:02 +0100 Subject: [PATCH 013/105] WINTERMUTE: Transfer Const Char* explicitly when saving/loading. --- engines/wintermute/base/base_persistence_manager.cpp | 2 +- engines/wintermute/base/base_persistence_manager.h | 2 +- engines/wintermute/base/base_script_holder.cpp | 2 +- engines/wintermute/base/particles/part_force.cpp | 4 ++-- engines/wintermute/base/particles/part_particle.cpp | 2 +- engines/wintermute/base/scriptables/script_value.cpp | 4 ++-- engines/wintermute/coll_templ.h | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index b9f52b286d4d..97907dead7cb 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -699,7 +699,7 @@ bool BasePersistenceManager::transferCharPtr(const char *name, char **val) { ////////////////////////////////////////////////////////////////////////// // const char* -bool BasePersistenceManager::transfer(const char *name, const char **val) { +bool BasePersistenceManager::transferConstChar(const char *name, const char **val) { if (_saving) { putString(*val); return STATUS_OK; diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index 2735e2bd019d..2cb360e4af30 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -82,7 +82,7 @@ class BasePersistenceManager { bool transferByte(const char *name, byte *val); bool transferRect32(const char *name, Rect32 *val); bool transferPoint32(const char *name, Point32 *val); - bool transfer(const char *name, const char **val); + bool transferConstChar(const char *name, const char **val); bool transferCharPtr(const char *name, char **val); bool transfer(const char *name, Common::String *val); bool transferVector2(const char *name, Vector2 *val); diff --git a/engines/wintermute/base/base_script_holder.cpp b/engines/wintermute/base/base_script_holder.cpp index d59aac44c548..5fb0b62713e2 100644 --- a/engines/wintermute/base/base_script_holder.cpp +++ b/engines/wintermute/base/base_script_holder.cpp @@ -284,7 +284,7 @@ bool BaseScriptHolder::persist(BasePersistenceManager *persistMgr) { persistMgr->transferBool(TMEMBER(_freezable)); if (persistMgr->getIsSaving()) { const char *name = getName(); - persistMgr->transfer(TMEMBER(name)); + persistMgr->transferConstChar(TMEMBER(name)); } else { char *name; persistMgr->transferCharPtr(TMEMBER(name)); diff --git a/engines/wintermute/base/particles/part_force.cpp b/engines/wintermute/base/particles/part_force.cpp index 4355e654c064..39d98c182eda 100644 --- a/engines/wintermute/base/particles/part_force.cpp +++ b/engines/wintermute/base/particles/part_force.cpp @@ -49,10 +49,10 @@ PartForce::~PartForce(void) { bool PartForce::persist(BasePersistenceManager *persistMgr) { if (persistMgr->getIsSaving()) { const char *name = getName(); - persistMgr->transfer(TMEMBER(name)); + persistMgr->transferConstChar(TMEMBER(name)); } else { const char *name; - persistMgr->transfer(TMEMBER(name)); + persistMgr->transferConstChar(TMEMBER(name)); setName(name); } persistMgr->transferVector2(TMEMBER(_pos)); diff --git a/engines/wintermute/base/particles/part_particle.cpp b/engines/wintermute/base/particles/part_particle.cpp index 5ba1a70240eb..11470561f079 100644 --- a/engines/wintermute/base/particles/part_particle.cpp +++ b/engines/wintermute/base/particles/part_particle.cpp @@ -252,7 +252,7 @@ bool PartParticle::persist(BasePersistenceManager *persistMgr) { if (persistMgr->getIsSaving()) { const char *filename = _sprite->getFilename(); - persistMgr->transfer(TMEMBER(filename)); + persistMgr->transferConstChar(TMEMBER(filename)); } else { char *filename; persistMgr->transferCharPtr(TMEMBER(filename)); diff --git a/engines/wintermute/base/scriptables/script_value.cpp b/engines/wintermute/base/scriptables/script_value.cpp index e0c8609b0f45..52367646a50e 100644 --- a/engines/wintermute/base/scriptables/script_value.cpp +++ b/engines/wintermute/base/scriptables/script_value.cpp @@ -807,7 +807,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) { _valIter = _valObject.begin(); while (_valIter != _valObject.end()) { str = _valIter->_key.c_str(); - persistMgr->transfer("", &str); + persistMgr->transferConstChar("", &str); persistMgr->transferPtr("", &_valIter->_value); _valIter++; @@ -816,7 +816,7 @@ bool ScValue::persist(BasePersistenceManager *persistMgr) { ScValue *val = nullptr; persistMgr->transferSint32("", &size); for (int i = 0; i < size; i++) { - persistMgr->transfer("", &str); + persistMgr->transferConstChar("", &str); persistMgr->transferPtr("", &val); _valObject[str] = val; diff --git a/engines/wintermute/coll_templ.h b/engines/wintermute/coll_templ.h index 552cd4a3436e..307989e58d37 100644 --- a/engines/wintermute/coll_templ.h +++ b/engines/wintermute/coll_templ.h @@ -123,14 +123,14 @@ class BaseArray : public BaseArrayBase { Common::Array::const_iterator it = Common::Array::begin(); for (; it != Common::Array::end(); ++it) { const char * obj = *it; - persistMgr->transfer("", &obj); + persistMgr->transferConstChar("", &obj); } } else { Common::Array::clear(); persistMgr->transferSint32("ArraySize", &j); for (int i = 0; i < j; i++) { const char * obj = nullptr; - persistMgr->transfer("", &obj); + persistMgr->transferConstChar("", &obj); add(obj); } } From cc33cf74aee6f024c4f1f4dec95dea4c72b3139d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 13:59:55 +0100 Subject: [PATCH 014/105] WINTERMUTE: Transfer Common::Strings explicitly when saving/loading. --- engines/wintermute/ad/ad_actor.cpp | 10 +++++----- engines/wintermute/base/base_persistence_manager.cpp | 2 +- engines/wintermute/base/base_persistence_manager.h | 2 +- engines/wintermute/base/gfx/base_renderer.cpp | 4 ++-- engines/wintermute/base/sound/base_sound.cpp | 2 +- engines/wintermute/video/video_theora_player.cpp | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/engines/wintermute/ad/ad_actor.cpp b/engines/wintermute/ad/ad_actor.cpp index e440a13d57b4..33ad39b4113d 100644 --- a/engines/wintermute/ad/ad_actor.cpp +++ b/engines/wintermute/ad/ad_actor.cpp @@ -1337,11 +1337,11 @@ bool AdActor::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_walkSprite)); persistMgr->transferPtr(TMEMBER_PTR(_animSprite2)); - persistMgr->transfer(TMEMBER(_talkAnimName)); - persistMgr->transfer(TMEMBER(_idleAnimName)); - persistMgr->transfer(TMEMBER(_walkAnimName)); - persistMgr->transfer(TMEMBER(_turnLeftAnimName)); - persistMgr->transfer(TMEMBER(_turnRightAnimName)); + persistMgr->transferString(TMEMBER(_talkAnimName)); + persistMgr->transferString(TMEMBER(_idleAnimName)); + persistMgr->transferString(TMEMBER(_walkAnimName)); + persistMgr->transferString(TMEMBER(_turnLeftAnimName)); + persistMgr->transferString(TMEMBER(_turnRightAnimName)); _anims.persist(persistMgr); diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 97907dead7cb..12ac1fff1e9a 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -716,7 +716,7 @@ bool BasePersistenceManager::transferConstChar(const char *name, const char **va ////////////////////////////////////////////////////////////////////////// // Common::String -bool BasePersistenceManager::transfer(const char *name, Common::String *val) { +bool BasePersistenceManager::transferString(const char *name, Common::String *val) { if (_saving) { putString(val->c_str()); return STATUS_OK; diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index 2cb360e4af30..3d27fde7e413 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -84,7 +84,7 @@ class BasePersistenceManager { bool transferPoint32(const char *name, Point32 *val); bool transferConstChar(const char *name, const char **val); bool transferCharPtr(const char *name, char **val); - bool transfer(const char *name, Common::String *val); + bool transferString(const char *name, Common::String *val); bool transferVector2(const char *name, Vector2 *val); bool transfer(const char *name, AnsiStringArray &Val); BasePersistenceManager(const char *savePrefix = nullptr, bool deleteSingleton = false); diff --git a/engines/wintermute/base/gfx/base_renderer.cpp b/engines/wintermute/base/gfx/base_renderer.cpp index 6bc27f06f478..858a7fc6dcf1 100644 --- a/engines/wintermute/base/gfx/base_renderer.cpp +++ b/engines/wintermute/base/gfx/base_renderer.cpp @@ -173,8 +173,8 @@ void BaseRenderer::endSaveLoad() { } void BaseRenderer::persistSaveLoadImages(BasePersistenceManager *persistMgr) { - persistMgr->transfer(TMEMBER(_loadImageName)); - persistMgr->transfer(TMEMBER(_saveImageName)); + persistMgr->transferString(TMEMBER(_loadImageName)); + persistMgr->transferString(TMEMBER(_saveImageName)); persistMgr->transferSint32(TMEMBER(_saveImageX)); persistMgr->transferSint32(TMEMBER(_saveImageY)); persistMgr->transferSint32(TMEMBER(_loadImageX)); diff --git a/engines/wintermute/base/sound/base_sound.cpp b/engines/wintermute/base/sound/base_sound.cpp index 11408c27c38f..f9cd59e4fb2a 100644 --- a/engines/wintermute/base/sound/base_sound.cpp +++ b/engines/wintermute/base/sound/base_sound.cpp @@ -166,7 +166,7 @@ bool BaseSound::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); - persistMgr->transfer(TMEMBER(_soundFilename)); + persistMgr->transferString(TMEMBER(_soundFilename)); persistMgr->transferBool(TMEMBER(_soundLooping)); persistMgr->transferBool(TMEMBER(_soundPaused)); persistMgr->transferBool(TMEMBER(_soundFreezePaused)); diff --git a/engines/wintermute/video/video_theora_player.cpp b/engines/wintermute/video/video_theora_player.cpp index d27ca5a1ed9e..44eecf93a8e7 100644 --- a/engines/wintermute/video/video_theora_player.cpp +++ b/engines/wintermute/video/video_theora_player.cpp @@ -493,8 +493,8 @@ bool VideoTheoraPlayer::persist(BasePersistenceManager *persistMgr) { persistMgr->transferPtr(TMEMBER_PTR(_gameRef)); persistMgr->transferUint32(TMEMBER(_savedPos)); persistMgr->transferSint32(TMEMBER(_savedState)); - persistMgr->transfer(TMEMBER(_filename)); - persistMgr->transfer(TMEMBER(_alphaFilename)); + persistMgr->transferString(TMEMBER(_filename)); + persistMgr->transferString(TMEMBER(_alphaFilename)); persistMgr->transferSint32(TMEMBER(_posX)); persistMgr->transferSint32(TMEMBER(_posY)); persistMgr->transferFloat(TMEMBER(_playZoom)); From c0f9455b281d62e8089c47ddbed04135c6ed5f20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Einar=20Johan=20Tr=C3=B8an=20S=C3=B8ma=CC=8Aen?= Date: Tue, 5 Nov 2013 14:02:54 +0100 Subject: [PATCH 015/105] WINTERMUTE: Remove unused transfer-function. (AnsiStringArray). --- .../base/base_persistence_manager.cpp | 31 ------------------- .../base/base_persistence_manager.h | 1 - 2 files changed, 32 deletions(-) diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 12ac1fff1e9a..3d0fc0e925e5 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -736,37 +736,6 @@ bool BasePersistenceManager::transferString(const char *name, Common::String *va } } -////////////////////////////////////////////////////////////////////////// -bool BasePersistenceManager::transfer(const char *name, AnsiStringArray &val) { - size_t size; - - if (_saving) { - size = val.size(); - _saveStream->writeUint32LE(size); - - for (AnsiStringArray::iterator it = val.begin(); it != val.end(); ++it) { - putString((*it).c_str()); - } - } else { - val.clear(); - size = _loadStream->readUint32LE(); - - for (size_t i = 0; i < size; i++) { - char *str = getString(); - if (_loadStream->err()) { - delete[] str; - return STATUS_FAILED; - } - if (str) { - val.push_back(str); - } - delete[] str; - } - } - - return STATUS_OK; -} - ////////////////////////////////////////////////////////////////////////// // BYTE bool BasePersistenceManager::transferByte(const char *name, byte *val) { diff --git a/engines/wintermute/base/base_persistence_manager.h b/engines/wintermute/base/base_persistence_manager.h index 3d27fde7e413..43259b26ff8f 100644 --- a/engines/wintermute/base/base_persistence_manager.h +++ b/engines/wintermute/base/base_persistence_manager.h @@ -86,7 +86,6 @@ class BasePersistenceManager { bool transferCharPtr(const char *name, char **val); bool transferString(const char *name, Common::String *val); bool transferVector2(const char *name, Vector2 *val); - bool transfer(const char *name, AnsiStringArray &Val); BasePersistenceManager(const char *savePrefix = nullptr, bool deleteSingleton = false); virtual ~BasePersistenceManager(); bool checkVersion(byte verMajor, byte verMinor, byte verBuild); From 974348c77130867151a7443aad53ec18ba82fd00 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Nov 2013 08:19:02 -0500 Subject: [PATCH 016/105] TSAGE: Implemented R2R shadowing effect --- engines/tsage/core.cpp | 19 ++++++++-- engines/tsage/core.h | 2 +- engines/tsage/graphics.cpp | 17 ++++++--- engines/tsage/graphics.h | 3 +- engines/tsage/ringworld2/ringworld2_logic.cpp | 20 ----------- .../tsage/ringworld2/ringworld2_scenes1.cpp | 36 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes1.h | 2 +- .../tsage/ringworld2/ringworld2_scenes3.cpp | 34 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 4 +-- 9 files changed, 72 insertions(+), 65 deletions(-) diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp index 553c3216e699..fd36d4fb0155 100644 --- a/engines/tsage/core.cpp +++ b/engines/tsage/core.cpp @@ -2735,9 +2735,24 @@ void SceneObject::draw() { Rect destRect = _bounds; destRect.translate(-g_globals->_sceneManager._scene->_sceneBounds.left, -g_globals->_sceneManager._scene->_sceneBounds.top); - Region *priorityRegion = g_globals->_sceneManager._scene->_priorities.find(_priority); GfxSurface frame = getFrame(); - g_globals->gfxManager().copyFrom(frame, destRect, priorityRegion); + Region *priorityRegion = g_globals->_sceneManager._scene->_priorities.find(_priority); + + if (g_vm->getGameID() == GType_Ringworld2) { + switch (_effect) { + case EFFECT_SHADOW_MAP: { + assert(_shadowMap); + + GLOBALS.gfxManager().getSurface().copyFrom(frame, frame.getBounds(), + destRect, priorityRegion, _shadowMap); + return; + } + default: + break; + } + } + + GLOBALS.gfxManager().copyFrom(frame, destRect, priorityRegion); } /** diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 59711513d6da..79ce1e8a90b1 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -467,7 +467,7 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD }; enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, - EFFECT_4 = 4, EFFECT_SHADOW = 5, EFFECT_6 = 6 }; + EFFECT_4 = 4, EFFECT_SHADOW_MAP = 5, EFFECT_6 = 6 }; class SceneObject; diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp index 32810626e7a2..f00dcf03783d 100644 --- a/engines/tsage/graphics.cpp +++ b/engines/tsage/graphics.cpp @@ -559,9 +559,11 @@ static GfxSurface ResizeSurface(GfxSurface &src, int xSize, int ySize, int trans } /** - * Copys an area from one GfxSurface to another + * Copys an area from one GfxSurface to another. + * */ -void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Region *priorityRegion) { +void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, + Region *priorityRegion, const byte *shadowMap) { GfxSurface srcImage; if (srcBounds.isEmpty()) return; @@ -631,8 +633,15 @@ void GfxSurface::copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Regi if (!priorityRegion || !priorityRegion->contains(Common::Point( xp + g_globals->_sceneManager._scene->_sceneBounds.left, destBounds.top + y + g_globals->_sceneManager._scene->_sceneBounds.top))) { - if (*tempSrc != src._transColor) - *tempDest = *tempSrc; + if (*tempSrc != src._transColor) { + if (shadowMap) { + // Using a shadow map, so translate the dest pixel using the mapping array + *tempDest = shadowMap[*tempDest]; + } else { + // Otherwise, it's a standard pixel copy + *tempDest = *tempSrc; + } + } } ++tempSrc; ++tempDest; diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h index 497cd76ad63f..d31bac0738d7 100644 --- a/engines/tsage/graphics.h +++ b/engines/tsage/graphics.h @@ -105,7 +105,8 @@ class GfxSurface { void setBounds(const Rect &bounds) { _bounds = bounds; } const Rect &getBounds() const { return _bounds; } - void copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, Region *priorityRegion = NULL); + void copyFrom(GfxSurface &src, Rect srcBounds, Rect destBounds, + Region *priorityRegion = NULL, const byte *shadowMap = NULL); void copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion = NULL) { copyFrom(src, src.getBounds(), destBounds, priorityRegion); } diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index 5cda153e595c..b495a7e052c9 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -1326,26 +1326,6 @@ bool SceneActor::startAction(CursorType action, Event &event) { GfxSurface SceneActor::getFrame() { GfxSurface frame = SceneObject::getFrame(); - // TODO: Proper effects handling - switch (_effect) { - case EFFECT_NONE: - case EFFECT_SHADOW: - // TODO: Figure out purpose of setting image flags to 64, and getting - // scene priorities -1 or _shade - break; - case EFFECT_SHADED: - // TODO: Transposing using R2_GLOBALS._pixelArrayMap - break; - case EFFECT_2: - // No effect - break; - case EFFECT_4: - break; - default: - // TODO: Default effect - break; - } - return frame; } diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 1247000cd28b..1b75ed4fdd49 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -868,7 +868,7 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _palette1.loadPalette(1101); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.disableControl(); - R2_GLOBALS._player._effect = EFFECT_SHADOW; + R2_GLOBALS._player._effect = EFFECT_SHADOW_MAP; R2_GLOBALS._player._shadowMap = _shadowPaletteMap; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setObjectWrapper(NULL); @@ -894,7 +894,7 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { _shipFormationShadow.setup(1102, 6, 2); _shipFormationShadow._moveRate = 30; _shipFormationShadow._moveDiff.x = 2; - _shipFormationShadow._effect = EFFECT_SHADOW; + _shipFormationShadow._effect = EFFECT_SHADOW_MAP; _shipFormationShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._sound1.play(86); @@ -1084,8 +1084,7 @@ void Scene1100::signal() { case 11: { setAction(&_sequenceManager1, this, 1106, &_animation, &_laserShot, &_leftImpacts, NULL); - // CHECKME: Shadow effect should be set next to shadowmap - R2_GLOBALS._player._effect = EFFECT_SHADOW; + R2_GLOBALS._player._effect = EFFECT_SHADOW_MAP; R2_GLOBALS._player.setup(1102, 3, 2); R2_GLOBALS._player.setPosition(Common::Point(-50, 131)); R2_GLOBALS._sound2.play(84); @@ -6909,7 +6908,7 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { _starshipShadow.postInit(); _starshipShadow.setup(1401, 1, 1); - _starshipShadow._effect = EFFECT_SHADOW; + _starshipShadow._effect = EFFECT_SHADOW_MAP; _starshipShadow.fixPriority(10); _starshipShadow._shadowMap = _shadowPaletteMap; @@ -6921,7 +6920,7 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene != 1010) { _smallShipShadow.postInit(); _smallShipShadow.setup(1401, 2, 1); - _smallShipShadow._effect = EFFECT_SHADOW; + _smallShipShadow._effect = EFFECT_SHADOW_MAP; _smallShipShadow.fixPriority(10); _smallShipShadow._shadowMap = _shadowPaletteMap; @@ -10570,17 +10569,17 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(134); - _actor1.postInit(); - _actor1.fixPriority(10); + _playerShadow.postInit(); + _playerShadow.fixPriority(10); if (R2_GLOBALS._player._characterIndex == R2_QUINN) - _actor1.setVisage(1112); + _playerShadow.setVisage(1112); else - _actor1.setVisage(1111); + _playerShadow.setVisage(1111); - _actor1._effect = EFFECT_SHADOW; - _actor1._shadowMap = _shadowPaletteMap; - R2_GLOBALS._player._linkedActor = &_actor1; + _playerShadow._effect = EFFECT_SHADOW_MAP; + _playerShadow._shadowMap = _shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_playerShadow; _actor2.postInit(); _actor2.fixPriority(10); @@ -10589,7 +10588,7 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { else _actor2.setVisage(1112); - _actor2._effect = EFFECT_SHADOW; + _actor2._effect = EFFECT_SHADOW_MAP; _actor2._shadowMap = _shadowPaletteMap; _actor12._linkedActor = &_actor2; @@ -10611,7 +10610,7 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { _ledgeHopper.setPosition(Common::Point(220, 137)); _ledgeHopper.setDetails(1700, 6, -1, -1, 1, (SceneItem *) NULL); - _actor1.hide(); + _playerShadow.hide(); _actor2.hide(); R2_GLOBALS._events.setCursor(CURSOR_WALK); _stripManager.start(539, this); @@ -10788,7 +10787,8 @@ void Scene1700::signal() { case 40: R2_GLOBALS._player.disableControl(); _sceneMode = 1704; - setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_actor12, &_actor10, &_ledgeHopper, &_actor1, &_actor2, NULL); + setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_actor12, + &_actor10, &_ledgeHopper, &_playerShadow, &_actor2, NULL); break; case 50: if (R2_GLOBALS._player._characterIndex == R2_QUINN) @@ -11527,7 +11527,7 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _playerShadow.setVisage(1110); - _playerShadow._effect = EFFECT_SHADOW; + _playerShadow._effect = EFFECT_SHADOW_MAP; _playerShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_playerShadow; @@ -11539,7 +11539,7 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { else _companionShadow.setVisage(1111); - _companionShadow._effect = EFFECT_SHADOW; + _companionShadow._effect = EFFECT_SHADOW_MAP; _companionShadow._shadowMap = _shadowPaletteMap; _companion._linkedActor = &_companionShadow; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index c9b6244cb44e..48088981f2dd 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -749,7 +749,7 @@ class Scene1700 : public SceneExt { SpeakerSeeker _seekerSpeaker; NamedHotspot _item1; Item2 _item2; - SceneActor _actor1; + SceneActor _playerShadow; SceneActor _actor2; SceneActor _slabWest; SceneActor _slabEast; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index dd01c3d8d9b3..6eda26db2fc0 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -5204,18 +5204,20 @@ void Scene3800::enterArea() { R2_GLOBALS._player.setStrip(3); R2_GLOBALS._player.changeZoom(-1); R2_GLOBALS._player._moveDiff = Common::Point(3, 2); - _balloonQuinn.postInit(); - _balloonQuinn.fixPriority(10); - _balloonQuinn.changeZoom(-1); - _balloonQuinn.setVisage(1110); - _balloonQuinn._effect = EFFECT_SHADOW; - _balloonQuinn._shadowMap = this->_shadowPaletteMap; - R2_GLOBALS._player._linkedActor = &_balloonQuinn; + + _quinnShadow.postInit(); + _quinnShadow.fixPriority(10); + _quinnShadow.changeZoom(-1); + _quinnShadow.setVisage(1110); + _quinnShadow._effect = EFFECT_SHADOW_MAP; + _quinnShadow._shadowMap = this->_shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_quinnShadow; + switch (R2_GLOBALS._sceneManager._previousScene) { case 2600: _balloon.postInit(); _harness.postInit(); - _balloonQuinn.hide(); + _quinnShadow.hide(); _sceneMode = 3800; setAction(&_sequenceManager1, this, 3800, &R2_GLOBALS._player, &_balloon, &_harness, NULL); @@ -5361,7 +5363,7 @@ void Scene3800::signal() { g_globals->_sceneManager.changeScene(3900); break; case 3800: - _balloonQuinn.show(); + _quinnShadow.show(); _balloon.remove(); _harness.remove(); R2_GLOBALS._player.enableControl(); @@ -5514,13 +5516,13 @@ void Scene3900::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.changeZoom(-1); R2_GLOBALS._player._moveDiff = Common::Point(3, 2); - _linkedQuinn.postInit(); - _linkedQuinn.fixPriority(10); - _linkedQuinn.changeZoom(-1); - _linkedQuinn.setVisage(1110); - _linkedQuinn._effect = EFFECT_SHADOW; - _linkedQuinn._shadowMap = _shadowPaletteMap; - R2_GLOBALS._player._linkedActor = &_linkedQuinn; + _quinnShadow.postInit(); + _quinnShadow.fixPriority(10); + _quinnShadow.changeZoom(-1); + _quinnShadow.setVisage(1110); + _quinnShadow._effect = EFFECT_SHADOW_MAP; + _quinnShadow._shadowMap = _shadowPaletteMap; + R2_GLOBALS._player._linkedActor = &_quinnShadow; if ((R2_GLOBALS._desertPreviousDirection == 2) && (R2_GLOBALS._sceneManager._previousScene != 2700)) { // loadScene(3825); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 48236ee300f8..6191b750be41 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -786,7 +786,7 @@ class Scene3800 : public SceneExt { public: SceneObject _balloon; SceneObject _harness; - SceneActor _balloonQuinn; + SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; @@ -833,7 +833,7 @@ class Scene3900 : public SceneExt { virtual void changeScene(); }; public: - SceneActor _linkedQuinn; + SceneActor _quinnShadow; NamedHotspot _background; NorthExit _northExit; EastExit _eastExit; From 23314494d0a0a6858dc8b278e83bdb137917440e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Nov 2013 08:41:23 -0500 Subject: [PATCH 017/105] TSAGE: Renaming of effect 6, and removed unused effect 4 entry --- engines/tsage/core.h | 3 +- .../tsage/ringworld2/ringworld2_scenes1.cpp | 30 ++++++------ .../tsage/ringworld2/ringworld2_scenes3.cpp | 48 +++++++++---------- 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 79ce1e8a90b1..183af096dd44 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -466,8 +466,9 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD ANIM_MODE_9 = 9 }; +// Actor effect enumeration used in Return to Ringworld 2 enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, - EFFECT_4 = 4, EFFECT_SHADOW_MAP = 5, EFFECT_6 = 6 }; + EFFECT_SHADOW_MAP = 5, EFFECT_SHADED2 = 6 }; class SceneObject; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 1b75ed4fdd49..9ee95b13c6b0 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -1038,12 +1038,12 @@ void Scene1100::signal() { break; case 5: _runningGuy1.postInit(); - _runningGuy1._effect = EFFECT_6; + _runningGuy1._effect = EFFECT_SHADED2; _runningGuy1.setup(1103, 3, 1); _runningGuy1._moveRate = 30; _runningGuy2.postInit(); - _runningGuy2._effect = EFFECT_6; + _runningGuy2._effect = EFFECT_SHADED2; _runningGuy2.setup(1103, 4, 1); _runningGuy2._moveRate = 25; @@ -7814,7 +7814,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_seekerSpeaker); R2_GLOBALS._player.postInit(); - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) R2_GLOBALS._player.setup(1500, 3, 1); @@ -9020,7 +9020,7 @@ void Scene1550::enterArea() { (R2_GLOBALS._scene1550JunkLocations[i + 2] != 0)) { tmpIdx = R2_GLOBALS._scene1550JunkLocations[i + 3]; _junk[di].postInit(); - _junk[di]._effect = EFFECT_6; + _junk[di]._effect = EFFECT_SHADED2; _junk[di]._shade = 0; _junk[di]._fieldA4 = tmpIdx; _junk[di]._junkNumber = i; @@ -9264,7 +9264,7 @@ void Scene1550::enterArea() { if (R2_GLOBALS._s1550PlayerArea[R2_QUINN] == R2_GLOBALS._s1550PlayerArea[R2_SEEKER]) { _companion.postInit(); - _companion._effect = EFFECT_6; + _companion._effect = EFFECT_SHADED2; _companion.changeZoom(-1); assert((_field419 >= 1550) && (_field419 <= 2008)); @@ -12005,8 +12005,8 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { } if (R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] == 1850) { - R2_GLOBALS._player._effect = EFFECT_6; - _companion._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; + _companion._effect = EFFECT_SHADED2; if (R2_GLOBALS.getFlag(31)) { R2_GLOBALS._player._shade = 0; _companion._shade = 0; @@ -12042,7 +12042,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor3.setup(1853, 3, 1); _actor3.setPosition(Common::Point(122, 113)); _actor3.fixPriority(114); - _actor3._effect = EFFECT_6; + _actor3._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12056,7 +12056,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor4.setup(1853, 3, 2); _actor4.setPosition(Common::Point(139, 111)); _actor4.fixPriority(114); - _actor4._effect = EFFECT_6; + _actor4._effect = EFFECT_SHADED2; // Still totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12086,7 +12086,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor3.setup(1853, 3, 1); _actor3.setPosition(Common::Point(122, 113)); _actor3.fixPriority(114); - _actor3._effect = EFFECT_6; + _actor3._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12100,7 +12100,7 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _actor4.setup(1853, 3, 2); _actor4.setPosition(Common::Point(139, 111)); _actor4.fixPriority(114); - _actor4._effect = EFFECT_6; + _actor4._effect = EFFECT_SHADED2; // Again, useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12225,10 +12225,10 @@ void Scene1850::remove() { void Scene1850::signal() { switch (_sceneMode) { case 10: - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 6; - _companion._effect = EFFECT_6; + _companion._effect = EFFECT_SHADED2; _companion._shade = 6; R2_GLOBALS._walkRegions.disableRegion(5); @@ -12407,7 +12407,7 @@ void Scene1850::signal() { break; case 1877: _actor3.postInit(); - _actor3._effect = EFFECT_6; + _actor3._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); @@ -12416,7 +12416,7 @@ void Scene1850::signal() { } _actor4.postInit(); - _actor4._effect = EFFECT_6; + _actor4._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 6eda26db2fc0..3f8f13d69059 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -417,7 +417,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { case R2_PILLOW: R2_GLOBALS._player.disableControl(); scene->_water.postInit(); - scene->_water._effect = EFFECT_6; + scene->_water._effect = EFFECT_SHADED2; scene->_water._shade = 3; R2_GLOBALS._player.disableControl(); scene->_sceneMode = 3158; @@ -428,7 +428,7 @@ bool Scene3150::Toilet::startAction(CursorType action, Event &event) { (R2_INVENTORY.getObjectScene(R2_SUPERCONDUCTOR_WIRE) == 3150) && (R2_GLOBALS.getFlag(75))) { scene->_foodTray.postInit(); - scene->_foodTray._effect = EFFECT_6; + scene->_foodTray._effect = EFFECT_SHADED2; scene->_foodTray._shade = 3; scene->_foodTray.setDetails(3150, 30, -1, -1, 2, (SceneItem *)NULL); @@ -579,7 +579,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _guard.postInit(); _guard.setup(3154, 1, 16); _guard.setPosition(Common::Point(104, 129)); - _guard._effect = EFFECT_6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 3; _guard.setDetails(3150, 24, -1, -1, -1, (SceneItem *)NULL); } @@ -609,7 +609,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { } _water.fixPriority(110); _water.setPosition(Common::Point(83, 88)); - _water._effect = EFFECT_6; + _water._effect = EFFECT_SHADED2; _water._shade = 3; } else { _water.setup(3152, 7, 3); @@ -629,7 +629,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _bulbOrWire.setup(3152, 7, 3); _bulbOrWire.setPosition(Common::Point(70, 55)); _bulbOrWire.fixPriority(111); - _bulbOrWire._effect = EFFECT_6; + _bulbOrWire._effect = EFFECT_SHADED2; _bulbOrWire._shade = 5; } @@ -639,7 +639,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { _foodTray.setup(3152, 7, 8); _foodTray.setPosition(Common::Point(82, 92)); _foodTray.fixPriority(111); - _foodTray._effect = EFFECT_6; + _foodTray._effect = EFFECT_SHADED2; _foodTray._shade = 3; } else { _foodTray.setup(3152, 7, 7); @@ -664,7 +664,7 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { case 0: _sceneMode = 3150; _guard.postInit(); - _guard._effect = EFFECT_6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 5; setAction(&_sequenceManager, this, 3150, &R2_GLOBALS._player, &_guard, &_doorBars, NULL); break; @@ -689,12 +689,12 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { ++R2_GLOBALS._v56AA0; _sceneMode = 3156; _guard.postInit(); - _guard._effect = EFFECT_6; + _guard._effect = EFFECT_SHADED2; _guard._shade = 3; _doorBars.postInit(); _foodTray.postInit(); - _foodTray._effect = EFFECT_6; + _foodTray._effect = EFFECT_SHADED2; _foodTray._shade = 3; setAction(&_sequenceManager, this, 3156, &R2_GLOBALS._player, &_guard, &_doorBars, &_foodTray, NULL); @@ -1274,7 +1274,7 @@ void Scene3250::signal() { void Scene3250::dispatch() { if ((R2_GLOBALS._player._visage == 3250) && (R2_GLOBALS._player._strip == 3) && (R2_GLOBALS._player._effect == 0)) { - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 6; } @@ -1356,7 +1356,7 @@ void Scene3255::dispatch() { else _ghoul1._effect = EFFECT_SHADED; } else { - _ghoul1._effect = EFFECT_6; + _ghoul1._effect = EFFECT_SHADED2; _ghoul1._shade = 6; } @@ -1366,7 +1366,7 @@ void Scene3255::dispatch() { else _ghoul2._effect = EFFECT_SHADED; } else { - _ghoul2._effect = EFFECT_6; + _ghoul2._effect = EFFECT_SHADED2; _ghoul2._shade = 6; } @@ -1376,14 +1376,14 @@ void Scene3255::dispatch() { else _ghoul3._effect = EFFECT_SHADED; } else { - _ghoul3._effect = EFFECT_6; + _ghoul3._effect = EFFECT_SHADED2; _ghoul3._shade = 6; } } if ((R2_GLOBALS._player._position.x > 250) && (R2_GLOBALS._player._shade == 1)) { - R2_GLOBALS._player._effect = EFFECT_6; - _quinn._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; + _quinn._effect = EFFECT_SHADED2; } Scene::dispatch(); } @@ -1925,7 +1925,7 @@ void Scene3375::DownExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -1947,7 +1947,7 @@ void Scene3375::RightExit::changeScene() { Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene; _moving = false; - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; R2_GLOBALS._player._shade = 4; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -2183,11 +2183,11 @@ void Scene3375::signal() { _sceneMode = _newSceneMode; _newSceneMode = 0; - _companion1._effect = EFFECT_6; + _companion1._effect = EFFECT_SHADED2; _companion1._shade = 4; - _companion2._effect = EFFECT_6; + _companion2._effect = EFFECT_SHADED2; _companion2._shade = 4; - _webbster._effect = EFFECT_6; + _webbster._effect = EFFECT_SHADED2; _webbster._shade = 4; enterArea(_sceneMode); break; @@ -2212,22 +2212,22 @@ void Scene3375::signal() { void Scene3375::dispatch() { if ((R2_GLOBALS._player._position.y >= 168) && (R2_GLOBALS._player._effect == 1)) - R2_GLOBALS._player._effect = EFFECT_6; + R2_GLOBALS._player._effect = EFFECT_SHADED2; else if ((R2_GLOBALS._player._position.y < 168) && (R2_GLOBALS._player._effect == 6)) R2_GLOBALS._player._effect = EFFECT_SHADED; if ((_companion1._position.y >= 168) && (_companion1._effect == 1)) - _companion1._effect = EFFECT_6; + _companion1._effect = EFFECT_SHADED2; else if ((_companion1._position.y < 168) && (_companion1._effect == 6)) _companion1._effect = EFFECT_SHADED; if ((_companion2._position.y >= 168) && (_companion2._effect == 1)) - _companion2._effect = EFFECT_6; + _companion2._effect = EFFECT_SHADED2; else if ((_companion2._position.y < 168) && (_companion2._effect == 6)) _companion2._effect = EFFECT_SHADED; if ((_webbster._position.y >= 168) && (_webbster._effect == 1)) - _webbster._effect = EFFECT_6; + _webbster._effect = EFFECT_SHADED2; else if ((_webbster._position.y < 168) && (_webbster._effect == 6)) _webbster._effect = EFFECT_SHADED; From bb018a908c2dbce8e7f1009ffe9e3581c307dbbc Mon Sep 17 00:00:00 2001 From: urukgit Date: Tue, 5 Nov 2013 20:28:10 +0100 Subject: [PATCH 018/105] AVALANCHE: Remove unnecessary function call. --- engines/avalanche/avalanche.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index e373ab58c321..aa0d51524dc2 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -57,8 +57,6 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription * _sound = nullptr; _platform = gd->desc.platform; - - initVariables(); } AvalancheEngine::~AvalancheEngine() { From e9c5265d45dd83913fb4d65b8980fbf504252ff7 Mon Sep 17 00:00:00 2001 From: urukgit Date: Tue, 5 Nov 2013 20:45:50 +0100 Subject: [PATCH 019/105] AVALANCHE: Repair initVariables(), restore the call of it. We don't have to call resetVariables() here. It's called in newGame() as well as in loadGame(). Calling it here would end up in calling setDirection(), but we didn't even istaniate _animation here yet. --- engines/avalanche/avalanche.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index aa0d51524dc2..b45f17886d01 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -57,6 +57,7 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription * _sound = nullptr; _platform = gd->desc.platform; + initVariables(); } AvalancheEngine::~AvalancheEngine() { @@ -88,8 +89,6 @@ AvalancheEngine::~AvalancheEngine() { } void AvalancheEngine::initVariables() { - resetVariables(); - for (int i = 0; i < 31; i++) { _also[i][0] = nullptr; _also[i][1] = nullptr; From b041e322a4a9533be3ee0a35d8b4e51c47f17eda Mon Sep 17 00:00:00 2001 From: urukgit Date: Tue, 5 Nov 2013 21:12:50 +0100 Subject: [PATCH 020/105] AVALANCHE: Repair display of playtime. --- engines/avalanche/avalanche.cpp | 13 ++++++--- engines/avalanche/avalanche.h | 12 ++++++--- engines/avalanche/avalot.cpp | 9 ++++--- engines/avalanche/background.cpp | 46 ++++++++++++++++---------------- engines/avalanche/parser.cpp | 8 ++++-- engines/avalanche/timer.cpp | 8 +++--- 6 files changed, 57 insertions(+), 39 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index b45f17886d01..53a75831d77e 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -94,8 +94,6 @@ void AvalancheEngine::initVariables() { _also[i][1] = nullptr; } - _totalTime = 0; - memset(_fxPal, 0, 16 * 16 * 3); for (int i = 0; i < 15; i++) { @@ -126,7 +124,7 @@ void AvalancheEngine::initVariables() { _him = kPeoplePardon; _her = kPeoplePardon; _it = Parser::kPardon; - _roomTime = 0; + _roomCycles = 0; _doingSpriteRun = false; _isLoaded = false; _soundFx = true; @@ -359,6 +357,8 @@ bool AvalancheEngine::saveGame(const int16 slot, const Common::String &desc) { f->writeSint16LE(t.tm_mday); f->writeSint16LE(t.tm_mon); f->writeSint16LE(t.tm_year); + + _totalTime += getTimeInSeconds() - _startTime; Common::Serializer sz(NULL, f); synchronize(sz); @@ -422,6 +422,7 @@ bool AvalancheEngine::loadGame(const int16 slot) { delete f; _isLoaded = true; + _ableToAddTimer = false; _seeScroll = true; // This prevents display of the new sprites before the new picture is loaded. if (_holdTheDawn) { @@ -478,6 +479,12 @@ Common::String AvalancheEngine::expandDate(int d, int m, int y) { return day + ' ' + month + ' ' + intToStr(y + 1900); } + +uint32 AvalancheEngine::getTimeInSeconds() { + TimeDate time; + _system->getTimeAndDate(time); + return time.tm_hour * 3600 + time.tm_min * 60 + time.tm_sec; +} void AvalancheEngine::updateEvents() { Common::Event event; diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h index b6e168f83063..9c0fb3475bdd 100644 --- a/engines/avalanche/avalanche.h +++ b/engines/avalanche/avalanche.h @@ -111,6 +111,7 @@ class AvalancheEngine : public Engine { Common::Error loadGameState(int slot); bool loadGame(const int16 slot); Common::String expandDate(int d, int m, int y); + uint32 getTimeInSeconds(); void updateEvents(); bool getEvent(Common::Event &event); // A wrapper around _eventMan->pollEvent(), so we can use it in Scrolls::normscroll() for example. @@ -210,7 +211,8 @@ class AvalancheEngine : public Engine { bool _takenPen; // Have you taken the pen (in Cardiff?) bool _arrowInTheDoor; // Did the arrow hit the wall? Common::String _favoriteDrink, _favoriteSong, _worstPlaceOnEarth, _spareEvening; // Personalisation str's - uint32 _totalTime; // Your total time playing this game, in ticks. + uint32 _startTime; // When did you start playing this session? + uint32 _totalTime; // Your total time playing this game, in seconds. Updated only at saving and loading. byte _jumpStatus; // Fixes how high you're jumping. bool _mushroomGrowing; // Is the mushroom growing in 42? bool _crapulusWillTell; // Will Crapulus tell you about Spludwick being away? @@ -257,12 +259,16 @@ class AvalancheEngine : public Engine { byte _subjectNum; // The same thing. People _him, _her; byte _it; - uint32 _roomTime; // Set to 0 when you enter a room, added to in every loop. + uint32 _roomCycles; // Set to 0 when you enter a room, added to in every loop. Cycles since you've been in this room. bool _doingSpriteRun; // Only set to True if we're doing a sprite_run at this moment. This stops the trippancy system from moving any of the sprites. - bool _isLoaded; // Is it a loaded gamestate? bool _soundFx; + // These two have very similar purpose, but it's crucial not to modify _isLoaded later than the actual loading + // or at the begginning of the game, and _ablteToAddTimer must be modified in addTimer(). + bool _isLoaded; // Is it a loaded gamestate? + bool _ableToAddTimer; + void callVerb(VerbCode id); void loadRoom(byte num); void thinkAbout(byte object, bool type); // Hey!!! Get it and put it!!! diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index 36ce16d09c9d..2a11a924930c 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -295,7 +295,6 @@ void AvalancheEngine::setup() { loadGame(loadSlot); } else { - _isLoaded = false; // Set to true in _vm->loadGame(). newGame(); _soundFx = !_soundFx; @@ -639,8 +638,7 @@ void AvalancheEngine::enterRoom(Room roomId, byte ped) { if (_geidaFollows) _whereIs[kPeopleGeida - 150] = roomId; - _roomTime = 0; - + _roomCycles = 0; if ((_lastRoom == kRoomMap) && (_lastRoomNotMap != _room)) enterNewTown(); @@ -1006,7 +1004,6 @@ void AvalancheEngine::enterRoom(Room roomId, byte ped) { } _seeScroll = false; // Now it can work again! - _isLoaded = false; } void AvalancheEngine::thinkAbout(byte object, bool type) { @@ -1482,6 +1479,7 @@ void AvalancheEngine::resetVariables() { _takenMushroom = false; _givenPenToAyles = false; _askedDogfoodAboutNim = false; + _startTime = getTimeInSeconds(); _parser->resetVariables(); _animation->resetVariables(); @@ -1531,6 +1529,9 @@ void AvalancheEngine::newGame() { _userMovesAvvy = false; _doingSpriteRun = false; _avvyInBed = true; + + _ableToAddTimer = true; // Set to false in _vm->loadGame(). + _isLoaded = false; enterRoom(kRoomYours, 1); avvy->_visible = false; diff --git a/engines/avalanche/background.cpp b/engines/avalanche/background.cpp index 4d71550213df..523b7a6826db 100644 --- a/engines/avalanche/background.cpp +++ b/engines/avalanche/background.cpp @@ -53,23 +53,23 @@ void Background::update() { switch (_vm->_room) { case kRoomOutsideArgentPub: - if ((_vm->_roomTime % 12) == 0) - draw(-1, -1, (_vm->_roomTime / 12) % 4); + if ((_vm->_roomCycles % 12) == 0) + draw(-1, -1, (_vm->_roomCycles / 12) % 4); break; case kRoomBrummieRoad: - if ((_vm->_roomTime % 2) == 0) - draw(-1, -1, (_vm->_roomTime / 2) % 4); + if ((_vm->_roomCycles % 2) == 0) + draw(-1, -1, (_vm->_roomCycles / 2) % 4); break; case kRoomBridge: - if ((_vm->_roomTime % 2) == 0) - draw(-1, -1, 3 + (_vm->_roomTime / 2) % 4); + if ((_vm->_roomCycles % 2) == 0) + draw(-1, -1, 3 + (_vm->_roomCycles / 2) % 4); break; case kRoomYours: - if ((!_vm->_avvyIsAwake) && ((_vm->_roomTime % 4) == 0)) - draw(-1, -1, (_vm->_roomTime / 12) % 2); + if ((!_vm->_avvyIsAwake) && ((_vm->_roomCycles % 4) == 0)) + draw(-1, -1, (_vm->_roomCycles / 12) % 2); break; case kRoomArgentPub: - if (((_vm->_roomTime % 7) == 1) && (_vm->_malagauche != 177)) { + if (((_vm->_roomCycles % 7) == 1) && (_vm->_malagauche != 177)) { // Malagauche cycle. _vm->_malagauche++; switch (_vm->_malagauche) { @@ -93,7 +93,7 @@ void Background::update() { } } - switch (_vm->_roomTime % 200) { + switch (_vm->_roomCycles % 200) { case 179: case 197: draw(-1, -1, 4); // Dogfood's drinking cycle. @@ -109,7 +109,7 @@ void Background::update() { _vm->_npcFacing = 177; // Impossible value for this. break; default: - if (_vm->_roomTime % 200 <= 178) { // Normally. + if (_vm->_roomCycles % 200 <= 178) { // Normally. byte direction = 1; uint16 angle = _vm->bearing(1); if (((angle >= 1) && (angle <= 90)) || ((angle >= 358) && (angle <= 360))) @@ -127,8 +127,8 @@ void Background::update() { } break; case kRoomWestHall: - if ((_vm->_roomTime % 3) == 0) { - switch ((_vm->_roomTime / 3) % 6) { + if ((_vm->_roomCycles % 3) == 0) { + switch ((_vm->_roomCycles / 3) % 6) { case 4: draw(-1, -1, 0); break; @@ -148,7 +148,7 @@ void Background::update() { if (!(_vm->_lustieIsAsleep)) { byte direction = 0; uint16 angle = _vm->bearing(1); - if ((_vm->_roomTime % 45) > 42) + if ((_vm->_roomCycles % 45) > 42) direction = 4; // du Lustie blinks. // Bearing of Avvy from du Lustie. else if ((angle <= 45) || ((angle >= 315) && (angle <= 360))) @@ -165,8 +165,8 @@ void Background::update() { } break; case kRoomAylesOffice: - if ((!_vm->_aylesIsAwake) && (_vm->_roomTime % 14 == 0)) { - switch ((_vm->_roomTime / 14) % 2) { + if ((!_vm->_aylesIsAwake) && (_vm->_roomCycles % 14 == 0)) { + switch ((_vm->_roomCycles / 14) % 2) { case 0: draw(-1, -1, 0); // Frame 2: EGA. break; @@ -178,7 +178,7 @@ void Background::update() { break; case kRoomRobins: if (_vm->_tiedUp) { - switch (_vm->_roomTime % 54) { + switch (_vm->_roomCycles % 54) { case 20: draw(-1, -1, 3); // Frame 4: Avalot blinks. break; @@ -199,7 +199,7 @@ void Background::update() { else if ((angle >= 181) && (angle <= 314)) direction = 8; // Right. - if ((_vm->_roomTime % 60) > 57) + if ((_vm->_roomCycles % 60) > 57) direction--; // Blinks. if (direction != _vm->_npcFacing) { // Port. @@ -207,7 +207,7 @@ void Background::update() { _vm->_npcFacing = direction; } - switch (_vm->_roomTime % 50) { + switch (_vm->_roomCycles % 50) { case 45 : draw(-1, -1, 8); // Spurge blinks. break; @@ -218,8 +218,8 @@ void Background::update() { break; } case kRoomDucks: { - if ((_vm->_roomTime % 3) == 0) // The fire flickers. - draw(-1, -1, (_vm->_roomTime / 3) % 3); + if ((_vm->_roomCycles % 3) == 0) // The fire flickers. + draw(-1, -1, (_vm->_roomCycles / 3) % 3); // Bearing of Avvy from Duck. byte direction = 0; @@ -231,7 +231,7 @@ void Background::update() { else if ((angle >= 181) && (angle <= 314)) direction = 8; // Right. - if ((_vm->_roomTime % 45) > 42) + if ((_vm->_roomCycles % 45) > 42) direction++; // Duck blinks. if (direction != _vm->_npcFacing) { // Duck. @@ -246,7 +246,7 @@ void Background::update() { if ((_vm->_bellsAreRinging) && (_vm->getFlag('B'))) { // They're ringing the bells. - switch (_vm->_roomTime % 4) { + switch (_vm->_roomCycles % 4) { case 1: if (_nextBell < 5) _nextBell = 12; diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index 9b6b841c8adb..d71e08f77391 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -603,8 +603,12 @@ Common::String Parser::rank() { Common::String Parser::totalTime() { uint16 h, m, s; - h = (uint16)(_vm->_totalTime / 65535); - s = (uint16)(_vm->_totalTime % 65535); + uint32 curTime = _vm->getTimeInSeconds() - _vm->_startTime; + if (_vm->_isLoaded) + curTime += _vm->_totalTime; + + h = (uint16)(curTime / 3600); + s = (uint16)(curTime % 3600); m = s / 60; s = s % 60; diff --git a/engines/avalanche/timer.cpp b/engines/avalanche/timer.cpp index 4e90c7fe4848..a62a26369583 100644 --- a/engines/avalanche/timer.cpp +++ b/engines/avalanche/timer.cpp @@ -48,7 +48,7 @@ Timer::Timer(AvalancheEngine *vm) { * @remarks Originally called 'set_up_timer' */ void Timer::addTimer(int32 duration, byte action, byte reason) { - if ((_vm->_isLoaded == false) || (_timerLost == true)) { + if ((_vm->_ableToAddTimer == false) || (_timerLost == true)) { byte i = 0; while ((i < 7) && (_times[i]._timeLeft != 0)) i++; @@ -61,7 +61,7 @@ void Timer::addTimer(int32 duration, byte action, byte reason) { _times[i]._action = action; _times[i]._reason = reason; } else { - _vm->_isLoaded = false; + _vm->_ableToAddTimer = false; return; } } @@ -208,8 +208,8 @@ void Timer::updateTimer() { } } } - _vm->_roomTime++; // Cycles since you've been in this room. - _vm->_totalTime++; // Total amount of time for this game. + + _vm->_roomCycles++; // Cycles since you've been in this room. } void Timer::loseTimer(byte which) { From 1581ed2edb5f0f991bf43e0b7781bb51dc395b86 Mon Sep 17 00:00:00 2001 From: urukgit Date: Tue, 5 Nov 2013 21:50:41 +0100 Subject: [PATCH 021/105] AVALANCHE: Remove unnecessary whitespaces. --- engines/avalanche/avalanche.cpp | 4 ++-- engines/avalanche/avalanche.h | 14 +++++++------- engines/avalanche/avalot.cpp | 6 +++--- engines/avalanche/parser.cpp | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index 53a75831d77e..f500078a1d2c 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -358,7 +358,7 @@ bool AvalancheEngine::saveGame(const int16 slot, const Common::String &desc) { f->writeSint16LE(t.tm_mon); f->writeSint16LE(t.tm_year); - _totalTime += getTimeInSeconds() - _startTime; + _totalTime += getTimeInSeconds() - _startTime; Common::Serializer sz(NULL, f); synchronize(sz); @@ -422,7 +422,7 @@ bool AvalancheEngine::loadGame(const int16 slot) { delete f; _isLoaded = true; - _ableToAddTimer = false; + _ableToAddTimer = false; _seeScroll = true; // This prevents display of the new sprites before the new picture is loaded. if (_holdTheDawn) { diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h index 9c0fb3475bdd..909e8ff5809f 100644 --- a/engines/avalanche/avalanche.h +++ b/engines/avalanche/avalanche.h @@ -111,7 +111,7 @@ class AvalancheEngine : public Engine { Common::Error loadGameState(int slot); bool loadGame(const int16 slot); Common::String expandDate(int d, int m, int y); - uint32 getTimeInSeconds(); + uint32 getTimeInSeconds(); void updateEvents(); bool getEvent(Common::Event &event); // A wrapper around _eventMan->pollEvent(), so we can use it in Scrolls::normscroll() for example. @@ -211,8 +211,8 @@ class AvalancheEngine : public Engine { bool _takenPen; // Have you taken the pen (in Cardiff?) bool _arrowInTheDoor; // Did the arrow hit the wall? Common::String _favoriteDrink, _favoriteSong, _worstPlaceOnEarth, _spareEvening; // Personalisation str's - uint32 _startTime; // When did you start playing this session? - uint32 _totalTime; // Your total time playing this game, in seconds. Updated only at saving and loading. + uint32 _startTime; // When did you start playing this session? + uint32 _totalTime; // Your total time playing this game, in seconds. Updated only at saving and loading. byte _jumpStatus; // Fixes how high you're jumping. bool _mushroomGrowing; // Is the mushroom growing in 42? bool _crapulusWillTell; // Will Crapulus tell you about Spludwick being away? @@ -264,10 +264,10 @@ class AvalancheEngine : public Engine { bool _doingSpriteRun; // Only set to True if we're doing a sprite_run at this moment. This stops the trippancy system from moving any of the sprites. bool _soundFx; - // These two have very similar purpose, but it's crucial not to modify _isLoaded later than the actual loading - // or at the begginning of the game, and _ablteToAddTimer must be modified in addTimer(). - bool _isLoaded; // Is it a loaded gamestate? - bool _ableToAddTimer; + // These two have very similar purpose, but it's crucial not to modify _isLoaded later than the actual loading + // or at the begginning of the game, and _ablteToAddTimer must be modified in addTimer(). + bool _isLoaded; // Is it a loaded gamestate? + bool _ableToAddTimer; void callVerb(VerbCode id); void loadRoom(byte num); diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index 2a11a924930c..db987b6e7063 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -1479,7 +1479,7 @@ void AvalancheEngine::resetVariables() { _takenMushroom = false; _givenPenToAyles = false; _askedDogfoodAboutNim = false; - _startTime = getTimeInSeconds(); + _startTime = getTimeInSeconds(); _parser->resetVariables(); _animation->resetVariables(); @@ -1530,8 +1530,8 @@ void AvalancheEngine::newGame() { _doingSpriteRun = false; _avvyInBed = true; - _ableToAddTimer = true; // Set to false in _vm->loadGame(). - _isLoaded = false; + _ableToAddTimer = true; // Set to false in _vm->loadGame(). + _isLoaded = false; enterRoom(kRoomYours, 1); avvy->_visible = false; diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index d71e08f77391..1b6bc78fb89b 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -604,11 +604,11 @@ Common::String Parser::totalTime() { uint16 h, m, s; uint32 curTime = _vm->getTimeInSeconds() - _vm->_startTime; - if (_vm->_isLoaded) - curTime += _vm->_totalTime; + if (_vm->_isLoaded) + curTime += _vm->_totalTime; - h = (uint16)(curTime / 3600); - s = (uint16)(curTime % 3600); + h = (uint16)(curTime / 3600); + s = (uint16)(curTime % 3600); m = s / 60; s = s % 60; From 660381de1b940c50d3d5dcf5c713b8d7b60d9d17 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Tue, 5 Nov 2013 21:57:50 +0100 Subject: [PATCH 022/105] AVALANCHE: Fix whitespace --- engines/avalanche/avalanche.cpp | 12 ++++++------ engines/avalanche/avalanche.h | 2 +- engines/avalanche/avalot.cpp | 2 +- engines/avalanche/parser.cpp | 4 ++-- engines/avalanche/timer.cpp | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index f500078a1d2c..ab03cc84e0ae 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -57,7 +57,7 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription * _sound = nullptr; _platform = gd->desc.platform; - initVariables(); + initVariables(); } AvalancheEngine::~AvalancheEngine() { @@ -357,7 +357,7 @@ bool AvalancheEngine::saveGame(const int16 slot, const Common::String &desc) { f->writeSint16LE(t.tm_mday); f->writeSint16LE(t.tm_mon); f->writeSint16LE(t.tm_year); - + _totalTime += getTimeInSeconds() - _startTime; Common::Serializer sz(NULL, f); @@ -479,11 +479,11 @@ Common::String AvalancheEngine::expandDate(int d, int m, int y) { return day + ' ' + month + ' ' + intToStr(y + 1900); } - + uint32 AvalancheEngine::getTimeInSeconds() { - TimeDate time; - _system->getTimeAndDate(time); - return time.tm_hour * 3600 + time.tm_min * 60 + time.tm_sec; + TimeDate time; + _system->getTimeAndDate(time); + return time.tm_hour * 3600 + time.tm_min * 60 + time.tm_sec; } void AvalancheEngine::updateEvents() { diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h index 909e8ff5809f..2734155b7dd3 100644 --- a/engines/avalanche/avalanche.h +++ b/engines/avalanche/avalanche.h @@ -268,7 +268,7 @@ class AvalancheEngine : public Engine { // or at the begginning of the game, and _ablteToAddTimer must be modified in addTimer(). bool _isLoaded; // Is it a loaded gamestate? bool _ableToAddTimer; - + void callVerb(VerbCode id); void loadRoom(byte num); void thinkAbout(byte object, bool type); // Hey!!! Get it and put it!!! diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index db987b6e7063..d703fdd2cc71 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -1529,7 +1529,7 @@ void AvalancheEngine::newGame() { _userMovesAvvy = false; _doingSpriteRun = false; _avvyInBed = true; - + _ableToAddTimer = true; // Set to false in _vm->loadGame(). _isLoaded = false; diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index 1b6bc78fb89b..6090dc967a9f 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -605,8 +605,8 @@ Common::String Parser::totalTime() { uint32 curTime = _vm->getTimeInSeconds() - _vm->_startTime; if (_vm->_isLoaded) - curTime += _vm->_totalTime; - + curTime += _vm->_totalTime; + h = (uint16)(curTime / 3600); s = (uint16)(curTime % 3600); m = s / 60; diff --git a/engines/avalanche/timer.cpp b/engines/avalanche/timer.cpp index a62a26369583..8a4ee7ed227c 100644 --- a/engines/avalanche/timer.cpp +++ b/engines/avalanche/timer.cpp @@ -208,7 +208,7 @@ void Timer::updateTimer() { } } } - + _vm->_roomCycles++; // Cycles since you've been in this room. } From 95c7cba9f4c824eca22e77557283600caecb7078 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 5 Nov 2013 23:57:22 +0200 Subject: [PATCH 023/105] FULLPIPE: More work on scene03 --- engines/fullpipe/constants.h | 6 ++++++ engines/fullpipe/scenes.cpp | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index c0034e444d7d..9816ec996875 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -29,6 +29,11 @@ namespace Fullpipe { #define ANI_DOMINO_3 2732 #define ANI_EGGEATER 334 #define ANI_IN1MAN 5110 +#define ANI_INV_EGGAPL 1564 +#define ANI_INV_EGGBOOT 1570 +#define ANI_INV_EGGCOIN 1567 +#define ANI_INV_EGGDOM 1561 +#define ANI_INV_EGGGLS 1573 #define ANI_INV_MAP 5321 #define ANI_LIFTBUTTON 2751 #define ANI_MAN 322 @@ -47,6 +52,7 @@ namespace Fullpipe { #define MSG_SC1_SHOWOSK 1019 #define MSG_SC1_SHOWOSK2 468 #define MSG_SC1_UTRUBACLICK 1100 +#define MV_EGTR_FATASK 5332 #define MV_IN1MAN_SLEEP 5111 #define MV_MAN_GOLADDER 451 #define MV_MAN_GOLADDER2 2844 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index a655ee872c9c..ce53e910249c 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1600,6 +1600,33 @@ int scene03_updateCursor() { return g_fullpipe->_cursorId; } +void sceneHandler03_eaterFat() { + g_vars->scene03_eggeater->_flags &= 0xFF7F; + + g_vars->scene03_eggeater->startAnim(MV_EGTR_FATASK, 0, -1); +} + +void sceneHandler03_swallowEgg(int item) { + if (!g_vars->swallowedEgg1->_value.intValue) { + g_vars->swallowedEgg1->_value.intValue = item; + } else if (!g_vars->swallowedEgg2->_value.intValue) { + g_vars->swallowedEgg2->_value.intValue = item; + } else if (!g_vars->swallowedEgg3->_value.intValue) { + g_vars->swallowedEgg3->_value.intValue = item; + + g_fullpipe->setObjectState(sO_EggGulperGaveCoin, g_fullpipe->getObjectEnumState(sO_EggGulperGaveCoin, sO_Yes)); + + scene03_setEaterState(); + } +} + +void sceneHandler03_giveItem(ExCommand *ex) { + if (ex->_parentId == ANI_INV_EGGAPL || ex->_parentId == ANI_INV_EGGDOM || + ex->_parentId == ANI_INV_EGGCOIN || ex->_parentId == ANI_INV_EGGBOOT || + ex->_parentId == ANI_INV_EGGGLS) + sceneHandler03_swallowEgg(ex->_parentId); +} + int sceneHandler03(ExCommand *ex) { #if 0 if (ex->_messageKind != 17) { From 38dfb4da38a27368e787babab8f2996ad8674d95 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 6 Nov 2013 00:05:08 +0200 Subject: [PATCH 024/105] FULLPIPE: More scene03 functions --- engines/fullpipe/constants.h | 1 + engines/fullpipe/scenes.cpp | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 9816ec996875..c7bb33a22d3a 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -29,6 +29,7 @@ namespace Fullpipe { #define ANI_DOMINO_3 2732 #define ANI_EGGEATER 334 #define ANI_IN1MAN 5110 +#define ANI_INV_COIN 875 #define ANI_INV_EGGAPL 1564 #define ANI_INV_EGGBOOT 1570 #define ANI_INV_EGGCOIN 1567 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index ce53e910249c..f951cac2ef0c 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1627,6 +1627,34 @@ void sceneHandler03_giveItem(ExCommand *ex) { sceneHandler03_swallowEgg(ex->_parentId); } +int sceneHandler03_swallowedEgg1State() { + return g_vars->swallowedEgg1->_value.intValue; +} + +void sceneHandler03_getCoin(ExCommand *ex) { + MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(ex->_parId); + + if (mq && mq->getCount() > 0) { + ExCommand *ex0 = mq->getExCommandByIndex(0); + ExCommand *ex1 = mq->getExCommandByIndex(1); + + if (sceneHandler03_swallowedEgg1State()) { + ex0->_messageKind = 1; + ex1->_messageKind = 1; + + getGameLoaderInventory()->removeItem(ANI_INV_COIN, 1); + } else { + ex0->_messageKind = 0; + ex0->_excFlags |= 1; + + ex1->_messageKind = 0; + ex1->_excFlags |= 1; + + g_vars->scene03_eggeater->_flags &= 0xFF7Fu; + } + } +} + int sceneHandler03(ExCommand *ex) { #if 0 if (ex->_messageKind != 17) { From b895a88a4f2ad9e4755fb462f295333bf439634c Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 6 Nov 2013 00:21:30 +0200 Subject: [PATCH 025/105] FULLPIPE: Remaining scene03 functions --- engines/fullpipe/constants.h | 1 + engines/fullpipe/scenes.cpp | 50 ++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index c7bb33a22d3a..c8cd05d0ae6b 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -108,6 +108,7 @@ namespace Fullpipe { #define PIC_SC1_OSK 1018 #define PIC_SC1_OSK2 2932 #define PIC_SC3_DOMIN 5182 +#define PIC_SC3_LADDER 1102 #define PIC_SCD_SEL 734 #define QU_EGTR_MD2_SHOW 4698 #define QU_EGTR_MD1_SHOW 4697 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index f951cac2ef0c..245bd02eea21 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1655,6 +1655,56 @@ void sceneHandler03_getCoin(ExCommand *ex) { } } +void sceneHandler03_goLadder() { + handleObjectInteraction(g_fullpipe->_aniMan, g_fullpipe->_currentScene->getPictureObjectById(PIC_SC3_LADDER, 0), 0); +} + +void sceneHandler03_pushEggStack() { + g_vars->swallowedEgg1->_value.intValue = g_vars->swallowedEgg2->_value.intValue; + g_vars->swallowedEgg2->_value.intValue = g_vars->swallowedEgg3->_value.intValue; + g_vars->swallowedEgg3->_value.intValue = 0; + + if (g_vars->swallowedEgg2->_value.intValue == ANI_INV_EGGBOOT + && g_vars->swallowedEgg1->_value.intValue == ANI_INV_EGGAPL) { + g_vars->swallowedEgg1->_value.intValue = ANI_INV_EGGBOOT; + g_vars->swallowedEgg2->_value.intValue = ANI_INV_EGGAPL; + } +} + +void sceneHandler03_releaseEgg() { + g_vars->scene03_eggeater->_flags &= 0xFF7F; + + g_vars->scene03_eggeater->show1(-1, -1, -1, 0); +} + +void sceneHandler03_takeEgg(ExCommand *ex) { + MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(ex->_parId); + + if (mq && mq->getCount() > 0) { + ExCommand *ex0 = mq->getExCommandByIndex(0); + ExCommand *ex1 = mq->getExCommandByIndex(1); + + int egg1 = sceneHandler03_swallowedEgg1State(); + + if (egg1 && ex0) { + ex0->_parentId = egg1; + sceneHandler03_pushEggStack(); + } + + if ( g_vars->swallowedEgg1->_value.intValue == ANI_INV_EGGAPL + && !g_vars->swallowedEgg2->_value.intValue + && !g_vars->swallowedEgg3->_value.intValue + && ex1) { + + if (ex1->_objtype == kObjTypeObjstateCommand) { + ObjstateCommand *com = (ObjstateCommand *)ex1; + + com->_value = g_fullpipe->getObjectEnumState(sO_EggGulper, sO_WantsNothing); + } + } + } +} + int sceneHandler03(ExCommand *ex) { #if 0 if (ex->_messageKind != 17) { From 5d759d181f228d4b6576647dcf3d668fe931a324 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 6 Nov 2013 00:40:09 +0200 Subject: [PATCH 026/105] FULLPIPE: Completed scene03 code --- engines/fullpipe/constants.h | 11 +++++++++++ engines/fullpipe/fullpipe.h | 7 +++++++ engines/fullpipe/lift.cpp | 28 ++++++++++++++++++++++++++++ engines/fullpipe/scenes.cpp | 34 ++++++++++++++++------------------ 4 files changed, 62 insertions(+), 18 deletions(-) diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index c8cd05d0ae6b..9d8f503857ae 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -47,12 +47,23 @@ namespace Fullpipe { #define MSG_INTR_GETUPMAN 5135 #define MSG_INTR_SWITCHTO1 5145 #define MSG_INTR_SWITCHTO2 5134 +#define MSG_LIFT_CLICKBUTTON 2780 +#define MSG_LIFT_CLOSEDOOR 5194 +#define MSG_LIFT_EXITLIFT 5187 +#define MSG_LIFT_GO 1065 +#define MSG_LIFT_STARTEXITQUEUE 5186 #define MSG_MANSHADOWSOFF 5196 #define MSG_MANSHADOWSON 5197 #define MSG_RESTARTGAME 4767 #define MSG_SC1_SHOWOSK 1019 #define MSG_SC1_SHOWOSK2 468 #define MSG_SC1_UTRUBACLICK 1100 +#define MSG_SC3_HIDEDOMINO 3177 +#define MSG_SC3_ONTAKECOIN 5338 +#define MSG_SC3_RELEASEEGG 2681 +#define MSG_SC3_TAKEEGG 1583 +#define MSG_SC3_TESTFAT 1582 +#define MSG_SC3_UTRUBACLICK 1103 #define MV_EGTR_FATASK 5332 #define MV_IN1MAN_SLEEP 5111 #define MV_MAN_GOLADDER 451 diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index 7f1c9baa9bca..2cd0f87d3243 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -232,6 +232,13 @@ class FullpipeEngine : public ::Engine { int lift_getButtonIdP(int objid); void lift_sub5(Scene *sc, int qu1, int qu2); + void lift_exitSeq(ExCommand *ex); + void lift_closedoorSeq(); + void lift_animation3(); + void lift_goAnimation(); + void lift_sub1(StaticANIObject *ani); + void lift_startExitQueue(); + void lift_sub05(ExCommand *ex); public: diff --git a/engines/fullpipe/lift.cpp b/engines/fullpipe/lift.cpp index 8fa6cf744dd2..0e38c4f94854 100644 --- a/engines/fullpipe/lift.cpp +++ b/engines/fullpipe/lift.cpp @@ -68,4 +68,32 @@ void FullpipeEngine::lift_sub5(Scene *sc, int qu1, int qu2) { warning("STUB: FullpipeEngine::lift_sub5()"); } +void FullpipeEngine::lift_exitSeq(ExCommand *ex) { + warning("STUB: FullpipeEngine::lift_exitSeq()"); +} + +void FullpipeEngine::lift_closedoorSeq() { + warning("STUB: FullpipeEngine::lift_closedoorSeq()"); +} + +void FullpipeEngine::lift_animation3() { + warning("STUB: FullpipeEngine::lift_animation3()"); +} + +void FullpipeEngine::lift_goAnimation() { + warning("STUB: FullpipeEngine::lift_goAnimation()"); +} + +void FullpipeEngine::lift_sub1(StaticANIObject *ani) { + warning("STUB: FullpipeEngine::lift_sub1()"); +} + +void FullpipeEngine::lift_startExitQueue() { + warning("STUB: FullpipeEngine::lift_startExitQueue()"); +} + +void FullpipeEngine::lift_sub05(ExCommand *ex) { + warning("STUB: FullpipeEngine::lift_sub05()"); +} + } // End of namespace Fullpipe diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 245bd02eea21..c266a819ede1 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -1631,7 +1631,7 @@ int sceneHandler03_swallowedEgg1State() { return g_vars->swallowedEgg1->_value.intValue; } -void sceneHandler03_getCoin(ExCommand *ex) { +void sceneHandler03_giveCoin(ExCommand *ex) { MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(ex->_parId); if (mq && mq->getCount() > 0) { @@ -1706,20 +1706,19 @@ void sceneHandler03_takeEgg(ExCommand *ex) { } int sceneHandler03(ExCommand *ex) { -#if 0 if (ex->_messageKind != 17) { if (ex->_messageKind == 57) sceneHandler03_giveItem(ex); return 0; } - switch (ex->messageNum) { + switch (ex->_messageNum) { case MSG_LIFT_EXITLIFT: - lift_exitSeq(ex); + g_fullpipe->lift_exitSeq(ex); break; case MSG_LIFT_CLOSEDOOR: - lift_closedoorSeq(); + g_fullpipe->lift_closedoorSeq(); break; case MSG_SC3_ONTAKECOIN: @@ -1727,7 +1726,7 @@ int sceneHandler03(ExCommand *ex) { break; case MSG_LIFT_STARTEXITQUEUE: - sceneHandlers_startExitQueue(); + g_fullpipe->lift_startExitQueue(); break; case MSG_SC3_RELEASEEGG: @@ -1735,7 +1734,7 @@ int sceneHandler03(ExCommand *ex) { break; case MSG_LIFT_CLICKBUTTON: - lift_animation3(); + g_fullpipe->lift_animation3(); break; case MSG_SC3_HIDEDOMINO: @@ -1747,7 +1746,7 @@ int sceneHandler03(ExCommand *ex) { break; case MSG_LIFT_GO: - lift_goAnimation(); + g_fullpipe->lift_goAnimation(); break; case MSG_SC3_UTRUBACLICK: @@ -1759,14 +1758,14 @@ int sceneHandler03(ExCommand *ex) { break; case 64: - sceneHandlers_sub05(ex); + g_fullpipe->lift_sub05(ex); break; case 93: { - StaticANIObject *ani = Scene_getStaticANIObjectAtPos(g_currentScene, ex->msg.sceneClickX, ex->msg.sceneClickY); + StaticANIObject *ani = g_fullpipe->_currentScene->getStaticANIObjectAtPos(ex->_sceneClickX, ex->_sceneClickY); if (ani && ani->_id == ANI_LIFTBUTTON) { - lift_sub1(ani); + g_fullpipe->lift_sub1(ani); ex->_messageKind = 0; return 0; @@ -1792,23 +1791,22 @@ int sceneHandler03(ExCommand *ex) { int res = 0; if (g_fullpipe->_aniMan2) { - if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200) { - g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300; - v7 = g_fullpipe->_aniMan2; - } + if (g_fullpipe->_aniMan2->_ox < g_fullpipe->_sceneRect.left + 200) + g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.left - 300; if (g_fullpipe->_aniMan2->_ox > g_fullpipe->_sceneRect.right - 200) - g_fullpipe->_currentScene->bg.x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300; + g_fullpipe->_currentScene->_x = g_fullpipe->_aniMan2->_ox - g_fullpipe->_sceneRect.right + 300; + res = 1; } + g_fullpipe->_behaviorManager->updateBehaviors(); - startSceneTrack(); + g_fullpipe->startSceneTrack(); return res; } } -#endif return 0; } From d77b93e7f0022b1b6e9d86994b3214b1548b9053 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 00:40:25 +0100 Subject: [PATCH 027/105] TSAGE: Remove useless effect EFFECT_2 --- engines/tsage/core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/tsage/core.h b/engines/tsage/core.h index 183af096dd44..05f6f4b3a097 100644 --- a/engines/tsage/core.h +++ b/engines/tsage/core.h @@ -467,7 +467,7 @@ enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MOD }; // Actor effect enumeration used in Return to Ringworld 2 -enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_2 = 2, EFFECT_3 = 3, +enum Effect { EFFECT_NONE = 0, EFFECT_SHADED = 1, EFFECT_3 = 3, EFFECT_SHADOW_MAP = 5, EFFECT_SHADED2 = 6 }; class SceneObject; From 97c5634ec854c521d28d73617a8e91cf9681b2ef Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 00:40:48 +0100 Subject: [PATCH 028/105] TSAGE: Fix effect in scene 3150 --- engines/tsage/ringworld2/ringworld2_scenes3.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 3f8f13d69059..c01980f45e80 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -396,7 +396,7 @@ bool Scene3150::LightFixture::startAction(CursorType action, Event &event) { if ((R2_INVENTORY.getObjectScene(R2_LIGHT_BULB) != 3150) && (R2_GLOBALS.getFlag(75))) { R2_GLOBALS._player.disableControl(); scene->_bulbOrWire.postInit(); - scene->_bulbOrWire._effect = EFFECT_3; + scene->_bulbOrWire._effect = EFFECT_SHADED2; scene->_bulbOrWire._shade = 5; scene->_sceneMode = 3155; scene->setAction(&scene->_sequenceManager, scene, 3155, &R2_GLOBALS._player, &scene->_bulbOrWire, NULL); From 313473f2cee4381b743f6ab632197bd21ff36528 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 00:52:35 +0100 Subject: [PATCH 029/105] TSAGE: R2R - Renaming in scene 1875. Remove a useless variable. --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 34 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes1.h | 9 +++-- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 9ee95b13c6b0..0640428fdeaa 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -12537,7 +12537,7 @@ void Scene1875::Button::doButtonPress() { int newFrameNumber; switch (_buttonId) { case 3: - if ((scene->_actor1._frame == 1) && (scene->_button1._strip == 2)) { + if ((scene->_map._frame == 1) && (scene->_button1._strip == 2)) { R2_GLOBALS._player.disableControl(); R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); scene->_sceneMode = 10; @@ -12545,21 +12545,21 @@ void Scene1875::Button::doButtonPress() { } else { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1890; - scene->_actor2.postInit(); - scene->setAction(&scene->_sequenceManager, scene, 1890, &scene->_actor2, NULL); + scene->_rimPosition.postInit(); + scene->setAction(&scene->_sequenceManager, scene, 1890, &scene->_rimPosition, NULL); } break; case 4: - newFrameNumber = scene->_actor1._frame + 1; + newFrameNumber = scene->_map._frame + 1; if (newFrameNumber > 6) newFrameNumber = 1; - scene->_actor1.setFrame(newFrameNumber); + scene->_map.setFrame(newFrameNumber); break; case 5: - newFrameNumber = scene->_actor1._frame - 1; + newFrameNumber = scene->_map._frame - 1; if (newFrameNumber < 1) newFrameNumber = 6; - scene->_actor1.setFrame(newFrameNumber); + scene->_map.setFrame(newFrameNumber); break; default: break; @@ -12652,9 +12652,9 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { _button4.initButton(4); _button5.initButton(5); - _actor1.postInit(); - _actor1.setup(1855, 4, 1); - _actor1.setPosition(Common::Point(160, 116)); + _map.postInit(); + _map.setup(1855, 4, 1); + _map.setPosition(Common::Point(160, 116)); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.hide(); @@ -12663,8 +12663,8 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(122); R2_GLOBALS._player.disableControl(); _sceneMode = 11; - _actor2.postInit(); - setAction(&_sequenceManager, this, 1892, &_actor2, NULL); + _rimPosition.postInit(); + setAction(&_sequenceManager, this, 1892, &_rimPosition, NULL); } else { if (R2_GLOBALS._sceneManager._previousScene == 3150) { R2_GLOBALS._sound1.play(116); @@ -12674,8 +12674,8 @@ void Scene1875::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._canWalk = false; } - _item2.setDetails(Rect(43, 14, 275, 122), 1875, 9, 1, -1, 1, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 1875, 3, -1, -1, 1, NULL); + _screen.setDetails(Rect(43, 14, 275, 122), 1875, 9, 1, -1, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 1875, 3, -1, -1, 1, NULL); R2_GLOBALS._player._characterScene[R2_QUINN] = 1875; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1875; @@ -12688,8 +12688,8 @@ void Scene1875::signal() { case 10: R2_GLOBALS._player.disableControl(); _sceneMode = 1891; - _actor2.postInit(); - setAction(&_sequenceManager, this, 1891, &_actor2, NULL); + _rimPosition.postInit(); + setAction(&_sequenceManager, this, 1891, &_rimPosition, NULL); break; case 11: R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -12697,7 +12697,7 @@ void Scene1875::signal() { _stripManager.start(577, this); break; case 1890: - _actor2.remove(); + _rimPosition.remove(); R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; break; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 48088981f2dd..3330f3afa34f 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -963,11 +963,10 @@ class Scene1875 : public SceneExt { public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - NamedHotspot _item2; - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; + NamedHotspot _background; + NamedHotspot _screen; + SceneActor _map; + SceneActor _rimPosition; Button _button1; Button _button2; Button _button3; From 54a0903e9a0c4ffdec0ba036738921d77fac205e Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 00:56:12 +0100 Subject: [PATCH 030/105] TSAGE: R2R - Remove useless variable in scene 1950. This breaks savegames compatibility --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 2 -- engines/tsage/ringworld2/ringworld2_scenes1.h | 1 - 2 files changed, 3 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 0640428fdeaa..f9c617d461ca 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -13625,14 +13625,12 @@ void Scene1945::signal() { *--------------------------------------------------------------------------*/ Scene1950::KeypadWindow::KeypadWindow() { - _field20 = 0; _buttonIndex = 0; } void Scene1950::KeypadWindow::synchronize(Serializer &s) { SceneArea::synchronize(s); - s.syncAsByte(_field20); s.syncAsSint16LE(_buttonIndex); } diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 3330f3afa34f..9bb91f8a267e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -1129,7 +1129,6 @@ class Scene1950 : public SceneExt { SceneActor _areaActor; KeypadButton _buttons[16]; - byte _field20; int _buttonIndex; KeypadWindow(); From ea0ee6f308ea6988cf5e1258c207185c62ce71c1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:18:17 +0100 Subject: [PATCH 031/105] TSAGE: R2R - Renaming in scene 1950. This breaks clone2727's savegames, if any. Also, remove a useless actor and replace some class members by local variable. --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 36 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes1.h | 10 ++---- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index f9c617d461ca..7f7fe3a284ae 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -13800,11 +13800,9 @@ bool Scene1950::Gem::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene1950::Vampire::Vampire() { - _fieldA8 = 0; - _fieldAA = 0; + _deltaX = 0; + _deltaY = 0; _vampireMode = 0; - _fieldAE = 0; - _fieldAF = 0; } void Scene1950::Vampire::synchronize(Serializer &s) { @@ -13812,11 +13810,9 @@ void Scene1950::Vampire::synchronize(Serializer &s) { s.syncAsSint16LE(_deadPosition.x); s.syncAsSint16LE(_deadPosition.y); - s.syncAsSint16LE(_fieldA8); - s.syncAsSint16LE(_fieldAA); + s.syncAsSint16LE(_deltaX); + s.syncAsSint16LE(_deltaY); s.syncAsSint16LE(_vampireMode); - s.syncAsByte(_fieldAE); - s.syncAsByte(_fieldAF); } void Scene1950::Vampire::signal() { @@ -13867,7 +13863,7 @@ void Scene1950::Vampire::signal() { R2_GLOBALS._player.enableControl(); } break; - case 21: + case 21: { // Fatal shot R2_GLOBALS._player.setVisage(22); if (R2_GLOBALS._flubMazeEntryDirection == 3) @@ -13891,23 +13887,24 @@ void Scene1950::Vampire::signal() { R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._isAlive = false; R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._shotsRequired--; R2_GLOBALS._vampireData[scene->_vampireIndex - 1]._position = _position; - _fieldA8 = (_position.x - R2_GLOBALS._player._position.x) / 2; - _fieldAA = (_position.y - R2_GLOBALS._player._position.y) / 2; + _deltaX = (_position.x - R2_GLOBALS._player._position.x) / 2; + _deltaY = (_position.y - R2_GLOBALS._player._position.y) / 2; - _fieldAE = 0; - for (_fieldAF = 0; _fieldAF < 18; ++_fieldAF) - if (!R2_GLOBALS._vampireData[_fieldAF]._isAlive) - ++_fieldAE; + byte vampireCount = 0; + for (byte i = 0; i < 18; ++i) { + if (!R2_GLOBALS._vampireData[i]._isAlive) + ++vampireCount; + } - if (_fieldAE == 18) { + if (vampireCount == 18) { R2_GLOBALS.setFlag(36); _vampireMode = 23; - Common::Point pt(R2_GLOBALS._player._position.x + _fieldA8, R2_GLOBALS._player._position.y + _fieldAA); + Common::Point pt(R2_GLOBALS._player._position.x + _deltaX, R2_GLOBALS._player._position.y + _deltaY); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); - } else if (_fieldAE == 1) { + } else if (vampireCount == 1) { _vampireMode = 22; - Common::Point pt(R2_GLOBALS._player._position.x + _fieldA8, R2_GLOBALS._player._position.y + _fieldAA); + Common::Point pt(R2_GLOBALS._player._position.x + _deltaX, R2_GLOBALS._player._position.y + _deltaY); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); } else { @@ -13920,6 +13917,7 @@ void Scene1950::Vampire::signal() { scene->_westExit._enabled = true; scene->_vampireActive = false; + } break; case 22: SceneItem::display(1950, 18, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, LIST_END); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 9bb91f8a267e..34d74907aa5a 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -1152,10 +1152,6 @@ class Scene1950 : public SceneExt { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor4 : public SceneActor { - public: - virtual bool startAction(CursorType action, Event &event); - }; class Gem : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); @@ -1163,11 +1159,9 @@ class Scene1950 : public SceneExt { class Vampire : public SceneActor { public: Common::Point _deadPosition; - int _fieldA8; - int _fieldAA; + int _deltaX; + int _deltaY; int _vampireMode; - byte _fieldAE; - byte _fieldAF; Vampire(); void synchronize(Serializer &s); From 0531b326236e51d6c7c27124db3e43ee0c6eb1d9 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:27:07 +0100 Subject: [PATCH 032/105] TSAGE: R2R - Renaming in scene 2425 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 4 ++-- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 42df9d6a6a33..82c673bb4802 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1367,7 +1367,7 @@ bool Scene2425::Pictographs::startAction(CursorType action, Event &event) { } } -void Scene2425::Exit1::changeScene() { +void Scene2425::SouthEastExit::changeScene() { Scene2425 *scene = (Scene2425 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1390,7 +1390,7 @@ void Scene2425::postInit(SceneObjectList *OwnerList) { } R2_GLOBALS._sound1.play(200); - _exit1.setDetails(Rect(270, 136, 319, 168), EXITCURSOR_SE, 2000); + _southEastExit.setDetails(Rect(270, 136, 319, 168), EXITCURSOR_SE, 2000); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 1d0cfc41f814..059847d07fc9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -166,7 +166,7 @@ class Scene2425 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthEastExit : public SceneExit { public: virtual void changeScene(); }; @@ -178,7 +178,7 @@ class Scene2425 : public SceneExt { Rope _rope; Pictographs _pictographs1; Pictographs _pictographs2; - Exit1 _exit1; + SouthEastExit _southEastExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 7e1db7ddcde34d36da82d664e798c44dc604b9c5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:29:11 +0100 Subject: [PATCH 033/105] TSAGE: R2R - Renaming in scene 2430 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 82c673bb4802..55a28f47b9ee 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1523,7 +1523,7 @@ bool Scene2430::OilLamp::startAction(CursorType action, Event &event) { return true; } -void Scene2430::Exit1::changeScene() { +void Scene2430::SouthExit::changeScene() { Scene2430 *scene = (Scene2430 *)R2_GLOBALS._sceneManager._scene; scene->_sceneMode = 0; @@ -1538,8 +1538,8 @@ void Scene2430::Exit1::changeScene() { void Scene2430::postInit(SceneObjectList *OwnerList) { loadScene(2430); SceneExt::postInit(); - _exit1.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(108, 160)); + _southExit.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(108, 160)); if (R2_INVENTORY.getObjectScene(R2_GUNPOWDER) == 2430) { _gunPowder.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 059847d07fc9..7f40862ebcd8 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -200,7 +200,7 @@ class Scene2430 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -221,7 +221,7 @@ class Scene2430 : public SceneExt { Companion _companion; GunPowder _gunPowder; OilLamp _oilLamp; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From ed23f74a51280057b928feec5276477c9283bf83 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:30:44 +0100 Subject: [PATCH 034/105] TSAGE: R2R - Renaming in scene 2435 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 55a28f47b9ee..53cd32b679f5 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1673,7 +1673,7 @@ bool Scene2435::Astor::startAction(CursorType action, Event &event) { } } -void Scene2435::Exit1::changeScene() { +void Scene2435::SouthExit::changeScene() { Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1693,8 +1693,8 @@ void Scene2435::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_quinnSpeaker); _stripManager.addSpeaker(&_seekerSpeaker); _stripManager.addSpeaker(&_pharishaSpeaker); - _exit1.setDetails(Rect(142, 155, 207, 167), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(175, 160)); + _southExit.setDetails(Rect(142, 155, 207, 167), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(175, 160)); _astor.postInit(); _astor.setup(2005, 3, 1); _astor.setPosition(Common::Point(219, 106)); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 7f40862ebcd8..44f5143ca0aa 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -238,7 +238,7 @@ class Scene2435 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -251,7 +251,7 @@ class Scene2435 : public SceneExt { NamedHotspot _rightWindow; Companion _companion; Astor _astor; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 05f3e7e8ce95edceb9da2122fc11958a90f68277 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:32:29 +0100 Subject: [PATCH 035/105] TSAGE: R2R - Renaming in scene 2440 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 53cd32b679f5..30732536f47e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1811,7 +1811,7 @@ bool Scene2440::OilLamp::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -void Scene2440::Exit1::changeScene() { +void Scene2440::SouthEastExit::changeScene() { Scene2440 *scene = (Scene2440 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -1827,8 +1827,8 @@ void Scene2440::postInit(SceneObjectList *OwnerList) { SceneExt::postInit(); R2_GLOBALS._sound1.play(200); // Fix exit cursor, the original was using NW - _exit1.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_SE, 2000); - _exit1.setDest(Common::Point(210, 160)); + _southEastExit.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_SE, 2000); + _southEastExit.setDest(Common::Point(210, 160)); if (R2_INVENTORY.getObjectScene(R2_ALCOHOL_LAMP_2) == 2440) { _oilLamp.postInit(); _oilLamp.setup(2435, 1, 1); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 44f5143ca0aa..78af20ce48eb 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -269,7 +269,7 @@ class Scene2440 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthEastExit : public SceneExit { public: virtual void changeScene(); }; @@ -283,7 +283,7 @@ class Scene2440 : public SceneExt { NamedHotspot _bottles; Companion _companion; OilLamp _oilLamp; - Exit1 _exit1; + SouthEastExit _southEastExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 285cbedb77230904861e419a9f7737a619c88ab7 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:35:06 +0100 Subject: [PATCH 036/105] TSAGE: R2R - Renaming in scene 2450 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 12 ++++++------ engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 30732536f47e..25b45870e1a9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1958,7 +1958,7 @@ bool Scene2450::CareTaker::startAction(CursorType action, Event &event) { } } -void Scene2450::Exit1::changeScene() { +void Scene2450::SouthWestExit::changeScene() { Scene2450 *scene = (Scene2450 *)R2_GLOBALS._sceneManager._scene; if ((R2_GLOBALS._player._characterIndex == R2_SEEKER) || (R2_GLOBALS.getFlag(61))) { @@ -1992,8 +1992,8 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_caretakerSpeaker); if (R2_GLOBALS.getFlag(72)) { - _exit1.setDetails(Rect(0, 143, 47, 168), EXITCURSOR_SW, 2000); - _exit1.setDest(Common::Point(10, 160)); + _southWestExit.setDetails(Rect(0, 143, 47, 168), EXITCURSOR_SW, 2000); + _southWestExit.setDest(Common::Point(10, 160)); } if (!R2_GLOBALS.getFlag(61)) { @@ -2070,7 +2070,7 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _careTaker.setPosition(Common::Point(34, 153)); _careTaker.setDetails(2001, 40, -1, -1, 1, (SceneItem *)NULL); - _exit1._enabled = false; + _southWestExit._enabled = false; } } else { R2_GLOBALS._player.postInit(); @@ -2103,7 +2103,7 @@ void Scene2450::postInit(SceneObjectList *OwnerList) { _careTaker.setPosition(Common::Point(34, 153)); _careTaker.setDetails(2001, 40, -1, -1, 1, (SceneItem *)NULL); - _exit1._enabled = false; + _southWestExit._enabled = false; } } R2_GLOBALS._player.enableControl(); @@ -2182,7 +2182,7 @@ void Scene2450::signal() { _stripManager.start(700, this); break; case 2454: - _exit1._enabled = true; + _southWestExit._enabled = true; R2_GLOBALS.setFlag(72); _careTaker.remove(); if (R2_GLOBALS.getFlag(61)) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 78af20ce48eb..93230fa11fb9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -309,7 +309,7 @@ class Scene2450 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthWestExit : public SceneExit { public: virtual void changeScene(); }; @@ -323,7 +323,7 @@ class Scene2450 : public SceneExt { SceneActor _companion; Parker _parker; CareTaker _careTaker; - Exit1 _exit1; + SouthWestExit _southWestExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 0ab5a27661e803fc104ffc5409cb9ba4f5c24d29 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:36:53 +0100 Subject: [PATCH 037/105] TSAGE: R2R - Renaming in scene 2455 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 4 ++-- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 25b45870e1a9..2978fec8fae3 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -2286,7 +2286,7 @@ bool Scene2455::ScrithKey::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } -void Scene2455::Exit1::changeScene() { +void Scene2455::NorthExit::changeScene() { Scene2455 *scene = (Scene2455 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2306,7 +2306,7 @@ void Scene2455::postInit(SceneObjectList *OwnerList) { } R2_GLOBALS._sound1.play(200); - _exit1.setDetails(Rect(0, 0, 320, 15), EXITCURSOR_N, 2425); + _northExit.setDetails(Rect(0, 0, 320, 15), EXITCURSOR_N, 2425); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2455) { _scrithKey.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 93230fa11fb9..4a173a04a899 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -345,7 +345,7 @@ class Scene2455 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class NorthExit : public SceneExit { public: virtual void changeScene(); }; @@ -354,7 +354,7 @@ class Scene2455 : public SceneExt { Lamp _lamp; Pool _pool; ScrithKey _scrithKey; - Exit1 _exit1; + NorthExit _northExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 91b4ad69a539243d5c817ccbbc0f249e4ee6376c Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:39:09 +0100 Subject: [PATCH 038/105] TSAGE: R2R - Renaming in scene 2500 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 2978fec8fae3..9bd0ec562bad 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -2398,7 +2398,7 @@ void Scene2455::signal() { * *--------------------------------------------------------------------------*/ -void Scene2500::Exit1::changeScene() { +void Scene2500::WestExit::changeScene() { Scene2500 *scene = (Scene2500 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2426,8 +2426,8 @@ void Scene2500::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == -1) R2_GLOBALS._sceneManager._previousScene = 2000; - _exit1.setDetails(Rect(30, 50, 85, 105), EXITCURSOR_W, 2000); - _exit1.setDest(Common::Point(84, 104)); + _westExit.setDetails(Rect(30, 50, 85, 105), EXITCURSOR_W, 2000); + _westExit.setDest(Common::Point(84, 104)); R2_GLOBALS._player.postInit(); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 4a173a04a899..ebfa3e6337fc 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -363,7 +363,7 @@ class Scene2455 : public SceneExt { }; class Scene2500 : public SceneExt { - class Exit1 : public SceneExit { + class WestExit : public SceneExit { public: virtual void changeScene(); }; @@ -376,7 +376,7 @@ class Scene2500 : public SceneExt { SceneActor _companion; SceneActor _quinn; SceneActor _ship; - Exit1 _exit1; + WestExit _westExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From bd85c66cd2672315f27bfbfa3f84ea7b0ff94160 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:40:33 +0100 Subject: [PATCH 039/105] TSAGE: R2R - Renaming in scene 2525 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 4 ++-- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 9bd0ec562bad..27d071fd7d63 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -2532,7 +2532,7 @@ bool Scene2525::GlassDome::startAction(CursorType action, Event &event) { return true; } -void Scene2525::Exit1::changeScene() { +void Scene2525::SouthExit::changeScene() { Scene2525 *scene = (Scene2525 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2551,7 +2551,7 @@ void Scene2525::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(200); R2_GLOBALS._sound2.play(207); - _exit1.setDetails(Rect(86, 155, 228, 168), EXITCURSOR_S, 2000); + _southExit.setDetails(Rect(86, 155, 228, 168), EXITCURSOR_S, 2000); if (R2_INVENTORY.getObjectScene(R2_GLASS_DOME) == 2525) { _glassDome.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index ebfa3e6337fc..df322bd1033b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -394,7 +394,7 @@ class Scene2525 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -407,7 +407,7 @@ class Scene2525 : public SceneExt { SceneActor _companion; SceneActor _compressor; GlassDome _glassDome; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From e4ffd540bb728d31c96b22316f25ceb5e56f146b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:41:51 +0100 Subject: [PATCH 040/105] TSAGE: R2R - Renaming in scene 2530 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 27d071fd7d63..3e3083455272 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -2690,7 +2690,7 @@ bool Scene2530::Crank::startAction(CursorType action, Event &event) { return true; } -void Scene2530::Exit1::changeScene() { +void Scene2530::SouthExit::changeScene() { Scene2530 *scene = (Scene2530 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2707,8 +2707,8 @@ void Scene2530::postInit(SceneObjectList *OwnerList) { loadScene(2530); SceneExt::postInit(); - _exit1.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(108, 160)); + _southExit.setDetails(Rect(68, 155, 147, 168), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(108, 160)); if (R2_INVENTORY.getObjectScene(R2_PURE_GRAIN_ALCOHOL) == 2530) { _flask.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index df322bd1033b..4fbbe70cdc48 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -425,7 +425,7 @@ class Scene2530 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -438,7 +438,7 @@ class Scene2530 : public SceneExt { SceneActor _companion; Flask _flask; Crank _crank; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 42fb15222cd94b80737dfd4fabb946c5374625e1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:42:54 +0100 Subject: [PATCH 041/105] TSAGE: R2R - Renaming in scene 2535 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes2.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 3e3083455272..a47d435ae46d 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -2839,7 +2839,7 @@ bool Scene2535::TannerMask::startAction(CursorType action, Event &event) { return true; } -void Scene2535::Exit1::changeScene() { +void Scene2535::SouthExit::changeScene() { Scene2535 *scene = (Scene2535 *)R2_GLOBALS._sceneManager._scene; _enabled = false; @@ -2858,8 +2858,8 @@ void Scene2535::postInit(SceneObjectList *OwnerList) { R2_GLOBALS.setFlag(73); R2_INVENTORY.setObjectScene(R2_REBREATHER_TANK, 2535); } - _exit1.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_S, 2000); - _exit1.setDest(Common::Point(210, 160)); + _southExit.setDetails(Rect(172, 155, 250, 167), EXITCURSOR_S, 2000); + _southExit.setDest(Common::Point(210, 160)); if (R2_INVENTORY.getObjectScene(R2_TANNER_MASK) == 2535) { _tannerMask.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 4fbbe70cdc48..027c7c75a510 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -455,7 +455,7 @@ class Scene2535 : public SceneExt { bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -471,7 +471,7 @@ class Scene2535 : public SceneExt { SceneActor _rope; RebreatherTank _rebreatherTank; TannerMask _tannerMask; - Exit1 _exit1; + SouthExit _southExit; SequenceManager _sequenceManager; virtual void postInit(SceneObjectList *OwnerList = NULL); From 8319861745927306e174cdb0d1a259aa16594e98 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:51:03 +0100 Subject: [PATCH 042/105] TSAGE: R2R - Renaming in scene 2700 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 8 ++++---- engines/tsage/ringworld2/ringworld2_scenes2.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index a47d435ae46d..5719b13911d7 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -3072,7 +3072,7 @@ void Scene2700::Action4::signal() { scene->_ghoulHome9.animate(ANIM_MODE_8, 1, NULL); } -void Scene2700::Area1::process(Event &event) { +void Scene2700::SouthExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2700 *scene = (Scene2700 *)R2_GLOBALS._sceneManager._scene; @@ -3122,7 +3122,7 @@ void Scene2700::Area1::process(Event &event) { } } -void Scene2700::Area2::process(Event &event) { +void Scene2700::EastExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2700 *scene = (Scene2700 *)R2_GLOBALS._sceneManager._scene; @@ -3182,8 +3182,8 @@ void Scene2700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.stop(); R2_GLOBALS._sound2.stop(); - _area1.setDetails(Rect(135, 160, 185, 168), SHADECURSOR_DOWN); - _area2.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); + _southExit.setDetails(Rect(135, 160, 185, 168), SHADECURSOR_DOWN); + _eastExit.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); _ghoulHome6.postInit(); _ghoulHome6.setup(2700, 1, 1); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index 027c7c75a510..bf8024e01c09 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -508,11 +508,11 @@ class Scene2700 : public SceneExt { void signal(); }; - class Area1: public SceneArea { + class SouthExit: public SceneArea { public: void process(Event &event); }; - class Area2: public SceneArea { + class EastExit: public SceneArea { public: void process(Event &event); }; @@ -534,8 +534,8 @@ class Scene2700 : public SceneExt { Action2 _action2; Action3 _action3; Action4 _action4; - Area1 _area1; - Area2 _area2; + SouthExit _southExit; + EastExit _eastExit; Rect _walkRect1, _walkRect2, _walkRect3; Rect _walkRect4, _walkRect5, _walkRect6; SequenceManager _sequenceManager; From 2b6fb8dc20fb135aba97d2d6e5018c7ced0005e5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 01:54:25 +0100 Subject: [PATCH 043/105] TSAGE: R2R - Renaming in scene 2750 --- engines/tsage/ringworld2/ringworld2_scenes2.cpp | 8 ++++---- engines/tsage/ringworld2/ringworld2_scenes2.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index 5719b13911d7..f9e5b096c673 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -3797,7 +3797,7 @@ void Scene2750::Action7::signal() { scene->_folliage7.animate(ANIM_MODE_8, 1, NULL); } -void Scene2750::Area1::process(Event &event) { +void Scene2750::WestExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene; @@ -3828,7 +3828,7 @@ void Scene2750::Area1::process(Event &event) { } } -void Scene2750::Area2::process(Event &event) { +void Scene2750::EastExit::process(Event &event) { SceneArea::process(event); if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._player._canWalk) && (_bounds.contains(event.mousePos))) { Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene; @@ -3863,8 +3863,8 @@ void Scene2750::postInit(SceneObjectList *OwnerList) { loadScene(2750); R2_GLOBALS._sound2.stop(); SceneExt::postInit(); - _area1.setDetails(Rect(0, 90, 20, 135), EXITCURSOR_W); - _area2.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); + _westExit.setDetails(Rect(0, 90, 20, 135), EXITCURSOR_W); + _eastExit.setDetails(Rect(300, 90, 320, 135), EXITCURSOR_E); _walkRect1.set(30, 127, 155, 147); _walkRect2.set(130, 142, 210, 167); diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h index bf8024e01c09..d474297d795b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.h +++ b/engines/tsage/ringworld2/ringworld2_scenes2.h @@ -578,11 +578,11 @@ class Scene2750 : public SceneExt { void signal(); }; - class Area1: public SceneArea { + class WestExit: public SceneArea { public: void process(Event &event); }; - class Area2: public SceneArea { + class EastExit: public SceneArea { public: void process(Event &event); }; @@ -612,8 +612,8 @@ class Scene2750 : public SceneExt { Action5 _action5; Action6 _action6; Action7 _action7; - Area1 _area1; - Area2 _area2; + WestExit _westExit; + EastExit _eastExit; Rect _walkRect1, _walkRect2, _walkRect3; SequenceManager _sequenceManager; int _areaMode, _moveMode, _stripNumber; From eb56ec1d0cb62d593b80082120b20738034075e5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 02:10:32 +0100 Subject: [PATCH 044/105] TSAGE: R2R - Renaming in scene 3260 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 36 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes3.h | 8 ++--- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index c01980f45e80..9a72fd2ed5ba 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -1478,23 +1478,23 @@ void Scene3260::postInit(SceneObjectList *OwnerList) { _screen6.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); _screen6.setAction(&_action6, &_screen6); - _actor7.postInit(); - _actor7.setup(3260, 2, 1); - _actor7.setPosition(Common::Point(190, 22)); - _actor7.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor7.setAction(&_action7, &_actor7); - - _actor8.postInit(); - _actor8.setup(3260, 2, 1); - _actor8.setPosition(Common::Point(142, 14)); - _actor8.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor8.setAction(&_action8, &_actor8); - - _actor9.postInit(); - _actor9.setup(3260, 2, 1); - _actor9.setPosition(Common::Point(166, 6)); - _actor9.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); - _actor9.setAction(&_action9, &_actor9); + _screen7.postInit(); + _screen7.setup(3260, 2, 1); + _screen7.setPosition(Common::Point(190, 22)); + _screen7.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen7.setAction(&_action7, &_screen7); + + _screen8.postInit(); + _screen8.setup(3260, 2, 1); + _screen8.setPosition(Common::Point(142, 14)); + _screen8.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen8.setAction(&_action8, &_screen8); + + _screen9.postInit(); + _screen9.setup(3260, 2, 1); + _screen9.setPosition(Common::Point(166, 6)); + _screen9.setDetails(3260, 3, 1, 5, 1, (SceneItem *)NULL); + _screen9.setAction(&_action9, &_screen9); _securityConsole.postInit(); _securityConsole.setup(3260, 3, 1); @@ -1521,7 +1521,7 @@ void Scene3260::postInit(SceneObjectList *OwnerList) { _lightingConsole.setDetails(3260, 9, 1, 11, 1, (SceneItem *)NULL); _lightingConsole.animate(ANIM_MODE_2, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 3260, 0, 1, 2, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 3260, 0, 1, 2, 1, NULL); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] == 3275) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 6191b750be41..024698350477 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -315,16 +315,16 @@ class Scene3260 : public SceneExt { void signal(); }; public: - NamedHotspot _item1; + NamedHotspot _background; SceneActor _sceeen1; SceneActor _screen2; SceneActor _screen3; SceneActor _screen4; SceneActor _screen5; SceneActor _screen6; - SceneActor _actor7; - SceneActor _actor8; - SceneActor _actor9; + SceneActor _screen7; + SceneActor _screen8; + SceneActor _screen9; SceneActor _securityConsole; SceneActor _computerConsole; SceneActor _lightingConsole; From deb35181e4a1a29992479ee2a605b340d188c771 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 02:12:01 +0100 Subject: [PATCH 045/105] TSAGE: R2R - Renaming in scene 3285 --- engines/tsage/ringworld2/ringworld2_scenes3.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes3.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 9a72fd2ed5ba..bb96c8d6ead4 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2309,7 +2309,7 @@ bool Scene3385::Door::startAction(CursorType action, Event &event) { return true; } -void Scene3385::Exit1::changeScene() { +void Scene3385::SouthExit::changeScene() { Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(CURSOR_ARROW); @@ -2411,8 +2411,8 @@ void Scene3385::postInit(SceneObjectList *OwnerList) { _webbster.animate(ANIM_MODE_1, NULL); _webbster.setDetails(3385, 15, -1, -1, 1, (SceneItem *) NULL); - _exit1.setDetails(Rect(103, 152, 217, 170), SHADECURSOR_DOWN, 3395); - _exit1.setDest(Common::Point(158, 151)); + _southExit.setDetails(Rect(103, 152, 217, 170), SHADECURSOR_DOWN, 3395); + _southExit.setDest(Common::Point(158, 151)); _door.postInit(); _door.setPosition(Common::Point(160, 100)); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 024698350477..83db076941e8 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -462,7 +462,7 @@ class Scene3385 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Exit1 : public SceneExit { + class SouthExit : public SceneExit { public: virtual void changeScene(); }; @@ -482,7 +482,7 @@ class Scene3385 : public SceneExt { Companion2 _companion2; Webbster _webbster; Door _door; - Exit1 _exit1; + SouthExit _southExit; Action1 _action1; SequenceManager _sequenceManager; From b282ff9af707fb70050ec3ebce7e9314862b1c82 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 6 Nov 2013 02:20:21 +0100 Subject: [PATCH 046/105] TSAGE: R2R - Renaming in scene 3400. Remove a useless actor. --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 34 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes3.h | 5 ++- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index bb96c8d6ead4..953de77f4b93 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2732,10 +2732,10 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_SEEKER] = 3400; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3400; - _actor7.postInit(); - _actor7.setup(3403, 1, 1); - _actor7.setPosition(Common::Point(190, 103)); - _actor7.fixPriority(89); + _manholeCover.postInit(); + _manholeCover.setup(3403, 1, 1); + _manholeCover.setPosition(Common::Point(190, 103)); + _manholeCover.fixPriority(89); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._player._characterIndex == R2_SEEKER) @@ -2792,11 +2792,11 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { _webbster.setup(40, 3, 1); _webbster.animate(ANIM_MODE_1, NULL); - _actor6.postInit(); - _actor6.setup(3400, 1, 6); - _actor6.setPosition(Common::Point(236, 51)); - _actor6.fixPriority(51); - _actor6.animate(ANIM_MODE_6, NULL); + _door.postInit(); + _door.setup(3400, 1, 6); + _door.setPosition(Common::Point(236, 51)); + _door.fixPriority(51); + _door.animate(ANIM_MODE_6, NULL); R2_GLOBALS.clearFlag(71); _sceneMode = 3400; @@ -2860,29 +2860,29 @@ void Scene3400::signal() { _teal.setStrip(1); _sceneMode = 3403; if (R2_GLOBALS._player._characterIndex == R2_SEEKER) - setAction(&_sequenceManager, this, 3403, &R2_GLOBALS._player, &_webbster, &_actor7, NULL); + setAction(&_sequenceManager, this, 3403, &R2_GLOBALS._player, &_webbster, &_manholeCover, NULL); else - setAction(&_sequenceManager, this, 3403, &_companion1, &_webbster, &_actor7, NULL); + setAction(&_sequenceManager, this, 3403, &_companion1, &_webbster, &_manholeCover, NULL); break; case 3309: warning("STUB: sub_1D227()"); _teal.setStrip(1); _sceneMode = 3405; if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) - setAction(&_sequenceManager, this, 3405, &R2_GLOBALS._player, &_actor7, NULL); + setAction(&_sequenceManager, this, 3405, &R2_GLOBALS._player, &_manholeCover, NULL); else - setAction(&_sequenceManager, this, 3405, &_companion2, &_actor7, NULL); + setAction(&_sequenceManager, this, 3405, &_companion2, &_manholeCover, NULL); break; case 3310: warning("STUB: sub_1D227()"); _teal.setStrip(1); _sceneMode = 3406; if (R2_GLOBALS._player._characterIndex == R2_QUINN) - setAction(&_sequenceManager, this, 3406, &R2_GLOBALS._player, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &R2_GLOBALS._player, &_manholeCover, NULL); else if (R2_GLOBALS._player._characterIndex == R2_SEEKER) - setAction(&_sequenceManager, this, 3406, &_companion1, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &_companion1, &_manholeCover, NULL); else if (R2_GLOBALS._player._characterIndex == R2_MIRANDA) - setAction(&_sequenceManager, this, 3406, &_companion2, &_actor7, NULL); + setAction(&_sequenceManager, this, 3406, &_companion2, &_manholeCover, NULL); break; case 3311: warning("STUB: sub_1D227()"); @@ -2890,7 +2890,7 @@ void Scene3400::signal() { _teal.show(); _teal.setStrip(1); _sceneMode = 3407; - setAction(&_sequenceManager, this, 3407, &_teal, &_actor7, NULL); + setAction(&_sequenceManager, this, 3407, &_teal, &_manholeCover, NULL); break; case 3400: { _actor8.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 83db076941e8..0d2bc9e6cb34 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -548,9 +548,8 @@ class Scene3400 : public SceneExt { SceneActor _companion2; SceneActor _webbster; SceneActor _teal; - SceneActor _actor5; - SceneActor _actor6; - SceneActor _actor7; + SceneActor _door; + SceneActor _manholeCover; SceneActor _actor8; SequenceManager _sequenceManager; bool _soundFaded; From a00f589e84338554627e0126d21f86379ded0004 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Nov 2013 21:58:53 -0500 Subject: [PATCH 047/105] TSAGE: Renamings for R2R Rim lift interior --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 220 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes1.h | 17 +- 2 files changed, 122 insertions(+), 115 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 7f7fe3a284ae..3cb6e2a12b33 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -11742,7 +11742,7 @@ bool Scene1850::Button::startAction(CursorType action, Event &event) { else scene->setAction(&scene->_sequenceManager1, scene, 1852, &R2_GLOBALS._player, NULL); } else if (R2_GLOBALS.getFlag(30)) { - scene->_field41E = 1; + scene->_seqNumber = 1; scene->_sceneMode = 1860; if (R2_GLOBALS.getFlag(32)) @@ -11806,12 +11806,14 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { } else if (R2_GLOBALS.getFlag(30)) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1875; - scene->_actor2.postInit(); + scene->_airbag.postInit(); if (R2_GLOBALS.getFlag(32)) - scene->setAction(&scene->_sequenceManager1, scene, 1876, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1876, + &R2_GLOBALS._player, &scene->_airbag, NULL); else - scene->setAction(&scene->_sequenceManager1, scene, 1875, &R2_GLOBALS._player, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1875, + &R2_GLOBALS._player, &scene->_airbag, NULL); return true; } else if (R2_GLOBALS.getFlag(70)) { @@ -11833,7 +11835,8 @@ bool Scene1850::Robot::startAction(CursorType action, Event &event) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1878; - scene->setAction(&scene->_sequenceManager1, scene, 1878, &R2_GLOBALS._player, &scene->_robot, &scene->_actor2, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1878, &R2_GLOBALS._player, + &scene->_robot, &scene->_airbag, NULL); } return true; @@ -11866,9 +11869,9 @@ bool Scene1850::Door::startAction(CursorType action, Event &event) { if ((R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { if (_position.x >= 160) - scene->_field41E = 3; + scene->_seqNumber = 3; else - scene->_field41E = 2; + scene->_seqNumber = 2; scene->_sceneMode = 1860; @@ -11911,22 +11914,22 @@ bool Scene1850::DisplayScreen::startAction(CursorType action, Event &event) { Scene1850::Scene1850() { _sceneMode = 0; - _field414 = 0; - _field416 = 0; - _field418 = 0; - _field41E = 0; + _shadeCountdown = 0; + _shadeDirection = 0; + _shadeChanging = false; + _seqNumber = 0; } void Scene1850::synchronize(Serializer &s) { SceneExt::synchronize(s); s.syncAsSint16LE(_sceneMode); - s.syncAsSint16LE(_field414); - s.syncAsSint16LE(_field416); - s.syncAsSint16LE(_field418); - s.syncAsSint16LE(_field41E); - s.syncAsSint16LE(_field41A.x); - s.syncAsSint16LE(_field41A.y); + s.syncAsSint16LE(_shadeCountdown); + s.syncAsSint16LE(_shadeDirection); + s.syncAsSint16LE(_shadeChanging); + s.syncAsSint16LE(_seqNumber); + s.syncAsSint16LE(_playerDest.x); + s.syncAsSint16LE(_playerDest.y); } void Scene1850::postInit(SceneObjectList *OwnerList) { @@ -11953,9 +11956,9 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_quinnSpeaker); _stripManager.addSpeaker(&_seekerSpeaker); - _field418 = 0; - _field41E = 0; - _field41A = Common::Point(0, 0); + _shadeChanging = false; + _seqNumber = 0; + _playerDest = Common::Point(0, 0); R2_GLOBALS._player._characterScene[R2_QUINN] = 1850; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1850; @@ -12016,21 +12019,21 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1850) { - _actor2.postInit(); + _airbag.postInit(); if (R2_GLOBALS.getFlag(34)) { - _actor2.setup(1851, 4, 2); - _actor2.fixPriority(114); + _airbag.setup(1851, 4, 2); + _airbag.fixPriority(114); } else { - _actor2.setup(1851, 4, 1); + _airbag.setup(1851, 4, 1); } - _actor2.setPosition(Common::Point(179, 113)); + _airbag.setPosition(Common::Point(179, 113)); if ((_robot._strip == 1) && (_robot._frame == 3)){ - _actor2.hide(); + _airbag.hide(); } - _actor2.setDetails(1850, 6, -1, -1, 1, (SceneItem *) NULL); + _airbag.setDetails(1850, 6, -1, -1, 1, (SceneItem *) NULL); } if (R2_GLOBALS._player._characterIndex == R2_QUINN) { @@ -12038,40 +12041,40 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.setVisage(1511); _companion.setVisage(1508); - _actor3.postInit(); - _actor3.setup(1853, 3, 1); - _actor3.setPosition(Common::Point(122, 113)); - _actor3.fixPriority(114); - _actor3._effect = EFFECT_SHADED2; + _screen.postInit(); + _screen.setup(1853, 3, 1); + _screen.setPosition(Common::Point(122, 113)); + _screen.fixPriority(114); + _screen._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } else { // And the associated dead code - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); } - _actor4.postInit(); - _actor4.setup(1853, 3, 2); - _actor4.setPosition(Common::Point(139, 111)); - _actor4.fixPriority(114); - _actor4._effect = EFFECT_SHADED2; + _helmet.postInit(); + _helmet.setup(1853, 3, 2); + _helmet.setPosition(Common::Point(139, 111)); + _helmet.fixPriority(114); + _helmet._effect = EFFECT_SHADED2; // Still totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *) NULL); + _helmet.setDetails(1850, 29, -1, -1, 2, (SceneItem *) NULL); } else { // Another piece of dead code - _actor4.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _helmet.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } } else { R2_GLOBALS._player.setVisage(1500); @@ -12082,40 +12085,40 @@ void Scene1850::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.setVisage(1508); _companion.setVisage(1511); - _actor3.postInit(); - _actor3.setup(1853, 3, 1); - _actor3.setPosition(Common::Point(122, 113)); - _actor3.fixPriority(114); - _actor3._effect = EFFECT_SHADED2; + _screen.postInit(); + _screen.setup(1853, 3, 1); + _screen.setPosition(Common::Point(122, 113)); + _screen.fixPriority(114); + _screen._effect = EFFECT_SHADED2; // Totally useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { // Dead code - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *) NULL); } else { - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *) NULL); } - _actor4.postInit(); - _actor4.setup(1853, 3, 2); - _actor4.setPosition(Common::Point(139, 111)); - _actor4.fixPriority(114); - _actor4._effect = EFFECT_SHADED2; + _helmet.postInit(); + _helmet.setup(1853, 3, 2); + _helmet.setPosition(Common::Point(139, 111)); + _helmet.fixPriority(114); + _helmet._effect = EFFECT_SHADED2; // Again, useless test if (R2_GLOBALS._player._characterIndex == R2_QUINN) { // and dead code - _actor4.setDetails(1850, 29, -1, -1, 1, (SceneItem *) NULL); + _helmet.setDetails(1850, 29, -1, -1, 1, (SceneItem *) NULL); } else { - _actor4.setDetails(1850, 28, -1, -1, 1, (SceneItem *) NULL); + _helmet.setDetails(1850, 28, -1, -1, 1, (SceneItem *) NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } } else { R2_GLOBALS._player.setVisage(1505); @@ -12251,7 +12254,8 @@ void Scene1850::signal() { break; case 16: _sceneMode = 1870; - setAction(&_sequenceManager1, this, 1870, &R2_GLOBALS._player, &_companion, &_actor3, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1870, &R2_GLOBALS._player, &_companion, + &_screen, &_helmet, NULL); break; case 20: R2_GLOBALS._player.enableControl(CURSOR_TALK); @@ -12259,7 +12263,8 @@ void Scene1850::signal() { case 21: R2_GLOBALS._player.disableControl(); _sceneMode = 1877; - setAction(&_sequenceManager1, this, 1877, &R2_GLOBALS._player, &_companion, &_robot, NULL); + setAction(&_sequenceManager1, this, 1877, &R2_GLOBALS._player, &_companion, + &_robot, NULL); break; case 30: R2_GLOBALS._player.disableControl(); @@ -12279,7 +12284,7 @@ void Scene1850::signal() { _sceneMode = 1851; } - _field418 = 1; + _shadeChanging = true; if (R2_GLOBALS.getFlag(30)) { _displayScreen.setAction(&_sequenceManager2, NULL, 1867, &_displayScreen, NULL); } else if (R2_GLOBALS.getFlag(34)) { @@ -12295,12 +12300,13 @@ void Scene1850::signal() { R2_GLOBALS.setFlag(34); R2_GLOBALS._walkRegions.disableRegion(2); - _actor2.postInit(); - _actor2.setDetails(1850, 6, -1, -1, 5, &_robot); + _airbag.postInit(); + _airbag.setDetails(1850, 6, -1, -1, 5, &_robot); _sceneMode = 1879; - _displayScreen.setAction(&_sequenceManager2, this, 1879, &_robot, &_displayScreen, &_actor2, NULL); + _displayScreen.setAction(&_sequenceManager2, this, 1879, &_robot, + &_displayScreen, &_airbag, NULL); } else { _displayScreen.setAction(&_sequenceManager2, NULL, 1867, &_displayScreen, NULL); } @@ -12311,11 +12317,11 @@ void Scene1850::signal() { R2_GLOBALS._scenePalette.addFader(_palette1._palette, 256, 5, this); if (_sceneMode == 1851) - _field416 = -20; + _shadeDirection = -20; else - _field416 = 20; + _shadeDirection = 20; - _field414 = 20; + _shadeCountdown = 20; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (_sceneMode == 1879) @@ -12361,16 +12367,16 @@ void Scene1850::signal() { _stripManager.start(575, this); break; case 1860: - if (_field41A.x != 0) { + if (_playerDest.x != 0) { R2_GLOBALS._player.enableControl(); PlayerMover *mover = new PlayerMover(); - R2_GLOBALS._player.addMover(mover, &_field41A, this); + R2_GLOBALS._player.addMover(mover, &_playerDest, this); - _field41A = Common::Point(0, 0); + _playerDest = Common::Point(0, 0); } - switch (_field41E) { + switch (_seqNumber) { case 1: _sceneMode = 1853; if (R2_GLOBALS.getFlag(32)) { @@ -12391,7 +12397,7 @@ void Scene1850::signal() { break; } - _field41E = 0; + _seqNumber = 0; break; case 1870: R2_GLOBALS._walkRegions.disableRegion(5); @@ -12406,36 +12412,36 @@ void Scene1850::signal() { _stripManager.start(561, this); break; case 1877: - _actor3.postInit(); - _actor3._effect = EFFECT_SHADED2; + _screen.postInit(); + _screen._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor3.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); + _screen.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); } else { - _actor3.setDetails(1850, 30, -1, -1, 2, (SceneItem *)NULL); + _screen.setDetails(1850, 30, -1, -1, 2, (SceneItem *)NULL); } - _actor4.postInit(); - _actor4._effect = EFFECT_SHADED2; + _helmet.postInit(); + _helmet._effect = EFFECT_SHADED2; if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor4.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); + _helmet.setDetails(1850, 29, -1, -1, 2, (SceneItem *)NULL); } else { - _actor4.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); + _helmet.setDetails(1850, 28, -1, -1, 2, (SceneItem *)NULL); } if (R2_GLOBALS.getFlag(31)) { - _actor3._shade = 0; - _actor4._shade = 0; + _screen._shade = 0; + _helmet._shade = 0; } else { - _actor3._shade = 6; - _actor4._shade = 6; + _screen._shade = 6; + _helmet._shade = 6; } R2_GLOBALS.clearFlag(30); _sceneMode = 15; - setAction(&_sequenceManager1, this, 1869, &R2_GLOBALS._player, &_actor3, NULL); - _companion.setAction(&_sequenceManager2, this, 1868, &_companion, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1869, &R2_GLOBALS._player, &_screen, NULL); + _companion.setAction(&_sequenceManager2, this, 1868, &_companion, &_helmet, NULL); break; case 1878: R2_INVENTORY.setObjectScene(R2_REBREATHER_TANK, 1850); @@ -12461,8 +12467,8 @@ void Scene1850::signal() { void Scene1850::process(Event &event) { if ( (event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_WALK) - && (R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { - _field41A = event.mousePos; + && (R2_GLOBALS._player._characterIndex == R2_SEEKER) && (R2_GLOBALS.getFlag(30))) { + _playerDest = event.mousePos; R2_GLOBALS._player.disableControl(); _sceneMode = 1860; if (R2_GLOBALS.getFlag(32)) { @@ -12478,35 +12484,35 @@ void Scene1850::process(Event &event) { } void Scene1850::dispatch() { - if (_field418 != 0) { - _field414--; - if (_field414 == 0) - _field418 = 0; + if (_shadeChanging) { + _shadeCountdown--; + if (_shadeCountdown == 0) + _shadeChanging = false; - if (_field416 >= 0) { - R2_GLOBALS._player._shade = (_field414 * 6) / _field416; + if (_shadeDirection >= 0) { + R2_GLOBALS._player._shade = (_shadeCountdown * 6) / _shadeDirection; } else { - R2_GLOBALS._player._shade = ((_field414 * 6) / _field416) + 6; + R2_GLOBALS._player._shade = ((_shadeCountdown * 6) / _shadeDirection) + 6; } R2_GLOBALS._player._flags |= OBJFLAG_PANES; _companion._shade = R2_GLOBALS._player._shade; _companion._flags |= OBJFLAG_PANES; - _actor3._shade = R2_GLOBALS._player._shade; - _actor3._flags |= OBJFLAG_PANES; + _screen._shade = R2_GLOBALS._player._shade; + _screen._flags |= OBJFLAG_PANES; - _actor4._shade = R2_GLOBALS._player._shade; - _actor4._flags |= OBJFLAG_PANES; + _helmet._shade = R2_GLOBALS._player._shade; + _helmet._flags |= OBJFLAG_PANES; } if (R2_GLOBALS.getFlag(32)) { - _actor3.setPosition(Common::Point(_displayScreen._position.x - 37, _displayScreen._position.y - 71)); - _actor4.setPosition(Common::Point(_displayScreen._position.x - 20, _displayScreen._position.y - 73)); + _screen.setPosition(Common::Point(_displayScreen._position.x - 37, _displayScreen._position.y - 71)); + _helmet.setPosition(Common::Point(_displayScreen._position.x - 20, _displayScreen._position.y - 73)); } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1850) { - _actor2.setPosition(Common::Point(_displayScreen._position.x + 20, _displayScreen._position.y - 71)); + _airbag.setPosition(Common::Point(_displayScreen._position.x + 20, _displayScreen._position.y - 71)); } Scene::dispatch(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 34d74907aa5a..899083b4b48b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -915,20 +915,20 @@ class Scene1850 : public SceneExt { public: int _sceneMode; - int _field414; - int _field416; - int _field418; - Common::Point _field41A; - int _field41E; + int _shadeCountdown; + int _shadeDirection; + bool _shadeChanging; + Common::Point _playerDest; + int _seqNumber; ScenePalette _palette1; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; NamedHotspot _background; Button _button; SceneActor _companion; - SceneActor _actor2; - SceneActor _actor3; - SceneActor _actor4; + SceneActor _airbag; + SceneActor _screen; + SceneActor _helmet; Robot _robot; Door _leftDoor; Door _rightDoor; @@ -1244,6 +1244,7 @@ class Scene1950 : public SceneExt { virtual void signal(); virtual void process(Event &event); }; + } // End of namespace Ringworld2 } // End of namespace TsAGE From 9678195674f9396051e373f8ebadd7dcc46bc479 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Nov 2013 22:12:14 -0500 Subject: [PATCH 048/105] TSAGE: Renamings for R2R Rim lift exterior --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 6 +++--- engines/tsage/ringworld2/ringworld2_scenes1.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 3cb6e2a12b33..5c3fda2bbebb 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -11547,12 +11547,12 @@ void Scene1800::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_QUINN] = 1800; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1800; - _item2.setDetails(Rect(128, 95, 190, 135), 1800, 10, -1, -1, 1, NULL); - _item1.setDetails(Rect(95, 3, 223, 135), 1800, 0, -1, -1, 1, NULL); + _elevatorContents.setDetails(Rect(128, 95, 190, 135), 1800, 10, -1, -1, 1, NULL); + _elevator.setDetails(Rect(95, 3, 223, 135), 1800, 0, -1, -1, 1, NULL); // Original was calling _item3.setDetails(Rect(1800, 11, 24, 23), 25, -1, -1, -1, 1, NULL); // This is *wrong*. The following statement is a wild guess based on good common sense - _item3.setDetails(11, 1800, 23, 24, 25); + _surface.setDetails(11, 1800, 23, 24, 25); _secBackground.setDetails(Rect(0, 0, 320, 200), 1800, 17, -1, 19, 1, NULL); R2_GLOBALS._player.disableControl(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 899083b4b48b..b35bf678abfd 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -869,9 +869,9 @@ class Scene1800 : public SceneExt { int _locationMode; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - NamedHotspot _item2; - NamedHotspot _item3; + NamedHotspot _elevator; + NamedHotspot _elevatorContents; + NamedHotspot _surface; NamedHotspot _secBackground; Background _background; SceneActor _playerShadow; From e36f24ad691f4b61ee3cf7c01819edf4b70f80d1 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Wed, 6 Nov 2013 18:04:09 +0200 Subject: [PATCH 049/105] COMMON: Define int64 and uint64 if HAVE_CONFIG_H isn't set This fixes compilation of sword25's pluto with Visual Studio. The issue has been revealed with commit 34169a81. The other data types are defined in scummsys.h, thus only the missing int64 and uint64 defines are set. --- common/scummsys.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/scummsys.h b/common/scummsys.h index b15a76e5b999..48dffc53a675 100644 --- a/common/scummsys.h +++ b/common/scummsys.h @@ -405,6 +405,8 @@ typedef unsigned int uint32; typedef signed int int32; typedef unsigned int uint; + typedef signed long long int64; + typedef unsigned long long uint64; #endif From 90481b640939ca2a81a6e1eee1cc2fdb535e17c3 Mon Sep 17 00:00:00 2001 From: JenniBee Date: Wed, 6 Nov 2013 16:12:03 -0500 Subject: [PATCH 050/105] WINTERMUTE: Adding detection for more games. --- engines/wintermute/detection_tables.h | 45 +++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h index 63f5078c1289..a47f92157149 100644 --- a/engines/wintermute/detection_tables.h +++ b/engines/wintermute/detection_tables.h @@ -43,16 +43,19 @@ static const PlainGameDescriptor wintermuteGames[] = { {"escapemansion", "Escape from the Mansion"}, {"ghostsheet", "Ghost in the Sheet"}, {"hamlet", "Hamlet or the last game without MMORPS features, shaders and product placement"}, + {"helga", "Helga Deep In Trouble"}, {"jamesperis", "James Peris: No License Nor Control"}, {"looky", "Looky"}, {"julia", "J.U.L.I.A."}, {"mirage", "Mirage"}, + {"paintaria", "Paintaria"}, {"pigeons", "Pigeons in the Park"}, {"reversion1", "Reversion: The Escape"}, {"reversion2", "Reversion: The Meeting"}, {"rosemary", "Rosemary"}, {"shaban", "Shaban"}, {"shinestar", "The Shine of a Star"}, + {"spaceinvaders", "Space Invaders"}, {"spacemadness", "Space Madness"}, {"thebox", "The Box"}, {"tib", "Fairy Tales About Toshechka and Boshechka"}, @@ -329,6 +332,21 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Helga Deep In Trouble (Demo) (English) + { + "helga", + "Demo", + { + {"english.dcp", 0, "b3a93e678f0ef97200f691cd1724643f", 135864}, + {"data.dcp", 0, "45134ed93bc391edf148b79cdcbf2a09", 154266028}, + AD_LISTEND + }, + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // James Peris: No License Nor Control (English) { "jamesperis", @@ -414,7 +432,8 @@ static const ADGameDescription gameDescriptions[] = { }, Common::EN_ANY, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_UNSTABLE | + ADGF_DEMO, GUIO0() }, // Looky Demo (German) @@ -428,7 +447,8 @@ static const ADGameDescription gameDescriptions[] = { }, Common::DE_DEU, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_UNSTABLE | + ADGF_DEMO, GUIO0() }, // Looky (German) @@ -455,6 +475,16 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Paintaria + { + "paintaria", + "", + AD_ENTRY1s("data.dcp", "354c08440c98150ff0d4008dd2865880", 48326040), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO0() + }, // Pigeons in the Park { "pigeons", @@ -711,6 +741,17 @@ static const ADGameDescription gameDescriptions[] = { ADGF_UNSTABLE, GUIO0() }, + // Space Invaders (Demo) + { + "spaceinvaders", + "Demo", + AD_ENTRY1s("data.dcp", "3f27adefdf72f2c1601cf555c80a509f", 1308361), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_UNSTABLE | + ADGF_DEMO, + GUIO0() + }, // Space Madness { "spacemadness", From 627769a2f5d9ec0bbcf6ce9f9200a173bfea84bf Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 6 Nov 2013 23:41:57 +0200 Subject: [PATCH 051/105] FULLPIPE: Implement another Movement class copy constructor. --- engines/fullpipe/statics.cpp | 82 +++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index 0599125269d7..e281b9bbfbc1 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -1201,8 +1201,86 @@ Movement::Movement(Movement *src, StaticANIObject *ani) { updateCurrDynamicPhase(); } -Movement::Movement(Movement *src, int *flag1, int flag2, StaticANIObject *ani) { - warning("STUB: Movement(src, %p, %d, ani)", (void *)flag1, flag2); +Movement::Movement(Movement *src, int *oldIdxs, int newSize, StaticANIObject *ani) : GameObject(src) { + _lastFrameSpecialFlag = 0; + _updateFlag1 = 1; + _staticsObj1 = 0; + _staticsObj2 = 0; + _mx = 0; + _my = 0; + _m2x = 0; + _m2y = 0; + + _field_78 = 0; + _framePosOffsets = 0; + _field_84 = 0; + _currDynamicPhase = 0; + _field_8C = 0; + _currDynamicPhaseIndex = 0; + _field_94 = 0; + + _field_50 = src->_field_50; + _flipFlag = src->_flipFlag; + _currMovement = 0; + _mx = src->_mx; + _my = src->_my; + _m2x = src->_m2x; + _m2y = src->_m2y; + + if (newSize != -1) { + if (newSize >= src->_dynamicPhases.size() + 1) + newSize = src->_dynamicPhases.size() + 1; + } else { + newSize = src->_dynamicPhases.size(); + } + + _framePosOffsets = (Common::Point **)calloc(newSize, sizeof(Common::Point *)); + + for (int i = 0; i < newSize; i++) + _framePosOffsets[i] = new Common::Point(); + + if (oldIdxs) { + for (int i = 0; i < newSize - 1; i++, oldIdxs++) { + if (oldIdxs[i] == -1) { + _dynamicPhases.push_back(src->_staticsObj1); + + _framePosOffsets[i]->x = 0; + _framePosOffsets[i]->y = 0; + } else { + src->setDynamicPhaseIndex(oldIdxs[i]); + + _dynamicPhases.push_back(src->_currDynamicPhase); + + _framePosOffsets[i]->x = src->_framePosOffsets[oldIdxs[i]]->x; + _framePosOffsets[i]->y = src->_framePosOffsets[oldIdxs[i]]->y; + } + } + _staticsObj1 = (Statics *)_dynamicPhases.front(); + _staticsObj2 = (Statics *)_dynamicPhases.back(); + } else { + for (int i = 0; i < newSize; i++) { + src->setDynamicPhaseIndex(i); + + if (i < newSize - 1) + _dynamicPhases.push_back(new DynamicPhase(src->_currDynamicPhase, 0)); + + _framePosOffsets[i]->x = src->_framePosOffsets[i]->x; + _framePosOffsets[i]->y = src->_framePosOffsets[i]->y; + } + + _staticsObj1 = ani->getStaticsById(src->_staticsObj1->_staticsId); + _staticsObj2 = ani->getStaticsById(src->_staticsObj2->_staticsId); + + _dynamicPhases.push_back(_staticsObj2); + + this->_updateFlag1 = src->_updateFlag1; + } + + updateCurrDynamicPhase(); + removeFirstPhase(); + + _counterMax = src->_counterMax; + _counter = src->_counter; } bool Movement::load(MfcArchive &file) { From 49fd22b5a9f912f2d4fef9175518684930fcf881 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 6 Nov 2013 23:52:01 +0200 Subject: [PATCH 052/105] FULLPIPE: Implement ModalIntro destructor --- engines/fullpipe/modal.cpp | 5 +++++ engines/fullpipe/modal.h | 1 + 2 files changed, 6 insertions(+) diff --git a/engines/fullpipe/modal.cpp b/engines/fullpipe/modal.cpp index 44e7b46184c9..f766be3eac9d 100644 --- a/engines/fullpipe/modal.cpp +++ b/engines/fullpipe/modal.cpp @@ -48,6 +48,11 @@ ModalIntro::ModalIntro() { _sfxVolume = g_fullpipe->_sfxVolume; } +ModalIntro::~ModalIntro() { + g_fullpipe->stopAllSounds(); + g_fullpipe->_sfxVolume = _sfxVolume; +} + bool ModalIntro::handleMessage(ExCommand *message) { if (message->_messageKind != 17) return false; diff --git a/engines/fullpipe/modal.h b/engines/fullpipe/modal.h index f3f571e2a93e..b57d1fbd0645 100644 --- a/engines/fullpipe/modal.h +++ b/engines/fullpipe/modal.h @@ -52,6 +52,7 @@ class ModalIntro : public BaseModalObject { public: ModalIntro(); + virtual ~ModalIntro(); virtual bool pollEvent() { return true; } virtual bool handleMessage(ExCommand *message); From d8ed93be9c63b0e800aa7358024dda74ec959141 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Nov 2013 02:21:31 +0100 Subject: [PATCH 053/105] TSAGE: R2R - WIP renaming in scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 54 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes3.h | 10 ++-- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 953de77f4b93..54d833494d58 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -3218,7 +3218,7 @@ void Scene3500::Action1::signal() { scene->_actor6.hide(); _field24 = 0; if (_field20 == 0) { - scene->_actor7.sub1094ED(); + scene->_throttle.sub1094ED(); if (scene->_mazeChangeAmount == scene->_field1270) scene->_aSound1.play(276); } @@ -3338,7 +3338,7 @@ void Scene3500::Action2::signal() { di = scene->_actor9._position.x; } - scene->_actor7.sub1094ED(); + scene->_throttle.sub1094ED(); scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt(si, 73); @@ -3386,14 +3386,14 @@ bool Scene3500::DirectionButton::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ -Scene3500::Actor7::Actor7() { +Scene3500::Throttle::Throttle() { _fieldA8 = 0; _fieldAA = 0; _fieldAC = 0; - _fieldAE = 0; + _deltaY = 0; } -void Scene3500::Actor7::synchronize(Serializer &s) { +void Scene3500::Throttle::synchronize(Serializer &s) { SceneActor::synchronize(s); s.syncAsSint16LE(_pos.x); @@ -3401,11 +3401,11 @@ void Scene3500::Actor7::synchronize(Serializer &s) { s.syncAsSint16LE(_fieldA8); s.syncAsSint16LE(_fieldAA); s.syncAsSint16LE(_fieldAC); - s.syncAsSint16LE(_fieldAE); + s.syncAsSint16LE(_deltaY); } -void Scene3500::Actor7::sub109466(int xp, int yp, int arg3, int arg4, int arg5) { - _fieldAE = 0; +void Scene3500::Throttle::init(int xp, int yp, int arg3, int arg4, int arg5) { + _deltaY = 0; _pos = Common::Point(xp, yp); _fieldA8 = arg3; _fieldAA = arg4; @@ -3417,45 +3417,45 @@ void Scene3500::Actor7::sub109466(int xp, int yp, int arg3, int arg4, int arg5) sub109663(arg5); } -void Scene3500::Actor7::sub1094ED() { +void Scene3500::Throttle::sub1094ED() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; scene->_field1270 = _position.x - _pos.x; } -void Scene3500::Actor7::sub109663(int arg1){ +void Scene3500::Throttle::sub109663(int arg1){ changePosition(Common::Point(_pos.x + arg1, _pos.y - (_fieldAC * arg1))); } -void Scene3500::Actor7::changePosition(const Common::Point &pt) { +void Scene3500::Throttle::changePosition(const Common::Point &pt) { setPosition(pt); } -void Scene3500::Actor7::process(Event &event) { +void Scene3500::Throttle::process(Event &event) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; if (!scene->_directionChangesEnabled) return; if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_USE) && (_bounds.contains(event.mousePos))) { - _fieldAE = 1 + event.mousePos.y - _position.y; + _deltaY = 1 + event.mousePos.y - _position.y; event.eventType = EVENT_NONE; } - if ((event.eventType == EVENT_BUTTON_UP) && (_fieldAE != 0)) { - _fieldAE = 0; + if ((event.eventType == EVENT_BUTTON_UP) && (_deltaY != 0)) { + _deltaY = 0; event.handled = true; if (scene->_action1._field24 == 0) sub1094ED(); } - if (_fieldAE == 0) + if (_deltaY == 0) return; R2_GLOBALS._sound2.play(338); event.handled = true; - int cx = event.mousePos.y - _fieldAE + 1; + int cx = event.mousePos.y - _deltaY + 1; if (_pos.y >= cx) { if (_pos.y - _fieldAA <= cx) changePosition(Common::Point(((_pos.y - cx) / 2) + _pos.x + ((_pos.y - cx) % 2), cx)); @@ -3466,7 +3466,7 @@ void Scene3500::Actor7::process(Event &event) { } } -bool Scene3500::Actor7::startAction(CursorType action, Event &event) { +bool Scene3500::Throttle::startAction(CursorType action, Event &event) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; if (!scene->_directionChangesEnabled) { @@ -3561,7 +3561,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_SEEKER] = 3500; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3500; _field1284 = 0; - _field1282 = 0; + _field1282 = 0; // CHECKME: Useless variable _field1278 = 0; _field1272 = 1; _field1270 = 4; @@ -3588,8 +3588,8 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._scenePalette._palette[(3 * i) + 2] = tmpPal[(3 * i) + 2]; } - _actor7.sub109466(38, 165, 16, 32, _field1270); - _actor7.setDetails(3500, 6, 7, -1, 1, (SceneItem *)NULL); + _throttle.init(38, 165, 16, 32, _field1270); + _throttle.setDetails(3500, 6, 7, -1, 1, (SceneItem *)NULL); R2_GLOBALS._sound1.play(276); _pitchDown._movementId = 88; @@ -3671,19 +3671,19 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { void Scene3500::doMovement(int id) { switch (id) { case -1: - _actor7.sub1094ED(); + _throttle.sub1094ED(); if (_field1270 != 0) { _field1270--; - _actor7.sub109663(_field1270); + _throttle.sub109663(_field1270); } if (_action1._field24 != 0) _field1270 = 0; break; case 1: - _actor7.sub1094ED(); + _throttle.sub1094ED(); if (_field1270 < 16) { ++_field1270; - _actor7.sub109663(_field1270); + _throttle.sub109663(_field1270); } if (_action1._field24 != 0) _field1270 = 0; @@ -3739,7 +3739,7 @@ void Scene3500::doMovement(int id) { break; default: _field1270 = id; - _actor7.sub109663(id); + _throttle.sub109663(id); if (_action1._field24 != 0) { _field1270 = 0; } @@ -3826,7 +3826,7 @@ void Scene3500::process(Event &event) { } if (!event.handled) - _actor7.process(event); + _throttle.process(event); if (!event.handled) _pitchDown.process(event); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 0d2bc9e6cb34..fcaa27b1c56a 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -597,18 +597,18 @@ class Scene3500 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor7 : public SceneActor { + class Throttle : public SceneActor { public: Common::Point _pos; int _fieldA8; int _fieldAA; int _fieldAC; - int _fieldAE; + int _deltaY; - Actor7(); + Throttle(); virtual void synchronize(Serializer &s); - void sub109466(int xp, int yp, int arg3, int arg4, int arg5); + void init(int xp, int yp, int arg3, int arg4, int arg5); void sub1094ED(); void sub109663(int arg1); void changePosition(const Common::Point &pt); @@ -646,7 +646,7 @@ class Scene3500 : public SceneExt { SceneActor _actor4; SceneActor _actor5; SceneActor _actor6; - Actor7 _actor7; + Throttle _throttle; Actor8 _actor8; Actor8 _actor9; ASoundExt _aSound1; From 1489bbf443b30cf650393e9568ac7c953975eb8c Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 6 Nov 2013 21:24:47 -0500 Subject: [PATCH 054/105] TSAGE: Renamings and display fix for R2R rim maintainence car --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 118 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes1.h | 16 +-- 2 files changed, 68 insertions(+), 66 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 5c3fda2bbebb..dd40058cf9f3 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -10959,12 +10959,12 @@ bool Scene1750::SpeedSlider::startAction(CursorType action, Event &event) { Scene1750::Scene1750() { _direction = 0; - _field413 = 0; + _speedCurrent = 0; _speed = 0; - _field417 = 0; - _field419 = 0; - _field41B = 0; - _field41D = 0; + _speedDelta = 0; + _rotationSegment = 0; + _rotationSegCurrent = 0; + _newRotation = 0; _rotation = nullptr; } @@ -10974,12 +10974,12 @@ void Scene1750::synchronize(Serializer &s) { SYNC_POINTER(_rotation); s.syncAsSint16LE(_direction); - s.syncAsSint16LE(_field413); + s.syncAsSint16LE(_speedCurrent); s.syncAsSint16LE(_speed); - s.syncAsSint16LE(_field417); - s.syncAsSint16LE(_field419); - s.syncAsSint16LE(_field41B); - s.syncAsSint16LE(_field41D); + s.syncAsSint16LE(_speedDelta); + s.syncAsSint16LE(_rotationSegment); + s.syncAsSint16LE(_rotationSegCurrent); + s.syncAsSint16LE(_newRotation); } void Scene1750::postInit(SceneObjectList *OwnerList) { @@ -10987,7 +10987,9 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(115); R2_GLOBALS._uiElements._active = false; R2_GLOBALS._v5589E.set(0, 0, 320, 200); + SceneExt::postInit(); + R2_GLOBALS._interfaceY = SCREEN_HEIGHT; R2_GLOBALS._player._characterScene[R2_QUINN] = 1750; R2_GLOBALS._player._characterScene[R2_SEEKER] = 1750; @@ -11037,28 +11039,28 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.hide(); R2_GLOBALS._player.enableControl(); - _actor3.postInit(); - _actor3.setup(1750, 3, 1); - _actor3.setPosition(Common::Point(49, 185)); - _actor3.fixPriority(7); - _actor3.setDetails(1750, 30, -1, -1, 1, (SceneItem *) NULL); + _radarSweep.postInit(); + _radarSweep.setup(1750, 3, 1); + _radarSweep.setPosition(Common::Point(49, 185)); + _radarSweep.fixPriority(7); + _radarSweep.setDetails(1750, 30, -1, -1, 1, (SceneItem *) NULL); - _actor1.postInit(); - _actor1.setup(1750, 2, 1); - _actor1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); - _actor1.fixPriority(8); + _scannerIcon1.postInit(); + _scannerIcon1.setup(1750, 2, 1); + _scannerIcon1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); + _scannerIcon1.fixPriority(8); - _actor2.postInit(); - _actor2.setup(1750, 1, 4); + _scannerIcon2.postInit(); + _scannerIcon2.setup(1750, 1, 4); - int tmpVar = abs(_actor1._position.y - 158) / 100; + int tmpVar = ABS(_scannerIcon1._position.y - 158) / 100; if (tmpVar >= 8) - _actor2.hide(); - else if (_actor1._position.y <= 158) - _actor2.setPosition(Common::Point(137, (tmpVar * 7) + 122)); + _scannerIcon2.hide(); + else if (_scannerIcon1._position.y <= 158) + _scannerIcon2.setPosition(Common::Point(137, (tmpVar * 7) + 122)); else - _actor2.setPosition(Common::Point(148, (tmpVar * 7) + 122)); + _scannerIcon2.setPosition(Common::Point(148, (tmpVar * 7) + 122)); _speedSlider.setupSlider(1, 286, 143, 41, 15); _speedSlider.setDetails(1750, 24, 1, -1, 1, (SceneItem *) NULL); @@ -11083,10 +11085,10 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { _exitButton.setDetails(1750, 27, 1, -1, 1, (SceneItem *) NULL); _direction = 1; // Forward by default - _field417 = 0; - _field413 = 0; + _speedDelta = 0; + _speedCurrent = 0; _speed = 0; - _field419 = ((_rotation->_currIndex - 218) / 4) % 4; + _rotationSegment = ((_rotation->_currIndex - 218) / 4) % 4; _redLights.setDetails(Rect(129, 112, 155, 175), 1750, 21, -1, -1, 1, NULL); _greenLights.setDetails(Rect(93, 122, 126, 172), 1750, 15, -1, -1, 1, NULL); @@ -11123,71 +11125,71 @@ void Scene1750::process(Event &event) { void Scene1750::dispatch() { if (_rotation) { - if (!_field417 && (_speed != _field413)) { - if (_field413 >= _speed) - --_field413; + if (!_speedDelta && (_speed != _speedCurrent)) { + if (_speedCurrent >= _speed) + --_speedCurrent; else - ++_field413; + ++_speedCurrent; - _field417 = 21 - ABS(_field413); + _speedDelta = 21 - ABS(_speedCurrent); } - if (_field417 == 1) { - if (_field413 == 0) { - _actor3.show(); + if (_speedDelta == 1) { + if (_speedCurrent == 0) { + _radarSweep.show(); _rotation->_idxChange = 0; } else { if (_rotation->_idxChange == 0) - _actor3.hide(); + _radarSweep.hide(); - if (_field413 < -12) { - _rotation->setDelay(15 - ABS(_field413)); + if (_speedCurrent < -12) { + _rotation->setDelay(15 - ABS(_speedCurrent)); _rotation->_idxChange = -2; - } else if (_field413 < 0) { - _rotation->setDelay(10 - ABS(_field413)); + } else if (_speedCurrent < 0) { + _rotation->setDelay(10 - ABS(_speedCurrent)); _rotation->_idxChange = -1; - } else if (_field413 < 11) { - _rotation->setDelay(10 - _field413); + } else if (_speedCurrent < 11) { + _rotation->setDelay(10 - _speedCurrent); _rotation->_idxChange = 1; } else { - _rotation->setDelay(15 - _field413); + _rotation->setDelay(15 - _speedCurrent); _rotation->_idxChange = 2; } } } - if (_field417) - --_field417; + if (_speedDelta) + --_speedDelta; - _field41B = _field419; - _field419 = ((_rotation->_currIndex - 218) / 4) / 4; + _rotationSegCurrent = _rotationSegment; + _rotationSegment = ((_rotation->_currIndex - 218) / 4) / 4; - if ((_field41B + 1) == _field419 || (_field41B - 3) == _field419) { + if ((_rotationSegCurrent + 1) == _rotationSegment || (_rotationSegCurrent - 3) == _rotationSegment) { if (R2_GLOBALS._rimLocation < 2400) { ++R2_GLOBALS._rimLocation; } } - if ((_field41B - 1) == _field419 || (_field41B + 3) == _field419) { + if ((_rotationSegCurrent - 1) == _rotationSegment || (_rotationSegCurrent + 3) == _rotationSegment) { if (R2_GLOBALS._rimLocation > -2400) { --R2_GLOBALS._rimLocation; } } - if (_rotation->_currIndex != _field41D) { - _field41D = _rotation->_currIndex; - _actor1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + + if (_rotation->_currIndex != _newRotation) { + _newRotation = _rotation->_currIndex; + _scannerIcon1.setPosition(Common::Point(35, ((_rotation->_currIndex - 218) % 4) + ((R2_GLOBALS._rimLocation % 800) * 4) - 1440)); } } - int v = ABS(_actor1._position.y - 158) / 100; + int v = ABS(_scannerIcon1._position.y - 158) / 100; if (v < 8) { - _actor2.show(); - _actor2.setPosition(Common::Point((_actor1._position.y <= 158) ? 137 : 148, + _scannerIcon2.show(); + _scannerIcon2.setPosition(Common::Point((_scannerIcon1._position.y <= 158) ? 137 : 148, v * 7 + 122)); } else { - _actor2.hide(); + _scannerIcon2.hide(); } } diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index b35bf678abfd..9d9faf589b88 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -814,9 +814,9 @@ class Scene1750 : public SceneExt { NamedHotspot _greenLights; NamedHotspot _frontView; NamedHotspot _rearView; - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; + SceneActor _scannerIcon1; + SceneActor _scannerIcon2; + SceneActor _radarSweep; SpeedSlider _speedSlider; Button _forwardButton; Button _backwardButton; @@ -825,12 +825,12 @@ class Scene1750 : public SceneExt { PaletteRotation *_rotation; int _direction; - int _field413; + int _speedCurrent; int _speed; - int _field417; - int _field419; - int _field41B; - int _field41D; + int _speedDelta; + int _rotationSegment; + int _rotationSegCurrent; + int _newRotation; Scene1750(); virtual void synchronize(Serializer &s); From 66ded347670aa64d125c43cffa09dd25060db3ec Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 6 Nov 2013 21:43:48 -0500 Subject: [PATCH 055/105] TSAGE: Renamings for R2R Rim --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 100 ++++++++---------- engines/tsage/ringworld2/ringworld2_scenes1.h | 17 ++- 2 files changed, 53 insertions(+), 64 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index dd40058cf9f3..17db730954df 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -10360,12 +10360,6 @@ void Scene1700::synchronize(Serializer &s) { s.syncAsSint16LE(_field77C); } -bool Scene1700::Item2::startAction(CursorType action, Event &event) { - // The original contains a debug trace. It's currently skipped. - // TODO: either add the debug trace, or remove this function and associated class - return SceneHotspot::startAction(action, event); -} - bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -10383,7 +10377,7 @@ bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { return true; } -bool Scene1700::Actor12::startAction(CursorType action, Event &event) { +bool Scene1700::Companion::startAction(CursorType action, Event &event) { if (action != CURSOR_TALK) return SceneActor::startAction(action, event); @@ -10444,7 +10438,7 @@ void Scene1700::enterArea() { if (_sceneMode != 40) { _ledgeHopper.remove(); - _actor10.remove(); + _hatch.remove(); } warning("tmpRect = _v5589E;"); @@ -10553,18 +10547,18 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._moveDiff = Common::Point(3, 1); } - _actor12.postInit(); - _actor12.animate(ANIM_MODE_1, NULL); - _actor12.setObjectWrapper(new SceneObjectWrapper()); + _companion.postInit(); + _companion.animate(ANIM_MODE_1, NULL); + _companion.setObjectWrapper(new SceneObjectWrapper()); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { - _actor12.setVisage(1506); - _actor12._moveDiff = Common::Point(3, 1); - _actor12.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); + _companion.setVisage(1506); + _companion._moveDiff = Common::Point(3, 1); + _companion.setDetails(9002, 1, -1, -1, 1, (SceneItem *) NULL); } else { - _actor12.setVisage(1501); - _actor12._moveDiff = Common::Point(2, 1); - _actor12.setDetails(9001, 1, -1, -1, 1, (SceneItem *) NULL); + _companion.setVisage(1501); + _companion._moveDiff = Common::Point(2, 1); + _companion.setDetails(9001, 1, -1, -1, 1, (SceneItem *) NULL); } R2_GLOBALS._sound1.play(134); @@ -10581,16 +10575,16 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { _playerShadow._shadowMap = _shadowPaletteMap; R2_GLOBALS._player._linkedActor = &_playerShadow; - _actor2.postInit(); - _actor2.fixPriority(10); + _companionShadow.postInit(); + _companionShadow.fixPriority(10); if (R2_GLOBALS._player._characterIndex == R2_QUINN) - _actor2.setVisage(1111); + _companionShadow.setVisage(1111); else - _actor2.setVisage(1112); + _companionShadow.setVisage(1112); - _actor2._effect = EFFECT_SHADOW_MAP; - _actor2._shadowMap = _shadowPaletteMap; - _actor12._linkedActor = &_actor2; + _companionShadow._effect = EFFECT_SHADOW_MAP; + _companionShadow._shadowMap = _shadowPaletteMap; + _companion._linkedActor = &_companionShadow; R2_GLOBALS._sound1.play(134); @@ -10599,11 +10593,10 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterIndex = R2_QUINN; R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.hide(); - _actor12.hide(); + _companion.hide(); - _actor10.postInit(); - warning("_actor10._actorName = \"hatch\";"); - _actor10.hide(); + _hatch.postInit(); + _hatch.hide(); _ledgeHopper.postInit(); _ledgeHopper.setup(1701, 1, 1); @@ -10611,48 +10604,48 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { _ledgeHopper.setDetails(1700, 6, -1, -1, 1, (SceneItem *) NULL); _playerShadow.hide(); - _actor2.hide(); + _companionShadow.hide(); R2_GLOBALS._events.setCursor(CURSOR_WALK); _stripManager.start(539, this); _sceneMode = 40; break; case 1750: { R2_GLOBALS._player.setPosition(Common::Point(282, 121)); - _actor12.setPosition(Common::Point(282, 139)); + _companion.setPosition(Common::Point(282, 139)); _sceneMode = 8; Common::Point pt(262, 101); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); Common::Point pt2(262, 119); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, this); + _companion.addMover(mover2, &pt2, this); } break; case 1800: { R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.setPosition(Common::Point(0, 86)); - _actor12.setPosition(Common::Point(0, 64)); + _companion.setPosition(Common::Point(0, 64)); _sceneMode = 7; R2_GLOBALS._player.setObjectWrapper(NULL); R2_GLOBALS._player._strip = 1; Common::Point pt(64, 86); NpcMover *mover = new NpcMover(); R2_GLOBALS._player.addMover(mover, &pt, this); - _actor12.setObjectWrapper(NULL); - _actor12._strip = 1; + _companion.setObjectWrapper(NULL); + _companion._strip = 1; Common::Point pt2(77, 64); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); } break; default: if (R2_GLOBALS._player._characterIndex == R2_QUINN) { R2_GLOBALS._player.setPosition(Common::Point(109, 160)); - _actor12.setPosition(Common::Point(156, 160)); + _companion.setPosition(Common::Point(156, 160)); R2_GLOBALS._walkRegions.disableRegion(15); } else { R2_GLOBALS._player.setPosition(Common::Point(156, 160)); - _actor12.setPosition(Common::Point(109, 160)); + _companion.setPosition(Common::Point(109, 160)); R2_GLOBALS._walkRegions.disableRegion(17); } _sceneMode = 50; @@ -10666,8 +10659,9 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._v558B6.set(20, 0, 320, 200); enterArea(); - _item1.setDetails(1, 1700, 3, -1, -1); - _item2.setDetails(Rect(0, 0, 480, 200), 1700, 0, -1, -1, 1, NULL); + + _surface.setDetails(1, 1700, 3, -1, -1); + _background.setDetails(Rect(0, 0, 480, 200), 1700, 0, -1, -1, 1, NULL); } void Scene1700::remove() { @@ -10688,16 +10682,16 @@ void Scene1700::signal() { R2_GLOBALS._player.addMover(mover, &pt, this); if (R2_GLOBALS._player._position.x < 132) { - _actor12.setPosition(Common::Point(156, 170)); + _companion.setPosition(Common::Point(156, 170)); Common::Point pt2(156, 160); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); R2_GLOBALS._walkRegions.disableRegion(15); } else { - _actor12.setPosition(Common::Point(109, 170)); + _companion.setPosition(Common::Point(109, 170)); Common::Point pt3(109, 160); NpcMover *mover3 = new NpcMover(); - _actor12.addMover(mover3, &pt3, NULL); + _companion.addMover(mover3, &pt3, NULL); R2_GLOBALS._walkRegions.disableRegion(17); } } @@ -10713,16 +10707,16 @@ void Scene1700::signal() { R2_GLOBALS._player.addMover(mover, &pt, this); if (R2_GLOBALS._player._position.x >= 171) { - _actor12.setPosition(Common::Point(155, 0)); + _companion.setPosition(Common::Point(155, 0)); Common::Point pt2(155, 10); NpcMover *mover2 = new NpcMover(); - _actor12.addMover(mover2, &pt2, NULL); + _companion.addMover(mover2, &pt2, NULL); R2_GLOBALS._walkRegions.disableRegion(15); } else { - _actor12.setPosition(Common::Point(188, 0)); + _companion.setPosition(Common::Point(188, 0)); Common::Point pt3(188, 10); NpcMover *mover3 = new NpcMover(); - _actor12.addMover(mover3, &pt3, NULL); + _companion.addMover(mover3, &pt3, NULL); R2_GLOBALS._walkRegions.disableRegion(17); } } @@ -10745,7 +10739,7 @@ void Scene1700::signal() { _sceneMode = 5; Common::Point pt(271, 90); PlayerMover *mover = new PlayerMover(); - _actor12.addMover(mover, &pt, NULL); + _companion.addMover(mover, &pt, NULL); if (R2_GLOBALS._player._characterIndex == R2_QUINN) setAction(&_sequenceManager, this, 1700, &R2_GLOBALS._player, &_rimTransportDoor, NULL); else @@ -10761,14 +10755,14 @@ void Scene1700::signal() { case 7: R2_GLOBALS._player.setObjectWrapper(new SceneObjectWrapper()); R2_GLOBALS._player._strip = 1; - _actor12.setObjectWrapper(new SceneObjectWrapper()); - _actor12._strip = 1; + _companion.setObjectWrapper(new SceneObjectWrapper()); + _companion._strip = 1; R2_GLOBALS._player.enableControl(CURSOR_WALK); R2_GLOBALS._walkRegions.disableRegion(14); break; case 8: R2_GLOBALS._player._strip = 2; - _actor12._strip = 1; + _companion._strip = 1; R2_GLOBALS._player.enableControl(CURSOR_WALK); R2_GLOBALS._walkRegions.disableRegion(12); break; @@ -10787,8 +10781,8 @@ void Scene1700::signal() { case 40: R2_GLOBALS._player.disableControl(); _sceneMode = 1704; - setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_actor12, - &_actor10, &_ledgeHopper, &_playerShadow, &_actor2, NULL); + setAction(&_sequenceManager, this, 1704, &R2_GLOBALS._player, &_companion, + &_hatch, &_ledgeHopper, &_playerShadow, &_companionShadow, NULL); break; case 50: if (R2_GLOBALS._player._characterIndex == R2_QUINN) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 9d9faf589b88..b27ecbbb19f7 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -718,16 +718,11 @@ class Scene1625 : public SceneExt { }; class Scene1700 : public SceneExt { - class Item2 : public NamedHotspot { - public: - virtual bool startAction(CursorType action, Event &event); - }; - class RimTransport : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor12 : public SceneActor { + class Companion : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -747,10 +742,10 @@ class Scene1700 : public SceneExt { public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - NamedHotspot _item1; - Item2 _item2; + NamedHotspot _surface; + NamedHotspot _background; SceneActor _playerShadow; - SceneActor _actor2; + SceneActor _companionShadow; SceneActor _slabWest; SceneActor _slabEast; SceneActor _slabShadowWest; @@ -758,9 +753,9 @@ class Scene1700 : public SceneExt { SceneActor _westPlatform; SceneActor _rimTransportDoor; SceneActor _ledgeHopper; - SceneActor _actor10; + SceneActor _hatch; RimTransport _rimTransport; - Actor12 _actor12; + Companion _companion; NorthExit _northExit; SouthExit _southExit; WestExit _westExit; From 17bc3162b96e1acae56596a8472ec8dc8f9599ca Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Nov 2013 07:36:13 +0100 Subject: [PATCH 056/105] TSAGE: R2R - Fix bug introduced in 114b3df91e011a75862e3e25748e5558d1dc3049 --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 17db730954df..addf83cc88c1 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -9955,7 +9955,6 @@ void Scene1580::postInit(SceneObjectList *OwnerList) { _screenDisplay.setup(1580, 3, 1); _screenDisplay.setPosition(Common::Point(124, 109)); _screenDisplay.fixPriority(20); - _screenDisplay.setZoom(200); _sceneMode = 10; } else { From fa063e56475f3f3c0a1350ece2b7e488eefe8fe3 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Nov 2013 07:58:40 +0100 Subject: [PATCH 057/105] TSAGE: R2R - WIP more renaming in scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 244 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 20 +- 2 files changed, 132 insertions(+), 132 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 54d833494d58..bef97a38727f 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2975,13 +2975,13 @@ void Scene3500::Action1::sub108670(int arg1) { scene->_actor9.show(); if (_field1E == 1) - scene->_actor6.show(); + scene->_symbolRight.show(); else - scene->_actor5.show(); + scene->_symbolLeft.show(); - if (scene->_actor1._frame % 2 == 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if (scene->_shuttle._frame % 2 == 0) { + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } setActionIndex(0); @@ -2994,17 +2994,17 @@ void Scene3500::Action1::sub108732(int arg1) { _field1E = -_field1E; if (_field1E == 1) { - scene->_actor6.show(); - scene->_actor5.hide(); + scene->_symbolRight.show(); + scene->_symbolLeft.hide(); } else { - scene->_actor5.show(); - scene->_actor6.hide(); + scene->_symbolLeft.show(); + scene->_symbolRight.hide(); } switch (_actionIndex) { case 4: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); // No break on purpose case 3: _actionIndex = 10; @@ -3014,7 +3014,7 @@ void Scene3500::Action1::sub108732(int arg1) { scene->_fieldAF8 = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelCircle.addMover(mover, &pt, NULL); scene->_fieldB9E = 160 - (_field1E * 2 * 160); Common::Point pt2(scene->_fieldB9E, 73); @@ -3025,8 +3025,8 @@ void Scene3500::Action1::sub108732(int arg1) { } break; case 6: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); // No break on purpose case 8: @@ -3053,14 +3053,14 @@ void Scene3500::Action1::signal() { } break; case 1: - if ((scene->_actor1._frame % 2) == 1) { + if ((scene->_shuttle._frame % 2) == 1) { setDelay(1); return; } // No break on purpose case 3: - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); break; case 4: { @@ -3070,9 +3070,9 @@ void Scene3500::Action1::signal() { int di = abs(var2 - scene->_mazePosition.x); int var6 = abs(var4 - scene->_mazePosition.y); - if ((scene->_actor1._frame % 2) != 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if ((scene->_shuttle._frame % 2) != 0) { + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // Get the new direction starting on @@ -3138,12 +3138,12 @@ void Scene3500::Action1::signal() { } // No break on purpose case 2: { - scene->_actor8.setPosition(Common::Point(160, 73)); - scene->_actor8._moveDiff.x = 160 - scene->_mazeChangeAmount; + scene->_tunnelCircle.setPosition(Common::Point(160, 73)); + scene->_tunnelCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; scene->_fieldAF8 = 160 - ((_field1E * 2) * 160); Common::Point pt(scene->_fieldAF8, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, this); + scene->_tunnelCircle.addMover(mover, &pt, this); scene->_actor9.setPosition(Common::Point(160 + ((_field1E * 2) * 160), 73)); scene->_actor9._moveDiff.x = 160 - scene->_mazeChangeAmount; @@ -3154,18 +3154,18 @@ void Scene3500::Action1::signal() { } break; case 5: - scene->_actor1._frameChange = _field1E; - scene->_mazeDirection = scene->_actor1.changeFrame(); - scene->_actor1.setFrame(scene->_mazeDirection); + scene->_shuttle._frameChange = _field1E; + scene->_mazeDirection = scene->_shuttle.changeFrame(); + scene->_shuttle.setFrame(scene->_mazeDirection); setDelay(1); break; case 6: - scene->_actor8.setPosition(Common::Point(160, 73)); + scene->_tunnelCircle.setPosition(Common::Point(160, 73)); if (_field20 == 0) - scene->_actor8.setStrip(1); + scene->_tunnelCircle.setStrip(1); else - scene->_actor8.setStrip(2); - scene->_actor8.fixPriority(1); + scene->_tunnelCircle.setStrip(2); + scene->_tunnelCircle.fixPriority(1); scene->_actor9.setPosition(Common::Point(-160, 73)); scene->_actor9.setStrip(9); @@ -3174,10 +3174,10 @@ void Scene3500::Action1::signal() { setDelay(1); break; case 7: - if ((scene->_actor1._frame % 2) == 0) { - scene->_actor1._frameChange = _field1E; - scene->_mazeDirection = scene->_actor1.changeFrame(); - scene->_actor1.setFrame(scene->_mazeDirection); + if ((scene->_shuttle._frame % 2) == 0) { + scene->_shuttle._frameChange = _field1E; + scene->_mazeDirection = scene->_shuttle.changeFrame(); + scene->_shuttle.setFrame(scene->_mazeDirection); } setDelay(1); break; @@ -3185,9 +3185,9 @@ void Scene3500::Action1::signal() { R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; scene->_directionChangesEnabled = true; - if ((scene->_actor1._frame % 2) == 0) { - scene->_actor1._frameChange = _field1E; - scene->_actor1.setFrame(scene->_actor1.changeFrame()); + if ((scene->_shuttle._frame % 2) == 0) { + scene->_shuttle._frameChange = _field1E; + scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // All the var_8 initialization was missing in the original // but it's clearly a cut and paste error from case 4. @@ -3214,8 +3214,8 @@ void Scene3500::Action1::signal() { default: break; } - scene->_actor5.hide(); - scene->_actor6.hide(); + scene->_symbolLeft.hide(); + scene->_symbolRight.hide(); _field24 = 0; if (_field20 == 0) { scene->_throttle.sub1094ED(); @@ -3228,7 +3228,7 @@ void Scene3500::Action1::signal() { scene->_fieldAF8 = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelCircle.addMover(mover, &pt, NULL); scene->_fieldB9E = 160 - (_field1E * 2 * 160); Common::Point pt2(scene->_fieldB9E, 73); @@ -3238,13 +3238,13 @@ void Scene3500::Action1::signal() { } break; case 11: { - scene->_actor8.setStrip(2); - scene->_actor8.setPosition(Common::Point(160, 73)); + scene->_tunnelCircle.setStrip(2); + scene->_tunnelCircle.setPosition(Common::Point(160, 73)); scene->_fieldAF8 = 160 - (_field1E * 2 * 160); Common::Point pt(scene->_fieldAF8, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); - scene->_actor8.fixPriority(11); + scene->_tunnelCircle.addMover(mover, &pt, NULL); + scene->_tunnelCircle.fixPriority(11); if (_field20 == 0) scene->_actor9.setStrip(1); else @@ -3290,9 +3290,9 @@ void Scene3500::Action2::sub10831F(int arg1) { _field1E = arg1; if (_field1E == -1) - scene->_actor3.setFrame2(3); + scene->_horizontalSpeedDisplay.setFrame2(3); else - scene->_actor3.setFrame2(1); + scene->_horizontalSpeedDisplay.setFrame2(1); setActionIndex(0); } @@ -3305,20 +3305,20 @@ void Scene3500::Action2::signal() { switch (_actionIndex++) { case 0: { - if (scene->_actor8._mover) { + if (scene->_tunnelCircle._mover) { si = scene->_fieldAF8; di = scene->_fieldB9E; } else { - scene->_fieldAF8 = scene->_actor8._position.x; + scene->_fieldAF8 = scene->_tunnelCircle._position.x; si = scene->_fieldAF8; scene->_fieldB9E = scene->_actor9._position.y; di = scene->_fieldB9E; } - scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + scene->_tunnelCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt(si, 73 - (_field1E * 12)); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelCircle.addMover(mover, &pt, NULL); scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt2(di, 73 - (_field1E * 12)); @@ -3330,27 +3330,27 @@ void Scene3500::Action2::signal() { break; case 1: { R2_GLOBALS._sound2.play(339); - if (scene->_actor8._mover) { + if (scene->_tunnelCircle._mover) { si = scene->_fieldAF8; di = scene->_fieldB9E; } else { - si = scene->_actor8._position.x; + si = scene->_tunnelCircle._position.x; di = scene->_actor9._position.x; } scene->_throttle.sub1094ED(); - scene->_actor8._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + scene->_tunnelCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt(si, 73); NpcMover *mover = new NpcMover(); - scene->_actor8.addMover(mover, &pt, NULL); + scene->_tunnelCircle.addMover(mover, &pt, NULL); scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt2(di, 73); NpcMover *mover2 = new NpcMover(); scene->_actor9.addMover(mover2, &pt2, NULL); - scene->_actor3.setFrame2(2); + scene->_horizontalSpeedDisplay.setFrame2(2); } break; default: @@ -3604,10 +3604,10 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { _turnRight._movementId = 96; _turnRight.setDetails(96, 3500, 12, 10, -1); - _actor8.postInit(); - _actor8.setup(1050, 1, 1); - _actor8.setPosition(Common::Point(160, 73)); - _actor8.fixPriority(1); + _tunnelCircle.postInit(); + _tunnelCircle.setup(1050, 1, 1); + _tunnelCircle.setPosition(Common::Point(160, 73)); + _tunnelCircle.fixPriority(1); _actor9.postInit(); _actor9.setup(1050, 2, 1); @@ -3615,43 +3615,43 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { _actor9.fixPriority(11); _actor9.hide(); - _item2.setDetails(27, 3500, 21, -1, -1); - _item3.setDetails(Rect(160, 89, 299, 182), 3500, 3, -1, -1, 1, NULL); - _item1.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL); + _outsideView.setDetails(27, 3500, 21, -1, -1); + _mapScreen.setDetails(Rect(160, 89, 299, 182), 3500, 3, -1, -1, 1, NULL); + _background.setDetails(Rect(0, 0, 320, 200), 3500, 0, -1, 2, 1, NULL); - _actor1.postInit(); + _shuttle.postInit(); _mazeDirection = MAZEDIR_NORTH; - _actor1.setup(1004, 1, _mazeDirection); - _actor1.setPosition(Common::Point(230, 135)); - _actor1.fixPriority(200); - _actor1._frameChange = 1; - - _actor5.postInit(); - _actor5.setup(1004, 3, 1); - _actor5.setPosition(Common::Point(117, 163)); - _actor5.fixPriority(200); - _actor5.hide(); - - _actor4.postInit(); - _actor4.setup(1004, 3, 2); - _actor4.setPosition(Common::Point(126, 163)); - _actor4.fixPriority(200); - - _actor6.postInit(); - _actor6.setup(1004, 3, 3); - _actor6.setPosition(Common::Point(135, 163)); - _actor6.fixPriority(200); - _actor6.hide(); - - _actor2.postInit(); - _actor2.setup(1004, 4, _mazeChangeAmount + 1); - _actor2.setPosition(Common::Point(126, 137)); - _actor2.fixPriority(200); - - _actor3.postInit(); - _actor3.setup(1004, 5, 2); - _actor3.setPosition(Common::Point(126, 108)); - _actor3.fixPriority(200); + _shuttle.setup(1004, 1, _mazeDirection); + _shuttle.setPosition(Common::Point(230, 135)); + _shuttle.fixPriority(200); + _shuttle._frameChange = 1; + + _symbolLeft.postInit(); + _symbolLeft.setup(1004, 3, 1); + _symbolLeft.setPosition(Common::Point(117, 163)); + _symbolLeft.fixPriority(200); + _symbolLeft.hide(); + + _symbolVertical.postInit(); + _symbolVertical.setup(1004, 3, 2); + _symbolVertical.setPosition(Common::Point(126, 163)); + _symbolVertical.fixPriority(200); + + _symbolRight.postInit(); + _symbolRight.setup(1004, 3, 3); + _symbolRight.setPosition(Common::Point(135, 163)); + _symbolRight.fixPriority(200); + _symbolRight.hide(); + + _verticalSpeedDisplay.postInit(); + _verticalSpeedDisplay.setup(1004, 4, _mazeChangeAmount + 1); + _verticalSpeedDisplay.setPosition(Common::Point(126, 137)); + _verticalSpeedDisplay.fixPriority(200); + + _horizontalSpeedDisplay.postInit(); + _horizontalSpeedDisplay.setup(1004, 5, 2); + _horizontalSpeedDisplay.setPosition(Common::Point(126, 108)); + _horizontalSpeedDisplay.fixPriority(200); _mazeUI.setDisplayBounds(Rect(160, 89, 299, 182)); _mazeUI.load(2); @@ -3710,7 +3710,7 @@ void Scene3500::doMovement(int id) { _action1.signal(); } else if (_action == 0) { _action1.sub108670(1); - setAction(&_action1, &_actor1, NULL); + setAction(&_action1, &_shuttle, NULL); } break; case 104: @@ -3734,7 +3734,7 @@ void Scene3500::doMovement(int id) { _action1.signal(); } else if (_action == 0) { _action1.sub108670(-1); - setAction(&_action1, &_actor1, NULL); + setAction(&_action1, &_shuttle, NULL); } break; default: @@ -3847,9 +3847,9 @@ void Scene3500::dispatch() { Rect tmpRect; Scene::dispatch(); - if (((_actor1._frame % 2) == 0) && (_action1._field24 == 0)) { - _actor1.setFrame(_actor1.changeFrame()); - _mazeDirection = _actor1._frame; + if (((_shuttle._frame % 2) == 0) && (_action1._field24 == 0)) { + _shuttle.setFrame(_shuttle.changeFrame()); + _mazeDirection = _shuttle._frame; } int oldField1278; if ((_field1278 != 0) && (_action1._field24 == 0)) { @@ -3896,7 +3896,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y - _mazeChangeAmount; @@ -3909,7 +3909,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 11) && (cellId != dx)) { newMazeY = var_6 + 3; R2_GLOBALS._sound2.play(339); @@ -3918,7 +3918,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; var_a = abs(var_6 - newMazeY); @@ -3934,7 +3934,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3942,7 +3942,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { newMazeX = var_4; R2_GLOBALS._sound2.play(339); @@ -3962,7 +3962,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x + _mazeChangeAmount; @@ -3975,7 +3975,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 6) && (cellId != dx)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); @@ -3984,7 +3984,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; var_8 = abs(newMazeX - var_4); @@ -3999,7 +3999,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); @@ -4008,7 +4008,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; R2_GLOBALS._sound2.play(339); @@ -4028,7 +4028,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y + _mazeChangeAmount; @@ -4041,7 +4041,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 16) && (cellId != dx)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); @@ -4050,7 +4050,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 31) && (cellId != dx)) { newMazeY = var_6 + 4; R2_GLOBALS._sound2.play(339); @@ -4059,7 +4059,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; var_a = abs(newMazeY - var_6); @@ -4075,7 +4075,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); @@ -4084,7 +4084,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { newMazeY = var_6 + 4; _rotation->_idxChange = 0; @@ -4092,7 +4092,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307)) ++_field1284; else @@ -4116,7 +4116,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x - _mazeChangeAmount; @@ -4129,7 +4129,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 1) && (cellId != dx)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); @@ -4138,7 +4138,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; var_8 = abs(var_4 - newMazeX); @@ -4153,7 +4153,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); @@ -4162,7 +4162,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = 0; if (_action1._field24 == 0) - _actor8.hide(); + _tunnelCircle.hide(); } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; R2_GLOBALS._sound2.play(339); @@ -4213,7 +4213,7 @@ void Scene3500::dispatch() { ++_mazeChangeAmount; _field1272 = 1; } - _actor2.setFrame2(_mazeChangeAmount + 1); + _verticalSpeedDisplay.setFrame2(_mazeChangeAmount + 1); } if (_field1272 == 1) { diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index fcaa27b1c56a..db1ad4e62199 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -632,22 +632,22 @@ class Scene3500 : public SceneExt { public: Action1 _action1; Action2 _action2; - NamedHotspot _item1; - NamedHotspot _item2; - NamedHotspot _item3; + NamedHotspot _background; + NamedHotspot _outsideView; + NamedHotspot _mapScreen; DirectionButton _pitchDown; DirectionButton _turnLeft; DirectionButton _pitchUp; DirectionButton _turnRight; // Glyph of vessel on top of the maze ui - SceneActor _actor1; - SceneActor _actor2; - SceneActor _actor3; - SceneActor _actor4; - SceneActor _actor5; - SceneActor _actor6; + SceneActor _shuttle; + SceneActor _verticalSpeedDisplay; + SceneActor _horizontalSpeedDisplay; + SceneActor _symbolVertical; + SceneActor _symbolLeft; + SceneActor _symbolRight; Throttle _throttle; - Actor8 _actor8; + Actor8 _tunnelCircle; Actor8 _actor9; ASoundExt _aSound1; MazeUI3500 _mazeUI; From eba0c0ff625a8ca42402496713ca29d70d94e5f1 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Thu, 7 Nov 2013 13:46:54 +0200 Subject: [PATCH 058/105] WINTERMUTE: Add the keycode for the ESC key This is used by Looky --- engines/wintermute/base/base_keyboard_state.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/engines/wintermute/base/base_keyboard_state.cpp b/engines/wintermute/base/base_keyboard_state.cpp index 785af64fadd3..77469e07a5af 100644 --- a/engines/wintermute/base/base_keyboard_state.cpp +++ b/engines/wintermute/base/base_keyboard_state.cpp @@ -276,17 +276,21 @@ uint32 BaseKeyboardState::keyCodeToVKey(Common::Event *event) { } enum VKeyCodes { - kVkSpace = 32, - kVkLeft = 37, - kVkUp = 38, - kVkRight = 39, - kVkDown = 40 + kVkEscape = 27, + kVkSpace = 32, + kVkLeft = 37, + kVkUp = 38, + kVkRight = 39, + kVkDown = 40 }; ////////////////////////////////////////////////////////////////////////// Common::KeyCode BaseKeyboardState::vKeyToKeyCode(uint32 vkey) { // todo switch (vkey) { + case kVkEscape: + return Common::KEYCODE_ESCAPE; + break; case kVkSpace: return Common::KEYCODE_SPACE; break; From a10d083a6c703ebea503834db66bf8784ecdb359 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 08:37:41 -0500 Subject: [PATCH 059/105] TSAGE: Further renaming and removal of redundant code in R2R rim scene --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 25 ++++++------------- engines/tsage/ringworld2/ringworld2_scenes1.h | 3 +-- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index addf83cc88c1..b17f3e25d0fc 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -10348,15 +10348,13 @@ void Scene1625::process(Event &event) { *--------------------------------------------------------------------------*/ Scene1700::Scene1700() { - _field77A = 0; - _field77C = 0; + _walkFlag = 0; } void Scene1700::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field77A); - s.syncAsSint16LE(_field77C); + s.syncAsSint16LE(_walkFlag); } bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { @@ -10440,17 +10438,8 @@ void Scene1700::enterArea() { _hatch.remove(); } - warning("tmpRect = _v5589E;"); - warning("Mouse_hideIfNeeded"); - warning("set_pane_p(_paneNumber);"); - warning("Big loop calling gfx_draw_slice_p"); - - if (_field77A == 0) - _field77A = 1; - else - _field77A = 0; - - warning("set_pane_p(_paneNumber);"); + // The original had manual code here to redraw the background manually when + // changing areas within the scene. Which seems to be totally redundant. if (_sceneMode != 40 && R2_GLOBALS._rimLocation == 0) { // Crashed ledge hopper @@ -10506,7 +10495,7 @@ void Scene1700::enterArea() { // Rim transport vechile located R2_GLOBALS._rimTransportLocation = R2_GLOBALS._rimLocation; if (!R2_GLOBALS.getFlag(15)) - _field77C = 1; + _walkFlag = true; _rimTransport.postInit(); _rimTransport.setup(1700, 3, 1); @@ -10721,11 +10710,11 @@ void Scene1700::signal() { } break; case 3: - if (_field77C == 0) { + if (!_walkFlag) { R2_GLOBALS._player.enableControl(CURSOR_WALK); } else { R2_GLOBALS.setFlag(15); - _field77C = 0; + _walkFlag = false; _sceneMode = 31; R2_GLOBALS._events.setCursor(CURSOR_WALK); if (R2_GLOBALS._player._characterIndex == R2_QUINN) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index b27ecbbb19f7..3b77052e795c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -761,8 +761,7 @@ class Scene1700 : public SceneExt { WestExit _westExit; SequenceManager _sequenceManager; - int _field77A; - int _field77C; + bool _walkFlag; Scene1700(); void synchronize(Serializer &s); From 0fbef1f2d0f98aef627f01bbbec7751bc58468bc Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 08:43:36 -0500 Subject: [PATCH 060/105] TSAGE: Removed useless variable from R2R scene 1625 --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 5 +---- engines/tsage/ringworld2/ringworld2_scenes1.h | 2 -- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index b17f3e25d0fc..8ab073237f3e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -10092,13 +10092,10 @@ bool Scene1625::Wire::startAction(CursorType action, Event &event) { } Scene1625::Scene1625() { - _field412 = 0; } void Scene1625::synchronize(Serializer &s) { SceneExt::synchronize(s); - - s.syncAsSint16LE(_field412); } void Scene1625::postInit(SceneObjectList *OwnerList) { @@ -10224,7 +10221,7 @@ void Scene1625::signal() { setAction(&_sequenceManager, this, 1630, &_teal, &_tealRightArm, NULL); break; } - _field412 = _stripManager._field2E8; + //_field412 = _stripManager._field2E8; _stripManager._field2E8 = 0; break; case 1625: diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 3b77052e795c..96aafe134ecc 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -693,8 +693,6 @@ class Scene1625 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; public: - //CHECKME: Useless variable - int _field412; SpeakerMiranda1625 _mirandaSpeaker; SpeakerTeal1625 _tealSpeaker; SpeakerSoldier1625 _soldierSpeaker; From 987dff66352be8a32a0b186f3494c90d770d9d0d Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 08:47:47 -0500 Subject: [PATCH 061/105] TSAGE: Removed useless variable from R2R scene 1580 --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 6 +----- engines/tsage/ringworld2/ringworld2_scenes1.h | 2 -- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 8ab073237f3e..975a22b6e32d 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -9724,13 +9724,10 @@ void Scene1575::dispatch() { *--------------------------------------------------------------------------*/ Scene1580::Scene1580() { - _field412 = 0; } void Scene1580::synchronize(Serializer &s) { SceneExt::synchronize(s); - - s.syncAsSint16LE(_field412); } bool Scene1580::JoystickPlug::startAction(CursorType action, Event &event) { @@ -9774,7 +9771,7 @@ bool Scene1580::ScreenSlot::startAction(CursorType action, Event &event) { scene->_screenDisplay.setup(1580, 3, 1); scene->_screenDisplay.setPosition(Common::Point(124, 109)); scene->_screenDisplay.fixPriority(20); - scene->_field412 = 1; + //scene->_field412 = 1; scene->_sceneMode = 10; scene->setAction(&scene->_sequenceManager, scene, 1, &R2_GLOBALS._player, NULL); @@ -9914,7 +9911,6 @@ void Scene1580::postInit(SceneObjectList *OwnerList) { loadScene(1580); R2_GLOBALS._sceneManager._fadeMode = FADEMODE_GRADUAL; SceneExt::postInit(); - _field412 = 0; _stripManager.setColors(60, 255); _stripManager.setFontNumber(3); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 96aafe134ecc..7360e95d60a9 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -663,8 +663,6 @@ class Scene1580 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; public: - //CHECKME: Useless variable? - int _field412; SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; JoystickPlug _joystickPlug; From e28688d0b6798084638cd0a15c5bff7a3a529cd2 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 09:35:47 -0500 Subject: [PATCH 062/105] TSAGE: Cleanup of dish controls window in R2R scene 1550 --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 111 ++++++------------ engines/tsage/ringworld2/ringworld2_scenes1.h | 25 ++-- 2 files changed, 50 insertions(+), 86 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 975a22b6e32d..8af4e5c80a88 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -7455,23 +7455,24 @@ void Scene1550::ShipComponent::setupShipComponent(int componentId) { setDetails(1550, 70, -1, -1, 2, (SceneItem *)NULL); } -Scene1550::UnkObj15503::UnkObj15503() { - _fieldA4 = 0; +Scene1550::DishControlsWindow::DishControl::DishControl() { + _controlId = 0; } -void Scene1550::UnkObj15503::synchronize(Serializer &s) { +void Scene1550::DishControlsWindow::DishControl::synchronize(Serializer &s) { SceneActor::synchronize(s); - s.syncAsSint16LE(_fieldA4); + s.syncAsSint16LE(_controlId); } -bool Scene1550::UnkObj15503::startAction(CursorType action, Event &event) { +bool Scene1550::DishControlsWindow::DishControl::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; if (action != CURSOR_USE) return SceneActor::startAction(action, event); - switch (_fieldA4) { + switch (_controlId) { case 1: + // Button control if (scene->_actor13._frame == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 25; @@ -7484,10 +7485,11 @@ bool Scene1550::UnkObj15503::startAction(CursorType action, Event &event) { R2_GLOBALS.clearFlag(20); setFrame(1); } - scene->_unkArea1.remove(); + scene->_dishControlsWindow.remove(); } break; case 2: + // Lever control R2_GLOBALS._player.disableControl(); if (scene->_actor13._frame == 1) { scene->_sceneMode = 23; @@ -7506,11 +7508,11 @@ bool Scene1550::UnkObj15503::startAction(CursorType action, Event &event) { return true; } -void Scene1550::UnkArea1550::remove() { +void Scene1550::DishControlsWindow::remove() { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - _unkObj155031.remove(); - _unkObj155032.remove(); + _button.remove(); + _lever.remove(); // sub201EA is a common part with UnkArea1200 R2_GLOBALS._sceneItems.remove((SceneItem *)this); _areaActor.remove(); @@ -7530,70 +7532,34 @@ void Scene1550::UnkArea1550::remove() { } } -void Scene1550::UnkArea1550::process(Event &event) { -// This is a copy of Scene1200::LaserPanel::process - if (_field20 != R2_GLOBALS._insetUp) - return; - - CursorType cursor = R2_GLOBALS._events.getCursor(); - - if (_areaActor._bounds.contains(event.mousePos.x + g_globals->gfxManager()._bounds.left , event.mousePos.y)) { - if (cursor == _cursorNum) { - R2_GLOBALS._events.setCursor(_savedCursorNum); - } - } else if (event.mousePos.y < 168) { - if (cursor != _cursorNum) { - _savedCursorNum = cursor; - R2_GLOBALS._events.setCursor(CURSOR_INVALID); - } - if (event.eventType == EVENT_BUTTON_DOWN) { - event.handled = true; - R2_GLOBALS._events.setCursor(_savedCursorNum); - remove(); - } - } -} +void Scene1550::DishControlsWindow::setup2(int visage, int stripFrameNum, int frameNum, + int posX, int posY) { + // Call inherited setup + ModalWindow::setup2(visage, stripFrameNum, frameNum, posX, posY); -void Scene1550::UnkArea1550::setup2(int visage, int stripFrameNum, int frameNum, int posX, int posY) { - // UnkArea1200::setup2(); + // Further setup Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - - _areaActor.postInit(); - _areaActor.setup(visage, stripFrameNum, frameNum); - _areaActor.setPosition(Common::Point(posX, posY)); - _areaActor.fixPriority(250); - _cursorNum = CURSOR_INVALID; - scene->_sceneAreas.push_front(this); - ++R2_GLOBALS._insetUp; - _field20 = R2_GLOBALS._insetUp; - // - setup3(1550, 67, -1, -1); - _unkObj155031.postInit(); - _unkObj155031._fieldA4 = 1; + _button.postInit(); + _button._controlId = 1; if (scene->_actor4._frame == 1) - _unkObj155031.setup(1559, 3, 1); + _button.setup(1559, 3, 1); else - _unkObj155031.setup(1559, 3, 2); - _unkObj155031.setPosition(Common::Point(142, 79)); - _unkObj155031.fixPriority(251); - _unkObj155031.setDetails(1550, 68, -1, -1, 2, (SceneItem *) NULL); - - _unkObj155032.postInit(); - _unkObj155032._numFrames = 5; - _unkObj155032._fieldA4 = 2; + _button.setup(1559, 3, 2); + _button.setPosition(Common::Point(142, 79)); + _button.fixPriority(251); + _button.setDetails(1550, 68, -1, -1, 2, (SceneItem *) NULL); + + _lever.postInit(); + _lever._numFrames = 5; + _lever._controlId = 2; if (scene->_actor13._frame == 1) - _unkObj155032.setup(1559, 2, 1); + _lever.setup(1559, 2, 1); else - _unkObj155032.setup(1559, 2, 2); - _unkObj155032.setPosition(Common::Point(156, 103)); - _unkObj155032.fixPriority(251); - _unkObj155032.setDetails(1550, 69, -1, -1, 2, (SceneItem *) NULL); -} - -void Scene1550::UnkArea1550::setup3(int resNum, int lookLineNum, int talkLineNum, int useLineNum) { - // Copy of Scene1200::LaserPanel::proc13 - _areaActor.setDetails(resNum, lookLineNum, talkLineNum, useLineNum, 2, (SceneItem *) NULL); + _lever.setup(1559, 2, 2); + _lever.setPosition(Common::Point(156, 103)); + _lever.fixPriority(251); + _lever.setDetails(1550, 69, -1, -1, 2, (SceneItem *) NULL); } bool Scene1550::WorkingShip::startAction(CursorType action, Event &event) { @@ -7919,25 +7885,26 @@ void Scene1550::signal() { case 25: // No break on purpose case 1563: + // Show the communication dish controls window R2_GLOBALS.clearFlag(20); - _unkArea1.setup2(1559, 1, 1, 160, 125); + _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); _sceneMode = 0; break; case 22: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 24; setAction(&_sequenceManager1, this, 1561, &_actor4, NULL); R2_GLOBALS.clearFlag(20); break; case 23: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 20; setAction(&_sequenceManager1, this, 1566, &_actor13, &_actor5, NULL); R2_GLOBALS.setFlag(21); break; case 24: - _unkArea1.remove(); + _dishControlsWindow.remove(); _sceneMode = 21; setAction(&_sequenceManager1, this, 1567, &_actor13, &_actor5, NULL); R2_GLOBALS.clearFlag(19); @@ -8121,7 +8088,7 @@ void Scene1550::signal() { case 1558: _actor13.fixPriority(124); _field415 = 1; - _unkArea1.setup2(1559, 1, 1, 160, 125); + _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); break; case 1559: diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 7360e95d60a9..2705d938c472 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -449,27 +449,24 @@ class Scene1550 : public SceneExt { void setupShipComponent(int componentId); }; - class UnkObj15503 : public SceneActor { - public: - int _fieldA4; - - UnkObj15503(); - void synchronize(Serializer &s); + class DishControlsWindow : public ModalWindow { + class DishControl : public SceneActor { + public: + int _controlId; - virtual bool startAction(CursorType action, Event &event); - }; + DishControl(); + void synchronize(Serializer &s); - class UnkArea1550 : public SceneArea { + virtual bool startAction(CursorType action, Event &event); + }; public: byte _field20; SceneActor _areaActor; - UnkObj15503 _unkObj155031; - UnkObj15503 _unkObj155032; + DishControl _button; + DishControl _lever; virtual void remove(); - virtual void process(Event &event); virtual void setup2(int visage, int stripFrameNum, int frameNum, int posX, int posY); - virtual void setup3(int resNum, int lookLineNum, int talkLineNum, int useLineNum); }; class WorkingShip : public NamedHotspot { @@ -554,7 +551,7 @@ class Scene1550 : public SceneExt { Wall _eastWall; Wall _southWall; ShipComponent _shipComponents[8]; - UnkArea1550 _unkArea1; + DishControlsWindow _dishControlsWindow; SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; From a8777874bc7984afc3bb8e069dcb2afdbf86a9b9 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Nov 2013 19:00:48 +0100 Subject: [PATCH 063/105] TSAGE: R2R - Some refactoring and renaming in scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 70 ++++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 6 +- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index bef97a38727f..14639f5bdd42 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2964,10 +2964,11 @@ void Scene3500::Action1::synchronize(Serializer &s) { s.syncAsSint16LE(_field24); } -void Scene3500::Action1::sub108670(int arg1) { +void Scene3500::Action1::handleHorzButton(int direction) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - _field1E = arg1; + // Direction: -1 == Left, 1 == Right + _field1E = direction; _field20 = 1; _field24 = 1; @@ -3276,20 +3277,21 @@ void Scene3500::Action1::dispatch() { /*--------------------------------------------------------------------------*/ Scene3500::Action2::Action2() { - _field1E = 0; + _direction = 0; } void Scene3500::Action2::synchronize(Serializer &s) { Action::synchronize(s); - s.syncAsSint16LE(_field1E); + s.syncAsSint16LE(_direction); } -void Scene3500::Action2::sub10831F(int arg1) { +void Scene3500::Action2::handleVertButton(int direction) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - _field1E = arg1; - if (_field1E == -1) + // Directions : 2 == up, -1 == down + _direction = direction; + if (_direction == -1) scene->_horizontalSpeedDisplay.setFrame2(3); else scene->_horizontalSpeedDisplay.setFrame2(1); @@ -3316,12 +3318,12 @@ void Scene3500::Action2::signal() { } scene->_tunnelCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt(si, 73 - (_field1E * 12)); + Common::Point pt(si, 73 - (_direction * 12)); NpcMover *mover = new NpcMover(); scene->_tunnelCircle.addMover(mover, &pt, NULL); scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt2(di, 73 - (_field1E * 12)); + Common::Point pt2(di, 73 - (_direction * 12)); NpcMover *mover2 = new NpcMover(); scene->_actor9.addMover(mover2, &pt2, NULL); scene->_mazeChangeAmount = (scene->_mazeChangeAmount / 2) + (scene->_mazeChangeAmount % 2); @@ -3689,10 +3691,11 @@ void Scene3500::doMovement(int id) { _field1270 = 0; break; case 88: - if ((_action == 0) || (_action1._field24 == 0)) { - // The original makes a second useless check on action, skipped - _action2.sub10831F(2); - if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != 2))) { + // Up button has been pressed + // The original was doing a double check on action, only one is here. + if (!_action || (_action1._field24 == 0)) { + _action2.handleVertButton(2); + if (_action && ((_action2.getActionIndex() != 0) || (_action2._direction != 2))) { _action2.signal(); } else { _actor9.setAction(&_action2, &_actor9, NULL); @@ -3700,23 +3703,25 @@ void Scene3500::doMovement(int id) { } break; case 96: - if ((_action) && (_action1._field24 != 0) && (_action2._field1E != 1)) { + // Right button has been pressed + if (!_action) { + _action1.handleHorzButton(1); + setAction(&_action1, &_shuttle, NULL); + } else if (_action1._field24 == 0) { + _action1.handleHorzButton(1); + _action1.signal(); + }else if (_action2._direction != 1) { _field1278 = 0; _action1.sub108732(0); - } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) { + } else if (_field1278 == 0) { _field1278 = id; - } else if ((_action) && (_action1._field24 == 0)) { - _action1.sub108670(1); - _action1.signal(); - } else if (_action == 0) { - _action1.sub108670(1); - setAction(&_action1, &_shuttle, NULL); } break; case 104: - if ((_action == 0) || (_action1._field24 == 0)) { - _action2.sub10831F(-1); - if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._field1E != -1))) { + // Down button has been pressed + if (!_action || (_action1._field24 == 0)) { + _action2.handleVertButton(-1); + if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._direction != -1))) { _action2.signal(); } else { _actor9.setAction(&_action2, &_actor9, NULL); @@ -3724,17 +3729,18 @@ void Scene3500::doMovement(int id) { } break; case 112: - if ((_action) && (_action1._field24 != 0) && (_action2._field1E != -1)) { + // Left button has been pressed + if (!_action) { + _action1.handleHorzButton(-1); + setAction(&_action1, &_shuttle, NULL); + } else if (_action1._field24 == 0) { + _action1.handleHorzButton(-1); + _action1.signal(); + }else if (_action2._direction != -1) { _field1278 = 0; _action1.sub108732(0); - } else if ((_action) && (_field1278 == 0) && (_action1._field24 != 0)) { + } else if (_field1278 == 0) { _field1278 = id; - } else if ((_action) && (_action1._field24 == 0)) { - _action1.sub108670(-1); - _action1.signal(); - } else if (_action == 0) { - _action1.sub108670(-1); - setAction(&_action1, &_shuttle, NULL); } break; default: diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index db1ad4e62199..705a9d61302c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -571,18 +571,18 @@ class Scene3500 : public SceneExt { Action1(); virtual void synchronize(Serializer &s); - void sub108670(int arg1); + void handleHorzButton(int direction); void sub108732(int arg1); virtual void signal(); virtual void dispatch(); }; class Action2: public Action { public: - int _field1E; + int _direction; Action2(); virtual void synchronize(Serializer &s); - void sub10831F(int arg1); + void handleVertButton(int direction); virtual void signal(); }; From 8e384fc384d7cfc31a3ee414ad5dbdb9f63fd9ad Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 7 Nov 2013 22:47:48 +0200 Subject: [PATCH 064/105] FULLPIPE: Started implementing MovGraph2::buildMovInfo1MessageQueue() --- engines/fullpipe/motion.cpp | 140 ++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index 8fecd8304ee9..49987f04656e 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -658,6 +658,146 @@ void MovGraph2::buildMovInfo1SubItems(MovInfo1 *movinfo, Common::Arraypt1.x; + curY = movInfo->pt1.y; + curDistance = movInfo->distance1; + + mq = new MessageQueue(g_fullpipe->globalMessageQueueList->compact()); + + for (int i = 0; i < movInfo->_itemsCount - 1; i++) { + v9 = (MovInfo1Sub *)movInfo->items; + v10 = v9[i + 1].subIndex; + + if (v10 != 10) { + if (v40 >= movInfo->_itemsCount - 2 || v9[i + 2].subIndex != 10) { + v16 = v9[i].subIndex; + v17 = (char *)this->items[1] + 16 * (v10 + 8); + subidx = 93 * movInfo->field_0; + movinfo.flags = 0; + v14 = 8 * subidx; + v15 = (MovGraph2Item *)(&v17[184 * v16] + v14); + } else { + v11 = v9[i].subIndex; + v12 = (char *)this->items[1] + 16 * (v10 + 4); + v13 = 93 * movInfo->field_0; + movinfo.flags = 2; + v14 = 8 * v13; + v15 = (MovGraph2Item *)(&v12[184 * v11] + v14); + } + if (v40 < movInfo->_itemsCount - 2 + || (v19 = v9[i + 1].x, v20 = (char *)&v9[i].x, v47 = (int *)v20, v21 = *(_DWORD *)v20, v21 == v19) + && v9[i].y == v9[i + 1].y + || v21 == -1 + || v9[i].y == -1 + || v19 == -1 + || v9[i + 1].y == -1) { + + v28 = new ExCommand(_items[1][movInfo->field_0].objectId, 1, v15->objectId, 0, 0, 0, 1, 0, 0, 0); + + v28->_excFlags |= 2u; + v28->_keyCode = _items[1][movInfo->field_0].obj->GameObject.okeyCode; + v28->_field_24 = 1; + v28->_field_14 = -1; + mq->_exCommands.push_back(v28); + + curX += v15->subItems[0].staticsId2; + curY += v15->subItems[0].staticsId1; + } else { + memset(mgminfo, 0, sizeof(mgminfo)); + + HIWORD(v22) = 0a; + v23 = v15->obj; + mgminfo.ani = *(StaticANIObject **)((char *)&this->items[1]->obj + v14); + LOWORD(v22) = *(_WORD *)(v23->callback1 + 132); + mgminfo.staticsId2 = v22; + mgminfo.x1 = v9[i + 1].x; + mgminfo.y1 = v9[i + 1].y; + mgminfo.field_1C = v9[i + 1].field_C; + mgminfo.staticsId1 = *(_WORD *)(v23->initialCounter + 132); + mgminfo.x2 = *v47; + v24 = v15->objectId; + mgminfo.y2 = v9[i].y; + mgminfo.field_10 = 1; + mgminfo.flags = 127; + mgminfo.movementId = v24; + + v25 = (MessageQueue *)MGM_sub_445330((MGM *)&this->movGraph.mgm, &mgminfo); + MessageQueue_transferExCommands(mq, v25); + + if (v25) + (*(void (__thiscall **)(MessageQueue *, signed int))(v25->CObject.vmt + 4))(v25, 1); + + v26 = (MovInfo1Sub *)movInfo->items; + curX = v26[i + 1].x; + curY = v26[i + 1].y; + } + } else { + movinfo.item1Index = v9[i].subIndex; + movinfo.subIndex = movinfo.item1Index; + movinfo.pt1.y = curY; + movinfo.pt1.x = curX; + movinfo.distance1 = curDistance; + v29 = v9[i + 2].x; + movinfo.pt2.x = v9[i + 2].x; + movinfo.pt2.y = v9[i + 2].y; + movinfo.distance2 = v9[i + 2].field_C; + + if (v40 >= movInfo->_itemsCount - 4 + || (v30 = v9[i + 2].subIndex, v30 == 10) + || (v31 = v9[i + 3].subIndex, v31 == 10) + || v30 == v31 + || v9[i + 4].subIndex != 10) { + if (v40 >= movInfo->itemsCount - 3 + || (v33 = v9[i + 2].subIndex, v33 == 10) + || (v34 = v9[i + 3].subIndex, v34 == 10) + || v33 == v34) { + movinfo.flags = movinfo.flags & 2 | movInfo->flags & 1; + } else { + v35 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v33 + 16 * (v34 + 8)); + movinfo.pt2.x = v29 - v35->pt1.y; + movinfo.pt2.y -= v35->pt2.x; + movinfo.flags = movinfo.flags & 2 | movInfo->flags & 1; + } + } else { + v32 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v30 + 16 * (v31 + 4)); + + if (movinfo.item1Index && movinfo.item1Index != 1) { + movinfo.pt2.y -= v32->pt2.x; + movinfo.flags = movinfo.flags & 2 | 1; + } else { + movinfo.pt2.x = v29 - v32->pt1.y; + movinfo.flags = movinfo.flags & 2 | 1; + } + } + i++; + + v36 = MovGraph2_sub_454CD0(this, &movinfo); + + if (!v36) { + delete mq; + return 0; + } + MessageQueue_transferExCommands(mq, v36); + + delete v36; + + curX = movinfo.pt2.x; + curY = movinfo.pt2.y; + curDistance = movinfo.distance2; + } + } + + movInfo->pt2.x = movinfo.pt2.x; + movInfo->pt2.y = movinfo.pt2.y; + + return mq; + +#endif warning("STUB: MovGraph2::buildMovInfo1MessageQueue()"); return 0; From 6f1a4573f5bc6213c575354c711b5b6578f52524 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 22:42:59 -0500 Subject: [PATCH 065/105] TSAGE: Further work on dish tower in R2R scene 1550 --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 148 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes1.h | 12 +- engines/tsage/staticres.cpp | 2 +- engines/tsage/staticres.h | 2 +- 4 files changed, 82 insertions(+), 82 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 8af4e5c80a88..067fd049701b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -7473,15 +7473,15 @@ bool Scene1550::DishControlsWindow::DishControl::startAction(CursorType action, switch (_controlId) { case 1: // Button control - if (scene->_actor13._frame == 5) { + if (scene->_dish._frame == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 25; - if (scene->_actor4._frame == 1) { - scene->setAction(&scene->_sequenceManager1, scene, 1560, &scene->_actor4, NULL); + if (scene->_walkway._frame == 1) { + scene->setAction(&scene->_sequenceManager1, scene, 1560, &scene->_walkway, NULL); R2_GLOBALS.setFlag(20); setFrame(2); } else { - scene->setAction(&scene->_sequenceManager1, scene, 1561, &scene->_actor4, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1561, &scene->_walkway, NULL); R2_GLOBALS.clearFlag(20); setFrame(1); } @@ -7491,11 +7491,11 @@ bool Scene1550::DishControlsWindow::DishControl::startAction(CursorType action, case 2: // Lever control R2_GLOBALS._player.disableControl(); - if (scene->_actor13._frame == 1) { + if (scene->_dish._frame == 1) { scene->_sceneMode = 23; scene->setAction(&scene->_sequenceManager1, scene, 1560, this, NULL); } else { - if (scene->_actor4._frame == 1) + if (scene->_walkway._frame == 1) scene->_sceneMode = 24; else scene->_sceneMode = 22; @@ -7513,17 +7513,14 @@ void Scene1550::DishControlsWindow::remove() { _button.remove(); _lever.remove(); - // sub201EA is a common part with UnkArea1200 - R2_GLOBALS._sceneItems.remove((SceneItem *)this); - _areaActor.remove(); - SceneArea::remove(); - R2_GLOBALS._insetUp--; - // + + ModalWindow::remove(); + if ((scene->_sceneMode >= 20) && (scene->_sceneMode <= 29)) return; R2_GLOBALS._player.disableControl(); - if (scene->_actor4._frame == 1) { + if (scene->_walkway._frame == 1) { scene->_sceneMode = 1559; scene->setAction(&scene->_sequenceManager1, scene, 1559, &R2_GLOBALS._player, NULL); } else { @@ -7542,7 +7539,7 @@ void Scene1550::DishControlsWindow::setup2(int visage, int stripFrameNum, int fr setup3(1550, 67, -1, -1); _button.postInit(); _button._controlId = 1; - if (scene->_actor4._frame == 1) + if (scene->_walkway._frame == 1) _button.setup(1559, 3, 1); else _button.setup(1559, 3, 2); @@ -7553,7 +7550,7 @@ void Scene1550::DishControlsWindow::setup2(int visage, int stripFrameNum, int fr _lever.postInit(); _lever._numFrames = 5; _lever._controlId = 2; - if (scene->_actor13._frame == 1) + if (scene->_dish._frame == 1) _lever.setup(1559, 2, 1); else _lever.setup(1559, 2, 2); @@ -7666,7 +7663,7 @@ bool Scene1550::Actor11::startAction(CursorType action, Event &event) { return true; } -bool Scene1550::Actor12::startAction(CursorType action, Event &event) { +bool Scene1550::DishTower::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -7680,8 +7677,8 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { R2_GLOBALS._player.disableControl(); switch(scene->_field415) { case 0: - scene->_actor13.fixPriority(168); - scene->_actor4.fixPriority(125); + scene->_dish.fixPriority(168); + scene->_walkway.fixPriority(125); scene->_sceneMode = 1558; scene->setAction(&scene->_sequenceManager1, scene, 1558, &R2_GLOBALS._player, NULL); break; @@ -7691,7 +7688,7 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { case 2: scene->_field415 = 1; scene->_sceneMode = 1563; - scene->setAction(&scene->_sequenceManager1, scene, 1563, &R2_GLOBALS._player, &scene->_actor4, NULL); + scene->setAction(&scene->_sequenceManager1, scene, 1563, &R2_GLOBALS._player, &scene->_walkway, NULL); break; default: break; @@ -7701,7 +7698,7 @@ bool Scene1550::Actor12::startAction(CursorType action, Event &event) { } -bool Scene1550::Actor13::startAction(CursorType action, Event &event) { +bool Scene1550::Dish::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; switch (action) { @@ -7733,6 +7730,8 @@ bool Scene1550::Actor13::startAction(CursorType action, Event &event) { } } +/*--------------------------------------------------------------------------*/ + Scene1550::Scene1550() { _field412 = 0; _field414 = 0; @@ -7894,19 +7893,19 @@ void Scene1550::signal() { case 22: _dishControlsWindow.remove(); _sceneMode = 24; - setAction(&_sequenceManager1, this, 1561, &_actor4, NULL); + setAction(&_sequenceManager1, this, 1561, &_walkway, NULL); R2_GLOBALS.clearFlag(20); break; case 23: _dishControlsWindow.remove(); _sceneMode = 20; - setAction(&_sequenceManager1, this, 1566, &_actor13, &_actor5, NULL); + setAction(&_sequenceManager1, this, 1566, &_dish, &_dishTowerShadow, NULL); R2_GLOBALS.setFlag(21); break; case 24: _dishControlsWindow.remove(); _sceneMode = 21; - setAction(&_sequenceManager1, this, 1567, &_actor13, &_actor5, NULL); + setAction(&_sequenceManager1, this, 1567, &_dish, &_dishTowerShadow, NULL); R2_GLOBALS.clearFlag(19); break; case 30: @@ -8086,14 +8085,14 @@ void Scene1550::signal() { R2_GLOBALS._player.enableControl(); break; case 1558: - _actor13.fixPriority(124); + _dish.fixPriority(124); _field415 = 1; _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); break; case 1559: - _actor13.fixPriority(168); - _actor4.fixPriority(169); + _dish.fixPriority(168); + _walkway.fixPriority(169); R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.changeZoom(-1); _field415 = 0; @@ -8244,13 +8243,13 @@ void Scene1550::dispatch() { case 144: // No break on purpose case 146: - _actor13._frame = 5; + _dish._frame = 5; R2_GLOBALS._player._shade = 3; break; case 148: // No break on purpose case 149: - _actor13._frame = 1; + _dish._frame = 1; // No break on purpose case 147: // No break on purpose @@ -8607,10 +8606,10 @@ void Scene1550::enterArea() { _actor2.remove(); _companion.remove(); - _actor13.remove(); - _actor5.remove(); - _actor12.remove(); - _actor4.remove(); + _dish.remove(); + _dishTowerShadow.remove(); + _dishTower.remove(); + _walkway.remove(); // Set up of special walk regions for certain areas switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y) { @@ -9025,12 +9024,13 @@ void Scene1550::enterArea() { } } - for (int i = 0; i < 15 * 3; i++) { - if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == k5A79B[i]) - && (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == k5A79B[i + 1])) { - tmpIdx = k5A79B[i + 2]; - switch (tmpIdx - 1) { - case 0: + // Loop for detecting and setting up certain special areas within the map + for (int i = 0; i < 15 * 3; i += 3) { + if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == scene1550SpecialAreas[i]) + && (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == scene1550SpecialAreas[i + 1])) { + int areaType = scene1550SpecialAreas[i + 2]; + switch (areaType) { + case 1: if (!R2_GLOBALS.getFlag(16)) { _landingStrut.postInit(); if (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == 3) @@ -9042,45 +9042,44 @@ void Scene1550::enterArea() { _landingStrut.setDetails(1550, 73, -1, -1, 2, (SceneItem *) NULL); } break; - case 1: - _actor13.postInit(); - warning("_actor13._actorName = \"dish\";"); + case 2: + _dish.postInit(); if (R2_GLOBALS.getFlag(19)) - _actor13.setup(1556, 3, 5); + _dish.setup(1556, 3, 5); else - _actor13.setup(1556, 3, 1); - _actor13.changeZoom(95); - _actor13.setPosition(Common::Point(165, 83)); - _actor13.fixPriority(168); - _actor13.setDetails(1550, 17, -1, 19, 2, (SceneItem *) NULL); - - _actor12.postInit(); - _actor12.setup(1556, 4, 1); - _actor12.setPosition(Common::Point(191, 123)); - _actor12.changeZoom(95); - _actor12.setDetails(1550, 65, -1, 66, 2, (SceneItem *) NULL); - - _actor5.postInit(); - _actor5._numFrames = 5; + _dish.setup(1556, 3, 1); + _dish.changeZoom(95); + _dish.setPosition(Common::Point(165, 83)); + _dish.fixPriority(168); + _dish.setDetails(1550, 17, -1, 19, 2, (SceneItem *) NULL); + + _dishTower.postInit(); + _dishTower.setup(1556, 4, 1); + _dishTower.setPosition(Common::Point(191, 123)); + _dishTower.changeZoom(95); + _dishTower.setDetails(1550, 65, -1, 66, 2, (SceneItem *) NULL); + + _dishTowerShadow.postInit(); + _dishTowerShadow._numFrames = 5; if (R2_GLOBALS.getFlag(19)) - _actor5.setup(1556, 8, 5); + _dishTowerShadow.setup(1556, 8, 5); else - _actor5.setup(1556, 8, 1); + _dishTowerShadow.setup(1556, 8, 1); - _actor5.setPosition(Common::Point(156, 151)); - _actor5.fixPriority(10); + _dishTowerShadow.setPosition(Common::Point(156, 151)); + _dishTowerShadow.fixPriority(10); - _actor4.postInit(); + _walkway.postInit(); if (R2_GLOBALS.getFlag(20)) - _actor4.setup(1558, 3, 10); + _walkway.setup(1558, 3, 10); else - _actor4.setup(1558, 3, 1); + _walkway.setup(1558, 3, 1); - _actor4.setPosition(Common::Point(172, 48)); - _actor4.fixPriority(169); + _walkway.setPosition(Common::Point(172, 48)); + _walkway.fixPriority(169); R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[15]); break; - case 2: + case 3: _wreckage.postInit(); _wreckage.setup(1550, 1, 1); _wreckage.setPosition(Common::Point(259, 55)); @@ -9100,7 +9099,7 @@ void Scene1550::enterArea() { _actor10.setDetails(1550, 29, -1, 63, 2, (SceneItem *) NULL); } break; - case 3: + case 4: _wreckage.postInit(); _wreckage.setup(1550, 1, 4); _wreckage.setPosition(Common::Point(76, 131)); @@ -9128,7 +9127,7 @@ void Scene1550::enterArea() { _actor8.setDetails(1550, 44, -1, 63, 2, (SceneItem *) NULL); } break; - case 4: + case 5: _wreckage.postInit(); _wreckage.setup(1550, 2, 4); _wreckage.setPosition(Common::Point(243, 131)); @@ -9140,7 +9139,7 @@ void Scene1550::enterArea() { _landingStrut.setPosition(Common::Point(243, 64)); _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; - case 5: + case 6: _wreckage.postInit(); _wreckage.setup(1550, 2, 1); _wreckage.setPosition(Common::Point(60, 55)); @@ -9153,13 +9152,13 @@ void Scene1550::enterArea() { _landingStrut.fixPriority(106); _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; - case 6: + case 7: _wreckage.postInit(); _wreckage.setup(1550, 3, 1); _wreckage.setPosition(Common::Point(281, 132)); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); break; - case 7: + case 8: _wreckage.postInit(); _wreckage.setup(1550, 3, 2); _wreckage.setPosition(Common::Point(57, 96)); @@ -9183,7 +9182,7 @@ void Scene1550::enterArea() { _actor3.setPosition(Common::Point(60, 90)); _actor3.fixPriority(45); break; - case 8: + case 9: _wreckage.postInit(); _wreckage.setup(1550, 4, 2); _wreckage.setPosition(Common::Point(262, 96)); @@ -9207,13 +9206,13 @@ void Scene1550::enterArea() { _actor3.setPosition(Common::Point(259, 90)); _actor3.fixPriority(45); break; - case 9: + case 10: _wreckage.postInit(); _wreckage.setup(1550, 4, 1); _wreckage.setPosition(Common::Point(38, 132)); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); break; - case 11: + case 12: // Intact ship _shipComponents[7].setupShipComponent(8); _shipComponents[0].setupShipComponent(1); @@ -9223,6 +9222,7 @@ void Scene1550::enterArea() { _shipComponents[4].setupShipComponent(5); _shipComponents[5].setupShipComponent(6); _shipComponents[6].setupShipComponent(7); + break; default: break; } diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 2705d938c472..39deb1aacb50 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -509,12 +509,12 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor12 : public SceneActor { + class DishTower : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor13 : public SceneActor { + class Dish : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -533,16 +533,16 @@ class Scene1550 : public SceneExt { SceneActor _landingStrut; SceneActor _actor2; SceneActor _actor3; - SceneActor _actor4; - SceneActor _actor5; + SceneActor _walkway; + SceneActor _dishTowerShadow; Wreckage _wreckage; Companion _companion; Actor8 _actor8; Actor9 _actor9; Actor10 _actor10; Actor11 _actor11; - Actor12 _actor12; - Actor13 _actor13; + DishTower _dishTower; + Dish _dish; Junk _junk[8]; Wall _actor14; Wall _northWall; // Is also reused for landing strip diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp index 662efa19b4a6..09624225a011 100644 --- a/engines/tsage/staticres.cpp +++ b/engines/tsage/staticres.cpp @@ -411,7 +411,7 @@ const byte k5A76D[] = { 3, 3, 3, 3, 3, 3, 3, 3, 3 }; const byte scene1550JunkRegions[] = {0, 8, 15, 16, 12, 7, 18, 17, 13, 6, 19, 20, 14, 5, 11, 10, 9}; -const byte k5A79B[] = { +const byte scene1550SpecialAreas[] = { 23, 3, 1, 23, 4, 1, 26, 3, 1, diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h index 7d97f2824d4e..73f8f8890408 100644 --- a/engines/tsage/staticres.h +++ b/engines/tsage/staticres.h @@ -207,7 +207,7 @@ extern const byte k5A73F[]; extern const byte k5A750[]; extern const byte k5A76D[]; extern const byte scene1550JunkRegions[]; -extern const byte k5A79B[]; +extern const byte scene1550SpecialAreas[]; extern const byte k5A7F6[]; // Scene 2900 balloon data From 8f14331d03970f44ddaa6d197b20e92069e19007 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Thu, 7 Nov 2013 23:12:46 -0500 Subject: [PATCH 066/105] TSAGE: Further renaming of R2R scene 1550 --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 287 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes1.h | 34 +-- 2 files changed, 152 insertions(+), 169 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 067fd049701b..98abf56b9e85 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -7277,7 +7277,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { switch (action) { case CURSOR_USE: if (_componentId == 8) { - scene->_field412 = 1; + scene->_dontExit = true; R2_GLOBALS._player.disableControl(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1576; @@ -7299,7 +7299,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return true; break; case R2_FUEL_CELL: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 6) { R2_GLOBALS._player.disableControl(); scene->_landingStrut.postInit(); @@ -7313,7 +7313,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_GYROSCOPE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 3) { R2_GLOBALS._player.disableControl(); scene->_landingStrut.postInit(); @@ -7327,7 +7327,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_GUIDANCE_MODULE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 1) { R2_GLOBALS._player.disableControl(); scene->_landingStrut.postInit(); @@ -7341,7 +7341,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_THRUSTER_VALVE: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 4) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1572; @@ -7352,7 +7352,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_RADAR_MECHANISM: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 2) { R2_GLOBALS._player.disableControl(); scene->_landingStrut.postInit(); @@ -7366,7 +7366,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_IGNITOR: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1573; @@ -7377,7 +7377,7 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case R2_BATTERY: - scene->_field412 = 1; + scene->_dontExit = true; if (_componentId == 7) { R2_GLOBALS._player.disableControl(); scene->_landingStrut.postInit(); @@ -7563,21 +7563,6 @@ bool Scene1550::WorkingShip::startAction(CursorType action, Event &event) { return SceneHotspot::startAction(action, event); } -bool Scene1550::Hotspot3::startAction(CursorType action, Event &event) { - // Arrays related to this scene are all hacky in the origina: they are based on the impossibility to use Miranda - assert ((R2_GLOBALS._player._characterIndex == R2_QUINN) || (R2_GLOBALS._player._characterIndex == R2_SEEKER)); - // The original contains a debug message when CURSOR_TALK is used. - // This part is totally useless, we could remove it (and the entire function as well) - if (action == CURSOR_TALK) - warning("Location: %d/%d - %d", - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x, - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y, - scene1550AreaMap[(R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y * 30)] + - R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x); - - return SceneHotspot::startAction(action, event); -} - bool Scene1550::Wreckage::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); } @@ -7593,23 +7578,23 @@ bool Scene1550::Companion::startAction(CursorType action, Event &event) { return true; } -bool Scene1550::Actor8::startAction(CursorType action, Event &event) { +bool Scene1550::AirBag::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); R2_GLOBALS._player.disableControl(); Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; - scene->_field412 = 1; + scene->_dontExit = true; if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1552; else scene->_sceneMode = 1588; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor8, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_airbag, NULL); return true; } -bool Scene1550::Actor9::startAction(CursorType action, Event &event) { +bool Scene1550::Joystick::startAction(CursorType action, Event &event) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; switch (action) { @@ -7632,7 +7617,7 @@ bool Scene1550::Actor9::startAction(CursorType action, Event &event) { } } -bool Scene1550::Actor10::startAction(CursorType action, Event &event) { +bool Scene1550::Gyroscope::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -7643,23 +7628,25 @@ bool Scene1550::Actor10::startAction(CursorType action, Event &event) { else scene->_sceneMode = 1589; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor10, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, + &scene->_gyroscope, NULL); return true; } -bool Scene1550::Actor11::startAction(CursorType action, Event &event) { +bool Scene1550::DiagnosticsDisplay::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(); - scene->_field412 = 1; + scene->_dontExit = true; if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1586; else scene->_sceneMode = 1587; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_actor11, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, + &scene->_diagnosticsDisplay, NULL); return true; } @@ -7675,7 +7662,7 @@ bool Scene1550::DishTower::startAction(CursorType action, Event &event) { scene->setAction(&scene->_sequenceManager1, scene, 1585, &R2_GLOBALS._player, NULL); } else { R2_GLOBALS._player.disableControl(); - switch(scene->_field415) { + switch(scene->_dishMode) { case 0: scene->_dish.fixPriority(168); scene->_walkway.fixPriority(125); @@ -7686,7 +7673,7 @@ bool Scene1550::DishTower::startAction(CursorType action, Event &event) { return SceneActor::startAction(action, event); break; case 2: - scene->_field415 = 1; + scene->_dishMode = 1; scene->_sceneMode = 1563; scene->setAction(&scene->_sequenceManager1, scene, 1563, &R2_GLOBALS._player, &scene->_walkway, NULL); break; @@ -7703,7 +7690,7 @@ bool Scene1550::Dish::startAction(CursorType action, Event &event) { switch (action) { case CURSOR_USE: - if (scene->_field415 != 2) + if (scene->_dishMode != 2) return SceneActor::startAction(action, event); if (R2_INVENTORY.getObjectScene(R2_BATTERY) == 1550) { @@ -7715,7 +7702,7 @@ bool Scene1550::Dish::startAction(CursorType action, Event &event) { return true; break; case CURSOR_LOOK: - if (scene->_field415 != 2) + if (scene->_dishMode != 2) return SceneActor::startAction(action, event); if (R2_INVENTORY.getObjectScene(R2_BATTERY) == 1550) { @@ -7733,21 +7720,21 @@ bool Scene1550::Dish::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene1550::Scene1550() { - _field412 = 0; + _dontExit = false; _field414 = 0; - _field415 = 0; - _field417 = 0; - _field419 = 0; + _dishMode = 0; + _sceneResourceId = 0; + _walkRegionsId = 0; } void Scene1550::synchronize(Serializer &s) { SceneExt::synchronize(s); - s.syncAsSint16LE(_field412); + s.syncAsSint16LE(_dontExit); s.syncAsByte(_field414); - s.syncAsSint16LE(_field415); - s.syncAsSint16LE(_field417); - s.syncAsSint16LE(_field419); + s.syncAsSint16LE(_dishMode); + s.syncAsSint16LE(_sceneResourceId); + s.syncAsSint16LE(_walkRegionsId); } void Scene1550::postInit(SceneObjectList *OwnerList) { @@ -7762,8 +7749,8 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { scalePalette(65, 65, 65); setZoomPercents(30, 75, 170, 100); - _field417 = 1550; - _field419 = 0; + _sceneResourceId = 1550; + _walkRegionsId = 0; if (R2_GLOBALS._sceneManager._previousScene == -1) R2_GLOBALS.setFlag(16); @@ -7818,7 +7805,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.disableControl(); R2_GLOBALS._player.animate(ANIM_MODE_NONE, NULL); - _field412 = 1; + _dontExit = true; _landingStrut.postInit(); _shipComponents[7].setupShipComponent(8); @@ -7840,9 +7827,9 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { enterArea(); - _shipHull.setDetails(16, 1550, 10, -1, -1); - _item2.setDetails(24, 1550, 10, -1, -1); - _item3.setDetails(Rect(0, 0, 320, 200), 1550, 0, 1, -1, 1, NULL); + _intactHull1.setDetails(16, 1550, 10, -1, -1); + _intactHull2.setDetails(24, 1550, 10, -1, -1); + _background.setDetails(Rect(0, 0, 320, 200), 1550, 0, 1, -1, 1, NULL); if ((R2_GLOBALS._sceneManager._previousScene == 1500) && (R2_GLOBALS.getFlag(16))) { _sceneMode = 70; @@ -7857,8 +7844,8 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _companion.changeZoom(77); _companion.setDetails(1550, -1, -1, -1, 2, (SceneItem *) NULL); - assert(_field419 >= 1550); - R2_GLOBALS._walkRegions.disableRegion(k5A750[_field419 - 1550]); + assert(_walkRegionsId >= 1550); + R2_GLOBALS._walkRegions.disableRegion(k5A750[_walkRegionsId - 1550]); setAction(&_sequenceManager1, this, 1590, &_companion, NULL); } else if ((_sceneMode != 1577) && (_sceneMode != 1578)) @@ -7874,7 +7861,7 @@ void Scene1550::signal() { case 5: // No break on purpose case 7: - _field412 = 0; + _dontExit = false; R2_GLOBALS._player.enableControl(CURSOR_WALK); break; case 20: @@ -8001,18 +7988,20 @@ void Scene1550::signal() { _companion.changeZoom(-1); _sceneMode = 1592; if (R2_GLOBALS._player._characterIndex == R2_QUINN) - setAction(&_sequenceManager1, this, 1592, &R2_GLOBALS._player, &_companion, &_junk[0], &_actor9, NULL); + setAction(&_sequenceManager1, this, 1592, &R2_GLOBALS._player, &_companion, + &_junk[0], &_joystick, NULL); else - setAction(&_sequenceManager1, this, 1593, &R2_GLOBALS._player, &_companion, &_junk[0], &_actor9, NULL); + setAction(&_sequenceManager1, this, 1593, &R2_GLOBALS._player, &_companion, + &_junk[0], &_joystick, NULL); break; case 61: R2_GLOBALS._player.enableControl(CURSOR_USE); R2_GLOBALS._player._canWalk = false; - _field415 = 2; + _dishMode = 2; break; case 62: R2_GLOBALS._player.enableControl(CURSOR_TALK); - if (_field415 == 2) { + if (_dishMode == 2) { R2_GLOBALS._player.enableControl(CURSOR_USE); R2_GLOBALS._player._canWalk = false; } @@ -8066,8 +8055,8 @@ void Scene1550::signal() { // No break on purpose case 1588: R2_INVENTORY.setObjectScene(R2_AIRBAG, R2_GLOBALS._player._characterIndex); - _actor8.remove(); - _field412 = 0; + _airbag.remove(); + _dontExit = false; R2_GLOBALS._player.enableControl(); break; case 1553: @@ -8075,18 +8064,18 @@ void Scene1550::signal() { break; case 1554: R2_GLOBALS._player.enableControl(); - _field412 = 0; + _dontExit = false; break; case 1555: // No break on purpose case 1589: R2_INVENTORY.setObjectScene(R2_GYROSCOPE, R2_GLOBALS._player._characterIndex); - _actor10.remove(); + _gyroscope.remove(); R2_GLOBALS._player.enableControl(); break; case 1558: _dish.fixPriority(124); - _field415 = 1; + _dishMode = 1; _dishControlsWindow.setup2(1559, 1, 1, 160, 125); R2_GLOBALS._player.enableControl(); break; @@ -8095,13 +8084,13 @@ void Scene1550::signal() { _walkway.fixPriority(169); R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.changeZoom(-1); - _field415 = 0; + _dishMode = 0; R2_GLOBALS._player.enableControl(); break; case 1562: R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; - _field415 = 2; + _dishMode = 2; break; case 1564: R2_INVENTORY.setObjectScene(R2_BATTERY, 1); @@ -8115,7 +8104,7 @@ void Scene1550::signal() { case 1569: // No break on purpose case 1579: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_GUIDANCE_MODULE, 0); R2_GLOBALS._player.enableControl(); @@ -8123,7 +8112,7 @@ void Scene1550::signal() { case 1570: // No break on purpose case 1580: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_RADAR_MECHANISM, 0); R2_GLOBALS._player.enableControl(); @@ -8131,19 +8120,19 @@ void Scene1550::signal() { case 1571: // No break on purpose case 1581: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_GYROSCOPE, 0); R2_GLOBALS._player.enableControl(); break; case 1572: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_THRUSTER_VALVE, 0); R2_GLOBALS._player.enableControl(); break; case 1573: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_IGNITOR, 0); R2_GLOBALS._player.enableControl(); @@ -8151,7 +8140,7 @@ void Scene1550::signal() { case 1574: // No break on purpose case 1582: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_FUEL_CELL, 0); R2_GLOBALS._player.enableControl(); @@ -8159,7 +8148,7 @@ void Scene1550::signal() { case 1575: // No break on purpose case 1583: - _field412 = 0; + _dontExit = false; _landingStrut.remove(); R2_INVENTORY.setObjectScene(R2_BATTERY, 0); R2_GLOBALS._player.enableControl(); @@ -8175,7 +8164,7 @@ void Scene1550::signal() { case 1578: _sceneMode = 0; _landingStrut.remove(); - _field412 = 0; + _dontExit = false; R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.enableControl(); break; @@ -8188,11 +8177,11 @@ void Scene1550::signal() { case 1587: R2_INVENTORY.setObjectScene(R2_DIAGNOSTICS_DISPLAY, R2_GLOBALS._player._characterIndex); _landingStrut.remove(); - _field412 = 0; + _dontExit = false; R2_GLOBALS._player.enableControl(); break; case 1592: - _actor9.remove(); + _joystick.remove(); R2_INVENTORY.setObjectScene(R2_JOYSTICK, 1); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { R2_GLOBALS._s1550PlayerArea[R2_SEEKER] = R2_GLOBALS._s1550PlayerArea[R2_QUINN]; @@ -8212,14 +8201,14 @@ void Scene1550::process(Event &event) { if ((!R2_GLOBALS._player._canWalk) && (R2_GLOBALS._events.getCursor() == R2_NEGATOR_GUN) && (event.eventType == EVENT_BUTTON_DOWN) && (this->_screenNumber == 1234)) { int curReg = R2_GLOBALS._sceneRegions.indexOf(event.mousePos); if (curReg == 0) - _field412 = 1; + _dontExit = true; else if (((R2_GLOBALS._player._position.y < 90) && (event.mousePos.y > 90)) || ((R2_GLOBALS._player._position.y > 90) && (event.mousePos.y < 90))) - _field412 = 1; + _dontExit = true; else - _field412 = 0; + _dontExit = false; if ((curReg == 13) || (curReg == 14)) - _field412 = 0; + _dontExit = false; } Scene::process(event); @@ -8262,7 +8251,7 @@ void Scene1550::dispatch() { #endif } - if (_field412 != 0) + if (_dontExit) return; switch (R2_GLOBALS._player.getRegionIndex() - 11) { @@ -8272,7 +8261,7 @@ void Scene1550::dispatch() { // Exiting the top of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 1; - _field412 = 1; + _dontExit = true; --R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y; enterArea(); @@ -8296,7 +8285,7 @@ void Scene1550::dispatch() { // Exiting the bottom of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 3; - _field412 = 1; + _dontExit = true; ++R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y; enterArea(); @@ -8320,7 +8309,7 @@ void Scene1550::dispatch() { // Exiting the right of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 5; - _field412 = 1; + _dontExit = true; ++R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x; enterArea(); @@ -8348,7 +8337,7 @@ void Scene1550::dispatch() { // Exiting to the left of the screen R2_GLOBALS._player.disableControl(); _sceneMode = 7; - _field412 = 1; + _dontExit = true; --R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x; enterArea(); @@ -8575,8 +8564,8 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { void Scene1550::enterArea() { Rect tmpRect; - _field419 = 0; - _field415 = 0; + _walkRegionsId = 0; + _dishMode = 0; tmpRect = R2_GLOBALS._v5589E; @@ -8595,11 +8584,11 @@ void Scene1550::enterArea() { for (int i = 0; i < 8; ++i) _shipComponents[i].remove(); - _actor8.remove(); - _actor9.remove(); - _actor10.remove(); + _airbag.remove(); + _joystick.remove(); + _gyroscope.remove(); _actor3.remove(); - _actor11.remove(); + _diagnosticsDisplay.remove(); if ((_sceneMode != 1577) && (_sceneMode != 1578)) _landingStrut.remove(); @@ -8617,11 +8606,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 3: R2_GLOBALS._walkRegions.load(1554); - _field419 = 1554; + _walkRegionsId = 1554; break; case 4: R2_GLOBALS._walkRegions.load(1553); - _field419 = 1553; + _walkRegionsId = 1553; break; default: break; @@ -8633,7 +8622,7 @@ void Scene1550::enterArea() { if ((R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x == 23) || (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x)) { if (!R2_GLOBALS.getFlag(16)) { R2_GLOBALS._walkRegions.load(1559); - _field419 = 1559; + _walkRegionsId = 1559; } } break; @@ -8641,11 +8630,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 10: R2_GLOBALS._walkRegions.load(1555); - _field419 = 1555; + _walkRegionsId = 1555; break; case 11: R2_GLOBALS._walkRegions.load(1556); - _field419 = 1556; + _walkRegionsId = 1556; break; default: break; @@ -8655,11 +8644,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 24: R2_GLOBALS._walkRegions.load(1558); - _field419 = 1558; + _walkRegionsId = 1558; break; case 25: R2_GLOBALS._walkRegions.load(1557); - _field419 = 1557; + _walkRegionsId = 1557; break; default: break; @@ -8669,15 +8658,15 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x) { case 2: R2_GLOBALS._walkRegions.load(1552); - _field419 = 1552; + _walkRegionsId = 1552; break; case 3: R2_GLOBALS._walkRegions.load(1551); - _field419 = 1551; + _walkRegionsId = 1551; break; case 15: R2_GLOBALS._walkRegions.load(1575); - _field419 = 1575; + _walkRegionsId = 1575; default: break; } @@ -8803,7 +8792,7 @@ void Scene1550::enterArea() { } if (R2_GLOBALS._sceneManager._sceneNumber == 1234) - _field419 = 1576; + _walkRegionsId = 1576; if (_field414 == 0) { _field414 = 1; @@ -8827,7 +8816,7 @@ void Scene1550::enterArea() { R2_GLOBALS._sceneManager._fadeMode = FADEMODE_IMMEDIATE; if (varA == 0) { - if (_field417 != 1550) { + if (_sceneResourceId != 1550) { g_globals->_scenePalette.loadPalette(1550); R2_GLOBALS._sceneManager._hasPalette = true; } @@ -8837,7 +8826,7 @@ void Scene1550::enterArea() { } if (R2_GLOBALS._sceneManager._hasPalette) - _field417 = varA; + _sceneResourceId = varA; warning("sub_2C429()"); } @@ -8848,16 +8837,16 @@ void Scene1550::enterArea() { R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x]) { case 0: // Standard cell - if (_field419 == 0) { + if (_walkRegionsId == 0) { R2_GLOBALS._walkRegions.load(1550); - _field419 = 1550; + _walkRegionsId = 1550; } break; case 1: // North end of the spaceport - if (_field419 == 0) { + if (_walkRegionsId == 0) { R2_GLOBALS._walkRegions.load(1560); - _field419 = 1560; + _walkRegionsId = 1560; } _actor14.subA4D14(2, 1); _northWall.subA4D14(1, 3); @@ -8865,7 +8854,7 @@ void Scene1550::enterArea() { break; case 2: R2_GLOBALS._walkRegions.load(1561); - _field419 = 1561; + _walkRegionsId = 1561; _actor14.subA4D14(2, 1); _westWall.subA4D14(2, 2); _northWall.subA4D14(1, 3); @@ -8873,7 +8862,7 @@ void Scene1550::enterArea() { break; case 3: R2_GLOBALS._walkRegions.load(1562); - _field419 = 1562; + _walkRegionsId = 1562; _actor14.subA4D14(2, 1); _northWall.subA4D14(1, 3); _actor16.subA4D14(2, 5); @@ -8881,65 +8870,65 @@ void Scene1550::enterArea() { break; case 4: R2_GLOBALS._walkRegions.load(1563); - _field419 = 1563; + _walkRegionsId = 1563; _northWall.subA4D14(2, 3); break; case 5: R2_GLOBALS._walkRegions.load(1564); - _field419 = 1564; + _walkRegionsId = 1564; _southWall.subA4D14(2, 4); break; case 6: R2_GLOBALS._walkRegions.load(1565); - _field419 = 1565; + _walkRegionsId = 1565; _actor14.subA4D14(1, 1); _westWall.subA4D14(1, 2); _northWall.subA4D14(3, 3); break; case 7: R2_GLOBALS._walkRegions.load(1566); - _field419 = 1566; + _walkRegionsId = 1566; _actor14.subA4D14(1, 1); _westWall.subA4D14(1, 2); _northWall.subA4D14(2, 4); break; case 8: R2_GLOBALS._walkRegions.load(1567); - _field419 = 1567; + _walkRegionsId = 1567; _westWall.subA4D14(5, 2); break; case 9: R2_GLOBALS._walkRegions.load(1568); - _field419 = 1568; + _walkRegionsId = 1568; _westWall.subA4D14(4, 2); break; case 10: R2_GLOBALS._walkRegions.load(1569); - _field419 = 1569; + _walkRegionsId = 1569; _actor14.subA4D14(3, 1); break; case 11: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; + _walkRegionsId = 1570; _actor14.subA4D14(1, 1); _westWall.subA4D14(1, 2); break; case 12: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; + _walkRegionsId = 1571; _actor16.subA4D14(1, 5); _eastWall.subA4D14(1, 6); break; case 13: R2_GLOBALS._walkRegions.load(1572); - _field419 = 1572; + _walkRegionsId = 1572; _actor14.subA4D14(1, 1); _westWall.subA4D14(1, 2); _southWall.subA4D14(1, 4); break; case 14: R2_GLOBALS._walkRegions.load(1573); - _field419 = 1573; + _walkRegionsId = 1573; _southWall.subA4D14(1, 4); _actor16.subA4D14(1, 5); _eastWall.subA4D14(1, 6); @@ -8947,30 +8936,30 @@ void Scene1550::enterArea() { case 15: // South wall R2_GLOBALS._walkRegions.load(1574); - _field419 = 1574; + _walkRegionsId = 1574; _southWall.subA4D14(1, 4); break; case 16: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; + _walkRegionsId = 1570; _actor14.subA4D14(2, 1); _westWall.subA4D14(2, 2); break; case 17: R2_GLOBALS._walkRegions.load(1570); - _field419 = 1570; + _walkRegionsId = 1570; _actor14.subA4D14(2, 1); _westWall.subA4D14(3, 2); break; case 18: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; + _walkRegionsId = 1571; _actor16.subA4D14(2, 5); _eastWall.subA4D14(2, 6); break; case 19: R2_GLOBALS._walkRegions.load(1571); - _field419 = 1571; + _walkRegionsId = 1571; _actor16.subA4D14(2, 5); _eastWall.subA4D14(3, 6); break; @@ -9002,11 +8991,11 @@ void Scene1550::enterArea() { R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[7]); if (R2_INVENTORY.getObjectScene(R2_JOYSTICK) == 1550) { - _actor9.postInit(); - _actor9.setup(1562, 3, 1); - _actor9.setPosition(Common::Point(150, 70)); - _actor9.fixPriority(10); - _actor9.setDetails(1550, 41, -1, 42, 2, (SceneItem *) NULL); + _joystick.postInit(); + _joystick.setup(1562, 3, 1); + _joystick.setPosition(Common::Point(150, 70)); + _joystick.fixPriority(10); + _joystick.setDetails(1550, 41, -1, 42, 2, (SceneItem *) NULL); } } else { if (R2_GLOBALS._scene1550JunkLocations[i + 2] > 40) { @@ -9092,11 +9081,11 @@ void Scene1550::enterArea() { _landingStrut.fixPriority(105); _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_GYROSCOPE) == 1550) { - _actor10.postInit(); - _actor10.setup(1550, 7, 2); - _actor10.setPosition(Common::Point(227, 30)); - _actor10.fixPriority(130); - _actor10.setDetails(1550, 29, -1, 63, 2, (SceneItem *) NULL); + _gyroscope.postInit(); + _gyroscope.setup(1550, 7, 2); + _gyroscope.setPosition(Common::Point(227, 30)); + _gyroscope.fixPriority(130); + _gyroscope.setDetails(1550, 29, -1, 63, 2, (SceneItem *) NULL); } break; case 4: @@ -9111,20 +9100,20 @@ void Scene1550::enterArea() { _landingStrut.setPosition(Common::Point(76, 64)); _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_DIAGNOSTICS_DISPLAY) == 1550) { - _actor11.postInit(); - _actor11.setup(1504, 4, 1); - _actor11.setPosition(Common::Point(49, 35)); - _actor11.animate(ANIM_MODE_2, NULL); - _actor11._numFrames = 4; - _actor11.fixPriority(65); - _actor11.setDetails(1550, 14, 15, 63, 2, (SceneItem *) NULL); + _diagnosticsDisplay.postInit(); + _diagnosticsDisplay.setup(1504, 4, 1); + _diagnosticsDisplay.setPosition(Common::Point(49, 35)); + _diagnosticsDisplay.animate(ANIM_MODE_2, NULL); + _diagnosticsDisplay._numFrames = 4; + _diagnosticsDisplay.fixPriority(65); + _diagnosticsDisplay.setDetails(1550, 14, 15, 63, 2, (SceneItem *) NULL); } if (R2_INVENTORY.getObjectScene(R2_AIRBAG) == 1550) { - _actor8.postInit(); - _actor8.setup(1550, 7, 1); - _actor8.setPosition(Common::Point(45, 44)); - _actor8.fixPriority(150); - _actor8.setDetails(1550, 44, -1, 63, 2, (SceneItem *) NULL); + _airbag.postInit(); + _airbag.setup(1550, 7, 1); + _airbag.setPosition(Common::Point(45, 44)); + _airbag.fixPriority(150); + _airbag.setDetails(1550, 44, -1, 63, 2, (SceneItem *) NULL); } break; case 5: @@ -9234,9 +9223,9 @@ void Scene1550::enterArea() { _companion._effect = EFFECT_SHADED2; _companion.changeZoom(-1); - assert((_field419 >= 1550) && (_field419 <= 2008)); - R2_GLOBALS._walkRegions.disableRegion(k5A750[_field419 - 1550]); - _companion.setPosition(Common::Point(k5A72E[k5A76D[_field419 - 1550]], k5A73F[k5A76D[_field419 - 1550]] + 8)); + assert((_walkRegionsId >= 1550) && (_walkRegionsId <= 2008)); + R2_GLOBALS._walkRegions.disableRegion(k5A750[_walkRegionsId - 1550]); + _companion.setPosition(Common::Point(k5A72E[k5A76D[_walkRegionsId - 1550]], k5A73F[k5A76D[_walkRegionsId - 1550]] + 8)); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (R2_GLOBALS._player._characterScene[R2_SEEKER] == 1580) { _companion.setup(1516, 3, 17); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 39deb1aacb50..87972bff120b 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -474,11 +474,6 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Hotspot3 : public NamedHotspot { - public: - virtual bool startAction(CursorType action, Event &event); - }; - class Wreckage : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); @@ -489,22 +484,22 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Actor8 : public SceneActor { + class AirBag : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor9 : public SceneActor { + class Joystick : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor10 : public SceneActor { + class Gyroscope : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; - class Actor11 : public SceneActor { + class DiagnosticsDisplay : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -527,9 +522,8 @@ class Scene1550 : public SceneExt { public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; - WorkingShip _shipHull; - WorkingShip _item2; - Hotspot3 _item3; + WorkingShip _intactHull1, _intactHull2; + SceneHotspot _background; SceneActor _landingStrut; SceneActor _actor2; SceneActor _actor3; @@ -537,10 +531,10 @@ class Scene1550 : public SceneExt { SceneActor _dishTowerShadow; Wreckage _wreckage; Companion _companion; - Actor8 _actor8; - Actor9 _actor9; - Actor10 _actor10; - Actor11 _actor11; + AirBag _airbag; + Joystick _joystick; + Gyroscope _gyroscope; + DiagnosticsDisplay _diagnosticsDisplay; DishTower _dishTower; Dish _dish; Junk _junk[8]; @@ -555,11 +549,11 @@ class Scene1550 : public SceneExt { SequenceManager _sequenceManager1; SequenceManager _sequenceManager2; - int _field412; + bool _dontExit; byte _field414; - int _field415; - int _field417; - int _field419; + int _dishMode; + int _sceneResourceId; + int _walkRegionsId; Scene1550(); void synchronize(Serializer &s); From afb23e8a2a2929c2f426a23b7a442f15750ccf70 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 8 Nov 2013 08:12:29 +0100 Subject: [PATCH 067/105] TSAGE: More rework on scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 170 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 4 +- 2 files changed, 92 insertions(+), 82 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 14639f5bdd42..a8cc2087411d 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2949,16 +2949,16 @@ void Scene3400::signal() { *--------------------------------------------------------------------------*/ Scene3500::Action1::Action1() { - _field1E = 0; + _direction = 0; _field20 = 0; _field22 = 0; - _field24 = 0; + _field24 = false; } void Scene3500::Action1::synchronize(Serializer &s) { Action::synchronize(s); - s.syncAsSint16LE(_field1E); + s.syncAsSint16LE(_direction); s.syncAsSint16LE(_field20); s.syncAsSint16LE(_field22); s.syncAsSint16LE(_field24); @@ -2968,20 +2968,20 @@ void Scene3500::Action1::handleHorzButton(int direction) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; // Direction: -1 == Left, 1 == Right - _field1E = direction; + _direction = direction; _field20 = 1; - _field24 = 1; + _field24 = true; scene->_actor9.setStrip(2); scene->_actor9.show(); - if (_field1E == 1) + if (_direction == 1) scene->_symbolRight.show(); else scene->_symbolLeft.show(); if (scene->_shuttle._frame % 2 == 0) { - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } @@ -2992,9 +2992,9 @@ void Scene3500::Action1::sub108732(int arg1) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; _field20 = arg1; - _field1E = -_field1E; + _direction = -_direction; - if (_field1E == 1) { + if (_direction == 1) { scene->_symbolRight.show(); scene->_symbolLeft.hide(); } else { @@ -3004,7 +3004,7 @@ void Scene3500::Action1::sub108732(int arg1) { switch (_actionIndex) { case 4: - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); // No break on purpose case 3: @@ -3017,7 +3017,7 @@ void Scene3500::Action1::sub108732(int arg1) { NpcMover *mover = new NpcMover(); scene->_tunnelCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_field1E * 2 * 160); + scene->_fieldB9E = 160 - (_direction * 2 * 160); Common::Point pt2(scene->_fieldB9E, 73); NpcMover *mover2 = new NpcMover(); scene->_actor9.addMover(mover2, &pt2, this); @@ -3026,7 +3026,7 @@ void Scene3500::Action1::sub108732(int arg1) { } break; case 6: - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); // No break on purpose @@ -3060,7 +3060,7 @@ void Scene3500::Action1::signal() { } // No break on purpose case 3: - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); setDelay(1); break; @@ -3072,12 +3072,12 @@ void Scene3500::Action1::signal() { int var6 = abs(var4 - scene->_mazePosition.y); if ((scene->_shuttle._frame % 2) != 0) { - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // Get the new direction starting on - int var8 = (scene->_action1._field1E * 2 + scene->_mazeDirection); + int var8 = (scene->_action1._direction * 2 + scene->_mazeDirection); if (var8 > MAZEDIR_NORTHWEST) var8 = MAZEDIR_NORTH; else if (var8 < MAZEDIR_NORTH) @@ -3141,12 +3141,12 @@ void Scene3500::Action1::signal() { case 2: { scene->_tunnelCircle.setPosition(Common::Point(160, 73)); scene->_tunnelCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; - scene->_fieldAF8 = 160 - ((_field1E * 2) * 160); + scene->_fieldAF8 = 160 - ((_direction * 2) * 160); Common::Point pt(scene->_fieldAF8, 73); NpcMover *mover = new NpcMover(); scene->_tunnelCircle.addMover(mover, &pt, this); - scene->_actor9.setPosition(Common::Point(160 + ((_field1E * 2) * 160), 73)); + scene->_actor9.setPosition(Common::Point(160 + ((_direction * 2) * 160), 73)); scene->_actor9._moveDiff.x = 160 - scene->_mazeChangeAmount; scene->_fieldB9E = 160; Common::Point pt2(scene->_fieldB9E, 73); @@ -3155,7 +3155,7 @@ void Scene3500::Action1::signal() { } break; case 5: - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_mazeDirection = scene->_shuttle.changeFrame(); scene->_shuttle.setFrame(scene->_mazeDirection); setDelay(1); @@ -3176,7 +3176,7 @@ void Scene3500::Action1::signal() { break; case 7: if ((scene->_shuttle._frame % 2) == 0) { - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_mazeDirection = scene->_shuttle.changeFrame(); scene->_shuttle.setFrame(scene->_mazeDirection); } @@ -3187,14 +3187,14 @@ void Scene3500::Action1::signal() { R2_GLOBALS._player._canWalk = false; scene->_directionChangesEnabled = true; if ((scene->_shuttle._frame % 2) == 0) { - scene->_shuttle._frameChange = _field1E; + scene->_shuttle._frameChange = _direction; scene->_shuttle.setFrame(scene->_shuttle.changeFrame()); } // All the var_8 initialization was missing in the original // but it's clearly a cut and paste error from case 4. // The following code allows the switch to work properly. warning("Checkme: fix for dead code"); - int var_8 = (_field1E * 2 + scene->_mazeDirection); + int var_8 = (_direction * 2 + scene->_mazeDirection); if (var_8 > 7) var_8 = 1; else if (var_8 < 1) @@ -3217,7 +3217,7 @@ void Scene3500::Action1::signal() { } scene->_symbolLeft.hide(); scene->_symbolRight.hide(); - _field24 = 0; + _field24 = false; if (_field20 == 0) { scene->_throttle.sub1094ED(); if (scene->_mazeChangeAmount == scene->_field1270) @@ -3231,7 +3231,7 @@ void Scene3500::Action1::signal() { NpcMover *mover = new NpcMover(); scene->_tunnelCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_field1E * 2 * 160); + scene->_fieldB9E = 160 - (_direction * 2 * 160); Common::Point pt2(scene->_fieldB9E, 73); NpcMover *mover2 = new NpcMover(); scene->_actor9.addMover(mover2, &pt2, this); @@ -3241,7 +3241,7 @@ void Scene3500::Action1::signal() { case 11: { scene->_tunnelCircle.setStrip(2); scene->_tunnelCircle.setPosition(Common::Point(160, 73)); - scene->_fieldAF8 = 160 - (_field1E * 2 * 160); + scene->_fieldAF8 = 160 - (_direction * 2 * 160); Common::Point pt(scene->_fieldAF8, 73); NpcMover *mover = new NpcMover(); scene->_tunnelCircle.addMover(mover, &pt, NULL); @@ -3250,7 +3250,7 @@ void Scene3500::Action1::signal() { scene->_actor9.setStrip(1); else scene->_actor9.setStrip(2); - scene->_actor9.setPosition(Common::Point(160 - (_field1E * 2 * 160), 73)); + scene->_actor9.setPosition(Common::Point(160 - (_direction * 2 * 160), 73)); scene->_fieldB9E = 160; Common::Point pt2(scene->_fieldB9E, 73); NpcMover *mover2 = new NpcMover(); @@ -3447,7 +3447,7 @@ void Scene3500::Throttle::process(Event &event) { if ((event.eventType == EVENT_BUTTON_UP) && (_deltaY != 0)) { _deltaY = 0; event.handled = true; - if (scene->_action1._field24 == 0) + if (!scene->_action1._field24) sub1094ED(); } @@ -3659,7 +3659,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { _mazeUI.load(2); _mazeUI.setMazePosition(_mazePosition); - _action1._field24 = 0; + _action1._field24 = false; _mazeUI.draw(); _directionChangesEnabled = true; @@ -3678,7 +3678,7 @@ void Scene3500::doMovement(int id) { _field1270--; _throttle.sub109663(_field1270); } - if (_action1._field24 != 0) + if (_action1._field24) _field1270 = 0; break; case 1: @@ -3687,13 +3687,13 @@ void Scene3500::doMovement(int id) { ++_field1270; _throttle.sub109663(_field1270); } - if (_action1._field24 != 0) + if (_action1._field24) _field1270 = 0; break; case 88: // Up button has been pressed // The original was doing a double check on action, only one is here. - if (!_action || (_action1._field24 == 0)) { + if (!_action || (!_action1._field24)) { _action2.handleVertButton(2); if (_action && ((_action2.getActionIndex() != 0) || (_action2._direction != 2))) { _action2.signal(); @@ -3704,22 +3704,27 @@ void Scene3500::doMovement(int id) { break; case 96: // Right button has been pressed - if (!_action) { - _action1.handleHorzButton(1); - setAction(&_action1, &_shuttle, NULL); - } else if (_action1._field24 == 0) { - _action1.handleHorzButton(1); - _action1.signal(); - }else if (_action2._direction != 1) { - _field1278 = 0; + if (!_action || !_action1._field24 || (_action1._direction == 1)) { + if (_action && (_field1278 == 0) && (_action1._field24 != 0)) { + _field1278 = id; + } else if (_action && (_action1._field24 == 0)) { + _action1.handleHorzButton(1); + _action1.signal(); + } else if (!_action) { + _action1.handleHorzButton(1); + setAction(&_action1, &_shuttle, NULL); + } + + } else { + if (_field1278 != 0) + _field1278 = 0; + _action1.sub108732(0); - } else if (_field1278 == 0) { - _field1278 = id; } break; case 104: // Down button has been pressed - if (!_action || (_action1._field24 == 0)) { + if (!_action || (!_action1._field24)) { _action2.handleVertButton(-1); if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._direction != -1))) { _action2.signal(); @@ -3730,23 +3735,28 @@ void Scene3500::doMovement(int id) { break; case 112: // Left button has been pressed - if (!_action) { - _action1.handleHorzButton(-1); - setAction(&_action1, &_shuttle, NULL); - } else if (_action1._field24 == 0) { - _action1.handleHorzButton(-1); - _action1.signal(); - }else if (_action2._direction != -1) { - _field1278 = 0; + if (!_action || !_action1._field24 || (_action1._direction == 1)) { + if (_action && (_field1278 == 0) && (_action1._field24 != 0)) { + _field1278 = id; + } else if (_action && (_action1._field24 == 0)) { + _action1.handleHorzButton(-1); + _action1.signal(); + } else if (!_action) { + _action1.handleHorzButton(-1); + setAction(&_action1, &_shuttle, NULL); + } + + } else { + if (_field1278 != 0) + _field1278 = 0; + _action1.sub108732(0); - } else if (_field1278 == 0) { - _field1278 = id; } break; default: _field1270 = id; _throttle.sub109663(id); - if (_action1._field24 != 0) { + if (_action1._field24) { _field1270 = 0; } break; @@ -3853,13 +3863,13 @@ void Scene3500::dispatch() { Rect tmpRect; Scene::dispatch(); - if (((_shuttle._frame % 2) == 0) && (_action1._field24 == 0)) { + if (((_shuttle._frame % 2) == 0) && (!_action1._field24)) { _shuttle.setFrame(_shuttle.changeFrame()); _mazeDirection = _shuttle._frame; } - int oldField1278; - if ((_field1278 != 0) && (_action1._field24 == 0)) { - oldField1278 = _field1278; + + if ((_field1278 != 0) && (!_action1._field24)) { + int oldField1278 = _field1278; _field1278 = 0; doMovement(oldField1278); } @@ -3901,7 +3911,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; @@ -3914,7 +3924,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 11) && (cellId != dx)) { newMazeY = var_6 + 3; @@ -3923,7 +3933,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; @@ -3939,7 +3949,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { R2_GLOBALS._sound2.play(339); @@ -3947,7 +3957,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { newMazeX = var_4; @@ -3967,7 +3977,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; @@ -3980,7 +3990,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 6) && (cellId != dx)) { newMazeX = var_4 - 5; @@ -3989,7 +3999,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; @@ -4004,7 +4014,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { newMazeX = var_4 - 5; @@ -4013,7 +4023,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; @@ -4033,7 +4043,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; @@ -4046,7 +4056,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 16) && (cellId != dx)) { newMazeY = var_6 - 3; @@ -4055,7 +4065,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 31) && (cellId != dx)) { newMazeY = var_6 + 4; @@ -4064,7 +4074,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; @@ -4080,7 +4090,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { newMazeY = var_6 - 3; @@ -4089,7 +4099,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { newMazeY = var_6 + 4; @@ -4097,7 +4107,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307)) ++_field1284; @@ -4121,7 +4131,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; @@ -4134,7 +4144,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 1) && (cellId != dx)) { newMazeX = var_4 + 5; @@ -4143,14 +4153,14 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; var_8 = abs(var_4 - newMazeX); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= var_4) && (_mazePosition.x >= var_4)) - || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { + || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24)) ) { newMazeX = var_4; if ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); @@ -4158,7 +4168,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { newMazeX = var_4 + 5; @@ -4167,7 +4177,7 @@ void Scene3500::dispatch() { _field1270 = 0; _mazeChangeAmount = 0; _field1272 = 0; - if (_action1._field24 == 0) + if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; @@ -4203,7 +4213,7 @@ void Scene3500::dispatch() { if (_mazeChangeAmount != _field1270) { if (_mazeChangeAmount >= _field1270) { if (_mazeChangeAmount == 1) { - if (_action1._field24 != 0) { + if (_action1._field24) { if ( ((_mazeDirection == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) || ((_mazeDirection == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))) || ((_mazeDirection == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15))) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 705a9d61302c..22b10b0c7ed5 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -564,10 +564,10 @@ class Scene3400 : public SceneExt { class Scene3500 : public SceneExt { class Action1: public Action { public: - int _field1E; + int _direction; int _field20; int _field22; - int _field24; + bool _field24; Action1(); virtual void synchronize(Serializer &s); From 7c210e0c34326ea0c33d8e005da00406c81aa7c9 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 8 Nov 2013 08:48:05 +0100 Subject: [PATCH 068/105] TSAGE: Some more rework on scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 188 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 6 +- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index a8cc2087411d..bcf231c8cb75 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -3046,10 +3046,10 @@ void Scene3500::Action1::signal() { case 0: R2_GLOBALS._player.disableControl(); scene->_directionChangesEnabled = false; - if (scene->_field1270 != 0) { - scene->_field1270 = 0; + if (scene->_speed != 0) { + scene->_speed = 0; scene->_mazeChangeAmount = 0; - scene->_field1272 = 0; + scene->_field1272 = false; scene->_rotation->_idxChange = 0; } break; @@ -3220,7 +3220,7 @@ void Scene3500::Action1::signal() { _field24 = false; if (_field20 == 0) { scene->_throttle.sub1094ED(); - if (scene->_mazeChangeAmount == scene->_field1270) + if (scene->_mazeChangeAmount == scene->_speed) scene->_aSound1.play(276); } break; @@ -3422,7 +3422,7 @@ void Scene3500::Throttle::init(int xp, int yp, int arg3, int arg4, int arg5) { void Scene3500::Throttle::sub1094ED() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - scene->_field1270 = _position.x - _pos.x; + scene->_speed = _position.x - _pos.x; } void Scene3500::Throttle::sub109663(int arg1){ @@ -3514,11 +3514,11 @@ Scene3500::Scene3500() { _fieldB9E = 0; _rotation = NULL; _mazeChangeAmount = 0; - _field1270 = 0; - _field1272 = 0; + _speed = 0; + _field1272 = false; _field1274 = 0; _mazeDirection = MAZEDIR_NONE; - _field1278 = 0; + _nextMove = 0; _mazePosition.x = 0; _mazePosition.y = 0; _field127E = 0; @@ -3535,11 +3535,11 @@ void Scene3500::synchronize(Serializer &s) { s.syncAsSint16LE(_fieldAF8); s.syncAsSint16LE(_fieldB9E); s.syncAsSint16LE(_mazeChangeAmount); - s.syncAsSint16LE(_field1270); + s.syncAsSint16LE(_speed); s.syncAsSint16LE(_field1272); s.syncAsSint16LE(_field1274); s.syncAsSint16LE(_mazeDirection); - s.syncAsSint16LE(_field1278); + s.syncAsSint16LE(_nextMove); s.syncAsSint16LE(_mazePosition.x); s.syncAsSint16LE(_mazePosition.y); s.syncAsSint16LE(_field127E); @@ -3564,9 +3564,9 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3500; _field1284 = 0; _field1282 = 0; // CHECKME: Useless variable - _field1278 = 0; - _field1272 = 1; - _field1270 = 4; + _nextMove = 0; + _field1272 = true; + _speed = 4; _mazeChangeAmount = 4; _mazePosition = Common::Point(860, 891); _rotation = R2_GLOBALS._scenePalette.addRotation(240, 254, -1); @@ -3590,7 +3590,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._scenePalette._palette[(3 * i) + 2] = tmpPal[(3 * i) + 2]; } - _throttle.init(38, 165, 16, 32, _field1270); + _throttle.init(38, 165, 16, 32, _speed); _throttle.setDetails(3500, 6, 7, -1, 1, (SceneItem *)NULL); R2_GLOBALS._sound1.play(276); @@ -3674,21 +3674,21 @@ void Scene3500::doMovement(int id) { switch (id) { case -1: _throttle.sub1094ED(); - if (_field1270 != 0) { - _field1270--; - _throttle.sub109663(_field1270); + if (_speed != 0) { + _speed--; + _throttle.sub109663(_speed); } if (_action1._field24) - _field1270 = 0; + _speed = 0; break; case 1: _throttle.sub1094ED(); - if (_field1270 < 16) { - ++_field1270; - _throttle.sub109663(_field1270); + if (_speed < 16) { + ++_speed; + _throttle.sub109663(_speed); } if (_action1._field24) - _field1270 = 0; + _speed = 0; break; case 88: // Up button has been pressed @@ -3705,9 +3705,9 @@ void Scene3500::doMovement(int id) { case 96: // Right button has been pressed if (!_action || !_action1._field24 || (_action1._direction == 1)) { - if (_action && (_field1278 == 0) && (_action1._field24 != 0)) { - _field1278 = id; - } else if (_action && (_action1._field24 == 0)) { + if (_action && (_nextMove == 0) && (_action1._field24)) { + _nextMove = id; + } else if (_action && (!_action1._field24)) { _action1.handleHorzButton(1); _action1.signal(); } else if (!_action) { @@ -3716,8 +3716,8 @@ void Scene3500::doMovement(int id) { } } else { - if (_field1278 != 0) - _field1278 = 0; + if (_nextMove != 0) + _nextMove = 0; _action1.sub108732(0); } @@ -3736,9 +3736,9 @@ void Scene3500::doMovement(int id) { case 112: // Left button has been pressed if (!_action || !_action1._field24 || (_action1._direction == 1)) { - if (_action && (_field1278 == 0) && (_action1._field24 != 0)) { - _field1278 = id; - } else if (_action && (_action1._field24 == 0)) { + if (_action && (_nextMove == 0) && (_action1._field24)) { + _nextMove = id; + } else if (_action && (!_action1._field24)) { _action1.handleHorzButton(-1); _action1.signal(); } else if (!_action) { @@ -3747,17 +3747,17 @@ void Scene3500::doMovement(int id) { } } else { - if (_field1278 != 0) - _field1278 = 0; + if (_nextMove != 0) + _nextMove = 0; _action1.sub108732(0); } break; default: - _field1270 = id; + _speed = id; _throttle.sub109663(id); if (_action1._field24) { - _field1270 = 0; + _speed = 0; } break; } @@ -3792,7 +3792,7 @@ void Scene3500::process(Event &event) { event.handled = true; break; case Common::KEYCODE_KP9: - if (_field1270 < 16) + if (_speed < 16) R2_GLOBALS._sound2.play(338); doMovement(1); event.handled = true; @@ -3821,7 +3821,7 @@ void Scene3500::process(Event &event) { event.handled = true; break; case Common::KEYCODE_KP3: - if (_field1270 != 0) + if (_speed != 0) R2_GLOBALS._sound2.play(338); doMovement(-1); event.handled = true; @@ -3868,10 +3868,10 @@ void Scene3500::dispatch() { _mazeDirection = _shuttle._frame; } - if ((_field1278 != 0) && (!_action1._field24)) { - int oldField1278 = _field1278; - _field1278 = 0; - doMovement(oldField1278); + if ((_nextMove != 0) && (!_action1._field24)) { + int move = _nextMove; + _nextMove = 0; + doMovement(move); } if (!_rotation) @@ -3908,9 +3908,9 @@ void Scene3500::dispatch() { ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && var_8 > 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -3921,18 +3921,18 @@ void Scene3500::dispatch() { newMazeY = var_6; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 11) && (cellId != dx)) { newMazeY = var_6 + 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -3946,17 +3946,17 @@ void Scene3500::dispatch() { if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId == 15)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { @@ -3974,9 +3974,9 @@ void Scene3500::dispatch() { || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -3987,18 +3987,18 @@ void Scene3500::dispatch() { newMazeX = var_4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 6) && (cellId != dx)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -4011,18 +4011,18 @@ void Scene3500::dispatch() { if ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { @@ -4040,9 +4040,9 @@ void Scene3500::dispatch() { || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -4053,27 +4053,27 @@ void Scene3500::dispatch() { if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != dx)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 16) && (cellId != dx)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 31) && (cellId != dx)) { newMazeY = var_6 + 4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -4087,26 +4087,26 @@ void Scene3500::dispatch() { if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { newMazeY = var_6 + 4; _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307)) @@ -4128,9 +4128,9 @@ void Scene3500::dispatch() { || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -4141,18 +4141,18 @@ void Scene3500::dispatch() { newMazeX = var_4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 1) && (cellId != dx)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else { @@ -4165,18 +4165,18 @@ void Scene3500::dispatch() { if ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; - _field1270 = 0; + _speed = 0; _mazeChangeAmount = 0; - _field1272 = 0; + _field1272 = false; if (!_action1._field24) _tunnelCircle.hide(); } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { @@ -4196,9 +4196,9 @@ void Scene3500::dispatch() { _mazePosition.x = newMazeX; _mazePosition.y = newMazeY; if (_mazeUI.setMazePosition2(_mazePosition) != 0) { - _field1272 = 0; + _field1272 = false; _mazeChangeAmount = 0; - _field1270 = 0; + _speed = 0; _rotation->setDelay(0); _rotation->_idxChange = 0; } @@ -4209,9 +4209,9 @@ void Scene3500::dispatch() { } } - if (_field1272 == 0) { - if (_mazeChangeAmount != _field1270) { - if (_mazeChangeAmount >= _field1270) { + if (!_field1272) { + if (_mazeChangeAmount != _speed) { + if (_mazeChangeAmount >= _speed) { if (_mazeChangeAmount == 1) { if (_action1._field24) { if ( ((_mazeDirection == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) @@ -4227,12 +4227,12 @@ void Scene3500::dispatch() { _mazeChangeAmount--; } else ++_mazeChangeAmount; - _field1272 = 1; + _field1272 = true; } _verticalSpeedDisplay.setFrame2(_mazeChangeAmount + 1); } - if (_field1272 == 1) { + if (_field1272) { if (_mazeChangeAmount == 0) _rotation->_idxChange = 0; else if (_mazeChangeAmount > 8) @@ -4241,12 +4241,12 @@ void Scene3500::dispatch() { _rotation->_idxChange = 1; } - if (_field1272 != 0) - _field1272--; + if (_field1272) + _field1272 = false; if (_mazeChangeAmount != 0) { R2_GLOBALS._player._uiEnabled = false; - if (_mazeChangeAmount != _field1270) + if (_mazeChangeAmount != _speed) _aSound1.play(276); } else { R2_GLOBALS._player._uiEnabled = true; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 22b10b0c7ed5..accb70995271 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -657,11 +657,11 @@ class Scene3500 : public SceneExt { int _fieldB9E; PaletteRotation *_rotation; int _mazeChangeAmount; - int _field1270; - int _field1272; + int _speed; + bool _field1272; int _field1274; int _mazeDirection; - int _field1278; + int _nextMove; Common::Point _mazePosition; int _field127E; int _field1280; From 492cefacb6a242dc9a7eca3bbfe8f8bace635bd4 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 8 Nov 2013 12:03:41 +0200 Subject: [PATCH 069/105] WINTERMUTE: Allow utf8ToWide() and wideToUtf8() work with ASCII strings This is needed for English versions of multilingual games, which use UTF-8 strings, but we can treat them as plain ASCII, since wide and UTF-8 strings are not yet supported in Wintermute. This allows at least the English versions of these games to run. This allows Reversion 2 and Shaban to start --- engines/wintermute/utils/string_util.cpp | 47 +++++++++++++++++++++++- engines/wintermute/utils/string_util.h | 1 + 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/engines/wintermute/utils/string_util.cpp b/engines/wintermute/utils/string_util.cpp index e8e078aba89b..c359b1f96105 100644 --- a/engines/wintermute/utils/string_util.cpp +++ b/engines/wintermute/utils/string_util.cpp @@ -48,9 +48,41 @@ bool StringUtil::compareNoCase(const AnsiString &str1, const AnsiString &str2) { return (str1lc == str2lc); }*/ +bool StringUtil::isAscii(Common::String &str) { + uint strSize = str.size(); + Common::String punctuation("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); + + for (uint32 i = 0; i < str.size(); i++) { + if (!Common::isAlnum(str[i]) && str[i] != ' ' && !punctuation.contains(str[i])) { + // Replace some UTF-8 characters with (almost) equivalent ANSII ones + if ((byte)str[i] == 0xc2 && i + 1 < str.size() && (byte)str[i + 1] == 0xa9) { + // UTF-8 copyright character, substitute with 'c' + str.deleteChar(i); + str.setChar('c', i); + strSize--; + } else { + return false; + } + } + } + + return true; +} + ////////////////////////////////////////////////////////////////////////// WideString StringUtil::utf8ToWide(const Utf8String &Utf8Str) { - error("StringUtil::Utf8ToWide - WideString not supported yet"); + // WORKAROUND: Since wide strings aren't supported yet, we make this function + // work at least with ASCII strings. This should cover all English versions. + Common::String asciiString = Utf8Str; + if (isAscii(asciiString)) { + // No special (UTF-8) characters found, just return the string + return asciiString; + } else { + warning("String contains special (UTF-8) characters: '%s'", Utf8Str.c_str()); + } + + error("StringUtil::Utf8ToWide - WideString not supported yet for UTF-8 characters"); + /* size_t WideSize = Utf8Str.size(); if (sizeof(wchar_t) == 2) { @@ -99,7 +131,18 @@ WideString StringUtil::utf8ToWide(const Utf8String &Utf8Str) { ////////////////////////////////////////////////////////////////////////// Utf8String StringUtil::wideToUtf8(const WideString &WideStr) { - error("StringUtil::wideToUtf8 - Widestring not supported yet"); + // WORKAROUND: Since UTF-8 strings aren't supported yet, we make this function + // work at least with ASCII strings. This should cover all English versions. + Common::String asciiString = WideStr; + if (isAscii(asciiString)) { + // No special (UTF-8) characters found, just return the string + return asciiString; + } else { + warning("String contains special (UTF-8) characters: '%s'", WideStr.c_str()); + } + + error("StringUtil::wideToUtf8 - WideString not supported yet for UTF-8 characters"); + /* size_t WideSize = WideStr.length(); if (sizeof(wchar_t) == 2) { diff --git a/engines/wintermute/utils/string_util.h b/engines/wintermute/utils/string_util.h index 3ae5e4749324..3ced6aa93379 100644 --- a/engines/wintermute/utils/string_util.h +++ b/engines/wintermute/utils/string_util.h @@ -37,6 +37,7 @@ class StringUtil { public: static bool compareNoCase(const AnsiString &str1, const AnsiString &str2); //static bool compareNoCase(const WideString &str1, const WideString &str2); + static bool isAscii(Common::String &str); static WideString utf8ToWide(const Utf8String &Utf8Str); static Utf8String wideToUtf8(const WideString &WideStr); static WideString ansiToWide(const AnsiString &str); From 4af998b96cc2b0d3513ded57985c4d434cd362a4 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 8 Nov 2013 12:17:48 +0200 Subject: [PATCH 070/105] WINTERMUTE: Move the isAscii() string changing code to another function --- engines/wintermute/utils/string_util.cpp | 22 ++++++++++++++++++---- engines/wintermute/utils/string_util.h | 3 ++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/engines/wintermute/utils/string_util.cpp b/engines/wintermute/utils/string_util.cpp index c359b1f96105..d5d6c7f70253 100644 --- a/engines/wintermute/utils/string_util.cpp +++ b/engines/wintermute/utils/string_util.cpp @@ -48,11 +48,14 @@ bool StringUtil::compareNoCase(const AnsiString &str1, const AnsiString &str2) { return (str1lc == str2lc); }*/ -bool StringUtil::isAscii(Common::String &str) { +Common::String StringUtil::substituteUtf8Characters(Common::String &str) { uint strSize = str.size(); Common::String punctuation("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); - for (uint32 i = 0; i < str.size(); i++) { + if (isAscii(str)) + return str; + + for (uint32 i = 0; i < strSize; i++) { if (!Common::isAlnum(str[i]) && str[i] != ' ' && !punctuation.contains(str[i])) { // Replace some UTF-8 characters with (almost) equivalent ANSII ones if ((byte)str[i] == 0xc2 && i + 1 < str.size() && (byte)str[i + 1] == 0xa9) { @@ -60,12 +63,21 @@ bool StringUtil::isAscii(Common::String &str) { str.deleteChar(i); str.setChar('c', i); strSize--; - } else { - return false; } } } + return str; +} + +bool StringUtil::isAscii(const Common::String &str) { + Common::String punctuation("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"); + + for (uint32 i = 0; i < str.size(); i++) { + if (!Common::isAlnum(str[i]) && str[i] != ' ' && !punctuation.contains(str[i])) + return false; + } + return true; } @@ -74,6 +86,7 @@ WideString StringUtil::utf8ToWide(const Utf8String &Utf8Str) { // WORKAROUND: Since wide strings aren't supported yet, we make this function // work at least with ASCII strings. This should cover all English versions. Common::String asciiString = Utf8Str; + asciiString = substituteUtf8Characters(asciiString); if (isAscii(asciiString)) { // No special (UTF-8) characters found, just return the string return asciiString; @@ -134,6 +147,7 @@ Utf8String StringUtil::wideToUtf8(const WideString &WideStr) { // WORKAROUND: Since UTF-8 strings aren't supported yet, we make this function // work at least with ASCII strings. This should cover all English versions. Common::String asciiString = WideStr; + asciiString = substituteUtf8Characters(asciiString); if (isAscii(asciiString)) { // No special (UTF-8) characters found, just return the string return asciiString; diff --git a/engines/wintermute/utils/string_util.h b/engines/wintermute/utils/string_util.h index 3ced6aa93379..05931beb7981 100644 --- a/engines/wintermute/utils/string_util.h +++ b/engines/wintermute/utils/string_util.h @@ -37,7 +37,8 @@ class StringUtil { public: static bool compareNoCase(const AnsiString &str1, const AnsiString &str2); //static bool compareNoCase(const WideString &str1, const WideString &str2); - static bool isAscii(Common::String &str); + static bool isAscii(const Common::String &str); + static Common::String substituteUtf8Characters(Common::String &str); static WideString utf8ToWide(const Utf8String &Utf8Str); static Utf8String wideToUtf8(const WideString &WideStr); static WideString ansiToWide(const AnsiString &str); From 28bc0d079ca39e16d1110f82a81e6d1d41abc45c Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 09:23:13 -0500 Subject: [PATCH 071/105] TSAGE: Further renamings for R2R scene 1550 --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 305 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes1.h | 22 +- 2 files changed, 160 insertions(+), 167 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 98abf56b9e85..f0d2b298b7b0 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -7198,13 +7198,12 @@ void Scene1530::dispatch() { *--------------------------------------------------------------------------*/ Scene1550::Junk::Junk() { - _fieldA4 = _junkNumber = 0; + _junkNumber = 0; } void Scene1550::Junk::synchronize(Serializer &s) { SceneActor::synchronize(s); - s.syncAsSint16LE(_fieldA4); s.syncAsSint16LE(_junkNumber); } @@ -7302,12 +7301,12 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { scene->_dontExit = true; if (_componentId == 6) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1574; else scene->_sceneMode = 1582; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[5], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[5], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7316,12 +7315,12 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { scene->_dontExit = true; if (_componentId == 3) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1571; else scene->_sceneMode = 1581; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[2], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[2], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7330,12 +7329,12 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { scene->_dontExit = true; if (_componentId == 1) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1569; else scene->_sceneMode = 1579; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[0], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[0], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7345,8 +7344,8 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { if (_componentId == 4) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1572; - scene->_landingStrut.postInit(); - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[3], &scene->_landingStrut, NULL); + scene->_wreckage2.postInit(); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[3], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7355,12 +7354,12 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { scene->_dontExit = true; if (_componentId == 2) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1570; else scene->_sceneMode = 1580; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[1], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[1], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7370,8 +7369,8 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { if (_componentId == 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 1573; - scene->_landingStrut.postInit(); - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[4], &scene->_landingStrut, NULL); + scene->_wreckage2.postInit(); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[4], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7380,12 +7379,12 @@ bool Scene1550::ShipComponent::startAction(CursorType action, Event &event) { scene->_dontExit = true; if (_componentId == 7) { R2_GLOBALS._player.disableControl(); - scene->_landingStrut.postInit(); + scene->_wreckage2.postInit(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) scene->_sceneMode = 1575; else scene->_sceneMode = 1583; - scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[6], &scene->_landingStrut, NULL); + scene->setAction(&scene->_sequenceManager1, scene, scene->_sceneMode, &R2_GLOBALS._player, &scene->_shipComponents[6], &scene->_wreckage2, NULL); return true; } return SceneActor::startAction(action, event); @@ -7721,7 +7720,7 @@ bool Scene1550::Dish::startAction(CursorType action, Event &event) { Scene1550::Scene1550() { _dontExit = false; - _field414 = 0; + _wallType = 0; _dishMode = 0; _sceneResourceId = 0; _walkRegionsId = 0; @@ -7731,7 +7730,7 @@ void Scene1550::synchronize(Serializer &s) { SceneExt::synchronize(s); s.syncAsSint16LE(_dontExit); - s.syncAsByte(_field414); + s.syncAsByte(_wallType); s.syncAsSint16LE(_dishMode); s.syncAsSint16LE(_sceneResourceId); s.syncAsSint16LE(_walkRegionsId); @@ -7784,7 +7783,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); R2_GLOBALS._player.disableControl(); - _field414 = 0; + _wallType = 0; _companion.changeZoom(-1); R2_GLOBALS._player.changeZoom(-1); @@ -7807,7 +7806,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { _dontExit = true; - _landingStrut.postInit(); + _wreckage2.postInit(); _shipComponents[7].setupShipComponent(8); _shipComponents[7].hide(); if (R2_GLOBALS._player._characterIndex == R2_QUINN) @@ -7815,7 +7814,7 @@ void Scene1550::postInit(SceneObjectList *OwnerList) { else _sceneMode = 1578; - setAction(&_sequenceManager1, this, _sceneMode, &R2_GLOBALS._player, &_landingStrut, &_shipComponents[7], NULL); + setAction(&_sequenceManager1, this, _sceneMode, &R2_GLOBALS._player, &_wreckage2, &_shipComponents[7], NULL); R2_GLOBALS._player._oldCharacterScene[R2_GLOBALS._player._characterIndex] = 1550; } else { R2_GLOBALS._player.enableControl(); @@ -8105,7 +8104,7 @@ void Scene1550::signal() { // No break on purpose case 1579: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_GUIDANCE_MODULE, 0); R2_GLOBALS._player.enableControl(); break; @@ -8113,7 +8112,7 @@ void Scene1550::signal() { // No break on purpose case 1580: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_RADAR_MECHANISM, 0); R2_GLOBALS._player.enableControl(); break; @@ -8121,19 +8120,19 @@ void Scene1550::signal() { // No break on purpose case 1581: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_GYROSCOPE, 0); R2_GLOBALS._player.enableControl(); break; case 1572: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_THRUSTER_VALVE, 0); R2_GLOBALS._player.enableControl(); break; case 1573: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_IGNITOR, 0); R2_GLOBALS._player.enableControl(); break; @@ -8141,7 +8140,7 @@ void Scene1550::signal() { // No break on purpose case 1582: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_FUEL_CELL, 0); R2_GLOBALS._player.enableControl(); break; @@ -8149,7 +8148,7 @@ void Scene1550::signal() { // No break on purpose case 1583: _dontExit = false; - _landingStrut.remove(); + _wreckage2.remove(); R2_INVENTORY.setObjectScene(R2_BATTERY, 0); R2_GLOBALS._player.enableControl(); break; @@ -8163,7 +8162,7 @@ void Scene1550::signal() { // No break on purpose case 1578: _sceneMode = 0; - _landingStrut.remove(); + _wreckage2.remove(); _dontExit = false; R2_GLOBALS._player.fixPriority(-1); R2_GLOBALS._player.enableControl(); @@ -8176,7 +8175,7 @@ void Scene1550::signal() { // No break on purpose case 1587: R2_INVENTORY.setObjectScene(R2_DIAGNOSTICS_DISPLAY, R2_GLOBALS._player._characterIndex); - _landingStrut.remove(); + _wreckage2.remove(); _dontExit = false; R2_GLOBALS._player.enableControl(); break; @@ -8378,11 +8377,11 @@ void Scene1550::saveCharacter(int characterIndex) { SceneExt::saveCharacter(characterIndex); } -void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { +void Scene1550::Wall::setupWall(int frameNumber, int strip) { Scene1550 *scene = (Scene1550 *)R2_GLOBALS._sceneManager._scene; postInit(); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1551, strip, frameNumber); else setup(1554, strip, frameNumber); @@ -8493,7 +8492,7 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { switch (frameNumber) { case 2: fixPriority(2); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1553, 2, 1); else setup(1556, 2, 1); @@ -8518,7 +8517,7 @@ void Scene1550::SceneActor1550::subA4D14(int frameNumber, int strip) { case 4: if (frameNumber == 2) { fixPriority(250); - if (scene->_field414 == 2) + if (scene->_wallType == 2) setup(1553, 1, 1); else setup(1556, 1, 1); @@ -8569,11 +8568,11 @@ void Scene1550::enterArea() { tmpRect = R2_GLOBALS._v5589E; - _actor14.remove(); + _wallCorner1.remove(); _westWall.remove(); _northWall.remove(); _southWall.remove(); - _actor16.remove(); + _wallCorner2.remove(); _eastWall.remove(); for (int i = 0; i < 8; ++i) @@ -8587,13 +8586,13 @@ void Scene1550::enterArea() { _airbag.remove(); _joystick.remove(); _gyroscope.remove(); - _actor3.remove(); + _wreckage4.remove(); _diagnosticsDisplay.remove(); if ((_sceneMode != 1577) && (_sceneMode != 1578)) - _landingStrut.remove(); + _wreckage2.remove(); - _actor2.remove(); + _wreckage3.remove(); _companion.remove(); _dish.remove(); _dishTowerShadow.remove(); @@ -8683,7 +8682,7 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 22) { case 0: varA = 1553; - _northWall.subA4D14(6, 0); + _northWall.setupWall(6, 0); break; case 1: // No break on purpose @@ -8696,7 +8695,7 @@ void Scene1550::enterArea() { break; case 5: varA = 1553; - _northWall.subA4D14(6, 0); + _northWall.setupWall(6, 0); break; default: break; @@ -8708,11 +8707,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 21) { case 0: varA = 1550; - _northWall.subA4D14(9, 0); + _northWall.setupWall(9, 0); break; case 1: varA = 1552; - _northWall.subA4D14(10, 0); + _northWall.setupWall(10, 0); break; case 2: // No break on purpose @@ -8725,11 +8724,11 @@ void Scene1550::enterArea() { break; case 6: varA = 1552; - _northWall.subA4D14(7, 0); + _northWall.setupWall(7, 0); break; case 7: varA = 1550; - _northWall.subA4D14(8, 0); + _northWall.setupWall(8, 0); break; default: break; @@ -8739,11 +8738,11 @@ void Scene1550::enterArea() { switch (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].x - 21) { case 0: varA = 1550; - _northWall.subA4D14(4, 0); + _northWall.setupWall(4, 0); break; case 1: varA = 1550; - _northWall.subA4D14(3, 0); + _northWall.setupWall(3, 0); break; case 2: // No break on purpose @@ -8756,11 +8755,11 @@ void Scene1550::enterArea() { break; case 6: varA = 1550; - _northWall.subA4D14(2, 0); + _northWall.setupWall(2, 0); break; case 7: varA = 1550; - _northWall.subA4D14(1, 0); + _northWall.setupWall(1, 0); break; default: break; @@ -8781,7 +8780,7 @@ void Scene1550::enterArea() { R2_GLOBALS._sceneManager._fadeMode = FADEMODE_IMMEDIATE; loadScene(1234); R2_GLOBALS._sceneManager._hasPalette = false; - _field414 = 0; + _wallType = 0; } } else { if (_screenNumber == 1234) { @@ -8794,13 +8793,13 @@ void Scene1550::enterArea() { if (R2_GLOBALS._sceneManager._sceneNumber == 1234) _walkRegionsId = 1576; - if (_field414 == 0) { - _field414 = 1; + if (_wallType == 0) { + _wallType = 1; } else { - if (_field414 == 2) { - _field414 = 3; + if (_wallType == 2) { + _wallType = 3; } else { - _field414 = 2; + _wallType = 2; } if (R2_GLOBALS._sceneManager._sceneNumber == 1550){ @@ -8848,120 +8847,120 @@ void Scene1550::enterArea() { R2_GLOBALS._walkRegions.load(1560); _walkRegionsId = 1560; } - _actor14.subA4D14(2, 1); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); + _wallCorner1.setupWall(2, 1); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); break; case 2: R2_GLOBALS._walkRegions.load(1561); _walkRegionsId = 1561; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(2, 2); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(2, 2); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); break; case 3: R2_GLOBALS._walkRegions.load(1562); _walkRegionsId = 1562; - _actor14.subA4D14(2, 1); - _northWall.subA4D14(1, 3); - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(2, 6); + _wallCorner1.setupWall(2, 1); + _northWall.setupWall(1, 3); + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(2, 6); break; case 4: R2_GLOBALS._walkRegions.load(1563); _walkRegionsId = 1563; - _northWall.subA4D14(2, 3); + _northWall.setupWall(2, 3); break; case 5: R2_GLOBALS._walkRegions.load(1564); _walkRegionsId = 1564; - _southWall.subA4D14(2, 4); + _southWall.setupWall(2, 4); break; case 6: R2_GLOBALS._walkRegions.load(1565); _walkRegionsId = 1565; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _northWall.subA4D14(3, 3); + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _northWall.setupWall(3, 3); break; case 7: R2_GLOBALS._walkRegions.load(1566); _walkRegionsId = 1566; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _northWall.subA4D14(2, 4); + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _northWall.setupWall(2, 4); break; case 8: R2_GLOBALS._walkRegions.load(1567); _walkRegionsId = 1567; - _westWall.subA4D14(5, 2); + _westWall.setupWall(5, 2); break; case 9: R2_GLOBALS._walkRegions.load(1568); _walkRegionsId = 1568; - _westWall.subA4D14(4, 2); + _westWall.setupWall(4, 2); break; case 10: R2_GLOBALS._walkRegions.load(1569); _walkRegionsId = 1569; - _actor14.subA4D14(3, 1); + _wallCorner1.setupWall(3, 1); break; case 11: R2_GLOBALS._walkRegions.load(1570); _walkRegionsId = 1570; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); break; case 12: R2_GLOBALS._walkRegions.load(1571); _walkRegionsId = 1571; - _actor16.subA4D14(1, 5); - _eastWall.subA4D14(1, 6); + _wallCorner2.setupWall(1, 5); + _eastWall.setupWall(1, 6); break; case 13: R2_GLOBALS._walkRegions.load(1572); _walkRegionsId = 1572; - _actor14.subA4D14(1, 1); - _westWall.subA4D14(1, 2); - _southWall.subA4D14(1, 4); + _wallCorner1.setupWall(1, 1); + _westWall.setupWall(1, 2); + _southWall.setupWall(1, 4); break; case 14: R2_GLOBALS._walkRegions.load(1573); _walkRegionsId = 1573; - _southWall.subA4D14(1, 4); - _actor16.subA4D14(1, 5); - _eastWall.subA4D14(1, 6); + _southWall.setupWall(1, 4); + _wallCorner2.setupWall(1, 5); + _eastWall.setupWall(1, 6); break; case 15: // South wall R2_GLOBALS._walkRegions.load(1574); _walkRegionsId = 1574; - _southWall.subA4D14(1, 4); + _southWall.setupWall(1, 4); break; case 16: R2_GLOBALS._walkRegions.load(1570); _walkRegionsId = 1570; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(2, 2); + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(2, 2); break; case 17: R2_GLOBALS._walkRegions.load(1570); _walkRegionsId = 1570; - _actor14.subA4D14(2, 1); - _westWall.subA4D14(3, 2); + _wallCorner1.setupWall(2, 1); + _westWall.setupWall(3, 2); break; case 18: R2_GLOBALS._walkRegions.load(1571); _walkRegionsId = 1571; - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(2, 6); + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(2, 6); break; case 19: R2_GLOBALS._walkRegions.load(1571); _walkRegionsId = 1571; - _actor16.subA4D14(2, 5); - _eastWall.subA4D14(3, 6); + _wallCorner2.setupWall(2, 5); + _eastWall.setupWall(3, 6); break; default: break; @@ -8977,7 +8976,7 @@ void Scene1550::enterArea() { _junk[di].postInit(); _junk[di]._effect = EFFECT_SHADED2; _junk[di]._shade = 0; - _junk[di]._fieldA4 = tmpIdx; + //_junk[di]._junkState = tmpIdx; _junk[di]._junkNumber = i; _junk[di].setDetails(1550, 62, -1, 63, 2, (SceneItem *) NULL); if (R2_GLOBALS._scene1550JunkLocations[i + 2] == 41) { @@ -9021,14 +9020,14 @@ void Scene1550::enterArea() { switch (areaType) { case 1: if (!R2_GLOBALS.getFlag(16)) { - _landingStrut.postInit(); + _wreckage2.postInit(); if (R2_GLOBALS._s1550PlayerArea[R2_GLOBALS._player._characterIndex].y == 3) - _landingStrut.setup(1555, 2, 1); + _wreckage2.setup(1555, 2, 1); else - _landingStrut.setup(1555, 1, 1); - _landingStrut.setPosition(Common::Point(150, 100)); - _landingStrut.fixPriority(92); - _landingStrut.setDetails(1550, 73, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.setup(1555, 1, 1); + _wreckage2.setPosition(Common::Point(150, 100)); + _wreckage2.fixPriority(92); + _wreckage2.setDetails(1550, 73, -1, -1, 2, (SceneItem *) NULL); } break; case 2: @@ -9075,11 +9074,11 @@ void Scene1550::enterArea() { _wreckage.fixPriority(133); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 1, 2); - _landingStrut.setPosition(Common::Point(259, 133)); - _landingStrut.fixPriority(105); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 1, 2); + _wreckage2.setPosition(Common::Point(259, 133)); + _wreckage2.fixPriority(105); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_GYROSCOPE) == 1550) { _gyroscope.postInit(); _gyroscope.setup(1550, 7, 2); @@ -9095,10 +9094,10 @@ void Scene1550::enterArea() { _wreckage.fixPriority(10); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 1, 3); - _landingStrut.setPosition(Common::Point(76, 64)); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 1, 3); + _wreckage2.setPosition(Common::Point(76, 64)); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); if (R2_INVENTORY.getObjectScene(R2_DIAGNOSTICS_DISPLAY) == 1550) { _diagnosticsDisplay.postInit(); _diagnosticsDisplay.setup(1504, 4, 1); @@ -9123,10 +9122,10 @@ void Scene1550::enterArea() { _wreckage.fixPriority(10); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 2, 3); - _landingStrut.setPosition(Common::Point(243, 64)); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 2, 3); + _wreckage2.setPosition(Common::Point(243, 64)); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; case 6: _wreckage.postInit(); @@ -9135,11 +9134,11 @@ void Scene1550::enterArea() { _wreckage.fixPriority(133); _wreckage.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 2, 2); - _landingStrut.setPosition(Common::Point(60, 133)); - _landingStrut.fixPriority(106); - _landingStrut.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); + _wreckage2.postInit(); + _wreckage2.setup(1550, 2, 2); + _wreckage2.setPosition(Common::Point(60, 133)); + _wreckage2.fixPriority(106); + _wreckage2.setDetails(1550, 9, -1, -1, 2, (SceneItem *) NULL); break; case 7: _wreckage.postInit(); @@ -9154,22 +9153,22 @@ void Scene1550::enterArea() { _wreckage.fixPriority(70); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 3, 3); - _landingStrut.setPosition(Common::Point(145, 88)); - _landingStrut.fixPriority(55); - _landingStrut.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor2.postInit(); - _actor2.setup(1550, 3, 4); - _actor2.setPosition(Common::Point(64, 137)); - _actor2.fixPriority(115); - _actor2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor3.postInit(); - _actor3.setup(1550, 5, 1); - _actor3.setPosition(Common::Point(60, 90)); - _actor3.fixPriority(45); + _wreckage2.postInit(); + _wreckage2.setup(1550, 3, 3); + _wreckage2.setPosition(Common::Point(145, 88)); + _wreckage2.fixPriority(55); + _wreckage2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage3.postInit(); + _wreckage3.setup(1550, 3, 4); + _wreckage3.setPosition(Common::Point(64, 137)); + _wreckage3.fixPriority(115); + _wreckage3.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage4.postInit(); + _wreckage4.setup(1550, 5, 1); + _wreckage4.setPosition(Common::Point(60, 90)); + _wreckage4.fixPriority(45); break; case 9: _wreckage.postInit(); @@ -9178,22 +9177,22 @@ void Scene1550::enterArea() { _wreckage.fixPriority(70); _wreckage.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - _landingStrut.postInit(); - _landingStrut.setup(1550, 4, 3); - _landingStrut.setPosition(Common::Point(174, 88)); - _landingStrut.fixPriority(55); - _landingStrut.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor2.postInit(); - _actor2.setup(1550, 4, 4); - _actor2.setPosition(Common::Point(255, 137)); - _actor2.fixPriority(115); - _actor2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); - - _actor3.postInit(); - _actor3.setup(1550, 6, 1); - _actor3.setPosition(Common::Point(259, 90)); - _actor3.fixPriority(45); + _wreckage2.postInit(); + _wreckage2.setup(1550, 4, 3); + _wreckage2.setPosition(Common::Point(174, 88)); + _wreckage2.fixPriority(55); + _wreckage2.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage3.postInit(); + _wreckage3.setup(1550, 4, 4); + _wreckage3.setPosition(Common::Point(255, 137)); + _wreckage3.fixPriority(115); + _wreckage3.setDetails(1550, 56, -1, -1, 2, (SceneItem *) NULL); + + _wreckage4.postInit(); + _wreckage4.setup(1550, 6, 1); + _wreckage4.setPosition(Common::Point(259, 90)); + _wreckage4.fixPriority(45); break; case 10: _wreckage.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 87972bff120b..0a379002f9b8 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -422,14 +422,13 @@ class Scene1530 : public SceneExt { }; class Scene1550 : public SceneExt { - class SceneActor1550 : public SceneActor { + class Wall : public SceneActor { public: - void subA4D14(int frameNumber, int strip); + void setupWall(int frameNumber, int strip); }; class Junk : public SceneActor { public: - int _fieldA4; int _junkNumber; Junk(); @@ -514,19 +513,14 @@ class Scene1550 : public SceneExt { virtual bool startAction(CursorType action, Event &event); }; - class Wall : public SceneActor1550 { - // Nothing specific found in the original - // TODO: check if it's an useless class - }; - public: SpeakerQuinn _quinnSpeaker; SpeakerSeeker _seekerSpeaker; WorkingShip _intactHull1, _intactHull2; SceneHotspot _background; - SceneActor _landingStrut; - SceneActor _actor2; - SceneActor _actor3; + SceneActor _wreckage2; // also used for Lance of Truth landing strut + SceneActor _wreckage3; + SceneActor _wreckage4; SceneActor _walkway; SceneActor _dishTowerShadow; Wreckage _wreckage; @@ -538,9 +532,9 @@ class Scene1550 : public SceneExt { DishTower _dishTower; Dish _dish; Junk _junk[8]; - Wall _actor14; + Wall _wallCorner1; Wall _northWall; // Is also reused for landing strip - Wall _actor16; + Wall _wallCorner2; Wall _westWall; // Is also reused for left hand space Wall _eastWall; Wall _southWall; @@ -550,7 +544,7 @@ class Scene1550 : public SceneExt { SequenceManager _sequenceManager2; bool _dontExit; - byte _field414; + int _wallType; int _dishMode; int _sceneResourceId; int _walkRegionsId; From 4a5068580ad24d4bb880de831672d72f7a6bf1b5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 8 Nov 2013 23:55:14 +0100 Subject: [PATCH 072/105] TSAGE: R2R - More renaming and refactoring in scene 3500. Still WIP. --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 262 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 16 +- 2 files changed, 133 insertions(+), 145 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index bcf231c8cb75..67b6c88fd25c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2972,8 +2972,8 @@ void Scene3500::Action1::handleHorzButton(int direction) { _field20 = 1; _field24 = true; - scene->_actor9.setStrip(2); - scene->_actor9.show(); + scene->_tunnelHorzCircle.setStrip(2); + scene->_tunnelHorzCircle.show(); if (_direction == 1) scene->_symbolRight.show(); @@ -3012,15 +3012,15 @@ void Scene3500::Action1::sub108732(int arg1) { setDelay(0); break; case 5: { - scene->_fieldAF8 = 160; + scene->_moverVertX = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_direction * 2 * 160); - Common::Point pt2(scene->_fieldB9E, 73); + scene->_moverHorzX = 160 - (_direction * 2 * 160); + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); _actionIndex = 11; } @@ -3031,7 +3031,7 @@ void Scene3500::Action1::sub108732(int arg1) { setDelay(1); // No break on purpose case 8: - scene->_actor9.setStrip(2); + scene->_tunnelHorzCircle.setStrip(2); _actionIndex = 1; break; default: @@ -3139,19 +3139,19 @@ void Scene3500::Action1::signal() { } // No break on purpose case 2: { - scene->_tunnelCircle.setPosition(Common::Point(160, 73)); - scene->_tunnelCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; - scene->_fieldAF8 = 160 - ((_direction * 2) * 160); - Common::Point pt(scene->_fieldAF8, 73); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); + scene->_tunnelVertCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; + scene->_moverVertX = 160 - ((_direction * 2) * 160); + Common::Point pt(scene->_moverVertX, 73); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, this); + scene->_tunnelVertCircle.addMover(mover, &pt, this); - scene->_actor9.setPosition(Common::Point(160 + ((_direction * 2) * 160), 73)); - scene->_actor9._moveDiff.x = 160 - scene->_mazeChangeAmount; - scene->_fieldB9E = 160; - Common::Point pt2(scene->_fieldB9E, 73); + scene->_tunnelHorzCircle.setPosition(Common::Point(160 + ((_direction * 2) * 160), 73)); + scene->_tunnelHorzCircle._moveDiff.x = 160 - scene->_mazeChangeAmount; + scene->_moverHorzX = 160; + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); } break; case 5: @@ -3161,17 +3161,17 @@ void Scene3500::Action1::signal() { setDelay(1); break; case 6: - scene->_tunnelCircle.setPosition(Common::Point(160, 73)); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); if (_field20 == 0) - scene->_tunnelCircle.setStrip(1); + scene->_tunnelVertCircle.setStrip(1); else - scene->_tunnelCircle.setStrip(2); - scene->_tunnelCircle.fixPriority(1); + scene->_tunnelVertCircle.setStrip(2); + scene->_tunnelVertCircle.fixPriority(1); - scene->_actor9.setPosition(Common::Point(-160, 73)); - scene->_actor9.setStrip(9); - scene->_actor9.fixPriority(11); - scene->_actor9.hide(); + scene->_tunnelHorzCircle.setPosition(Common::Point(-160, 73)); + scene->_tunnelHorzCircle.setStrip(9); + scene->_tunnelHorzCircle.fixPriority(11); + scene->_tunnelHorzCircle.hide(); setDelay(1); break; case 7: @@ -3226,36 +3226,36 @@ void Scene3500::Action1::signal() { break; } case 10: { - scene->_fieldAF8 = 160; + scene->_moverVertX = 160; Common::Point pt(160, 73); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_fieldB9E = 160 - (_direction * 2 * 160); - Common::Point pt2(scene->_fieldB9E, 73); + scene->_moverHorzX = 160 - (_direction * 2 * 160); + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); _actionIndex = 6; } break; case 11: { - scene->_tunnelCircle.setStrip(2); - scene->_tunnelCircle.setPosition(Common::Point(160, 73)); - scene->_fieldAF8 = 160 - (_direction * 2 * 160); - Common::Point pt(scene->_fieldAF8, 73); + scene->_tunnelVertCircle.setStrip(2); + scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); + scene->_moverVertX = 160 - (_direction * 2 * 160); + Common::Point pt(scene->_moverVertX, 73); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, NULL); - scene->_tunnelCircle.fixPriority(11); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.fixPriority(11); if (_field20 == 0) - scene->_actor9.setStrip(1); + scene->_tunnelHorzCircle.setStrip(1); else - scene->_actor9.setStrip(2); - scene->_actor9.setPosition(Common::Point(160 - (_direction * 2 * 160), 73)); - scene->_fieldB9E = 160; - Common::Point pt2(scene->_fieldB9E, 73); + scene->_tunnelHorzCircle.setStrip(2); + scene->_tunnelHorzCircle.setPosition(Common::Point(160 - (_direction * 2 * 160), 73)); + scene->_moverHorzX = 160; + Common::Point pt2(scene->_moverHorzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, this); - scene->_actor9.fixPriority(1); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, this); + scene->_tunnelHorzCircle.fixPriority(1); _actionIndex = 5; } break; @@ -3302,55 +3302,55 @@ void Scene3500::Action2::handleVertButton(int direction) { void Scene3500::Action2::signal() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; - int si; - int di; + int vertX; + int horzX; switch (_actionIndex++) { case 0: { - if (scene->_tunnelCircle._mover) { - si = scene->_fieldAF8; - di = scene->_fieldB9E; + if (scene->_tunnelVertCircle._mover) { + vertX = scene->_moverVertX; + horzX = scene->_moverHorzX; } else { - scene->_fieldAF8 = scene->_tunnelCircle._position.x; - si = scene->_fieldAF8; - scene->_fieldB9E = scene->_actor9._position.y; - di = scene->_fieldB9E; + scene->_moverVertX = scene->_tunnelVertCircle._position.x; + vertX = scene->_moverVertX; + scene->_moverHorzX = scene->_tunnelHorzCircle._position.y; + horzX = scene->_moverHorzX; } - scene->_tunnelCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt(si, 73 - (_direction * 12)); + scene->_tunnelVertCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt(vertX, 73 - (_direction * 12)); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt2(di, 73 - (_direction * 12)); + scene->_tunnelHorzCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt2(horzX, 73 - (_direction * 12)); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); scene->_mazeChangeAmount = (scene->_mazeChangeAmount / 2) + (scene->_mazeChangeAmount % 2); setDelay(17 - scene->_mazeChangeAmount); } break; case 1: { R2_GLOBALS._sound2.play(339); - if (scene->_tunnelCircle._mover) { - si = scene->_fieldAF8; - di = scene->_fieldB9E; + if (scene->_tunnelVertCircle._mover) { + vertX = scene->_moverVertX; + horzX = scene->_moverHorzX; } else { - si = scene->_tunnelCircle._position.x; - di = scene->_actor9._position.x; + vertX = scene->_tunnelVertCircle._position.x; + horzX = scene->_tunnelHorzCircle._position.x; } scene->_throttle.sub1094ED(); - scene->_tunnelCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt(si, 73); + scene->_tunnelVertCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt(vertX, 73); NpcMover *mover = new NpcMover(); - scene->_tunnelCircle.addMover(mover, &pt, NULL); + scene->_tunnelVertCircle.addMover(mover, &pt, NULL); - scene->_actor9._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); - Common::Point pt2(di, 73); + scene->_tunnelHorzCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); + Common::Point pt2(horzX, 73); NpcMover *mover2 = new NpcMover(); - scene->_actor9.addMover(mover2, &pt2, NULL); + scene->_tunnelHorzCircle.addMover(mover2, &pt2, NULL); scene->_horizontalSpeedDisplay.setFrame2(2); } @@ -3416,7 +3416,7 @@ void Scene3500::Throttle::init(int xp, int yp, int arg3, int arg4, int arg5) { postInit(); setup(1050, 3, 1); fixPriority(255); - sub109663(arg5); + setSpeed(arg5); } void Scene3500::Throttle::sub1094ED() { @@ -3425,7 +3425,7 @@ void Scene3500::Throttle::sub1094ED() { scene->_speed = _position.x - _pos.x; } -void Scene3500::Throttle::sub109663(int arg1){ +void Scene3500::Throttle::setSpeed(int arg1){ changePosition(Common::Point(_pos.x + arg1, _pos.y - (_fieldAC * arg1))); } @@ -3510,13 +3510,12 @@ bool Scene3500::MazeUI3500::setMazePosition2(Common::Point &p) { /*--------------------------------------------------------------------------*/ Scene3500::Scene3500() { - _fieldAF8 = 0; - _fieldB9E = 0; + _moverVertX = 0; + _moverHorzX = 0; _rotation = NULL; _mazeChangeAmount = 0; _speed = 0; _field1272 = false; - _field1274 = 0; _mazeDirection = MAZEDIR_NONE; _nextMove = 0; _mazePosition.x = 0; @@ -3532,12 +3531,11 @@ void Scene3500::synchronize(Serializer &s) { SceneExt::synchronize(s); SYNC_POINTER(_rotation); - s.syncAsSint16LE(_fieldAF8); - s.syncAsSint16LE(_fieldB9E); + s.syncAsSint16LE(_moverVertX); + s.syncAsSint16LE(_moverHorzX); s.syncAsSint16LE(_mazeChangeAmount); s.syncAsSint16LE(_speed); s.syncAsSint16LE(_field1272); - s.syncAsSint16LE(_field1274); s.syncAsSint16LE(_mazeDirection); s.syncAsSint16LE(_nextMove); s.syncAsSint16LE(_mazePosition.x); @@ -3606,16 +3604,16 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { _turnRight._movementId = 96; _turnRight.setDetails(96, 3500, 12, 10, -1); - _tunnelCircle.postInit(); - _tunnelCircle.setup(1050, 1, 1); - _tunnelCircle.setPosition(Common::Point(160, 73)); - _tunnelCircle.fixPriority(1); + _tunnelVertCircle.postInit(); + _tunnelVertCircle.setup(1050, 1, 1); + _tunnelVertCircle.setPosition(Common::Point(160, 73)); + _tunnelVertCircle.fixPriority(1); - _actor9.postInit(); - _actor9.setup(1050, 2, 1); - _actor9.setPosition(Common::Point(-160, 73)); - _actor9.fixPriority(11); - _actor9.hide(); + _tunnelHorzCircle.postInit(); + _tunnelHorzCircle.setup(1050, 2, 1); + _tunnelHorzCircle.setPosition(Common::Point(-160, 73)); + _tunnelHorzCircle.fixPriority(11); + _tunnelHorzCircle.hide(); _outsideView.setDetails(27, 3500, 21, -1, -1); _mapScreen.setDetails(Rect(160, 89, 299, 182), 3500, 3, -1, -1, 1, NULL); @@ -3676,7 +3674,7 @@ void Scene3500::doMovement(int id) { _throttle.sub1094ED(); if (_speed != 0) { _speed--; - _throttle.sub109663(_speed); + _throttle.setSpeed(_speed); } if (_action1._field24) _speed = 0; @@ -3685,7 +3683,7 @@ void Scene3500::doMovement(int id) { _throttle.sub1094ED(); if (_speed < 16) { ++_speed; - _throttle.sub109663(_speed); + _throttle.setSpeed(_speed); } if (_action1._field24) _speed = 0; @@ -3698,7 +3696,7 @@ void Scene3500::doMovement(int id) { if (_action && ((_action2.getActionIndex() != 0) || (_action2._direction != 2))) { _action2.signal(); } else { - _actor9.setAction(&_action2, &_actor9, NULL); + _tunnelHorzCircle.setAction(&_action2, &_tunnelHorzCircle, NULL); } } break; @@ -3729,7 +3727,7 @@ void Scene3500::doMovement(int id) { if ((_action) && ((_action2.getActionIndex() != 0) || (_action2._direction != -1))) { _action2.signal(); } else { - _actor9.setAction(&_action2, &_actor9, NULL); + _tunnelHorzCircle.setAction(&_action2, &_tunnelHorzCircle, NULL); } } break; @@ -3755,7 +3753,7 @@ void Scene3500::doMovement(int id) { break; default: _speed = id; - _throttle.sub109663(id); + _throttle.setSpeed(id); if (_action1._field24) { _speed = 0; } @@ -3883,7 +3881,7 @@ void Scene3500::dispatch() { int var_6 = 0; int var_8 = 0; int var_a = 0; - int dx = 0; + int tmpCellId = 0; int cellId = 0; if ((_mazeChangeAmount == 0) && (_field1282 == 0)) { @@ -3899,7 +3897,7 @@ void Scene3500::dispatch() { var_6 = _mazeUI.cellFromY(_mazePosition.y + 46) - 46; var_8 = abs(var_4 - newMazeX); var_a = abs(var_6 - newMazeY); - dx = 0; + tmpCellId = 0; switch (_mazeDirection) { case MAZEDIR_NORTH: @@ -3912,12 +3910,12 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y - _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != dx)) { + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != tmpCellId)) { newMazeY = var_6; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3925,8 +3923,8 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); - } else if ((cellId == 11) && (cellId != dx)) { + _tunnelVertCircle.hide(); + } else if ((cellId == 11) && (cellId != tmpCellId)) { newMazeY = var_6 + 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3934,7 +3932,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; var_a = abs(var_6 - newMazeY); @@ -3950,7 +3948,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3958,7 +3956,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { newMazeX = var_4; R2_GLOBALS._sound2.play(339); @@ -3978,12 +3976,12 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x + _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != dx)) { + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != tmpCellId)) { newMazeX = var_4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3991,8 +3989,8 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); - } else if ((cellId == 6) && (cellId != dx)) { + _tunnelVertCircle.hide(); + } else if ((cellId == 6) && (cellId != tmpCellId)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4000,7 +3998,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; var_8 = abs(newMazeX - var_4); @@ -4015,7 +4013,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { newMazeX = var_4 - 5; R2_GLOBALS._sound2.play(339); @@ -4024,7 +4022,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; R2_GLOBALS._sound2.play(339); @@ -4044,21 +4042,21 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y + _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != dx)) { + if (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (cellId != tmpCellId)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); - } else if ((cellId == 16) && (cellId != dx)) { + _tunnelVertCircle.hide(); + } else if ((cellId == 16) && (cellId != tmpCellId)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4066,8 +4064,8 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); - } else if ((cellId == 31) && (cellId != dx)) { + _tunnelVertCircle.hide(); + } else if ((cellId == 31) && (cellId != tmpCellId)) { newMazeY = var_6 + 4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4075,7 +4073,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; var_a = abs(newMazeY - var_6); @@ -4091,7 +4089,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { newMazeY = var_6 - 3; R2_GLOBALS._sound2.play(339); @@ -4100,7 +4098,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { newMazeY = var_6 + 4; _rotation->_idxChange = 0; @@ -4108,7 +4106,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); if ((newMazeX == 660) && (_mazeChangeAmount + 306 <= newMazeY) && (newMazeY <= 307)) ++_field1284; else @@ -4132,12 +4130,12 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x - _mazeChangeAmount; - dx = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != dx)) { + tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); + if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != tmpCellId)) { newMazeX = var_4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4145,8 +4143,8 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); - } else if ((cellId == 1) && (cellId != dx)) { + _tunnelVertCircle.hide(); + } else if ((cellId == 1) && (cellId != tmpCellId)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4154,7 +4152,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else { var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; var_8 = abs(var_4 - newMazeX); @@ -4169,7 +4167,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { newMazeX = var_4 + 5; R2_GLOBALS._sound2.play(339); @@ -4178,7 +4176,7 @@ void Scene3500::dispatch() { _mazeChangeAmount = 0; _field1272 = false; if (!_action1._field24) - _tunnelCircle.hide(); + _tunnelVertCircle.hide(); } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { newMazeY = var_6; R2_GLOBALS._sound2.play(339); @@ -4239,10 +4237,9 @@ void Scene3500::dispatch() { _rotation->_idxChange = 2; else _rotation->_idxChange = 1; - } - if (_field1272) _field1272 = false; + } if (_mazeChangeAmount != 0) { R2_GLOBALS._player._uiEnabled = false; @@ -4252,9 +4249,6 @@ void Scene3500::dispatch() { R2_GLOBALS._player._uiEnabled = true; _aSound1.fadeOut2(NULL); } - - if (_rotation->_currIndex != _field1274) - _field1274 = _rotation->_currIndex; } /*-------------------------------------------------------------------------- diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index accb70995271..944f08a545ff 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -610,18 +610,13 @@ class Scene3500 : public SceneExt { void init(int xp, int yp, int arg3, int arg4, int arg5); void sub1094ED(); - void sub109663(int arg1); + void setSpeed(int arg1); void changePosition(const Common::Point &pt); virtual void process(Event &event); virtual bool startAction(CursorType action, Event &event); }; - class Actor8 : public SceneActor { - public: - // TODO: double check if nothing specific is present, then remove this class - }; - class MazeUI3500 : public MazeUI { public: int cellFromX(int arg1); @@ -647,19 +642,18 @@ class Scene3500 : public SceneExt { SceneActor _symbolLeft; SceneActor _symbolRight; Throttle _throttle; - Actor8 _tunnelCircle; - Actor8 _actor9; + SceneActor _tunnelVertCircle; + SceneActor _tunnelHorzCircle; ASoundExt _aSound1; MazeUI3500 _mazeUI; SequenceManager _sequenceManager; - int _fieldAF8; - int _fieldB9E; + int _moverVertX; + int _moverHorzX; PaletteRotation *_rotation; int _mazeChangeAmount; int _speed; bool _field1272; - int _field1274; int _mazeDirection; int _nextMove; Common::Point _mazePosition; From 5c284a4edeb3f66cce6ac65ec1542e535bbd7476 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 01:45:31 +0200 Subject: [PATCH 073/105] FULLPIPE: More work on MovGraph2::buildMovInfo1MessageQueue() --- engines/fullpipe/motion.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index 49987f04656e..2c61330ea1bb 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -697,13 +697,13 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) { || v19 == -1 || v9[i + 1].y == -1) { - v28 = new ExCommand(_items[1][movInfo->field_0].objectId, 1, v15->objectId, 0, 0, 0, 1, 0, 0, 0); + ExCommand *ex = new ExCommand(_items[1][movInfo->field_0].objectId, 1, v15->objectId, 0, 0, 0, 1, 0, 0, 0); - v28->_excFlags |= 2u; - v28->_keyCode = _items[1][movInfo->field_0].obj->GameObject.okeyCode; - v28->_field_24 = 1; - v28->_field_14 = -1; - mq->_exCommands.push_back(v28); + ex->_excFlags |= 2u; + ex->_keyCode = _items[1][movInfo->field_0].obj->GameObject.okeyCode; + ex->_field_24 = 1; + ex->_field_14 = -1; + mq->_exCommands.push_back(ex); curX += v15->subItems[0].staticsId2; curY += v15->subItems[0].staticsId1; From 64bfeeef38c054ac9a40e45beca4f6151e8bfed4 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 01:25:50 +0100 Subject: [PATCH 074/105] TSAGE: More work on scene 3500. This breaks savegame compatibility in this scene. --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 202 +++++++++--------- engines/tsage/ringworld2/ringworld2_scenes3.h | 8 +- 2 files changed, 102 insertions(+), 108 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 67b6c88fd25c..1c6160afe29a 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2950,7 +2950,7 @@ void Scene3400::signal() { Scene3500::Action1::Action1() { _direction = 0; - _field20 = 0; + _field20 = false; _field22 = 0; _field24 = false; } @@ -2969,7 +2969,7 @@ void Scene3500::Action1::handleHorzButton(int direction) { // Direction: -1 == Left, 1 == Right _direction = direction; - _field20 = 1; + _field20 = true; _field24 = true; scene->_tunnelHorzCircle.setStrip(2); @@ -2988,7 +2988,7 @@ void Scene3500::Action1::handleHorzButton(int direction) { setActionIndex(0); } -void Scene3500::Action1::sub108732(int arg1) { +void Scene3500::Action1::sub108732(bool arg1) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; _field20 = arg1; @@ -3065,7 +3065,7 @@ void Scene3500::Action1::signal() { setDelay(1); break; case 4: { - int si = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_mazePosition.x + 70, scene->_mazePosition.y + 46)); + int cellId = scene->_mazeUI.getCellFromMapXY(Common::Point(scene->_mazePosition.x + 70, scene->_mazePosition.y + 46)); int var2 = scene->_mazeUI.cellFromX(scene->_mazePosition.x + 70) - 70; int var4 = scene->_mazeUI.cellFromY(scene->_mazePosition.y + 46) - 46; int di = abs(var2 - scene->_mazePosition.x); @@ -3087,52 +3087,52 @@ void Scene3500::Action1::signal() { // movement is started again switch (var8) { case MAZEDIR_NORTH: - if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 23) && (si != 24) && (si != 4) && (si != 11)) + if ( ((cellId != 2) && (cellId != 3) && (cellId != 6) && (cellId != 1) && (cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 11)) || (var6 != 0)) { - if ((si != 25) && (si != 26) && (si != 5) && (si != 14) && (si != 15)) - _field20 = 0; + if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId != 15)) + _field20 = false; else if ((var6 != 0) || (di <= 3)) // useless, skipped: "|| (di == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_EAST: - if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 26) && (si != 24) && (si != 15) && (si != 6) && (si != 31)) + if ( ((cellId != 12) && (cellId != 13) && (cellId != 11) && (cellId != 16) && (cellId != 26) && (cellId != 24) && (cellId != 15) && (cellId != 6) && (cellId != 31)) || (di != 0)) { - if ((si != 25) && (si != 23) && (si != 14) && (si != 5) && (si != 4)) - _field20 = 0; + if ((cellId != 25) && (cellId != 23) && (cellId != 14) && (cellId != 5) && (cellId != 4)) + _field20 = false; else if ((di != 0) || (var6 <= 3)) // useless, skipped: "|| (var6 == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_SOUTH: - if ( ((si != 2) && (si != 3) && (si != 6) && (si != 1) && (si != 25) && (si != 26) && (si != 5) && (si != 16) && (si != 31)) + if ( ((cellId != 2) && (cellId != 3) && (cellId != 6) && (cellId != 1) && (cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 16) && (cellId != 31)) || (var6 != 0)) { - if ((si != 23) && (si != 24) && (si != 4) && (si != 14) && (si != 15)) - _field20 = 0; + if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15)) + _field20 = false; else if ((var6 != 0) || (di <= 3)) // useless, skipped: "|| (di == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; break; case MAZEDIR_WEST: - if ( ((si != 12) && (si != 13) && (si != 11) && (si != 16) && (si != 25) && (si != 23) && (si != 14) && (si != 1) && (si != 31)) + if ( ((cellId != 12) && (cellId != 13) && (cellId != 11) && (cellId != 16) && (cellId != 25) && (cellId != 23) && (cellId != 14) && (cellId != 1) && (cellId != 31)) || (var6 != 0)) { - if ((si != 26) && (si != 24) && (si != 15) && (si != 5) && (si != 4)) - _field20 = 0; + if ((cellId != 26) && (cellId != 24) && (cellId != 15) && (cellId != 5) && (cellId != 4)) + _field20 = false; else if ((var6 <= 0) || (di != 0)) // useless, skipped: "|| (var6 == 0)" - _field20 = 0; + _field20 = false; else - _field20 = 1; + _field20 = true; } else - _field20 = 1; + _field20 = true; default: break; } @@ -3162,7 +3162,7 @@ void Scene3500::Action1::signal() { break; case 6: scene->_tunnelVertCircle.setPosition(Common::Point(160, 73)); - if (_field20 == 0) + if (!_field20) scene->_tunnelVertCircle.setStrip(1); else scene->_tunnelVertCircle.setStrip(2); @@ -3218,7 +3218,7 @@ void Scene3500::Action1::signal() { scene->_symbolLeft.hide(); scene->_symbolRight.hide(); _field24 = false; - if (_field20 == 0) { + if (!_field20) { scene->_throttle.sub1094ED(); if (scene->_mazeChangeAmount == scene->_speed) scene->_aSound1.play(276); @@ -3246,7 +3246,7 @@ void Scene3500::Action1::signal() { NpcMover *mover = new NpcMover(); scene->_tunnelVertCircle.addMover(mover, &pt, NULL); scene->_tunnelVertCircle.fixPriority(11); - if (_field20 == 0) + if (!_field20) scene->_tunnelHorzCircle.setStrip(1); else scene->_tunnelHorzCircle.setStrip(2); @@ -3520,8 +3520,6 @@ Scene3500::Scene3500() { _nextMove = 0; _mazePosition.x = 0; _mazePosition.y = 0; - _field127E = 0; - _field1280 = 0; _field1282 = 0; _field1284 = 0; _directionChangesEnabled = false; @@ -3540,8 +3538,6 @@ void Scene3500::synchronize(Serializer &s) { s.syncAsSint16LE(_nextMove); s.syncAsSint16LE(_mazePosition.x); s.syncAsSint16LE(_mazePosition.y); - s.syncAsSint16LE(_field127E); - s.syncAsSint16LE(_field1280); s.syncAsSint16LE(_field1282); s.syncAsSint16LE(_field1284); s.syncAsSint16LE(_directionChangesEnabled); @@ -3561,7 +3557,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._characterScene[R2_SEEKER] = 3500; R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3500; _field1284 = 0; - _field1282 = 0; // CHECKME: Useless variable + _field1282 = 0; _nextMove = 0; _field1272 = true; _speed = 4; @@ -3717,7 +3713,7 @@ void Scene3500::doMovement(int id) { if (_nextMove != 0) _nextMove = 0; - _action1.sub108732(0); + _action1.sub108732(false); } break; case 104: @@ -3748,7 +3744,7 @@ void Scene3500::doMovement(int id) { if (_nextMove != 0) _nextMove = 0; - _action1.sub108732(0); + _action1.sub108732(false); } break; default: @@ -3877,10 +3873,10 @@ void Scene3500::dispatch() { int newMazeX = 0; int newMazeY = 0; - int var_4 = 0; - int var_6 = 0; - int var_8 = 0; - int var_a = 0; + int mazePosX = 0; + int mazePosY = 0; + int deltaX = 0; + int deltaY = 0; int tmpCellId = 0; int cellId = 0; @@ -3893,17 +3889,17 @@ void Scene3500::dispatch() { newMazeX = _mazePosition.x; newMazeY = _mazePosition.y; - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_6 = _mazeUI.cellFromY(_mazePosition.y + 46) - 46; - var_8 = abs(var_4 - newMazeX); - var_a = abs(var_6 - newMazeY); + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosY = _mazeUI.cellFromY(_mazePosition.y + 46) - 46; + deltaX = abs(mazePosX - newMazeX); + deltaY = abs(mazePosY - newMazeY); tmpCellId = 0; switch (_mazeDirection) { case MAZEDIR_NORTH: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if (((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) || - ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && var_8 > 3)) { + ((cellId == 25 || cellId == 26 || cellId == 5 || cellId == 14 || cellId == 15) && deltaX > 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3912,11 +3908,11 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y - _mazeChangeAmount; tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (cellId != tmpCellId)) { - newMazeY = var_6; + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3925,7 +3921,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else if ((cellId == 11) && (cellId != tmpCellId)) { - newMazeY = var_6 + 3; + newMazeY = mazePosY + 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3934,13 +3930,13 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; - var_a = abs(var_6 - newMazeY); + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; + deltaY = abs(mazePosY - newMazeY); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (newMazeY <= var_6) && (_mazePosition.y>= var_6)) - || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount > 3) && (_action1._field24 != 0)) ) { - newMazeY = var_6; + if ( (((cellId == 23) || (cellId == 24) || (cellId == 4)) && (newMazeY <= mazePosY) && (_mazePosition.y>= mazePosY)) + || (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= deltaY) && (_mazeChangeAmount > 3) && (_action1._field24 != 0)) ) { + newMazeY = mazePosY; if ((cellId != 25) && (cellId != 26) && (cellId != 5) && (cellId != 14) && (cellId == 15)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -3949,7 +3945,7 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if ((cellId == 11) && (var_6 + 3 >= newMazeY) && (_mazePosition.y >= var_6 + 3)) { + } else if ((cellId == 11) && (mazePosY + 3 >= newMazeY) && (_mazePosition.y >= mazePosY + 3)) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3957,8 +3953,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { - newMazeX = var_4; + } else if (((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15)) && (deltaX != 0) && (deltaX <= 3)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -3969,7 +3965,7 @@ void Scene3500::dispatch() { case MAZEDIR_EAST: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31)) - || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { + || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (deltaY > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3978,11 +3974,11 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x + _mazeChangeAmount; tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (cellId != tmpCellId)) { - newMazeX = var_4; + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -3991,7 +3987,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else if ((cellId == 6) && (cellId != tmpCellId)) { - newMazeX = var_4 - 5; + newMazeX = mazePosX - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4000,12 +3996,12 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_8 = abs(newMazeX - var_4); + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + deltaX = abs(newMazeX - mazePosX); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= var_4) && (_mazePosition.x <= var_4)) - || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { - newMazeX = var_4; + if ( (((cellId == 26) || (cellId == 24) || (cellId == 15)) && (newMazeX >= mazePosX) && (_mazePosition.x <= mazePosX)) + || (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= deltaX) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ) { + newMazeX = mazePosX; if ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4014,8 +4010,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if ((cellId == 6) && (var_4 - 5 <= newMazeX) && (_mazePosition.x <= var_4 - 5)) { - newMazeX = var_4 - 5; + } else if ((cellId == 6) && (mazePosX - 5 <= newMazeX) && (_mazePosition.x <= mazePosX - 5)) { + newMazeX = mazePosX - 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4023,8 +4019,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { - newMazeY = var_6; + } else if (((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4)) && (deltaY != 0) && (deltaY <= 3)) { + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4035,7 +4031,7 @@ void Scene3500::dispatch() { case MAZEDIR_SOUTH: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 2) || (cellId == 3) || (cellId == 6) || (cellId == 1)) - || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 > 3)) ) { + || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (deltaX > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4044,7 +4040,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; newMazeY = _mazePosition.y + _mazeChangeAmount; tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); @@ -4057,7 +4053,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else if ((cellId == 16) && (cellId != tmpCellId)) { - newMazeY = var_6 - 3; + newMazeY = mazePosY - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4066,7 +4062,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else if ((cellId == 31) && (cellId != tmpCellId)) { - newMazeY = var_6 + 4; + newMazeY = mazePosY + 4; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4075,12 +4071,12 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_6 = _mazeUI.cellFromY(newMazeY + 46) - 46; - var_a = abs(newMazeY - var_6); + mazePosY = _mazeUI.cellFromY(newMazeY + 46) - 46; + deltaY = abs(newMazeY - mazePosY); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= var_6) && (_mazePosition.y <= var_6)) - || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= var_a) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){ - newMazeY = var_6; + if ( (((cellId == 25) || (cellId == 26) || (cellId == 5)) && (newMazeY >= mazePosY) && (_mazePosition.y <= mazePosY)) + || (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (_mazeChangeAmount >= deltaY) && (_mazeChangeAmount <= 3) && (_action1._field24 != 0)) ){ + newMazeY = mazePosY; if ((cellId != 23) && (cellId != 24) && (cellId != 4) && (cellId != 14) && (cellId != 15)) R2_GLOBALS._sound2.play(339); @@ -4090,8 +4086,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if ((cellId == 16) && (var_6 - 3 <= newMazeY) && (_mazePosition.y <= var_6 - 3)) { - newMazeY = var_6 - 3; + } else if ((cellId == 16) && (mazePosY - 3 <= newMazeY) && (_mazePosition.y <= mazePosY - 3)) { + newMazeY = mazePosY - 3; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4099,8 +4095,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if ((cellId == 31) && (var_6 + 4 <= newMazeY) && (_mazePosition.y <= var_6 + 4)) { - newMazeY = var_6 + 4; + } else if ((cellId == 31) && (mazePosY + 4 <= newMazeY) && (_mazePosition.y <= mazePosY + 4)) { + newMazeY = mazePosY + 4; _rotation->_idxChange = 0; _speed = 0; _mazeChangeAmount = 0; @@ -4111,8 +4107,8 @@ void Scene3500::dispatch() { ++_field1284; else R2_GLOBALS._sound2.play(339); - } else if (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (var_8 != 0) && (var_8 <= 3)) { - newMazeX = var_4; + } else if (((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15)) && (deltaX != 0) && (deltaX <= 3)) { + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4123,7 +4119,7 @@ void Scene3500::dispatch() { case MAZEDIR_WEST: cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if ( ((cellId == 12) || (cellId == 13) || (cellId == 11) || (cellId == 16) || (cellId == 31)) - || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a > 3)) ) { + || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (deltaY > 3)) ) { R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4132,11 +4128,11 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; newMazeX = _mazePosition.x - _mazeChangeAmount; tmpCellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); if (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (cellId != tmpCellId)) { - newMazeX = var_4; + newMazeX = mazePosX; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4145,7 +4141,7 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else if ((cellId == 1) && (cellId != tmpCellId)) { - newMazeX = var_4 + 5; + newMazeX = mazePosX + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4154,12 +4150,12 @@ void Scene3500::dispatch() { if (!_action1._field24) _tunnelVertCircle.hide(); } else { - var_4 = _mazeUI.cellFromX(newMazeX + 70) - 70; - var_8 = abs(var_4 - newMazeX); + mazePosX = _mazeUI.cellFromX(newMazeX + 70) - 70; + deltaX = abs(mazePosX - newMazeX); cellId = _mazeUI.getCellFromMapXY(Common::Point(newMazeX + 70, newMazeY + 46)); - if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= var_4) && (_mazePosition.x >= var_4)) - || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= var_8) && (_mazeChangeAmount <= 3) && (_action1._field24)) ) { - newMazeX = var_4; + if ( (((cellId == 25) || (cellId == 23) || (cellId == 14)) && (newMazeX <= mazePosX) && (_mazePosition.x >= mazePosX)) + || (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (_mazeChangeAmount >= deltaX) && (_mazeChangeAmount <= 3) && (_action1._field24)) ) { + newMazeX = mazePosX; if ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; @@ -4168,8 +4164,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if ((cellId == 1) && (newMazeX >= var_4 + 5) && (_mazePosition.x >= var_4 + 5)) { - newMazeX = var_4 + 5; + } else if ((cellId == 1) && (newMazeX >= mazePosX + 5) && (_mazePosition.x >= mazePosX + 5)) { + newMazeX = mazePosX + 5; R2_GLOBALS._sound2.play(339); _rotation->_idxChange = 0; _speed = 0; @@ -4177,8 +4173,8 @@ void Scene3500::dispatch() { _field1272 = false; if (!_action1._field24) _tunnelVertCircle.hide(); - } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (var_a != 0) && (var_a <= 3)) { - newMazeY = var_6; + } else if (((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4)) && (deltaY != 0) && (deltaY <= 3)) { + newMazeY = mazePosY; R2_GLOBALS._sound2.play(339); } else { // Nothing @@ -4212,10 +4208,10 @@ void Scene3500::dispatch() { if (_mazeChangeAmount >= _speed) { if (_mazeChangeAmount == 1) { if (_action1._field24) { - if ( ((_mazeDirection == 1) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) - || ((_mazeDirection == 3) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))) - || ((_mazeDirection == 5) && (var_8 == 0) && (var_a != 0) && (var_a <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15))) - || ((_mazeDirection == 7) && (var_a == 0) && (var_8 != 0) && (var_8 <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){ + if ( ((_mazeDirection == 1) && (deltaX == 0) && (deltaY != 0) && (deltaY <= 3) && ((cellId == 25) || (cellId == 26) || (cellId == 5) || (cellId == 14) || (cellId == 15))) + || ((_mazeDirection == 3) && (deltaY == 0) && (deltaX != 0) && (deltaX <= 3) && ((cellId == 25) || (cellId == 23) || (cellId == 14) || (cellId == 5) || (cellId == 4))) + || ((_mazeDirection == 5) && (deltaX == 0) && (deltaY != 0) && (deltaY <= 3) && ((cellId == 23) || (cellId == 24) || (cellId == 4) || (cellId == 14) || (cellId == 15))) + || ((_mazeDirection == 7) && (deltaY == 0) && (deltaX != 0) && (deltaX <= 3) && ((cellId == 26) || (cellId == 24) || (cellId == 15) || (cellId == 5) || (cellId == 4))) ){ _mazeChangeAmount = 1; } else _mazeChangeAmount--; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 944f08a545ff..0c5298b2482d 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -565,14 +565,14 @@ class Scene3500 : public SceneExt { class Action1: public Action { public: int _direction; - int _field20; + bool _field20; int _field22; bool _field24; Action1(); virtual void synchronize(Serializer &s); void handleHorzButton(int direction); - void sub108732(int arg1); + void sub108732(bool arg1); virtual void signal(); virtual void dispatch(); }; @@ -657,9 +657,7 @@ class Scene3500 : public SceneExt { int _mazeDirection; int _nextMove; Common::Point _mazePosition; - int _field127E; - int _field1280; - int _field1282; + int _field1282; // TODO: Set to true in Fixup() int _field1284; bool _directionChangesEnabled; From 9f12d1c1fdb3a4d40d0da993203aa59c9ac2460e Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 01:48:55 +0100 Subject: [PATCH 075/105] TSAGE: R2R: renaming in scene 3500 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 58 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes3.h | 12 ++-- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 1c6160afe29a..c80bd19618ff 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2988,7 +2988,7 @@ void Scene3500::Action1::handleHorzButton(int direction) { setActionIndex(0); } -void Scene3500::Action1::sub108732(bool arg1) { +void Scene3500::Action1::turnShuttle(bool arg1) { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; _field20 = arg1; @@ -3219,7 +3219,7 @@ void Scene3500::Action1::signal() { scene->_symbolRight.hide(); _field24 = false; if (!_field20) { - scene->_throttle.sub1094ED(); + scene->_throttle.updateSpeed(); if (scene->_mazeChangeAmount == scene->_speed) scene->_aSound1.play(276); } @@ -3340,7 +3340,7 @@ void Scene3500::Action2::signal() { horzX = scene->_tunnelHorzCircle._position.x; } - scene->_throttle.sub1094ED(); + scene->_throttle.updateSpeed(); scene->_tunnelVertCircle._moveDiff.y = 9 - (scene->_mazeChangeAmount / 2); Common::Point pt(vertX, 73); @@ -3389,10 +3389,10 @@ bool Scene3500::DirectionButton::startAction(CursorType action, Event &event) { /*--------------------------------------------------------------------------*/ Scene3500::Throttle::Throttle() { - _fieldA8 = 0; - _fieldAA = 0; - _fieldAC = 0; + _deltaX = 1; _deltaY = 0; + _slideDeltaY = 0; + _deltaMouseY = 0; } void Scene3500::Throttle::synchronize(Serializer &s) { @@ -3400,33 +3400,33 @@ void Scene3500::Throttle::synchronize(Serializer &s) { s.syncAsSint16LE(_pos.x); s.syncAsSint16LE(_pos.y); - s.syncAsSint16LE(_fieldA8); - s.syncAsSint16LE(_fieldAA); - s.syncAsSint16LE(_fieldAC); + s.syncAsSint16LE(_deltaX); s.syncAsSint16LE(_deltaY); + s.syncAsSint16LE(_slideDeltaY); + s.syncAsSint16LE(_deltaMouseY); } -void Scene3500::Throttle::init(int xp, int yp, int arg3, int arg4, int arg5) { - _deltaY = 0; +void Scene3500::Throttle::init(int xp, int yp, int dx, int dy, int speed) { + _deltaMouseY = 0; _pos = Common::Point(xp, yp); - _fieldA8 = arg3; - _fieldAA = arg4; - _fieldAC = _fieldAA / _fieldA8; + _deltaX = dx; + _deltaY = dy; + _slideDeltaY = _deltaY / _deltaX; postInit(); setup(1050, 3, 1); fixPriority(255); - setSpeed(arg5); + setSpeed(speed); } -void Scene3500::Throttle::sub1094ED() { +void Scene3500::Throttle::updateSpeed() { Scene3500 *scene = (Scene3500 *)R2_GLOBALS._sceneManager._scene; scene->_speed = _position.x - _pos.x; } void Scene3500::Throttle::setSpeed(int arg1){ - changePosition(Common::Point(_pos.x + arg1, _pos.y - (_fieldAC * arg1))); + changePosition(Common::Point(_pos.x + arg1, _pos.y - (_slideDeltaY * arg1))); } void Scene3500::Throttle::changePosition(const Common::Point &pt) { @@ -3440,29 +3440,29 @@ void Scene3500::Throttle::process(Event &event) { return; if ((event.eventType == EVENT_BUTTON_DOWN) && (R2_GLOBALS._events.getCursor() == CURSOR_USE) && (_bounds.contains(event.mousePos))) { - _deltaY = 1 + event.mousePos.y - _position.y; + _deltaMouseY = 1 + event.mousePos.y - _position.y; event.eventType = EVENT_NONE; } - if ((event.eventType == EVENT_BUTTON_UP) && (_deltaY != 0)) { - _deltaY = 0; + if ((event.eventType == EVENT_BUTTON_UP) && (_deltaMouseY != 0)) { + _deltaMouseY = 0; event.handled = true; if (!scene->_action1._field24) - sub1094ED(); + updateSpeed(); } - if (_deltaY == 0) + if (_deltaMouseY == 0) return; R2_GLOBALS._sound2.play(338); event.handled = true; - int cx = event.mousePos.y - _deltaY + 1; + int cx = event.mousePos.y - _deltaMouseY + 1; if (_pos.y >= cx) { - if (_pos.y - _fieldAA <= cx) + if (_pos.y - _deltaY <= cx) changePosition(Common::Point(((_pos.y - cx) / 2) + _pos.x + ((_pos.y - cx) % 2), cx)); else - changePosition(Common::Point(_pos.x + _fieldA8, _pos.y - _fieldAA)); + changePosition(Common::Point(_pos.x + _deltaX, _pos.y - _deltaY)); } else { changePosition(Common::Point(_pos.x, _pos.y)); } @@ -3667,7 +3667,7 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { void Scene3500::doMovement(int id) { switch (id) { case -1: - _throttle.sub1094ED(); + _throttle.updateSpeed(); if (_speed != 0) { _speed--; _throttle.setSpeed(_speed); @@ -3676,7 +3676,7 @@ void Scene3500::doMovement(int id) { _speed = 0; break; case 1: - _throttle.sub1094ED(); + _throttle.updateSpeed(); if (_speed < 16) { ++_speed; _throttle.setSpeed(_speed); @@ -3713,7 +3713,7 @@ void Scene3500::doMovement(int id) { if (_nextMove != 0) _nextMove = 0; - _action1.sub108732(false); + _action1.turnShuttle(false); } break; case 104: @@ -3744,7 +3744,7 @@ void Scene3500::doMovement(int id) { if (_nextMove != 0) _nextMove = 0; - _action1.sub108732(false); + _action1.turnShuttle(false); } break; default: diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 0c5298b2482d..327efa54fe3c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -572,7 +572,7 @@ class Scene3500 : public SceneExt { Action1(); virtual void synchronize(Serializer &s); void handleHorzButton(int direction); - void sub108732(bool arg1); + void turnShuttle(bool arg1); virtual void signal(); virtual void dispatch(); }; @@ -600,16 +600,16 @@ class Scene3500 : public SceneExt { class Throttle : public SceneActor { public: Common::Point _pos; - int _fieldA8; - int _fieldAA; - int _fieldAC; + int _deltaX; int _deltaY; + int _slideDeltaY; + int _deltaMouseY; Throttle(); virtual void synchronize(Serializer &s); - void init(int xp, int yp, int arg3, int arg4, int arg5); - void sub1094ED(); + void init(int xp, int yp, int dx, int dy, int speed); + void updateSpeed(); void setSpeed(int arg1); void changePosition(const Common::Point &pt); From 732890232e857753bff34c3216c2e84af2e101a1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 01:59:28 +0100 Subject: [PATCH 076/105] TSAGE: R2R - Start work on scene 3600 --- .../tsage/ringworld2/ringworld2_scenes3.cpp | 33 +++++++++---------- engines/tsage/ringworld2/ringworld2_scenes3.h | 3 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index c80bd19618ff..fdaf13b5ab20 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -4266,15 +4266,15 @@ void Scene3600::synchronize(Serializer &s) { } Scene3600::Action3600::Action3600() { - _field1E = 0; - _field20 = 0; + _field1E = false; + _fadePct = 0; } void Scene3600::Action3600::synchronize(Serializer &s) { Action::synchronize(s); s.syncAsSint16LE(_field1E); - s.syncAsSint16LE(_field20); + s.syncAsSint16LE(_fadePct); } void Scene3600::Action3600::signal() { @@ -4286,17 +4286,17 @@ void Scene3600::Action3600::signal() { setDelay(60); break; case 1: - if (_field1E == 0) { - _field1E = 1; + if (!_field1E) { + _field1E = true; scene->_steppingDisk.setAction(NULL); R2_GLOBALS._sound2.play(330, NULL, 0); R2_GLOBALS._sound2.fade(127, 5, 10, false, NULL); } setDelay(1); - R2_GLOBALS._scenePalette.fade((const byte *)&scene->_palette1._palette, true, _field20); - if (_field20 > 0) - _field20 -= 2; + R2_GLOBALS._scenePalette.fade((const byte *)&scene->_palette1._palette, true, _fadePct); + if (_fadePct > 0) + _fadePct -= 2; break; case 2: R2_GLOBALS._sound2.stop(); @@ -4341,7 +4341,7 @@ void Scene3600::Action2::signal() { bool Scene3600::LightShaft::startAction(CursorType action, Event &event) { Scene3600 *scene = (Scene3600 *)R2_GLOBALS._sceneManager._scene; - if ((action != CURSOR_USE) || (scene->_action1._field1E == 0)) + if ((action != CURSOR_USE) || !scene->_action1._field1E) return SceneItem::startAction(action, event); R2_GLOBALS._walkRegions.enableRegion(2); @@ -4564,8 +4564,8 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _consoleLights.setup(3601, 5, 1); _consoleLights.animate(ANIM_MODE_2, NULL); - _action1._field1E = 1; - _action1._field20 = 0; + _action1._field1E = true; + _action1._fadePct = 0; _action1.setActionIndex(1); _consoleLights.setAction(&_action1); @@ -4599,8 +4599,8 @@ void Scene3600::postInit(SceneObjectList *OwnerList) { _steppingDisk.fixPriority(149); _steppingDisk.changeZoom(-1); - _action1._field1E = 0; - _action1._field20 = 90; + _action1._field1E = false; + _action1._fadePct = 90; _sceneMode = 3600; setAction(&_sequenceManager1, this, 3600, &_seeker, &_quinn, &_miranda, @@ -4832,7 +4832,7 @@ void Scene3600::signal() { // No break on purpose case 3623: if ((_protector._position.x == 226) && (_protector._position.y == 152) - && (_action1._field1E != 0) && (_protector._visage == 3127) && (!R2_GLOBALS.getFlag(71))) { + && _action1._field1E && (_protector._visage == 3127) && (!R2_GLOBALS.getFlag(71))) { R2_GLOBALS._sound2.stop(); R2_GLOBALS._sound2.play(331); R2_GLOBALS.setFlag(71); @@ -4880,8 +4880,7 @@ void Scene3600::process(Event &event) { } void Scene3600::dispatch() { - if ((R2_GLOBALS._player.getRegionIndex() == 200) && (_action1._field1E != 0) - && !_lightEntered) { + if ((R2_GLOBALS._player.getRegionIndex() == 200) && _action1._field1E && !_lightEntered) { R2_GLOBALS._sound2.fadeOut2(NULL); if (_protector._mover) _protector.addMover(NULL); @@ -4922,7 +4921,7 @@ void Scene3600::dispatch() { _webbster.setAction(&_sequenceManager1, this, 3613, &_webbster, NULL); } - if ((_protector.getRegionIndex() == 200) && (_action1._field1E != 0) && !_ghoulTeleported) { + if ((_protector.getRegionIndex() == 200) && _action1._field1E && !_ghoulTeleported) { R2_GLOBALS._sound2.fadeOut2(NULL); _sceneMode = 3620; _ghoulTeleported = true; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index 327efa54fe3c..834a601e62d4 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -675,7 +675,8 @@ class Scene3500 : public SceneExt { class Scene3600 : public SceneExt { class Action3600: public ActionExt { public: - int _field1E, _field20; + bool _field1E; + int _fadePct; Action3600(); virtual void synchronize(Serializer &s); From 5526a11caf8c18644dc6444c7b9f1587f6464c3f Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 20:17:53 -0500 Subject: [PATCH 077/105] TSAGE: Rename remaining static arrays used in R2R scene 1550 --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 4 ++-- engines/tsage/staticres.cpp | 4 ++-- engines/tsage/staticres.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index f0d2b298b7b0..c851c5788907 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -9004,7 +9004,7 @@ void Scene1550::enterArea() { _junk[di].changeZoom(-1); _junk[di].setup(1552, ((R2_GLOBALS._scene1550JunkLocations[i + 2] - 1) / 5) + 1, ((R2_GLOBALS._scene1550JunkLocations[i + 2] - 1) % 5) + 1); } - _junk[di].setPosition(Common::Point(k5A72E[tmpIdx], k5A73F[tmpIdx])); + _junk[di].setPosition(Common::Point(scene1550JunkX[tmpIdx], scene1550JunkY[tmpIdx])); if (scene1550JunkRegions[tmpIdx] != 0) R2_GLOBALS._walkRegions.disableRegion(scene1550JunkRegions[tmpIdx]); di++; @@ -9224,7 +9224,7 @@ void Scene1550::enterArea() { assert((_walkRegionsId >= 1550) && (_walkRegionsId <= 2008)); R2_GLOBALS._walkRegions.disableRegion(k5A750[_walkRegionsId - 1550]); - _companion.setPosition(Common::Point(k5A72E[k5A76D[_walkRegionsId - 1550]], k5A73F[k5A76D[_walkRegionsId - 1550]] + 8)); + _companion.setPosition(Common::Point(scene1550JunkX[k5A76D[_walkRegionsId - 1550]], scene1550JunkY[k5A76D[_walkRegionsId - 1550]] + 8)); if (R2_GLOBALS._player._characterIndex == R2_QUINN) { if (R2_GLOBALS._player._characterScene[R2_SEEKER] == 1580) { _companion.setup(1516, 3, 17); diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp index 09624225a011..2749f2ac9012 100644 --- a/engines/tsage/staticres.cpp +++ b/engines/tsage/staticres.cpp @@ -398,8 +398,8 @@ const byte scene1550AreaMap[] = { 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14 }; -const byte k5A72E[] = {0, 98, 135, 183, 229, 81, 133, 185, 235, 75, 131, 187, 241, 70, 129, 190, 247}; -const byte k5A73F[] = {0, 42, 42, 42, 42, 67, 67, 67, 67, 92, 92, 92, 92, 116, 116, 116, 116}; +const byte scene1550JunkX[] = {0, 98, 135, 183, 229, 81, 133, 185, 235, 75, 131, 187, 241, 70, 129, 190, 247}; +const byte scene1550JunkY[] = {0, 42, 42, 42, 42, 67, 67, 67, 67, 92, 92, 92, 92, 116, 116, 116, 116}; const byte k5A750[] = { 9, 10, 7, 13, 7, 8, 9, 7, 9, 10, 2, 3, 3, 2, 2, 2, 4, 3, 3, 4, diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h index 73f8f8890408..587463a91895 100644 --- a/engines/tsage/staticres.h +++ b/engines/tsage/staticres.h @@ -202,8 +202,8 @@ extern char const *const WRONG_ANSWER_MSG; // Scene 1550 arrays of constants extern const byte scene1550JunkLocationsDefault[]; extern const byte scene1550AreaMap[]; -extern const byte k5A72E[]; -extern const byte k5A73F[]; +extern const byte scene1550JunkX[]; +extern const byte scene1550JunkY[]; extern const byte k5A750[]; extern const byte k5A76D[]; extern const byte scene1550JunkRegions[]; From 3ec2ad3e6391980bd0f85c7ff7ce0518168c271e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 20:33:26 -0500 Subject: [PATCH 078/105] TSAGE: Removed un-needed mouse boundary rects from Globals --- engines/tsage/globals.cpp | 5 ----- engines/tsage/globals.h | 2 -- .../tsage/ringworld2/ringworld2_scenes0.cpp | 2 -- .../tsage/ringworld2/ringworld2_scenes1.cpp | 19 ------------------- .../tsage/ringworld2/ringworld2_scenes3.cpp | 5 ----- 5 files changed, 33 deletions(-) diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index a8ab145dbb6e..caad2ba88f54 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -478,8 +478,6 @@ void Ringworld2Globals::reset() { Common::fill(&_paletteMap[0], &_paletteMap[4096], 0); _fadePaletteFlag = false; - _v5589E.set(0, 0, 0, 0); - _v558B6.set(0, 0, 0, 0); _animationCtr = 0; _electromagnetChangeAmount = 0; _electromagnetZoom = 0; @@ -586,9 +584,6 @@ void Ringworld2Globals::synchronize(Serializer &s) { TsAGE2Globals::synchronize(s); int i; - _v5589E.synchronize(s); - _v558B6.synchronize(s); - s.syncAsSint16LE(_animationCtr); s.syncAsSint16LE(_electromagnetChangeAmount); s.syncAsSint16LE(_electromagnetZoom); diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index b9c80760429a..c5dc308efd38 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -252,8 +252,6 @@ class Ringworld2Globals: public TsAGE2Globals { byte _paletteMap[4096]; int _insetUp; int _frameEdgeColor; - Rect _v5589E; - Rect _v558B6; int _animationCtr; int _electromagnetChangeAmount; int _electromagnetZoom; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index b050e8f00ff1..c68ab265e574 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -6293,8 +6293,6 @@ void Scene700::postInit(SceneObjectList *OwnerList) { loadScene(700); if (R2_GLOBALS._sceneManager._previousScene == 900) _sceneBounds = Rect(160, 0, 480, 200); - - R2_GLOBALS._v558B6.set(60, 0, 260, 200); SceneExt::postInit(); _rotation = R2_GLOBALS._scenePalette.addRotation(237, 246, -1); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index c851c5788907..7d36008a3c7c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -547,7 +547,6 @@ void Scene1020::postInit(SceneObjectList *OwnerList) { _sceneBounds = Rect(160, 0, SCREEN_WIDTH + 160, 200); R2_GLOBALS._interfaceY = SCREEN_HEIGHT; - R2_GLOBALS._v558B6.set(160, 0, 160, 161); R2_GLOBALS._player.postInit(); if (R2_GLOBALS._sceneManager._previousScene == 1010) { @@ -779,8 +778,6 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { if ((R2_GLOBALS._sceneManager._previousScene == 1000) && (!R2_GLOBALS.getFlag(44))) { R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.left = 0; - R2_GLOBALS._v5589E.right = 200; } if (R2_GLOBALS._player._characterScene[R2_QUINN] == 1100) @@ -788,8 +785,6 @@ void Scene1100::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == -1) { R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.left = 0; - R2_GLOBALS._v5589E.right = 200; } SceneExt::postInit(); @@ -6896,8 +6891,6 @@ void Scene1337::subD1A48(int arg1) { void Scene1500::postInit(SceneObjectList *OwnerList) { loadScene(1500); R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.top = 0; - R2_GLOBALS._v5589E.bottom = 200; setZoomPercents(170, 13, 240, 100); SceneExt::postInit(); scalePalette(65, 65, 65); @@ -6956,8 +6949,6 @@ void Scene1500::postInit(SceneObjectList *OwnerList) { } void Scene1500::remove() { - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; SceneExt::remove(); @@ -8562,12 +8553,9 @@ void Scene1550::Wall::setupWall(int frameNumber, int strip) { } void Scene1550::enterArea() { - Rect tmpRect; _walkRegionsId = 0; _dishMode = 0; - tmpRect = R2_GLOBALS._v5589E; - _wallCorner1.remove(); _westWall.remove(); _northWall.remove(); @@ -9574,8 +9562,6 @@ void Scene1575::postInit(SceneObjectList *OwnerList) { void Scene1575::remove() { SceneExt::remove(); - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; } @@ -10312,7 +10298,6 @@ bool Scene1700::RimTransport::startAction(CursorType action, Event &event) { Scene1700 *scene = (Scene1700 *)R2_GLOBALS._sceneManager._scene; R2_GLOBALS._player.disableControl(); - R2_GLOBALS._v558B6.set(80, 0, 240, 200); scene->_sceneMode = 4; Common::Point pt(271, 90); @@ -10593,7 +10578,6 @@ void Scene1700::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._player._oldCharacterScene[R2_QUINN] = 1700; R2_GLOBALS._player._oldCharacterScene[R2_SEEKER] = 1700; - R2_GLOBALS._v558B6.set(20, 0, 320, 200); enterArea(); _surface.setDetails(1, 1700, 3, -1, -1); @@ -10916,7 +10900,6 @@ void Scene1750::postInit(SceneObjectList *OwnerList) { loadScene(1750); R2_GLOBALS._sound1.play(115); R2_GLOBALS._uiElements._active = false; - R2_GLOBALS._v5589E.set(0, 0, 320, 200); SceneExt::postInit(); R2_GLOBALS._interfaceY = SCREEN_HEIGHT; @@ -11038,8 +11021,6 @@ void Scene1750::remove() { SceneExt::remove(); R2_GLOBALS._sound1.fadeOut2(NULL); - R2_GLOBALS._v5589E.top = 3; - R2_GLOBALS._v5589E.bottom = 168; R2_GLOBALS._uiElements._active = true; } diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index fdaf13b5ab20..682a6074d999 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -2715,7 +2715,6 @@ void Scene3400::postInit(SceneObjectList *OwnerList) { loadScene(3400); _soundFaded = false; - R2_GLOBALS._v558B6.set(60, 0, 260, 200); SceneExt::postInit(); R2_GLOBALS._sound1.play(317); @@ -3550,7 +3549,6 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._uiElements._active = false; R2_GLOBALS._interfaceY = SCREEN_HEIGHT; - R2_GLOBALS._v5589E.set(0, 0, 320, 200); R2_GLOBALS._sound1.play(305); R2_GLOBALS._player._characterIndex = R2_QUINN; R2_GLOBALS._player._characterScene[R2_QUINN] = 3500; @@ -4420,11 +4418,9 @@ bool Scene3600::Protector::startAction(CursorType action, Event &event) { void Scene3600::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._sceneManager._previousScene == 3600) { R2_GLOBALS._scrollFollower = &R2_GLOBALS._player; - R2_GLOBALS._v558B6.set(60, 0, 260, 200); } else { R2_GLOBALS._scrollFollower = &_steppingDisk; _sceneBounds = Rect(160, 0, 480, 200); - R2_GLOBALS._v558B6.set(25, 0, 260, 200); } loadScene(3600); @@ -4778,7 +4774,6 @@ void Scene3600::signal() { case 3603: R2_GLOBALS._walkRegions.disableRegion(2); R2_GLOBALS._walkRegions.disableRegion(7); - R2_GLOBALS._v558B6.set(60, 0, 260, 200); _tealSpeaker._displayMode = 1; _sceneMode = 3321; _stripManager.start(3321, this); From 2ae273ef439ad34bc761034c3e80ea41c9497a2a Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 20:54:36 -0500 Subject: [PATCH 079/105] TSAGE: Converted R2R scene 700 globals to constants --- engines/tsage/globals.cpp | 6 ------ engines/tsage/globals.h | 2 -- engines/tsage/ringworld2/ringworld2_scenes0.cpp | 11 +++++++---- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index caad2ba88f54..3151cddb9172 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -445,8 +445,6 @@ Ringworld2Globals::Ringworld2Globals() { _electromagnetZoom = 0; _v565E5 = 0; _v565E7 = 0; - _v565E9 = -5; - _v565EB = 26; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -483,8 +481,6 @@ void Ringworld2Globals::reset() { _electromagnetZoom = 0; _v565E5 = 0; _v565E7 = 0; - _v565E9 = -5; - _v565EB = 26; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -589,8 +585,6 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsSint16LE(_electromagnetZoom); s.syncAsSint16LE(_v565E5); s.syncAsSint16LE(_v565E7); - s.syncAsSint16LE(_v565E9); - s.syncAsSint16LE(_v565EB); s.syncAsSint16LE(_foodCount); s.syncAsSint32LE(_rimLocation); s.syncAsSint16LE(_rimTransportLocation); diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index c5dc308efd38..bea3d8614e13 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -257,8 +257,6 @@ class Ringworld2Globals: public TsAGE2Globals { int _electromagnetZoom; int _v565E5; int _v565E7; - int _v565E9; - int _v565EB; // CHECKME: IS it a constant? int _foodCount; int _rimLocation; int _rimTransportLocation; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index c68ab265e574..34949b0a83e3 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -6127,6 +6127,9 @@ void Scene600::dispatch() { * *--------------------------------------------------------------------------*/ +#define CABLE700_X 26 +#define CABLE700_Y -5 + Scene700::Scene700() { _rotation = NULL; } @@ -6350,7 +6353,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { break; case 700: _cable.setup(701, 3, 1); - _cable.setPosition(Common::Point(356 - (R2_GLOBALS._v565EB * 8), 148 - (((R2_GLOBALS._v565E9 + 10) / 5) * 4))); + _cable.setPosition(Common::Point(356 - (CABLE700_X * 8), 148 - (((CABLE700_Y + 10) / 5) * 4))); _cable.setDetails(700, 37, -1, -1, 1, (SceneItem *) NULL); break; default: @@ -6371,7 +6374,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { case 700: _cable.setup(701, 1, 8); if (R2_GLOBALS._v565E7 == 0) { - _cable.setPosition(Common::Point(356 - (R2_GLOBALS._v565EB * 8), 148 - (((R2_GLOBALS._v565E9 + 10) / 5) * 4))); + _cable.setPosition(Common::Point(356 - (CABLE700_X * 8), 148 - (((CABLE700_Y + 10) / 5) * 4))); } else { _cable.setup(701, 1, 1); _cable.setPosition(Common::Point(_electromagnet._position.x + 1, _electromagnet._position.y + 120)); @@ -7634,8 +7637,8 @@ void Scene900::postInit(SceneObjectList *OwnerList) { if (R2_GLOBALS._v565E7 == 0) { _cable.setup(901, 1, 8); // Original set two times the same values: skipped - _cable.setPosition(Common::Point((((100 - ((R2_GLOBALS._v565EB * 350) / 100)) * 49) / 100) + ((R2_GLOBALS._v565E9 * _electromagnet._percent * 6) / 100) + 89, 166 - (R2_GLOBALS._v565EB / 3))); - _cable.changeZoom(((100 - ((R2_GLOBALS._v565EB * 350) / 100) + 52) / 10) * 10); + _cable.setPosition(Common::Point((((100 - ((CABLE700_X * 350) / 100)) * 49) / 100) + ((CABLE700_Y * _electromagnet._percent * 6) / 100) + 89, 166 - (CABLE700_X / 3))); + _cable.changeZoom(((100 - ((CABLE700_X * 350) / 100) + 52) / 10) * 10); } } } From 6682fd46ca2f960520c2d514c5cc40bdde685fdf Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 21:18:30 -0500 Subject: [PATCH 080/105] TSAGE: Rename of globals used by R2R scene 700 --- engines/tsage/globals.cpp | 12 +++---- engines/tsage/globals.h | 4 +-- .../tsage/ringworld2/ringworld2_scenes0.cpp | 34 +++++++++---------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index 3151cddb9172..b1b60709f7a6 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -443,8 +443,8 @@ Ringworld2Globals::Ringworld2Globals() { _animationCtr = 0; _electromagnetChangeAmount = 0; _electromagnetZoom = 0; - _v565E5 = 0; - _v565E7 = 0; + _tractorField = false; + _cableAttached = 0; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -479,8 +479,8 @@ void Ringworld2Globals::reset() { _animationCtr = 0; _electromagnetChangeAmount = 0; _electromagnetZoom = 0; - _v565E5 = 0; - _v565E7 = 0; + _tractorField = false; + _cableAttached = 0; _foodCount = 0; _rimLocation = 0; _rimTransportLocation = 0; @@ -583,8 +583,8 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsSint16LE(_animationCtr); s.syncAsSint16LE(_electromagnetChangeAmount); s.syncAsSint16LE(_electromagnetZoom); - s.syncAsSint16LE(_v565E5); - s.syncAsSint16LE(_v565E7); + s.syncAsSint16LE(_tractorField); + s.syncAsSint16LE(_cableAttached); s.syncAsSint16LE(_foodCount); s.syncAsSint32LE(_rimLocation); s.syncAsSint16LE(_rimTransportLocation); diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index bea3d8614e13..66273e5fd53c 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -255,8 +255,8 @@ class Ringworld2Globals: public TsAGE2Globals { int _animationCtr; int _electromagnetChangeAmount; int _electromagnetZoom; - int _v565E5; - int _v565E7; + bool _tractorField; + bool _cableAttached; int _foodCount; int _rimLocation; int _rimTransportLocation; diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp index 34949b0a83e3..d673c33c5a04 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp @@ -6363,7 +6363,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { case 700: switch (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS)) { case 0: - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.setup(701, 2, 1); else _cable.setup(701, 2, 8); @@ -6373,7 +6373,7 @@ void Scene700::postInit(SceneObjectList *OwnerList) { break; case 700: _cable.setup(701, 1, 8); - if (R2_GLOBALS._v565E7 == 0) { + if (!R2_GLOBALS._cableAttached) { _cable.setPosition(Common::Point(356 - (CABLE700_X * 8), 148 - (((CABLE700_Y + 10) / 5) * 4))); } else { _cable.setup(701, 1, 1); @@ -6522,12 +6522,12 @@ void Scene700::signal() { _sceneMode = 17; _cable.setup(701, 1, 8); _cable.setDetails(700, 38, -1, -1, 3, (SceneItem *) NULL); - if ((R2_GLOBALS._v565E5 != 0) && (_cable._position.x == _electromagnet._position.x + 1) && (_cable._position.x == 148 - (((R2_GLOBALS._electromagnetChangeAmount + 10) / 5) * 4))) { + if (R2_GLOBALS._tractorField && (_cable._position.x == _electromagnet._position.x + 1) && (_cable._position.x == 148 - (((R2_GLOBALS._electromagnetChangeAmount + 10) / 5) * 4))) { _cable.animate(ANIM_MODE_6, NULL); Common::Point pt(_cable._position.x, _electromagnet._position.y + 120); NpcMover *mover = new NpcMover(); _cable.addMover(mover, &pt, NULL); - R2_GLOBALS._v565E7 = 1; + R2_GLOBALS._cableAttached = true; } R2_GLOBALS._player.animate(ANIM_MODE_6, this); break; @@ -6547,7 +6547,7 @@ void Scene700::signal() { break; case 21: _cable.fixPriority(77); - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.animate(ANIM_MODE_6, NULL); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_CABLE_HARNESS, 700); @@ -6565,7 +6565,7 @@ void Scene700::signal() { case 706: _cable.setDetails(700, 38, -1, -1, 3, (SceneItem *) NULL); _cable.fixPriority(77); - if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) + if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) _cable.animate(ANIM_MODE_6, NULL); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_UNIT, 0); R2_INVENTORY.setObjectScene(R2_ATTRACTOR_CABLE_HARNESS, 700); @@ -7480,10 +7480,10 @@ bool Scene900::Button::startAction(CursorType action, Event &event) { scene->_sceneMode = 2; scene->signal(); } else if (scene->_controlsScreenNumber == 2) { - if (R2_GLOBALS._v565E5 == 0) { + if (!R2_GLOBALS._tractorField) { scene->_aSound1.play(30); setup(900, 3, 11); - R2_GLOBALS._v565E5 = 1; + R2_GLOBALS._tractorField = true; if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS == 700)) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70) && (scene->_cable._animateMode != ANIM_MODE_6)) { scene->_cable.animate(ANIM_MODE_6, NULL); } else { @@ -7502,12 +7502,12 @@ bool Scene900::Button::startAction(CursorType action, Event &event) { } else { scene->_aSound1.play(53); setup(900, 3, 9); - R2_GLOBALS._v565E5 = 0; + R2_GLOBALS._tractorField = false; if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (scene->_cable._frame < 8) && (scene->_cable._animateMode != ANIM_MODE_5)) { scene->_cable.animate(ANIM_MODE_5, NULL); } else if ((R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 700) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (scene->_cable._frame < 8)) { - R2_GLOBALS._v565E7 = 0; + R2_GLOBALS._cableAttached = false; if (scene->_cable._animateMode != 5) { R2_GLOBALS._player.disableControl(); scene->_sceneMode = 5; @@ -7625,7 +7625,7 @@ void Scene900::postInit(SceneObjectList *OwnerList) { if (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) { if (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) != 700) { _cable.setup(901, 3, 2); - } else if ((R2_GLOBALS._v565E5 != 0) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { + } else if (R2_GLOBALS._tractorField && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { _cable.setup(901, 2, 1); } else { _cable.setup(901, 2, 8); @@ -7634,7 +7634,7 @@ void Scene900::postInit(SceneObjectList *OwnerList) { _cable.setDetails(700, -1, -1, -1, 1, (SceneItem *) NULL); } else { _cable.setDetails(700, -1, -1, -1, 1, (SceneItem *) NULL); - if (R2_GLOBALS._v565E7 == 0) { + if (!R2_GLOBALS._cableAttached) { _cable.setup(901, 1, 8); // Original set two times the same values: skipped _cable.setPosition(Common::Point((((100 - ((CABLE700_X * 350) / 100)) * 49) / 100) + ((CABLE700_Y * _electromagnet._percent * 6) / 100) + 89, 166 - (CABLE700_X / 3))); @@ -7683,7 +7683,7 @@ void Scene900::signal() { _button3.remove(); _button2.initButton(2); - if (R2_GLOBALS._v565E5 == 0) + if (!R2_GLOBALS._tractorField) _button2.setup(900, 3, 9); else _button2.setup(900, 3, 11); @@ -7728,7 +7728,7 @@ void Scene900::signal() { _sceneMode = 0; R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; - R2_GLOBALS._v565E7 = 1; + R2_GLOBALS._cableAttached = true; break; case 900: R2_GLOBALS._player.enableControl(CURSOR_USE); @@ -7778,11 +7778,11 @@ void Scene900::dispatch() { } if (R2_GLOBALS._sceneObjects->contains(&_cable)) { - if ((R2_GLOBALS._v565E5 != 0) && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { + if (R2_GLOBALS._tractorField && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (R2_GLOBALS._electromagnetChangeAmount == 20) && (R2_GLOBALS._electromagnetZoom == 70)) { if ((_cable._frame > 1) && (_cable._animateMode != ANIM_MODE_6)) _cable.animate(ANIM_MODE_6, NULL); } else { - if ((_cable._frame < 8) && (_cable._animateMode != ANIM_MODE_5) && (R2_GLOBALS._v565E7 == 0) && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (_sceneMode != 4)) + if ((_cable._frame < 8) && (_cable._animateMode != ANIM_MODE_5) && !R2_GLOBALS._cableAttached && (R2_INVENTORY.getObjectScene(R2_CABLE_HARNESS) == 0) && (R2_INVENTORY.getObjectScene(R2_ATTRACTOR_CABLE_HARNESS) == 700) && (_sceneMode != 4)) _cable.animate(ANIM_MODE_5, NULL); } } @@ -7790,7 +7790,7 @@ void Scene900::dispatch() { _electromagnet.changeZoom(100 - ((R2_GLOBALS._electromagnetZoom * 70) / 100)); _electromagnet.setPosition(Common::Point(((_electromagnet._percent * R2_GLOBALS._electromagnetChangeAmount * 6) / 100) + 89, R2_GLOBALS._electromagnetZoom)); - if ((R2_GLOBALS._sceneObjects->contains(&_cable)) && (R2_GLOBALS._v565E7 != 0) && (!_cable._mover) && (_cable._animateMode == ANIM_MODE_NONE)) { + if ((R2_GLOBALS._sceneObjects->contains(&_cable)) && R2_GLOBALS._cableAttached && (!_cable._mover) && (_cable._animateMode == ANIM_MODE_NONE)) { _cable.setPosition(Common::Point(_electromagnet._position.x + ((_electromagnet._percent * 49) / 100), _electromagnet._position.y + ((_electromagnet._percent * 3) / 10))); if (R2_GLOBALS._electromagnetZoom >= 75) { _cable.setup(901, 1, 1); From c65e8a31a3ca994bb2516b0ab100134cb25f4683 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 8 Nov 2013 21:34:26 -0500 Subject: [PATCH 081/105] TSAGE: Renamed globals used by R2R duct maze laser panels --- engines/tsage/globals.cpp | 24 +++++------ engines/tsage/globals.h | 8 ++-- .../tsage/ringworld2/ringworld2_scenes1.cpp | 42 +++++++++---------- .../tsage/ringworld2/ringworld2_scenes3.cpp | 10 +++-- 4 files changed, 43 insertions(+), 41 deletions(-) diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp index b1b60709f7a6..6540f4dccc56 100644 --- a/engines/tsage/globals.cpp +++ b/engines/tsage/globals.cpp @@ -426,11 +426,11 @@ Ringworld2Globals::Ringworld2Globals() { _balloonAltitude = 5; _scene1925CurrLevel = 0; _walkwaySceneNumber = 0; - _v56AA0 = 0; + _mirandaJailState = 0; _scientistConvIndex = 0; - _v56AA6 = 1; - _v56AA7 = 1; - _v56AA8 = 1; + _ductMazePanel1State = 1; + _ductMazePanel2State = 1; + _ductMazePanel3State = 1; _scene180Mode = -1; _v57709 = 0; _v5780C = 0; @@ -537,12 +537,12 @@ void Ringworld2Globals::reset() { _balloonAltitude = 5; _scene1925CurrLevel = 0; //_v56A9C _walkwaySceneNumber = 0; - _v56AA0 = 0; + _mirandaJailState = 0; _scientistConvIndex = 0; _ventCellPos = Common::Point(60, 660); - _v56AA6 = 1; - _v56AA7 = 1; - _v56AA8 = 1; + _ductMazePanel1State = 1; + _ductMazePanel2State = 1; + _ductMazePanel3State = 1; _scene180Mode = -1; _v57709 = 0; _v5780C = 0; @@ -615,11 +615,11 @@ void Ringworld2Globals::synchronize(Serializer &s) { s.syncAsByte(_desertStepsRemaining); s.syncAsByte(_desertCorrectDirection); s.syncAsByte(_desertPreviousDirection); - s.syncAsByte(_v56AA0); + s.syncAsByte(_mirandaJailState); s.syncAsByte(_scientistConvIndex); - s.syncAsByte(_v56AA6); - s.syncAsByte(_v56AA7); - s.syncAsByte(_v56AA8); + s.syncAsByte(_ductMazePanel1State); + s.syncAsByte(_ductMazePanel2State); + s.syncAsByte(_ductMazePanel3State); for (i = 0; i < 14; ++i) s.syncAsByte(_spillLocation[i]); diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index 66273e5fd53c..4523a7bca073 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -275,12 +275,12 @@ class Ringworld2Globals: public TsAGE2Globals { byte _balloonAltitude; int _scene1925CurrLevel; //_v56A9C int _walkwaySceneNumber; - byte _v56AA0; + byte _mirandaJailState; byte _scientistConvIndex; Common::Point _ventCellPos; - byte _v56AA6; - byte _v56AA7; - byte _v56AA8; + byte _ductMazePanel1State; + byte _ductMazePanel2State; + byte _ductMazePanel3State; int _scene180Mode; // _v575f7 int _v57709; int _v5780C; diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 7d36008a3c7c..298bff0d80ed 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -1351,7 +1351,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { switch (_state) { case 1: - switch (R2_GLOBALS._v56AA6) { + switch (R2_GLOBALS._ductMazePanel1State) { case 1: setFrame2(2); setPosition(Common::Point(129, 101)); @@ -1365,7 +1365,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { } break; case 2: - switch (R2_GLOBALS._v56AA7) { + switch (R2_GLOBALS._ductMazePanel2State) { case 1: setFrame2(2); setPosition(Common::Point(152, 101)); @@ -1383,7 +1383,7 @@ void Scene1200::LaserPanel::Jumper::init(int state) { } break; case 3: - switch (R2_GLOBALS._v56AA8) { + switch (R2_GLOBALS._ductMazePanel3State) { case 1: setFrame2(3); setPosition(Common::Point(158, 95)); @@ -1410,22 +1410,22 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) R2_GLOBALS._sound2.play(260); switch (_state) { case 1: - if (R2_GLOBALS._v56AA6 == 1) { - R2_GLOBALS._v56AA6 = 2; + if (R2_GLOBALS._ductMazePanel1State == 1) { + R2_GLOBALS._ductMazePanel1State = 2; setFrame2(3); setPosition(Common::Point(135, 95)); } else { - R2_GLOBALS._v56AA6 = 1; + R2_GLOBALS._ductMazePanel1State = 1; setFrame2(2); setPosition(Common::Point(129, 101)); } break; case 2: - ++R2_GLOBALS._v56AA7; - if (R2_GLOBALS._v56AA7 == 4) - R2_GLOBALS._v56AA7 = 1; + ++R2_GLOBALS._ductMazePanel2State; + if (R2_GLOBALS._ductMazePanel2State == 4) + R2_GLOBALS._ductMazePanel2State = 1; - switch (R2_GLOBALS._v56AA7) { + switch (R2_GLOBALS._ductMazePanel2State) { case 1: setFrame2(2); setPosition(Common::Point(152, 101)); @@ -1443,12 +1443,12 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) } break; case 3: - if (R2_GLOBALS._v56AA8 == 1) { - R2_GLOBALS._v56AA8 = 2; + if (R2_GLOBALS._ductMazePanel3State == 1) { + R2_GLOBALS._ductMazePanel3State = 2; setFrame2(2); setPosition(Common::Point(175, 101)); } else { - R2_GLOBALS._v56AA8 = 1; + R2_GLOBALS._ductMazePanel3State = 1; setFrame2(3); setPosition(Common::Point(158, 95)); } @@ -1460,13 +1460,13 @@ bool Scene1200::LaserPanel::Jumper::startAction(CursorType action, Event &event) Scene1200 *scene = (Scene1200 *)R2_GLOBALS._sceneManager._scene; scene->_field418 = 0; - if ((R2_GLOBALS._v56AA6 == 1) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + if ((R2_GLOBALS._ductMazePanel1State == 1) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 1; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 2; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 2)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 2)) scene->_field418 = 3; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 3) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 3) && (R2_GLOBALS._ductMazePanel3State == 1)) scene->_field418 = 4; return true; @@ -1515,13 +1515,13 @@ void Scene1200::postInit(SceneObjectList *OwnerList) { _field418 = 0; _field41A = 0; - if ((R2_GLOBALS._v56AA6 == 1) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + if ((R2_GLOBALS._ductMazePanel1State == 1) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 1; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 2; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 1) && (R2_GLOBALS._v56AA8 == 2)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 1) && (R2_GLOBALS._ductMazePanel3State == 2)) _field418 = 3; - else if ((R2_GLOBALS._v56AA6 == 2) && (R2_GLOBALS._v56AA7 == 3) && (R2_GLOBALS._v56AA8 == 1)) + else if ((R2_GLOBALS._ductMazePanel1State == 2) && (R2_GLOBALS._ductMazePanel2State == 3) && (R2_GLOBALS._ductMazePanel3State == 1)) _field418 = 4; R2_GLOBALS._player.postInit(); diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 682a6074d999..1c70f5e6c383 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -685,8 +685,10 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { break; } default: - if ((R2_GLOBALS._v56AA0 == 1) && (R2_INVENTORY.getObjectScene(R2_ANCIENT_SCROLLS) == 2000) && (R2_GLOBALS._player._oldCharacterScene[R2_QUINN] == 3100)) { - ++R2_GLOBALS._v56AA0; + if ((R2_GLOBALS._mirandaJailState == 1) && (R2_INVENTORY.getObjectScene(R2_ANCIENT_SCROLLS) == 2000) + && (R2_GLOBALS._player._oldCharacterScene[R2_QUINN] == 3100)) { + // Moving story on to Miranda getting food delivered + ++R2_GLOBALS._mirandaJailState; _sceneMode = 3156; _guard.postInit(); _guard._effect = EFFECT_SHADED2; @@ -699,8 +701,8 @@ void Scene3150::postInit(SceneObjectList *OwnerList) { setAction(&_sequenceManager, this, 3156, &R2_GLOBALS._player, &_guard, &_doorBars, &_foodTray, NULL); } else { - if ((R2_GLOBALS._v56AA0 != 1) && (R2_GLOBALS._v56AA0 != 2)) - ++R2_GLOBALS._v56AA0; + if ((R2_GLOBALS._mirandaJailState != 1) && (R2_GLOBALS._mirandaJailState != 2)) + ++R2_GLOBALS._mirandaJailState; R2_GLOBALS._player.setup(30, 3, 1); R2_GLOBALS._player.animate(ANIM_MODE_1, NULL); From 6491ad1cf93a3fe75a759536c68ac590e56e00a3 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 12:49:48 +0200 Subject: [PATCH 082/105] TOUCHE: Initialize more variables. CID 1002423 --- engines/touche/touche.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/engines/touche/touche.cpp b/engines/touche/touche.cpp index 6ca17c86a166..b3e3ca5b505b 100644 --- a/engines/touche/touche.cpp +++ b/engines/touche/touche.cpp @@ -135,6 +135,38 @@ ToucheEngine::ToucheEngine(OSystem *system, Common::Language language) for (uint i = 0; i < NUM_SEQUENCES; i++) memset(&_sequenceEntryTable[i], 0, sizeof(SequenceEntry)); + + _talkListEnd = 0; + _talkListCurrent = 0; + _talkTextRectDefined = 0; + _talkTextDisplayed = 0; + _talkTextInitialized = 0; + _skipTalkText = 0; + _talkTextSpeed = 0; + _keyCharTalkCounter = 0; + _talkTableLastTalkingKeyChar = 0; + _talkTableLastOtherKeyChar = 0; + _talkTableLastStringNum = 0; + + for (uint i = 0; i < NUM_TALK_ENTRIES; i++) + memset(&_talkTable[i], 0, sizeof(TalkEntry)); + + _conversationChoicesUpdated = 0; + _conversationReplyNum = 0; + _conversationEnded = 0; + _conversationNum = 0; + _scrollConversationChoiceOffset = 0; + _currentConversation = 0; + _disableConversationScript = 0; + _conversationAreaCleared = 0; + + for (uint i = 0; i < NUM_CONVERSATION_CHOICES; i++) + memset(&_conversationChoicesTable[i], 0, sizeof(ConversationChoice)); + + for (uint i = 0; i < NUM_KEYCHARS; i++) + _sortedKeyCharsTable[i] = 0; + + _currentKeyCharNum = 0; } ToucheEngine::~ToucheEngine() { From fe678370770d3aeadbd8250e97d497898a8e8857 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 12:51:39 +0200 Subject: [PATCH 083/105] DRASCULA: More variables initialized. CID 1003403 --- engines/drascula/drascula.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp index 159ceb9bf0c4..163f0077fc97 100644 --- a/engines/drascula/drascula.cpp +++ b/engines/drascula/drascula.cpp @@ -176,6 +176,20 @@ DrasculaEngine::DrasculaEngine(OSystem *syst, const DrasculaGameDescription *gam _rightMouseButton = 0; *textName = 0; + crosshairCursor = 0; + mouseCursor = 0; + bgSurface = 0; + backSurface = 0; + cursorSurface = 0; + drawSurface3 = 0; + drawSurface2 = 0; + tableSurface = 0; + extraSurface = 0; + screenSurface = 0; + frontSurface = 0; + previousMusic = 0; + roomMusic = 0; + _rnd = new Common::RandomSource("drascula"); _console = 0; From 986369bcb558790af8ebe4708117c45d23bd7dca Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 12:59:38 +0200 Subject: [PATCH 084/105] DREAMWEB: Initialize struct contents. CID 1003402 --- engines/dreamweb/dreamweb.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp index a91e41ea6791..7323dfc4a87f 100644 --- a/engines/dreamweb/dreamweb.cpp +++ b/engines/dreamweb/dreamweb.cpp @@ -241,6 +241,33 @@ DreamWebEngine::DreamWebEngine(OSystem *syst, const DreamWebGameDescription *gam for (uint i = 0; i < kNumExObjects; i++) memset(&_exData[i], 0, sizeof(DynObject)); + + memset(&_vars, 0, sizeof(GameVars)); + + for (uint i = 0; i < 96; i++) + memset(&_backdropFlags[i], 0, sizeof(BackdropMapFlag)); + + for (uint i = 0; i < kNumReelRoutines+1; i++) + memset(&_reelRoutines[i], 0, sizeof(ReelRoutine)); + + _personData = 0; + + for (uint i = 0; i < 16; i++) + memset(&_openInvList[i], 0, sizeof(ObjectRef)); + + for (uint i = 0; i < 30; i++) + memset(&_ryanInvList[i], 0, sizeof(ObjectRef)); + + for (uint i = 0; i < 11*10; i++) + memset(&_mapFlags[i], 0, sizeof(MapFlag)); + + for (uint i = 0; i < kNumChanges; i++) + memset(&_listOfChanges[i], 0, sizeof(Change)); + + _currentCharset = 0; + + for (uint i = 0; i < 36; i++) + memset(&_pathData[i], 0, sizeof(RoomPaths)); } DreamWebEngine::~DreamWebEngine() { From c8bf0903271424d3c41842667e241297e23ea318 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:04:08 +0200 Subject: [PATCH 085/105] PARALLACTION: Initialize class. CID 1002701 --- engines/parallaction/parser.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/engines/parallaction/parser.h b/engines/parallaction/parser.h index 3e2604eda281..560e57a32b15 100644 --- a/engines/parallaction/parser.h +++ b/engines/parallaction/parser.h @@ -207,6 +207,11 @@ class LocationParser_ns { public: LocationParser_ns(Parallaction_ns *vm) : _vm(vm), _commandsNames(0), _locationStmt(0), _locationZoneStmt(0), _locationAnimStmt(0) { + _script = 0; + _parser = 0; + _zoneTypeNames = 0; + _zoneFlagNames = 0; + _zoneProg = 0; } virtual void init(); From 8c21b5cdd4a2c20e5bc18c026cdb8eaba0d166e5 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:05:42 +0200 Subject: [PATCH 086/105] PARALLACTION: Initialize class. CID 1002702 --- engines/parallaction/parser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/parallaction/parser.h b/engines/parallaction/parser.h index 560e57a32b15..a97cb3d8e071 100644 --- a/engines/parallaction/parser.h +++ b/engines/parallaction/parser.h @@ -304,7 +304,7 @@ class LocationParser_br : public LocationParser_ns { public: LocationParser_br(Parallaction_br *vm) : LocationParser_ns((Parallaction_ns*)vm), _vm(vm), - _audioCommandsNames(0) { + _audioCommandsNames(0), _out(0) { } virtual void init(); From c7331eea02c1aee47240847bb59cd1397d843ae6 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:06:55 +0200 Subject: [PATCH 087/105] PARALLACTION: Initialize class. CID 1002703 --- engines/parallaction/parser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/parallaction/parser.h b/engines/parallaction/parser.h index a97cb3d8e071..e55df686e0fd 100644 --- a/engines/parallaction/parser.h +++ b/engines/parallaction/parser.h @@ -368,7 +368,7 @@ class ProgramParser_ns { } public: - ProgramParser_ns(Parallaction_ns *vm) : _vm(vm), _parser(0), _instructionNames(0) { + ProgramParser_ns(Parallaction_ns *vm) : _vm(vm), _parser(0), _instructionNames(0), _script(0), _currentInstruction(0) { } virtual void init(); From 918ae371a0dd5c09c5e64f31c8663b0caf8f699b Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:09:30 +0200 Subject: [PATCH 088/105] PARALLACTION: Initialize class. CID 1002705 --- engines/parallaction/parallaction_ns.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engines/parallaction/parallaction_ns.cpp b/engines/parallaction/parallaction_ns.cpp index 49b63dcac3dc..91e8c78fc258 100644 --- a/engines/parallaction/parallaction_ns.cpp +++ b/engines/parallaction/parallaction_ns.cpp @@ -145,6 +145,18 @@ void LocationName::bind(const char *s) { Parallaction_ns::Parallaction_ns(OSystem* syst, const PARALLACTIONGameDescription *gameDesc) : Parallaction(syst, gameDesc), _locationParser(0), _programParser(0), _walker(0) { + _soundManI = 0; + _score = 0; + _inTestResult = 0; + _callables = 0; + num_foglie = 0; + _sarcophagusDeltaX = 0; + _movingSarcophagus = 0; + _freeSarcophagusSlotX = 0; + _intro = 0; + + _testResultLabels[0] = 0; + _testResultLabels[1] = 0; } Common::Error Parallaction_ns::init() { From d74585b344e88962d722ada471ae51532d800749 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:12:06 +0200 Subject: [PATCH 089/105] PARALLACTION: Initialize class. CID 1002706 --- engines/parallaction/parallaction_br.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp index f9df9d85db40..586e4bbd6a53 100644 --- a/engines/parallaction/parallaction_br.cpp +++ b/engines/parallaction/parallaction_br.cpp @@ -45,6 +45,18 @@ const char *Parallaction_br::_partNames[] = { Parallaction_br::Parallaction_br(OSystem* syst, const PARALLACTIONGameDescription *gameDesc) : Parallaction(syst, gameDesc), _locationParser(0), _programParser(0), _soundManI(0) { + _audioCommandsNamesRes = 0; + _part = 0; + _nextPart = 0; + _subtitleY = 0; + _subtitle[0] = 0; + _subtitle[1] = 0; + _charInventories[0] = 0; + _charInventories[1] = 0; + _charInventories[2] = 0; + _countersNames = 0; + _callables = 0; + _walker = 0; } Common::Error Parallaction_br::init() { From c9ae0a46dda76355c53ec0ec30647789ece2e727 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:13:56 +0200 Subject: [PATCH 090/105] PARALLACTION: Initialize class variables. CID 1002707 --- engines/parallaction/parallaction.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index f868abfbf45f..5826e960bb35 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -882,6 +882,9 @@ void CharacterName::dummify() { CharacterName::CharacterName() { dummify(); + + _suffix = 0; + _prefix = 0; } CharacterName::CharacterName(const char *name) { From 9cf199cb42e4d0e723b098225487fcb83c8b11eb Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:15:47 +0200 Subject: [PATCH 091/105] PARALLACTION: Initialize class variables. CID 1002708 --- engines/parallaction/parallaction.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index 5826e960bb35..e7be1eb8a371 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -59,6 +59,33 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam DebugMan.addDebugChannel(kDebugAudio, "audio", "Audio debug level"); DebugMan.addDebugChannel(kDebugMenu, "menu", "Menu debug level"); DebugMan.addDebugChannel(kDebugInventory, "inventory", "Inventory debug level"); + + _screenHeight = 0; + _screenSize = 0; + _gameType = 0; + _gfx = 0; + _disk = 0; + _input = 0; + _debugger = 0; + _saveLoad = 0; + _menuHelper = 0; + _soundMan = 0; + _labelFont = 0; + _menuFont = 0; + _introFont = 0; + _dialogueFont = 0; + _globalFlagsNames = 0; + _objectsNames = 0; + _objects = 0; + _callableNames = 0; + _localFlagNames = 0; + _cmdExec = 0; + _programExec = 0; + _balloonMan = 0; + _inventoryRenderer = 0; + _inventory = 0; + _currentLocationIndex = 0; + _numLocations = 0; } Parallaction::~Parallaction() { From 4decd8c8083a6ff85c092d336d70b61bf8ec30bf Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:17:30 +0200 Subject: [PATCH 092/105] PARALLACTION: Initialize class variable. CID 1002715 --- engines/parallaction/gui_ns.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/engines/parallaction/gui_ns.cpp b/engines/parallaction/gui_ns.cpp index 082c37f66602..ea3c39468407 100644 --- a/engines/parallaction/gui_ns.cpp +++ b/engines/parallaction/gui_ns.cpp @@ -117,6 +117,7 @@ class ChooseLanguageInputState_NS : public MenuInputState { _allowChoice = false; _nextState = "selectgame"; _label = 0; + _blocks = 0; _dosLanguageSelectBlocks[0] = Common::Rect( 80, 110, 128, 180 ); // Italian _dosLanguageSelectBlocks[1] = Common::Rect( 129, 85, 177, 155 ); // French From bcd65f854f98405c16f9749e1b2c23419772a237 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:18:54 +0200 Subject: [PATCH 093/105] PARALLACTION: Initialize class. CID 1002721 --- engines/parallaction/gui_br.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/engines/parallaction/gui_br.cpp b/engines/parallaction/gui_br.cpp index ddbc31d730de..2ec5ba6e8da3 100644 --- a/engines/parallaction/gui_br.cpp +++ b/engines/parallaction/gui_br.cpp @@ -196,6 +196,11 @@ class MainMenuInputState_BR : public MenuInputState { public: MainMenuInputState_BR(Parallaction_br *vm, MenuInputHelper *helper) : MenuInputState("mainmenu", helper), _vm(vm) { memset(_lines, 0, sizeof(_lines)); + + _menuStrings = 0; + _options = 0; + _availItems = 0; + _selection = 0; } ~MainMenuInputState_BR() { From 234f3f315053005961a91018f8b8bcf6ebb1865f Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:20:13 +0200 Subject: [PATCH 094/105] PARALLACTION: Initialize class variable. CID 1002724 --- engines/parallaction/gui.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/parallaction/gui.h b/engines/parallaction/gui.h index a6eed240c4e0..9f2e96475b1c 100644 --- a/engines/parallaction/gui.h +++ b/engines/parallaction/gui.h @@ -43,7 +43,7 @@ class MenuInputHelper { MenuInputState *_newState; public: - MenuInputHelper() : _state(0) { + MenuInputHelper() : _state(0), _newState(0) { } ~MenuInputHelper(); From ee9b4c979a3c06776f6f1b9996ce9406e1f67044 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:21:25 +0200 Subject: [PATCH 095/105] PARALLACTION: Initialize variable. CID 1002725 --- engines/parallaction/graphics.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/parallaction/graphics.h b/engines/parallaction/graphics.h index 550f9d1dd9d4..401e753775f1 100644 --- a/engines/parallaction/graphics.h +++ b/engines/parallaction/graphics.h @@ -138,7 +138,7 @@ struct Cnv : public Frames { } Cnv(uint16 numFrames, uint16 width, uint16 height, byte* data, bool freeData = false) - : _count(numFrames), _width(width), _height(height), _data(data), _freeData(freeData) { + : _count(numFrames), _width(width), _height(height), _data(data), _freeData(freeData), field_8(0) { } From 38d02d1687bb72270c317ef50e38b11f2cb5aeaf Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 9 Nov 2013 13:22:57 +0200 Subject: [PATCH 096/105] PARALLACTION: Initialize class. CID 1002753 --- engines/parallaction/font.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/engines/parallaction/font.cpp b/engines/parallaction/font.cpp index 03b1ced8e173..627c6ebe22e1 100644 --- a/engines/parallaction/font.cpp +++ b/engines/parallaction/font.cpp @@ -518,6 +518,9 @@ AmigaFont::AmigaFont(Common::SeekableReadStream &stream) { _charSpace = 0; _charKern = 0; + _cp = 0; + _pitch = 0; + if (_font->_charSpace != 0) _charSpace = (uint16 *)(_data + FROM_BE_32(_font->_charSpace)); if (_font->_charKern != 0) From 4cc7d472d18dc65d932c72bee81c314f896fd65a Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 14:35:58 +0100 Subject: [PATCH 097/105] TSAGE: FGix bug in sound code. This fixes CID 1127336 --- engines/tsage/sound.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp index 0946b6c419bb..f8797fd569ed 100644 --- a/engines/tsage/sound.cpp +++ b/engines/tsage/sound.cpp @@ -1008,7 +1008,7 @@ void SoundManager::sfRethinkVoiceTypes() { if (vtStruct->_entries[idx]._type0._priority2 > maxPriority) { maxPriority = vtStruct->_entries[idx]._type0._priority2; - entryIndex = -1; + entryIndex = idx; } } From e4387e754a5de39cf1407ca11777f49a6b5a9f99 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 14:47:45 +0100 Subject: [PATCH 098/105] AVALANCHE: Fix CID 1109674 - uninitialized variables. Also fix room variable default values. --- engines/avalanche/avalanche.cpp | 26 ++++++++++++++++++++++++++ engines/avalanche/avalot.cpp | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index ab03cc84e0ae..beb6333daa53 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -141,6 +141,32 @@ void AvalancheEngine::initVariables() { _seeScroll = false; _currentMouse = 177; _holdLeftMouse = false; + + _jumpStatus = 0; + _mushroomGrowing = false; + _crapulusWillTell = false; + _enterCatacombsFromLustiesRoom = false; + _teetotal = false; + _malagauche = 0; + _drinking = '\0'; + _enteredLustiesRoomAsMonk = false; + _catacombX = 0; + _catacombY = 0; + _avvysInTheCupboard = false; + _geidaFollows = false; + _givenPotionToGeida = false; + _lustieIsAsleep = false; + _beenTiedUp = false; + _sittingInPub = false; + _spurgeTalkCount = 0; + _metAvaroid = false; + _takenMushroom = false; + _givenPenToAyles = false; + _askedDogfoodAboutNim = false; + _ableToAddTimer = false; + _spludwickAtHome = false; + _passedCwytalotInHerts = false; + _lastRoom = _lastRoomNotMap = kRoomDummy; } Common::ErrorCode AvalancheEngine::initialize() { diff --git a/engines/avalanche/avalot.cpp b/engines/avalanche/avalot.cpp index d703fdd2cc71..5d360d1c3fa4 100644 --- a/engines/avalanche/avalot.cpp +++ b/engines/avalanche/avalot.cpp @@ -1458,8 +1458,8 @@ void AvalancheEngine::resetVariables() { _jumpStatus = 0; _mushroomGrowing = false; _spludwickAtHome = false; - _lastRoom = 0; - _lastRoomNotMap = 0; + _lastRoom = kRoomDummy; + _lastRoomNotMap = kRoomDummy; _crapulusWillTell = false; _enterCatacombsFromLustiesRoom = false; _teetotal = false; From 2f9c2a937029abc0a9a4988b223b2832b433d6cb Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 15:05:56 +0100 Subject: [PATCH 099/105] TSAGE: R2R - Add some CHECKMEs, remove some deadcode (CID 1004056) --- .../tsage/ringworld2/ringworld2_scenes1.cpp | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 298bff0d80ed..4bc82c705937 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -6018,7 +6018,7 @@ void Scene1337::subCF31D() { count = rndVal; break; } - + // CHECKME: inside the check on rndVal? rndVal--; if (rndVal < 0) rndVal = 3; @@ -6042,9 +6042,10 @@ void Scene1337::subCF31D() { int rndVal = R2_GLOBALS._randomSource.getRandomNumber(3); for (int j = 0; j <= 3; j++) { + //CHECKME: tmpVal or rndVal? if (tmpVal != 1) { for (int k = 0; k <= 7; k++) { - // 'k' is not used in that loop. + // CHECKME: 'k' is not used in that loop. // It looks suspicious. if ((_arrunkObj1337[tmpVal]._arr3[0]._field34 == 0) && (subC32B1(tmpVal, _arrunkObj1337[1]._arr1[i]._field34))) { count = tmpVal; @@ -6068,12 +6069,9 @@ void Scene1337::subCF31D() { } } - if (found) { - if (count == -1) - return; - + if (found) subC3456(&_arrunkObj1337[1]._arr1[i], &_arrunkObj1337[count]._arr3[0]); - } else { + else { int j; for (j = 0; j <= 3; j++) { if (subC27F9(_arrunkObj1337[1]._arr1[j]._field34) != -1) { @@ -6103,14 +6101,10 @@ void Scene1337::subCF31D() { } } - if (found) { - if (count == -1) - return; - + if (found) subC3456(&_arrunkObj1337[1]._arr1[j], &_arrunkObj1337[count]._arr3[0]); - } else { + else subC2835(1); - } } } From c177d450733c014dd8e5e3c25dadf04484433cc8 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 15:09:05 +0100 Subject: [PATCH 100/105] TOON: Fix uninitialized variable in audio. CID 1002729 --- engines/toon/audio.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/engines/toon/audio.cpp b/engines/toon/audio.cpp index 50b559ee00c9..303f6774faaf 100644 --- a/engines/toon/audio.cpp +++ b/engines/toon/audio.cpp @@ -228,6 +228,7 @@ void AudioManager::stopMusic() { AudioStreamInstance::AudioStreamInstance(AudioManager *man, Audio::Mixer *mixer, Common::SeekableReadStream *stream , bool looping, bool deleteFileStreamAtEnd) { _compBufferSize = 0; _buffer = NULL; + _bufferSize = 0; _bufferMaxSize = 0; _mixer = mixer; _compBuffer = NULL; From 1c0367d5a60ca21e0a273175a7f9fb3eeadfd795 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 18:20:29 +0100 Subject: [PATCH 101/105] TOON: Fix unintialized variables. Fix CID 1002424 --- engines/toon/toon.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp index a97bfd55e8dd..7b1456b05c66 100644 --- a/engines/toon/toon.cpp +++ b/engines/toon/toon.cpp @@ -952,6 +952,18 @@ ToonEngine::ToonEngine(OSystem *syst, const ADGameDescription *gameDescription) _lastRenderTime = 0; _firstFrame = false; _needPaletteFlush = true; + + _numVariant = 0; + _currentCutaway = nullptr; + for (int i = 0; i < 4; i++) { + _scriptState[i].ip = nullptr; + _scriptState[i].dataPtr = nullptr; + _scriptState[i].retValue = 0; + _scriptState[i].bp = 0; + _scriptState[i].sp = 0; + _scriptState[i].running = false; + } + _currentScriptRegion = 0; } ToonEngine::~ToonEngine() { From 6a1b3f40fcf568c9c573ef543ce404070b985a3b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 19:27:38 +0100 Subject: [PATCH 102/105] HOPKINS: Error out when an unknown version is encountered --- engines/hopkins/menu.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp index 455f4ad8d48f..b63fd0ff6ce4 100644 --- a/engines/hopkins/menu.cpp +++ b/engines/hopkins/menu.cpp @@ -86,6 +86,8 @@ int MenuManager::menu() { spriteData = _vm->_objectsMan->loadSprite("MENUFR.SPR"); else if (_vm->_globals->_language == LANG_SP) spriteData = _vm->_objectsMan->loadSprite("MENUES.SPR"); + else + error("Hopkins::MenuManager - Unknown version of the game."); _vm->_events->mouseOn(); _vm->_events->changeMouseCursor(0); From 582a681c67487c717686c21bd82bf8e930f6987e Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 20:06:42 +0100 Subject: [PATCH 103/105] HOPKINS: Replace cascades of if by switches for language checks --- engines/hopkins/computer.cpp | 33 ++++++++++++++------- engines/hopkins/dialogs.cpp | 11 +++++-- engines/hopkins/globals.cpp | 2 +- engines/hopkins/hopkins.cpp | 33 +++++++++++++++------ engines/hopkins/menu.cpp | 40 ++++++++++++++++--------- engines/hopkins/script.cpp | 18 ++++++++---- engines/hopkins/sound.cpp | 57 ++++++++++++++++++++++++------------ engines/hopkins/talk.cpp | 11 +++++-- 8 files changed, 140 insertions(+), 65 deletions(-) diff --git a/engines/hopkins/computer.cpp b/engines/hopkins/computer.cpp index c09d748b97a3..f9e3ecafcd04 100644 --- a/engines/hopkins/computer.cpp +++ b/engines/hopkins/computer.cpp @@ -349,15 +349,21 @@ void ComputerManager::loadMenu() { char *ptr; if (_vm->_fileIO->fileExists("COMPUTAN.TXT")) { ptr = (char *)_vm->_fileIO->loadFile("COMPUTAN.TXT"); - } else if (_vm->_globals->_language == LANG_FR) { - ptr = (char *)_vm->_globals->allocMemory(sizeof(_frenchText)); - strcpy(ptr, _frenchText); - } else if (_vm->_globals->_language == LANG_SP) { - ptr = (char *)_vm->_globals->allocMemory(sizeof(_spanishText)); - strcpy(ptr, _spanishText); } else { - ptr = (char *)_vm->_globals->allocMemory(sizeof(_englishText)); - strcpy(ptr, _englishText); + switch (_vm->_globals->_language) { + case LANG_FR: + ptr = (char *)_vm->_globals->allocMemory(sizeof(_frenchText)); + strcpy(ptr, _frenchText); + break; + case LANG_SP: + ptr = (char *)_vm->_globals->allocMemory(sizeof(_spanishText)); + strcpy(ptr, _spanishText); + break; + default: + ptr = (char *)_vm->_globals->allocMemory(sizeof(_englishText)); + strcpy(ptr, _englishText); + break; + } } char *tmpPtr = ptr; @@ -479,12 +485,17 @@ void ComputerManager::readText(int idx) { _vm->_events->_escKeyFl = false; Common::String filename; - if (_vm->_globals->_language == LANG_EN) + switch (_vm->_globals->_language) { + case LANG_EN: filename = "THOPKAN.TXT"; - else if (_vm->_globals->_language == LANG_FR) + break; + case LANG_FR: filename = "THOPK.TXT"; - else if (_vm->_globals->_language == LANG_SP) + break; + case LANG_SP: filename = "THOPKES.TXT"; + break; + } byte *ptr = _vm->_fileIO->loadFile(filename); uint16 fileSize = _vm->_fileIO->fileSize(filename); diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp index 3b8fedf0eeda..8c944167ae0e 100644 --- a/engines/hopkins/dialogs.cpp +++ b/engines/hopkins/dialogs.cpp @@ -84,12 +84,17 @@ void DialogsManager::showOptionsDialog() { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) filename = "OPTION.SPR"; else { - if (_vm->_globals->_language == LANG_FR) + switch (_vm->_globals->_language) { + case LANG_FR: filename = "OPTIFR.SPR"; - else if (_vm->_globals->_language == LANG_EN) + break; + case LANG_EN: filename = "OPTIAN.SPR"; - else if (_vm->_globals->_language == LANG_SP) + break; + case LANG_SP: filename = "OPTIES.SPR"; + break; + } } _vm->_globals->_optionDialogSpr = _vm->_fileIO->loadFile(filename); diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index a9a0a81f08be..cd66a84b73a9 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -148,7 +148,7 @@ void Globals::setConfig() { _language = LANG_SP; break; default: - warning("Unknown language in internal language mapping"); + error("Hopkins - SetConfig(): Unknown language in internal language mapping"); break; } // End of CHECKME diff --git a/engines/hopkins/hopkins.cpp b/engines/hopkins/hopkins.cpp index 9e317804caba..adf7580e6be2 100644 --- a/engines/hopkins/hopkins.cpp +++ b/engines/hopkins/hopkins.cpp @@ -210,12 +210,17 @@ bool HopkinsEngine::runWin95Demo() { if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS) _graphicsMan->loadImage("fond"); else { - if (_globals->_language == LANG_FR) + switch (_globals->_language) { + case LANG_FR: _graphicsMan->loadImage("fondfr"); - else if (_globals->_language == LANG_EN) + break; + case LANG_EN: _graphicsMan->loadImage("fondan"); - else if (_globals->_language == LANG_SP) + break; + case LANG_SP: _graphicsMan->loadImage("fondes"); + break; + } } _graphicsMan->fadeInLong(); _events->delay(500); @@ -521,12 +526,17 @@ bool HopkinsEngine::runLinuxDemo() { if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS) _graphicsMan->loadImage("fond"); else { - if (_globals->_language == LANG_FR) + switch (_globals->_language) { + case LANG_FR: _graphicsMan->loadImage("fondfr"); - else if (_globals->_language == LANG_EN) + break; + case LANG_EN: _graphicsMan->loadImage("fondan"); - else if (_globals->_language == LANG_SP) + break; + case LANG_SP: _graphicsMan->loadImage("fondes"); + break; + } } _graphicsMan->fadeInLong(); _events->delay(500); @@ -867,12 +877,17 @@ bool HopkinsEngine::runFull() { if (getPlatform() == Common::kPlatformOS2 || getPlatform() == Common::kPlatformBeOS) _graphicsMan->loadImage("fond"); else { - if (_globals->_language == LANG_FR) + switch (_globals->_language) { + case LANG_FR: _graphicsMan->loadImage("fondfr"); - else if (_globals->_language == LANG_EN) + break; + case LANG_EN: _graphicsMan->loadImage("fondan"); - else if (_globals->_language == LANG_SP) + break; + case LANG_SP: _graphicsMan->loadImage("fondes"); + break; + } } _graphicsMan->fadeInLong(); _events->delay(500); diff --git a/engines/hopkins/menu.cpp b/engines/hopkins/menu.cpp index b63fd0ff6ce4..048d1b2ceffe 100644 --- a/engines/hopkins/menu.cpp +++ b/engines/hopkins/menu.cpp @@ -69,25 +69,37 @@ int MenuManager::menu() { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) _vm->_graphicsMan->loadImage("MENU"); - else if (_vm->_globals->_language == LANG_EN) - _vm->_graphicsMan->loadImage("MENUAN"); - else if (_vm->_globals->_language == LANG_FR) - _vm->_graphicsMan->loadImage("MENUFR"); - else if (_vm->_globals->_language == LANG_SP) - _vm->_graphicsMan->loadImage("MENUES"); + else { + switch (_vm->_globals->_language) { + case LANG_EN: + _vm->_graphicsMan->loadImage("MENUAN"); + break; + case LANG_FR: + _vm->_graphicsMan->loadImage("MENUFR"); + break; + case LANG_SP: + _vm->_graphicsMan->loadImage("MENUES"); + break; + } + } _vm->_graphicsMan->fadeInLong(); if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) spriteData = _vm->_objectsMan->loadSprite("MENU.SPR"); - else if (_vm->_globals->_language == LANG_EN) - spriteData = _vm->_objectsMan->loadSprite("MENUAN.SPR"); - else if (_vm->_globals->_language == LANG_FR) - spriteData = _vm->_objectsMan->loadSprite("MENUFR.SPR"); - else if (_vm->_globals->_language == LANG_SP) - spriteData = _vm->_objectsMan->loadSprite("MENUES.SPR"); - else - error("Hopkins::MenuManager - Unknown version of the game."); + else { + switch (_vm->_globals->_language) { + case LANG_EN: + spriteData = _vm->_objectsMan->loadSprite("MENUAN.SPR"); + break; + case LANG_FR: + spriteData = _vm->_objectsMan->loadSprite("MENUFR.SPR"); + break; + case LANG_SP: + spriteData = _vm->_objectsMan->loadSprite("MENUES.SPR"); + break; + } + } _vm->_events->mouseOn(); _vm->_events->changeMouseCursor(0); diff --git a/engines/hopkins/script.cpp b/engines/hopkins/script.cpp index 7e150624b86f..09b0641a12ef 100644 --- a/engines/hopkins/script.cpp +++ b/engines/hopkins/script.cpp @@ -148,12 +148,18 @@ int ScriptManager::handleOpcode(const byte *dataP) { _vm->_soundMan->mixVoice(635, 4, displayedTxtFl); } else { int textPosX = READ_LE_INT16(dataP + 9); - if (_vm->_globals->_language == LANG_FR && !_vm->_soundMan->_textOffFl) - _vm->_fontMan->initTextBuffers(9, mesgId, "OBJET1.TXT", 2 * textPosX, 60, 6, dataP[7], 253); - else if (_vm->_globals->_language == LANG_EN && !_vm->_soundMan->_textOffFl) - _vm->_fontMan->initTextBuffers(9, mesgId, "OBJETAN.TXT", 2 * textPosX, 60, 6, dataP[7], 253); - else if (_vm->_globals->_language == LANG_SP && !_vm->_soundMan->_textOffFl) { - _vm->_fontMan->initTextBuffers(9, mesgId, "OBJETES.TXT", 2 * textPosX, 60, 6, dataP[7], 253); + if (!_vm->_soundMan->_textOffFl) { + switch (_vm->_globals->_language) { + case LANG_FR: + _vm->_fontMan->initTextBuffers(9, mesgId, "OBJET1.TXT", 2 * textPosX, 60, 6, dataP[7], 253); + break; + case LANG_EN: + _vm->_fontMan->initTextBuffers(9, mesgId, "OBJETAN.TXT", 2 * textPosX, 60, 6, dataP[7], 253); + break; + case LANG_SP: + _vm->_fontMan->initTextBuffers(9, mesgId, "OBJETES.TXT", 2 * textPosX, 60, 6, dataP[7], 253); + break; + } } bool displayedTxtFl = false; diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index bf816c08a40c..92c5f5146252 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -520,12 +520,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) filename = "ENG_VOI.RES"; // Win95 and Linux versions uses another set of names - else if (_vm->_globals->_language == LANG_FR) - filename = "RES_VFR.RES"; - else if (_vm->_globals->_language == LANG_EN) - filename = "RES_VAN.RES"; - else if (_vm->_globals->_language == LANG_SP) - filename = "RES_VES.RES"; + else { + switch (_vm->_globals->_language) { + case LANG_FR: + filename = "RES_VFR.RES"; + break; + case LANG_EN: + filename = "RES_VAN.RES"; + break; + case LANG_SP: + filename = "RES_VES.RES"; + break; + } + } catPos = _vm->_fileIO->_catalogPos; catLen = _vm->_fileIO->_catalogSize; @@ -535,12 +542,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) filename = "ENG_VOI.RES"; // Win95 and Linux versions uses another set of names - else if (_vm->_globals->_language == LANG_FR) - filename = "RES_VFR.RES"; - else if (_vm->_globals->_language == LANG_EN) - filename = "RES_VAN.RES"; - else if (_vm->_globals->_language == LANG_SP) - filename = "RES_VES.RES"; + else { + switch (_vm->_globals->_language) { + case LANG_FR: + filename = "RES_VFR.RES"; + break; + case LANG_EN: + filename = "RES_VAN.RES"; + break; + case LANG_SP: + filename = "RES_VES.RES"; + break; + } + } catPos = _vm->_fileIO->_catalogPos; catLen = _vm->_fileIO->_catalogSize; @@ -550,12 +564,19 @@ bool SoundManager::mixVoice(int voiceId, int voiceMode, bool dispTxtFl) { if (_vm->getPlatform() == Common::kPlatformOS2 || _vm->getPlatform() == Common::kPlatformBeOS) filename = "ENG_VOI.RES"; // Win95 and Linux versions uses another set of names - else if (_vm->_globals->_language == LANG_FR) - filename = "RES_VFR.RES"; - else if (_vm->_globals->_language == LANG_EN) - filename = "RES_VAN.RES"; - else if (_vm->_globals->_language == LANG_SP) - filename = "RES_VES.RES"; + else { + switch (_vm->_globals->_language) { + case LANG_FR: + filename = "RES_VFR.RES"; + break; + case LANG_EN: + filename = "RES_VAN.RES"; + break; + case LANG_SP: + filename = "RES_VES.RES"; + break; + } + } catPos = _vm->_fileIO->_catalogPos; catLen = _vm->_fileIO->_catalogSize; diff --git a/engines/hopkins/talk.cpp b/engines/hopkins/talk.cpp index 736ec9865cac..1bb6701fc8da 100644 --- a/engines/hopkins/talk.cpp +++ b/engines/hopkins/talk.cpp @@ -68,12 +68,17 @@ void TalkManager::startAnimatedCharacterDialogue(const Common::String &filename) getStringFromBuffer(40, spriteFilename, (const char *)_characterBuffer); getStringFromBuffer(0, _questionsFilename, (const char *)_characterBuffer); getStringFromBuffer(20, _answersFilename, (const char *)_characterBuffer); - if (_vm->_globals->_language == LANG_FR) { + + switch (_vm->_globals->_language) { + case LANG_FR: _answersFilename = _questionsFilename = "RUE.TXT"; - } else if (_vm->_globals->_language == LANG_EN) { + break; + case LANG_EN: _answersFilename = _questionsFilename = "RUEAN.TXT"; - } else if (_vm->_globals->_language == LANG_SP) { + break; + case LANG_SP: _answersFilename = _questionsFilename = "RUEES.TXT"; + break; } _dialogueMesgId1 = READ_LE_INT16((uint16 *)_characterBuffer + 40); _paletteBufferIdx = 20 * READ_LE_INT16((uint16 *)_characterBuffer + 42) + 110; From ebc32defd51369b69187adf633f63cf12065e762 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sat, 9 Nov 2013 21:11:50 +0100 Subject: [PATCH 104/105] KYRA: Fix wrong check order --- engines/kyra/animator_lok.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/kyra/animator_lok.cpp b/engines/kyra/animator_lok.cpp index c246eebd46e1..945a51a4ec92 100644 --- a/engines/kyra/animator_lok.cpp +++ b/engines/kyra/animator_lok.cpp @@ -491,7 +491,7 @@ Animator_LoK::AnimObject *Animator_LoK::objectAddHead(AnimObject *queue, AnimObj } Animator_LoK::AnimObject *Animator_LoK::objectQueue(AnimObject *queue, AnimObject *add) { - if (add->drawY <= queue->drawY || !queue) { + if (!queue || add->drawY <= queue->drawY) { add->nextAnimObject = queue; return add; } From 4095ae1ba8e113a06924ec4c87383631c1fa5691 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 9 Nov 2013 22:14:36 +0100 Subject: [PATCH 105/105] MORTVIELLE: Add missing check on shouldQuit() (which fixes CID 1063228) --- engines/mortevielle/utils.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp index 0b13df239c3e..c4f2d5714b12 100644 --- a/engines/mortevielle/utils.cpp +++ b/engines/mortevielle/utils.cpp @@ -2933,7 +2933,9 @@ void MortevielleEngine::testKey(bool d) { do { _mouse.getMousePosition(x, y, click); - keyPressed(); + quest = keyPressed(); + if (quest && shouldQuit()) + return; } while (click); // Event loop