[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