22 #ifndef HARVESTER_INTERACTION_H 23 #define HARVESTER_INTERACTION_H 25 #include "common/error.h" 26 #include "harvester/bitmap.h" 27 #include "harvester/scene/room_support.h" 28 #include "harvester/saveload.h" 33 class HarvesterEngine;
34 class InventorySystem;
39 struct RoomPlayerState;
41 extern const char *
const kExitCloseupPendingRoomChange;
47 virtual bool refreshCurrentScene(
bool preservePlayerPlacement) = 0;
48 virtual bool applyCurrentRoomRuntimeMutationsInPlace(
bool preservePaletteState) = 0;
50 virtual bool captureDialogueBackdrop(
IndexedBitmap &dialogueBackdrop) = 0;
53 virtual Common::Error applyLightingCommand(StartupLightingCommand lightingCommand) = 0;
54 virtual void applyPlayerGotoXZ(
int x,
int z) = 0;
56 virtual void resetIdleState() = 0;
57 virtual void notePlayerActivity() = 0;
58 virtual void stopPlayerRegionInteraction() = 0;
59 virtual void startPlayerDefeatSequence(
const char *reason,
const Common::String &sourceName,
68 const Common::String &getCarriedRoomItemLabel()
const {
return _carriedRoomItemLabel; }
69 const IndexedBitmap &getCarriedRoomItemBitmap()
const {
return _carriedRoomItemBitmap; }
70 bool hasCarriedRoomItem()
const;
71 bool hasSelectedItem()
const;
73 void clearSelectedItem();
74 void hideCarriedRoomItem();
75 bool stowCarriedRoomItemToInventory();
77 Interaction &interactionProcessor,
bool &needsRedraw);
84 void clearCarriedRoomItem();
86 bool shouldCancelDeniedPickup(
const InteractionResult &interaction,
bool didTransition)
const;
108 Common::String &pendingRoomChange,
bool &pendingRoomChangeIsRoomName,
109 bool &pendingRoomChangeUsesSavedRoomState,
SaveRoomState &pendingRoomChangeSavedRoomState,
117 int getPendingRegionFacing()
const;
119 bool hasPendingMainMenuReturn()
const;
122 bool &didTransition,
const Common::String &usedItemName,
bool interruptPlayerMovement =
true);
127 void preparePlayerForInteraction(
const RoomPlayerState &playerState,
bool interruptPlayerMovement);
132 bool discChanged,
bool &didTransition);
140 bool interruptPlayerMovement);
148 bool &_pendingRoomChangeIsRoomName;
149 bool &_pendingRoomChangeUsesSavedRoomState;
151 bool _canExitCloseupToParent;
159 #endif // HARVESTER_INTERACTION_H
Definition: saveload.h:29
Definition: room_support.h:46
Definition: interaction.h:43
Definition: inventory.h:54
Definition: scene_entities.h:31
Definition: interaction.h:104
Definition: interaction.h:63
Definition: harvester.h:47