25 #include "common/stream.h" 26 #include "common/array.h" 27 #include "common/serializer.h" 29 #include "dgds/dialog.h" 30 #include "dgds/head.h" 31 #include "dgds/dgds_rect.h" 32 #include "dgds/minigames/shell_game.h" 33 #include "dgds/scene_condition.h" 34 #include "dgds/scene_op.h" 38 class ResourceManager;
54 uint16 _objInteractionRectNum;
75 kItemStateDragging = 1,
76 kItemStateWasInInv = 0x10000,
96 MouseCursor(uint16 hotX, uint16 hotY) : _hot(hotX, hotY) {}
109 ObjectInteraction(uint16 dropped, uint16 target) : _droppedItemNum(dropped), _targetItemNum(target) {}
113 bool matches(uint16 droppedItemNum, uint16 targetItemNum)
const {
114 return (_droppedItemNum == 0xFFFF || _droppedItemNum == droppedItemNum)
115 && _targetItemNum == targetItemNum;
121 uint16 _droppedItemNum;
122 uint16 _targetItemNum;
128 SceneTrigger(uint16 num) : _num(num), _enabled(
false), _timesToCheckBeforeRunning(0), _checksUntilRun(0) {}
134 uint16 _timesToCheckBeforeRunning;
135 uint16 _checksUntilRun;
137 uint16 getNum()
const {
return _num; }
148 PerSceneGlobal(uint16 num, uint16 scene) : _num(num), _sceneNo(scene), _val(0) {}
151 bool matches(uint16 num, uint16 scene)
const {
return num == _num && (_sceneNo == 0 || _sceneNo == scene); }
152 bool numMatches(uint16 num)
const {
return num == _num; }
174 bool isVersionOver(
const char *version)
const;
175 bool isVersionUnder(
const char *version)
const;
177 uint32 getMagic()
const {
return _magic; }
180 bool runPreTickOps() {
return runOps(_preTickOps); }
181 bool runPostTickOps() {
return runOps(_postTickOps); }
227 void runStartGameOps() { runOps(_startGameOps); }
228 void runQuitGameOps() { runOps(_quitGameOps); }
229 void runChangeSceneOps() { runOps(_onChangeSceneOps); }
231 int16 getGlobal(uint16 num)
const;
232 int16 setGlobal(uint16 num, int16 val);
237 int countItemsInInventory()
const;
243 void initIconSizes();
246 int16 getDefaultMouseCursor()
const {
return _defaultMouseCursor; }
247 int16 getDefaultMouseCursor2()
const {
return _defaultMouseCursor2; }
248 int16 getOtherDefaultMouseCursor()
const {
return _defaultOtherMouseCursor; }
249 uint16 getInvIconNum()
const {
return _invIconNum; }
250 int16 getInvIconMouseCursor()
const {
return _invIconMouseCursor; }
264 int16 _defaultMouseCursor;
265 int16 _defaultMouseCursor2;
267 int16 _invIconMouseCursor;
268 int16 _defaultOtherMouseCursor;
280 void runEnterSceneOps() { runOps(_enterSceneOps); }
281 void runLeaveSceneOps() { runOps(_leaveSceneOps); }
282 void checkTriggers();
284 int getNum()
const {
return _num; }
287 bool checkDialogActive();
290 bool checkForClearedDialogs();
298 void addInvButtonToHotAreaList();
299 void removeInvButtonFromHotAreaList();
303 const GameItem *getDragItem()
const {
return _dragItem; }
304 GameItem *getDragItem() {
return _dragItem; }
305 void setDragItem(
GameItem *item) { _dragItem = item; }
310 bool hasVisibleDialog();
311 bool hasVisibleOrOpeningDialog()
const;
316 void enableTrigger(uint16 sceneNum, uint16 num,
bool enable =
true);
318 void loadDialogData(uint16 num);
319 void freeDialogData(uint16 num);
320 bool loadTalkData(uint16 num);
321 bool freeTalkData(uint16 num);
322 void clearVisibleTalkers();
323 bool loadTalkDataAndSetFlags(uint16 talknum, uint16 headnum);
325 bool hasVisibleHead()
const;
328 void addAndShowTiredDialog();
332 void activateChoice();
333 bool isTriggerEnabled(uint16 num);
334 bool isLButtonDown()
const {
return _lbuttonDown; }
335 bool isRButtonDown()
const {
return _rbuttonDown; }
336 void showDialog(uint16 fileNum, uint16 dlgNum);
338 void updateHotAreasFromDynamicRects();
339 void setDynamicSceneRect(int16 num, int16 x, int16 y, int16 width, int16 height);
340 void setSceneNum(int16 num) { _num = num; }
342 void setIgnoreMouseUp() { _ignoreMouseUp =
true; }
343 void setShouldClearDlg() { _shouldClearDlg =
true; }
349 Dialog *getVisibleDialog();
375 bool _shouldClearDlg;
379 bool _lbuttonDownWithDrag;
384 static bool _dlgWithFlagLo8IsClosing;
385 static DialogFlags _sceneDialogFlags;
390 #endif // DGDS_SCENE_H Definition: managed_surface.h:51
Definition: serializer.h:79
Definition: dgds_rect.h:32
Definition: decompress.h:67
Definition: resource.h:49