[Scummvm-cvs-logs] SF.net SVN: scummvm:[40910] scummvm/trunk/engines/sci/engine

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Tue May 26 13:33:18 CEST 2009


Revision: 40910
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40910&view=rev
Author:   fingolfin
Date:     2009-05-26 11:33:18 +0000 (Tue, 26 May 2009)

Log Message:
-----------
SCI: Turned the global 'static MessageState state' variable into a member of EngineState

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kstring.cpp
    scummvm/trunk/engines/sci/engine/savegame.cpp
    scummvm/trunk/engines/sci/engine/state.h

Modified: scummvm/trunk/engines/sci/engine/kstring.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kstring.cpp	2009-05-26 11:31:45 UTC (rev 40909)
+++ scummvm/trunk/engines/sci/engine/kstring.cpp	2009-05-26 11:33:18 UTC (rev 40910)
@@ -663,8 +663,6 @@
 
 #define DUMMY_MESSAGE "Message not found!"
 
-static MessageState state;	// FIXME: Avoid static vars
-
 enum kMessageFunc {
 	K_MESSAGE_GET,
 	K_MESSAGE_NEXT,
@@ -710,8 +708,8 @@
 		reg_t retval;
 
 		if (func == K_MESSAGE_GET) {
-			state.loadRes(s->resmgr, UKPV(1), true);
-			state.findTuple(tuple);
+			s->_msgState.loadRes(s->resmgr, UKPV(1), true);
+			s->_msgState.findTuple(tuple);
 
 			if (isGetMessage)
 				bufferReg = (argc == 4 ? argv[3] : NULL_REG);
@@ -721,12 +719,12 @@
 			bufferReg = (argc == 2 ? argv[1] : NULL_REG);
 		}
 
-		if (state.getMessage()) {
-			str = state.getText();
+		if (s->_msgState.getMessage()) {
+			str = s->_msgState.getText();
 			if (isGetMessage)
 				retval = bufferReg;
 			else
-				retval = make_reg(0, state.getTalker());
+				retval = make_reg(0, s->_msgState.getTalker());
 		} else {
 			str = DUMMY_MESSAGE;
 			retval = NULL_REG;
@@ -747,7 +745,7 @@
 					*buffer = 0;
 			}
 
-			state.gotoNext();
+			s->_msgState.gotoNext();
 		}
 
 		return retval;
@@ -780,8 +778,8 @@
 		return NULL_REG;
 	}
 	case K_MESSAGE_LASTMESSAGE: {
-		MessageTuple msg = state.getLastTuple();
-		int module = state.getLastModule();
+		MessageTuple msg = s->_msgState.getLastTuple();
+		int module = s->_msgState.getLastModule();
 		byte *buffer = kernel_dereference_bulk_pointer(s, argv[1], 10);
 
 		if (buffer) {

Modified: scummvm/trunk/engines/sci/engine/savegame.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/savegame.cpp	2009-05-26 11:31:45 UTC (rev 40909)
+++ scummvm/trunk/engines/sci/engine/savegame.cpp	2009-05-26 11:33:18 UTC (rev 40910)
@@ -858,6 +858,9 @@
 	retval->sound.debug = s->sound.debug;
 	reconstruct_sounds(retval);
 
+	// Message state:
+	retval->_msgState = s->_msgState;
+
 	return retval;
 }
 

Modified: scummvm/trunk/engines/sci/engine/state.h
===================================================================
--- scummvm/trunk/engines/sci/engine/state.h	2009-05-26 11:31:45 UTC (rev 40909)
+++ scummvm/trunk/engines/sci/engine/state.h	2009-05-26 11:33:18 UTC (rev 40910)
@@ -39,6 +39,7 @@
 #include "sci/vocabulary.h"
 #include "sci/resource.h"
 #include "sci/engine/kernel.h"	// for kfunct_sig_pair_t
+#include "sci/engine/message.h"		// for MessageState
 #include "sci/engine/script.h"
 #include "sci/engine/seg_manager.h"
 #include "sci/gfx/gfx_system.h"
@@ -263,6 +264,8 @@
 
 	selector_map_t selector_map; /**< Shortcut list for important selectors */
 
+	MessageState _msgState;
+
 	EngineState *successor; /**< Successor of this state: Used for restoring */
 };
 


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