25 #ifndef PEGASUS_PEGASUS_H 26 #define PEGASUS_PEGASUS_H 28 #include "common/list.h" 30 #include "common/rect.h" 31 #include "common/scummsys.h" 32 #include "common/str-array.h" 33 #include "common/system.h" 34 #include "common/util.h" 36 #include "engines/engine.h" 38 #include "pegasus/graphics.h" 39 #include "pegasus/hotspot.h" 40 #include "pegasus/input.h" 41 #include "pegasus/notification.h" 42 #include "pegasus/timers.h" 43 #include "pegasus/items/autodragger.h" 44 #include "pegasus/items/inventory.h" 45 #include "pegasus/items/itemdragger.h" 46 #include "pegasus/neighborhood/neighborhood.h" 59 struct PegasusGameDescription;
99 bool isDVDDemo()
const;
100 bool isOldDemo()
const;
101 bool isWindows()
const;
102 bool isLinux()
const;
103 void addIdler(
Idler *idler);
104 void removeIdler(
Idler *idler);
105 void addTimeBase(
TimeBase *timeBase);
106 void removeTimeBase(
TimeBase *timeBase);
107 void delayShell(TimeValue time, TimeScale
scale);
108 void resetIntroTimer();
109 void introTimerExpired();
110 void refreshDisplay();
113 void checkCallBacks();
114 void createInterface();
115 void setGameMode(
const GameMode);
116 GameMode getGameMode()
const {
return _gameMode; }
118 uint getRandomNumber(uint max);
119 void shuffleArray(int32 *arr, int32 count);
121 HotspotList &getAllHotspots() {
return _allHotspots; }
124 void setLastEnergyValue(
const int32 value) { _savedEnergyValue = value; }
125 int32 getSavedEnergyValue() {
return _savedEnergyValue; }
128 Sound &getDeathSound() {
return _deathSound; }
129 void setEnergyDeathReason(
const DeathReason reason) { _deathReason = reason; }
130 DeathReason getEnergyDeathReason() {
return _deathReason; }
131 void resetEnergyDeathReason();
132 void die(
const DeathReason);
133 DeathReason getDeathReason() {
return _deathReason; }
134 void playEndMessage();
137 uint16 getSoundFXLevel() {
return _FXLevel; }
138 void setSoundFXLevel(uint16);
139 uint16 getAmbienceLevel() {
return _ambientLevel; }
140 void setAmbienceLevel(uint16);
143 ItemList &getAllItems() {
return _allItems; }
144 bool playerHasItem(
const Item *);
145 bool playerHasItemID(
const ItemID);
146 void checkFlashlight();
147 bool itemInLocation(
const ItemID,
const NeighborhoodID,
const RoomID,
const DirectionConstant);
152 bool itemInInventory(ItemID);
153 Inventory *getItemsInventory() {
return &_items; }
155 void removeAllItemsFromInventory();
157 uint32 countInventoryItems() {
return _items.getNumItems(); }
162 bool itemInBiochips(ItemID);
163 Inventory *getBiochipsInventory() {
return &_biochips; }
164 void removeAllItemsFromBiochips();
175 void requestToggle(
bool request =
true) { _toggleRequested = request; }
176 bool toggleRequested()
const {
return _toggleRequested; }
177 bool isChattyAI() {
return _chattyAI; }
178 void setChattyAI(
bool);
179 bool isChattyArthur() {
return _chattyArthur; }
180 void setChattyArthur(
bool);
184 void jumpToNewEnvironment(
const NeighborhoodID,
const RoomID,
const DirectionConstant);
185 NeighborhoodID getCurrentNeighborhoodID()
const;
188 void dragItem(
const Input &,
Item *, DragType);
189 bool isDragging()
const {
return _dragType != kDragNoDrag; }
190 DragType getDragType()
const {
return _dragType; }
191 Item *getDraggingItem()
const {
return _draggingItem; }
192 void dragTerminated(
const Input &);
194 void autoDragItemIntoInventory(
Item *,
Sprite*);
197 void makeContinuePoint();
198 bool swapSaveAllowed(
bool allow) {
199 bool old = _saveAllowed;
200 _saveAllowed = allow;
203 bool swapLoadAllowed(
bool allow) {
204 bool old = _loadAllowed;
205 _loadAllowed = allow;
208 void requestSave() { _saveRequested =
true; }
209 bool saveRequested()
const {
return _saveRequested; }
210 void requestLoad() { _loadRequested =
true; }
211 bool loadRequested()
const {
return _loadRequested; }
216 void pauseEngineIntern(
bool pause)
override;
219 void receiveNotification(
Notification *notification,
const NotificationFlags flags)
override;
221 void handleInput(
const Input &input,
const Hotspot *cursorSpot)
override;
222 bool isClickInput(
const Input &,
const Hotspot *)
override;
223 InputBits getClickFilter()
override;
225 void clickInHotspot(
const Input &,
const Hotspot *)
override;
226 void activateHotspots(
void)
override;
229 bool wantsCursor()
override;
234 void stopIntroTimer();
235 bool detectOpeningClosingDirectory();
246 void createItem(ItemID itemID, NeighborhoodID neighborhoodID, RoomID roomID, DirectionConstant direction);
249 ItemID _currentItemID;
250 ItemID _currentBiochipID;
251 void destroyInventoryItem(
const ItemID itemID);
252 ItemID pickItemToDestroy();
260 void loadFromContinuePoint();
263 bool _saveAllowed, _loadAllowed;
267 bool _saveRequested, _loadRequested;
275 void throwAwayEverything();
276 void shellGameInput(
const Input &input,
const Hotspot *cursorSpot);
279 uint getNeighborhoodCD(
const NeighborhoodID neighborhood)
const;
281 InputBits getInputFilter()
override;
285 void doGameMenuCommand(
const GameMenuCommand);
286 void doInterfaceOverview();
288 void pauseMenu(
bool menuUp);
290 bool _heardOverviewVoice;
293 int32 _savedEnergyValue;
296 DeathReason _deathReason;
301 bool _toggleRequested;
308 void performJump(NeighborhoodID start);
310 void startNeighborhood();
314 uint16 _ambientLevel;
319 bool _switchModesSync;
320 void switchGameMode(
const GameMode,
const GameMode);
321 bool canSwitchGameMode(
const GameMode,
const GameMode);
331 void toggleInventoryDisplay();
332 void toggleBiochipDisplay();
333 void raiseInventoryDrawer();
334 void raiseBiochipDrawer();
335 void lowerInventoryDrawer();
336 void lowerBiochipDrawer();
337 void raiseInventoryDrawerSync();
338 void raiseBiochipDrawerSync();
339 void lowerInventoryDrawerSync();
340 void lowerBiochipDrawerSync();
341 void showInfoScreen();
342 void hideInfoScreen();
344 Movie _bigInfoMovie, _smallInfoMovie;
Definition: macresman.h:125
Definition: neighborhood.h:111
EngineFeature
Definition: engine.h:253
Definition: itemlist.h:41
Definition: graphics.h:44
Definition: elements.h:168
Definition: autodragger.h:34
Definition: elements.h:226
Definition: itemdragger.h:72
Graphics::Surface * scale(const Graphics::Surface &srcImage, int xSize, int ySize)
Definition: atari-cursor.h:38
Definition: video_decoder.h:53
Definition: inventory.h:41
Definition: algorithm.h:29
Definition: notification.h:53
Definition: biochipitem.h:32
Definition: graphics.h:37
Definition: detection.h:29
Definition: hotspot.h:119
Definition: notification.h:103
Definition: avi_frames.h:36
Definition: ai_action.h:33
Definition: inventoryitem.h:39