33 #include "common/system.h" 34 #include "common/random.h" 35 #include "common/rect.h" 36 #include "common/savefile.h" 37 #include "engines/engine.h" 38 #include "engines/savestate.h" 40 #include "lab/console.h" 41 #include "lab/image.h" 42 #include "lab/labsets.h" 43 #include "lab/detection.h" 81 uint16 _crumbDirection;
84 #define MAX_CRUMBS 128 136 kActionFocusOnNextInteractiveItem,
144 kActionDropBreadcrumb,
145 kActionFollowBreadcrumbs,
146 kActionRunWhileFollowingBreadcrumbs,
150 kActionQuitDialogYes,
154 kActionJournalForward,
162 bool _isCrumbWaiting;
171 int _lastWaitTOFTicks;
174 uint16 _highPalette[20];
178 uint16 _monitorButtonHeight;
180 uint32 _extraGameFeatures;
189 ButtonList _journalButtonList;
190 ButtonList _mapButtonList;
191 Image *_imgMap, *_imgRoom, *_imgUpArrowRoom, *_imgDownArrowRoom, *_imgBridge;
192 Image *_imgHRoom, *_imgVRoom, *_imgMaze, *_imgHugeMaze, *_imgPath;
196 Image *_monitorButton;
197 Image *_journalBackImage;
203 bool _droppingCrumbs;
204 bool _followingCrumbs;
205 bool _followCrumbsFast;
206 bool _isCrumbTurning;
211 uint16 _highestCondition;
216 uint32 _crumbTimestamp;
225 ButtonList _invButtonList;
226 ButtonList _moveButtonList;
227 Image *_invImages[10];
228 Image *_moveImages[20];
229 LargeSet *_conditions, *_roomsFound;
246 uint32 getFeatures()
const;
250 void changeVolume(
int delta);
251 uint16 getDirection() {
return _direction; }
257 uint16 getQuarters();
258 void setQuarters(uint16 quarters);
267 bool isMainDisplay()
const {
return _mainDisplay; }
278 void decIncInv(uint16 *CurInv,
bool dec);
283 void doActions(
const ActionList &actionList);
288 bool doActionRule(
Common::Point pos, int16 action, int16 roomNum);
293 bool doActionRuleSub(int16 action, int16 roomNum,
const CloseData *closePtr,
bool allowDefaults);
298 void handleMonitorCloseup();
333 bool doOperateRuleSub(int16 itemNum, int16 roomNum,
const CloseData *closePtr,
bool allowDefaults);
343 bool doTurn(uint16 from, uint16 to);
348 bool doUse(uint16 curInv);
359 void drawDirection(
const CloseData *closePtr);
364 void drawJournal(uint16 wipenum,
bool needFade);
369 void drawJournalText();
374 void drawMap(uint16 curRoom, uint16 curMsg, uint16 floorNum,
bool fadeIn);
379 void drawMonText(
const char *text,
TextFont *monitorFont,
Common::Rect textRect,
bool isinteractive);
384 void drawRoomMap(uint16 curRoom,
bool drawMarkFl);
389 void drawRoomMessage(uint16 curInv,
const CloseData *closePtr);
390 void drawStaticMessage(byte index);
403 const CloseData *findClosePtrMatch(
const CloseData *closePtr,
const CloseDataList &list);
408 bool floorVisited(uint16 floorNum);
413 MainButton followCrumbs();
416 bool processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier,
Common::Point tmpPos,
417 uint16 &curInv,
IntuiMessage *curMsg,
bool &forceDraw, uint16 buttonId, uint16 &actionMode);
428 uint16 getLowerFloor(uint16 floorNum);
439 uint16 getUpperFloor(uint16 floorNum);
444 ViewData *getViewData(uint16 roomNum, uint16 direction);
459 void loadJournalData();
470 void showLab2Teaser();
475 void perFlipButton(uint16 buttonId);
480 uint16 processArrow(uint16 curDirection, uint16 arrow);
485 void processJournal();
490 void processMap(uint16 curRoom);
501 bool saveRestoreGame();
506 void setCurrentClose(
Common::Point pos,
const CloseData **closePtrList,
bool useAbsoluteCoords,
bool next=
false);
516 void turnPage(
bool fromLeft);
517 bool processKey(
IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier,
Common::Point &curPos, uint16 &curInv,
bool &forceDraw, uint16 code);
518 void processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDirection,
bool &forceDraw, uint16 buttonId, uint16 &actionMode);
519 void processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonId, uint16 &actionMode);
520 void performAction(uint16 actionMode,
Common::Point curPos, uint16 &curInv);
530 bool loadGame(
int slot);
533 void handleTrialWarning();
EngineFeature
Definition: engine.h:260
Definition: interface.h:49
Definition: savefile.h:54
Definition: speciallocks.h:39
Definition: advancedDetector.h:164
Definition: processroom.h:145
Definition: savestate.h:56
Definition: processroom.h:175
Definition: eventman.h:40
Definition: processroom.h:181
Definition: processroom.h:136
bool skipThumbnail(Common::SeekableReadStream &in)
Definition: eventman.h:47
Definition: processroom.h:167
Definition: resource.h:94
Definition: movie_decoder.h:32