25 #include "common/array.h" 26 #include "common/serializer.h" 28 #include "dgds/dialog.h" 29 #include "dgds/head.h" 30 #include "dgds/dgds_rect.h" 31 #include "dgds/minigames/shell_game.h" 32 #include "dgds/scene_condition.h" 33 #include "dgds/scene_op.h" 37 class ResourceManager;
53 uint16 _objInteractionRectNum;
74 kItemStateDragging = 1,
75 kItemStateWasInInv = 0x10000,
95 MouseCursor(uint16 hotX, uint16 hotY) : _hot(hotX, hotY) {}
108 ObjectInteraction(uint16 dropped, uint16 target) : _droppedItemNum(dropped), _targetItemNum(target) {}
112 bool matches(uint16 droppedItemNum, uint16 targetItemNum)
const {
113 return (_droppedItemNum == 0xFFFF || _droppedItemNum == droppedItemNum)
114 && _targetItemNum == targetItemNum;
120 uint16 _droppedItemNum;
121 uint16 _targetItemNum;
127 SceneTrigger(uint16 num) : _num(num), _enabled(
false), _timesToCheckBeforeRunning(0), _checksUntilRun(0) {}
133 uint16 _timesToCheckBeforeRunning;
134 uint16 _checksUntilRun;
136 uint16 getNum()
const {
return _num; }
147 PerSceneGlobal(uint16 num, uint16 scene) : _num(num), _sceneNo(scene), _val(0) {}
150 bool matches(uint16 num, uint16 scene)
const {
return num == _num && (_sceneNo == 0 || _sceneNo == scene); }
151 bool numMatches(uint16 num)
const {
return num == _num; }
173 bool isVersionOver(
const char *version)
const;
174 bool isVersionUnder(
const char *version)
const;
176 uint32 getMagic()
const {
return _magic; }
179 bool runPreTickOps() {
return runOps(_preTickOps); }
180 bool runPostTickOps() {
return runOps(_postTickOps); }
226 void runStartGameOps() { runOps(_startGameOps); }
227 void runQuitGameOps() { runOps(_quitGameOps); }
228 void runChangeSceneOps() { runOps(_onChangeSceneOps); }
230 int16 getGlobal(uint16 num)
const;
231 int16 setGlobal(uint16 num, int16 val);
236 int countItemsInInventory()
const;
242 void initIconSizes();
245 int16 getDefaultMouseCursor()
const {
return _defaultMouseCursor; }
246 int16 getDefaultMouseCursor2()
const {
return _defaultMouseCursor2; }
247 int16 getOtherDefaultMouseCursor()
const {
return _defaultOtherMouseCursor; }
248 uint16 getInvIconNum()
const {
return _invIconNum; }
249 int16 getInvIconMouseCursor()
const {
return _invIconMouseCursor; }
263 int16 _defaultMouseCursor;
264 int16 _defaultMouseCursor2;
266 int16 _invIconMouseCursor;
267 int16 _defaultOtherMouseCursor;
279 void runEnterSceneOps() { runOps(_enterSceneOps); }
280 void runLeaveSceneOps() { runOps(_leaveSceneOps); }
281 void checkTriggers();
283 int getNum()
const {
return _num; }
286 bool checkDialogActive();
289 bool checkForClearedDialogs();
297 void addInvButtonToHotAreaList();
298 void removeInvButtonFromHotAreaList();
302 const GameItem *getDragItem()
const {
return _dragItem; }
303 GameItem *getDragItem() {
return _dragItem; }
304 void setDragItem(
GameItem *item) { _dragItem = item; }
309 bool hasVisibleDialog();
310 bool hasVisibleOrOpeningDialog()
const;
315 void enableTrigger(uint16 sceneNum, uint16 num,
bool enable =
true);
317 void loadDialogData(uint16 num);
318 void freeDialogData(uint16 num);
319 bool loadTalkData(uint16 num);
320 bool freeTalkData(uint16 num);
321 void clearVisibleTalkers();
322 bool loadTalkDataAndSetFlags(uint16 talknum, uint16 headnum);
324 bool hasVisibleHead()
const;
327 void addAndShowTiredDialog();
331 void activateChoice();
332 bool isTriggerEnabled(uint16 num);
333 bool isLButtonDown()
const {
return _lbuttonDown; }
334 bool isRButtonDown()
const {
return _rbuttonDown; }
335 void showDialog(uint16 fileNum, uint16 dlgNum);
337 void updateHotAreasFromDynamicRects();
338 void setDynamicSceneRect(int16 num, int16 x, int16 y, int16 width, int16 height);
339 void setSceneNum(int16 num) { _num = num; }
341 void setIgnoreMouseUp() { _ignoreMouseUp =
true; }
342 void setShouldClearDlg() { _shouldClearDlg =
true; }
348 Dialog *getVisibleDialog();
350 void leftButtonAction(
const HotArea *area);
355 void doLook(
const HotArea *area);
383 bool _shouldClearDlg;
387 bool _lbuttonDownWithDrag;
390 int _mouseDownCounter;
395 static bool _dlgWithFlagLo8IsClosing;
396 static DialogFlags _sceneDialogFlags;
401 #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:48