aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/scumm_v0.h
diff options
context:
space:
mode:
authorTravis Howell2009-07-25 06:27:41 +0000
committerTravis Howell2009-07-25 06:27:41 +0000
commitc02ad3b7bfe5813c9bd86672ead37110d21d9bb5 (patch)
tree28640b732810b3f603903ae42eb8fc99450b5f49 /engines/scumm/scumm_v0.h
parent41ef4938ac8cfcccba4d42c5e474a5a619d9db2b (diff)
downloadscummvm-rg350-c02ad3b7bfe5813c9bd86672ead37110d21d9bb5.tar.gz
scummvm-rg350-c02ad3b7bfe5813c9bd86672ead37110d21d9bb5.tar.bz2
scummvm-rg350-c02ad3b7bfe5813c9bd86672ead37110d21d9bb5.zip
Add patch #2821100 - MM C64 Objects / Verb fixes, with minor clean up applied.
svn-id: r42737
Diffstat (limited to 'engines/scumm/scumm_v0.h')
-rw-r--r--engines/scumm/scumm_v0.h30
1 files changed, 28 insertions, 2 deletions
diff --git a/engines/scumm/scumm_v0.h b/engines/scumm/scumm_v0.h
index ccca5df0d3..19260b6429 100644
--- a/engines/scumm/scumm_v0.h
+++ b/engines/scumm/scumm_v0.h
@@ -35,7 +35,20 @@ namespace Scumm {
*/
class ScummEngine_v0 : public ScummEngine_v2 {
protected:
- int _currentMode;
+ byte _currentMode;
+ bool _verbExecuting; // is a verb executing
+ bool _verbPickup; // are we picking up an object during a verb execute
+
+ int _activeActor; // Actor Number
+ int _activeObject2; // 2nd Object Number
+
+ bool _activeInvExecute; // is activeInventory first to be executed
+ bool _activeObject2Inv; // is activeobject2 in the inventory
+ bool _activeObjectObtained; // collected _activeobject?
+ bool _activeObject2Obtained; // collected _activeObject2?
+
+ int _activeObjectIndex;
+ int _activeObject2Index;
public:
ScummEngine_v0(OSystem *syst, const DetectorResult &dr);
@@ -53,12 +66,25 @@ protected:
virtual void processInput();
+ virtual void runObject(int obj, int entry);
virtual void saveOrLoad(Serializer *s);
+ // V0 MM Verb commands
+ int verbPrep(int object);
+ bool verbMove(int object, int objectIndex, bool invObject);
+ bool verbMoveToActor(int actor);
+ bool verbObtain(int object, int objIndex);
+ bool verbExecutes(int object, bool inventory = false);
+ bool verbExec();
+
+ int findObjectIndex(int x, int y);
+
virtual void checkExecVerbs();
virtual void handleMouseOver(bool updateInventory);
void resetVerbs();
void setNewKidVerbs();
+
+ void drawSentenceWord(int object, bool usePrep, bool objInInventory);
void drawSentence();
void switchActor(int slot);
@@ -68,7 +94,7 @@ protected:
virtual int getActiveObject();
- virtual void resetSentence();
+ virtual void resetSentence(bool walking = false);
/* Version C64 script opcodes */
void o_stopCurrentScript();