aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cge/snail.cpp15
-rw-r--r--engines/tsage/blue_force/blueforce_logic.cpp17
2 files changed, 31 insertions, 1 deletions
diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp
index 34adeb3a8e..966a372be4 100644
--- a/engines/cge/snail.cpp
+++ b/engines/cge/snail.cpp
@@ -613,15 +613,23 @@ int CGEEngine::findPocket(Sprite *spr) {
return -1;
}
+/**
+ * Check if an item is in the inventory, and returns its position
+ * @param Inventory slot number Sprite pointer
+ */
void CGEEngine::selectPocket(int n) {
debugC(1, kCGEDebugEngine, "CGEEngine::selectPocket(%d)", n);
if (n < 0 || (_pocLight->_seqPtr && _pocPtr == n)) {
+ // If no slot specified, or another slot already selected
+ // stop the blinking animation
_pocLight->step(0);
n = findPocket(NULL);
if (n >= 0)
_pocPtr = n;
} else {
+ // If slot specified, check if the slot if used.
+ // Is so, start the blinking animation
if (_pocket[n] != NULL) {
_pocPtr = n;
_pocLight->step(1);
@@ -630,13 +638,18 @@ void CGEEngine::selectPocket(int n) {
_pocLight->gotoxy(kPocketX + _pocPtr * kPocketDX + kPocketSX, kPocketY + kPocketSY);
}
+/**
+ * Logic used when all the inventory slots are full and the user tries to pick
+ * another object.
+ * @param Inventory slot number Sprite pointer
+ */
void CGEEngine::pocFul() {
debugC(1, kCGEDebugEngine, "CGEEngine::pocFul()");
_hero->park();
_commandHandler->addCommand(kCmdWait, -1, -1, _hero);
_commandHandler->addCommand(kCmdSeq, -1, kSeqPocketFull, _hero);
- _commandHandler->addCommand(kCmdSound, -1, 2, _hero);
+ _commandHandler->addCommand(kCmdSound, -1, 2, _hero); // Play the 'hum-hum" sound (fx00002)
_commandHandler->addCommand(kCmdWait, -1, -1, _hero);
_commandHandler->addCommand(kCmdSay, 1, kPocketFull, _hero);
}
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 6f8d68566e..b5465e7c40 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -908,6 +908,23 @@ void SceneHandlerExt::process(Event &event) {
return;
}
+ // If the user clicks the button whislt the introduction is active, prompt for playing the game
+ if ((BF_GLOBALS._dayNumber == 0) && (event.eventType == EVENT_BUTTON_DOWN)) {
+ // Prompt user for whether to start play or watch introduction
+ BF_GLOBALS._player.enableControl();
+ BF_GLOBALS._events.setCursor(CURSOR_WALK);
+
+ if (MessageDialog::show2(WATCH_INTRO_MSG, START_PLAY_BTN_STRING, INTRODUCTION_BTN_STRING) == 0) {
+ // Start the game
+ BF_GLOBALS._dayNumber = 1;
+ BF_GLOBALS._sceneManager.changeScene(190);
+ } else {
+ BF_GLOBALS._player.disableControl();
+ }
+
+ event.handled = true;
+ }
+
SceneHandler::process(event);
}