diff options
Diffstat (limited to 'engines/scumm/scumm_v0.h')
-rw-r--r-- | engines/scumm/scumm_v0.h | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/engines/scumm/scumm_v0.h b/engines/scumm/scumm_v0.h index af481df0e0..d9629948fe 100644 --- a/engines/scumm/scumm_v0.h +++ b/engines/scumm/scumm_v0.h @@ -32,21 +32,26 @@ namespace Scumm { */ class ScummEngine_v0 : public ScummEngine_v2 { protected: + enum ObjectType { + kObjectTypeInventory = 0, + kObjectTypeRoom = 1, + kObjectTypeActor = 2 + }; + +protected: 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 _activeVerb; + int _activeObject; // 1st Object Number + int _activeObjectType; // 1st Object Type (0: inventory, 1: room) int _activeObject2; // 2nd Object Number + int _activeObject2Type; // 2nd Object Type (0: inventory, 1: room, 2: actor) - 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); @@ -68,21 +73,21 @@ protected: virtual void saveOrLoad(Serializer *s); // V0 MM Verb commands - int verbPrep(int object); - bool verbMove(int object, int objectIndex, bool invObject); + int verbPrep(); + bool verbMove(int object, bool invObject); bool verbMoveToActor(int actor); - bool verbObtain(int object, int objIndex); + bool verbObtain(int object, int objType); 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); + const byte *getObjectName(int object, int type); + + void drawSentenceObject(int object, int type); void drawSentence(); void switchActor(int slot); @@ -96,6 +101,10 @@ protected: virtual bool areBoxesNeighbors(int box1nr, int box2nr); + virtual void setActiveInventory(int object); + + bool ifEqualActiveObject2Common(bool ignoreType); + /* Version C64 script opcodes */ void o_stopCurrentScript(); void o_loadSound(); @@ -123,8 +132,8 @@ protected: void o_getBitVar(); void o_setBitVar(); void o_doSentence(); - void o_unknown2(); - void o_ifActiveObject(); + void o_ifEqualActiveObject2(); + void o_ifNotEqualActiveObject2(); void o_getClosestObjActor(); void o_printEgo_c64(); void o_print_c64(); |