aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/illusions_duckman.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/illusions/illusions_duckman.h')
-rw-r--r--engines/illusions/illusions_duckman.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/engines/illusions/illusions_duckman.h b/engines/illusions/illusions_duckman.h
index 7213e21fda..56e6b47a86 100644
--- a/engines/illusions/illusions_duckman.h
+++ b/engines/illusions/illusions_duckman.h
@@ -56,6 +56,21 @@ struct DialogItem {
uint32 _sequenceId;
};
+struct DMInventorySlot {
+ Common::Point _position;
+ uint32 _objectId;
+ DMInventorySlot() : _objectId(0) {}
+ DMInventorySlot(int16 x, int16 y) : _objectId(0), _position(x, y) {}
+};
+
+struct DMInventoryItem {
+ uint32 _objectId;
+ uint32 _propertyId;
+ DMInventoryItem() : _objectId(0) {}
+ DMInventoryItem(uint32 objectId, uint32 propertyId)
+ : _objectId(objectId), _propertyId(propertyId) {}
+};
+
struct OpCall;
typedef Common::Functor1<OpCall&, void> SpecialCodeFunction;
@@ -86,8 +101,13 @@ public:
uint32 _activeScenes[6];
Cursor_Duckman _cursor;
+
Common::Array<DialogItem> _dialogItems;
+ int _savedInventoryActorIndex;
+ Common::Array<DMInventorySlot> _inventorySlots;
+ Common::Array<DMInventoryItem> _inventoyItems;
+
SpecialCodeMap _specialCodeMap;
void setDefaultTextCoords();
@@ -114,6 +134,7 @@ public:
void enableCursorVerb(int verbNum);
void disableCursorVerb(int verbNum);
void setCursorHandMode(int mode);
+ void setCursorInventoryMode(int mode, int value);
void startCursorHoldingObject(uint32 objectId, uint32 sequenceId);
void stopCursorHoldingObject();
void cursorControlRoutine(Control *control, uint32 deltaTime);
@@ -162,10 +183,19 @@ public:
void startDialog(int16 *choiceOfsPtr, uint32 actorTypeId, uint32 callerThreadId);
void updateDialogState();
+ void initInventory();
+ void openInventory();
+ DMInventorySlot *findInventorySlot(uint32 objectId);
+ DMInventoryItem *findInventoryItem(uint32 objectId);
+ void addInventoryItem(uint32 objectId);
+
// Special code
void initSpecialCode();
void runSpecialCode(uint32 specialCodeId, OpCall &opCall);
void spcSetCursorHandMode(OpCall &opCall);
+ void spcOpenInventory(OpCall &opCall);
+ void spcSetCursorInventoryMode(OpCall &opCall);
+ void spcUpdateObject272Sequence(OpCall &opCall);
};