[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