[Scummvm-cvs-logs] SF.net SVN: scummvm: [30049] scummvm/branches/branch-0-11-0/engines/lure
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Fri Dec 28 12:29:47 CET 2007
Revision: 30049
http://scummvm.svn.sourceforge.net/scummvm/?rev=30049&view=rev
Author: dreammaster
Date: 2007-12-28 03:29:47 -0800 (Fri, 28 Dec 2007)
Log Message:
-----------
Fix to prevent the F5 key allowing the game to be saved during player conversations or viewing a remote room
Modified Paths:
--------------
scummvm/branches/branch-0-11-0/engines/lure/game.cpp
scummvm/branches/branch-0-11-0/engines/lure/game.h
Modified: scummvm/branches/branch-0-11-0/engines/lure/game.cpp
===================================================================
--- scummvm/branches/branch-0-11-0/engines/lure/game.cpp 2007-12-28 11:07:35 UTC (rev 30048)
+++ scummvm/branches/branch-0-11-0/engines/lure/game.cpp 2007-12-28 11:29:47 UTC (rev 30049)
@@ -193,7 +193,8 @@
bool handled = true;
switch (events.event().kbd.keycode) {
case Common::KEYCODE_F5:
- SaveRestoreDialog::show(true);
+ if (isMenuAvailable())
+ SaveRestoreDialog::show(true);
break;
case Common::KEYCODE_F7:
@@ -1015,6 +1016,21 @@
return result;
}
+bool Game::isMenuAvailable() {
+ Resources &res = Resources::getReference();
+ Room &room = Room::getReference();
+ uint16 oldRoomNumber = res.fieldList().getField(OLD_ROOM_NUMBER);
+
+ if (oldRoomNumber != 0)
+ // Viewing a room remotely - so the menu isn't available
+ return false;
+
+ else if ((room.cursorState() == CS_TALKING) || (res.getTalkState() != TALK_NONE))
+ return false;
+
+ return true;
+}
+
void Game::saveToStream(WriteStream *stream) {
stream->writeByte(_fastTextFlag);
stream->writeByte(_soundFlag);
Modified: scummvm/branches/branch-0-11-0/engines/lure/game.h
===================================================================
--- scummvm/branches/branch-0-11-0/engines/lure/game.h 2007-12-28 11:07:35 UTC (rev 30048)
+++ scummvm/branches/branch-0-11-0/engines/lure/game.h 2007-12-28 11:29:47 UTC (rev 30049)
@@ -66,6 +66,7 @@
void displayBarrelAnimation();
void handleBootParam(int value);
bool getYN();
+ bool isMenuAvailable();
public:
Game();
virtual ~Game();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list