From 24740b30bd9d6cfd5ce420951a53b87a156ffbbf Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 17 Dec 2011 13:13:44 +1100 Subject: TSAGE: Disallow saving and loading via the GMM when a dialog is active --- engines/tsage/blue_force/blueforce_logic.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/tsage/blue_force/blueforce_logic.cpp') diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index 22299c1bf1..9888f4dd91 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -255,14 +255,16 @@ Scene *BlueForceGame::createScene(int sceneNumber) { * Returns true if it is currently okay to restore a game */ bool BlueForceGame::canLoadGameStateCurrently() { - return true; + // Don't allow a game to be loaded if a dialog is active + return g_globals->_gfxManagers.size() == 1; } /** * Returns true if it is currently okay to save the game */ bool BlueForceGame::canSaveGameStateCurrently() { - return true; + // Don't allow a game to be saved if a dialog is active + return g_globals->_gfxManagers.size() == 1; } void BlueForceGame::rightClick() { -- cgit v1.2.3 From 3e6e5bc0ce1d384d96b464377319ecae0a36222e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 17 Dec 2011 13:28:12 +1100 Subject: TSAGE: Bugfix to allow loading savegames in Blue Force directly from the launcher --- engines/tsage/blue_force/blueforce_logic.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'engines/tsage/blue_force/blueforce_logic.cpp') diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index 9888f4dd91..91cba43e1d 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -20,6 +20,7 @@ * */ +#include "common/config-manager.h" #include "tsage/blue_force/blueforce_logic.h" #include "tsage/blue_force/blueforce_dialogs.h" #include "tsage/blue_force/blueforce_scenes0.h" @@ -42,8 +43,25 @@ namespace TsAGE { namespace BlueForce { void BlueForceGame::start() { - // Start the game - g_globals->_sceneManager.changeScene(20); + int slot = -1; + + // Check for a savegame to load straight from the launcher + if (ConfMan.hasKey("save_slot")) { + slot = ConfMan.getInt("save_slot"); + Common::String file = g_vm->generateSaveName(slot); + Common::InSaveFile *in = g_vm->_system->getSavefileManager()->openForLoading(file); + if (in) + delete in; + else + slot = -1; + } + + if (slot >= 0) + // Set the savegame slot to load in the main loop + g_globals->_sceneHandler->_loadGameSlot = slot; + else + // Switch to the title screen + g_globals->_sceneManager.setNewScene(20); } Scene *BlueForceGame::createScene(int sceneNumber) { -- cgit v1.2.3 From 5c6e1f168ca9ce975cf1bd321d3dfcc75334751f Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 27 Dec 2011 20:13:50 +1100 Subject: TSAGE: Centralised all the setDetails methods in the various games This puts them all in the common SceneHotspot class, rather than each game having their own repeated implementations of them. --- engines/tsage/blue_force/blueforce_logic.cpp | 81 ---------------------------- 1 file changed, 81 deletions(-) (limited to 'engines/tsage/blue_force/blueforce_logic.cpp') diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index 91cba43e1d..eef48ad58e 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -553,35 +553,6 @@ bool NamedObject::startAction(CursorType action, Event &event) { return handled; } -void NamedObject::setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode, SceneItem *item) { - _resNum = resNum; - _lookLineNum = lookLineNum; - _talkLineNum = talkLineNum; - _useLineNum = useLineNum; - - switch (mode) { - case 2: - g_globals->_sceneItems.push_front(this); - break; - case 4: - g_globals->_sceneItems.addBefore(item, this); - break; - case 5: - g_globals->_sceneItems.addAfter(item, this); - break; - default: - g_globals->_sceneItems.push_back(this); - break; - } -} - -void NamedObject::setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum) { - _resNum = resNum; - _lookLineNum = lookLineNum; - _talkLineNum = talkLineNum; - _useLineNum = useLineNum; -} - /*--------------------------------------------------------------------------*/ CountdownObject::CountdownObject(): NamedObject() { @@ -1397,58 +1368,6 @@ bool NamedHotspot::startAction(CursorType action, Event &event) { } } -void NamedHotspot::setDetails(int ys, int xs, int ye, int xe, const int resnum, const int lookLineNum, const int useLineNum) { - setBounds(ys, xe, ye, xs); - _resNum = resnum; - _lookLineNum = lookLineNum; - _useLineNum = useLineNum; - _talkLineNum = -1; - g_globals->_sceneItems.addItems(this, NULL); -} - -void NamedHotspot::setDetails(const Rect &bounds, int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode, SceneItem *item) { - setBounds(bounds); - _resNum = resNum; - _lookLineNum = lookLineNum; - _talkLineNum = talkLineNum; - _useLineNum = useLineNum; - - switch (mode) { - case 2: - g_globals->_sceneItems.push_front(this); - break; - case 4: - g_globals->_sceneItems.addBefore(item, this); - break; - case 5: - g_globals->_sceneItems.addAfter(item, this); - break; - default: - g_globals->_sceneItems.push_back(this); - break; - } -} - -void NamedHotspot::setDetails(int sceneRegionId, int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode) { - _sceneRegionId = sceneRegionId; - _resNum = resNum; - _lookLineNum = lookLineNum; - _talkLineNum = talkLineNum; - _useLineNum = useLineNum; - - // Handle adding hotspot to scene items list as necessary - switch (mode) { - case 2: - GLOBALS._sceneItems.push_front(this); - break; - case 3: - break; - default: - GLOBALS._sceneItems.push_back(this); - break; - } -} - void NamedHotspot::synchronize(Serializer &s) { SceneHotspot::synchronize(s); s.syncAsSint16LE(_resNum); -- cgit v1.2.3 From 9279b25694f16a6166c7eaf677682caeeaed5d7e Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 25 Feb 2012 12:44:37 +0100 Subject: TSAGE: JANITORIAL: Remove trailing spaces --- engines/tsage/blue_force/blueforce_logic.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/tsage/blue_force/blueforce_logic.cpp') diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp index eef48ad58e..3aef18f4f0 100644 --- a/engines/tsage/blue_force/blueforce_logic.cpp +++ b/engines/tsage/blue_force/blueforce_logic.cpp @@ -733,7 +733,7 @@ void SceneExt::remove() { _action->_endHandler = NULL; _action->remove(); } - + _focusObject = NULL; } @@ -1326,7 +1326,7 @@ bool BlueForceInvObjectList::SelectItem(int objectNumber) { AmmoBeltDialog *dlg = new AmmoBeltDialog(); dlg->execute(); delete dlg; - + return true; } @@ -1408,7 +1408,7 @@ void SceneMessage::signal() { } void SceneMessage::process(Event &event) { - if ((event.eventType == EVENT_BUTTON_DOWN) || + if ((event.eventType == EVENT_BUTTON_DOWN) || ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode == Common::KEYCODE_RETURN))) { signal(); } @@ -1439,7 +1439,7 @@ void SceneMessage::draw() { void SceneMessage::clear() { // Fade out the text display - static const uint32 black = 0; + static const uint32 black = 0; BF_GLOBALS._scenePalette.fade((const byte *)&black, false, 100); // Refresh the background -- cgit v1.2.3