22#ifndef NANCY_ACTION_ACTIONRECORD_H
23#define NANCY_ACTION_ACTIONRECORD_H
25#include "engines/nancy/time.h"
26#include "engines/nancy/cursor.h"
27#include "engines/nancy/commontypes.h"
28#include "engines/nancy/renderobject.h"
31class SeekableReadStream;
42enum struct DependencyType : int16 {
48 kElapsedSceneTime = 5,
49 kElapsedPlayerTime = 6,
53 kElapsedPlayerDay = 10,
61 kTimerLessThanDependencyTime = 13,
62 kTimerGreaterThanDependencyTime = 14,
63 kDifficultyLevel = 15,
64 kClosedCaptioning = 16,
66 kOpenParenthesis = 18,
67 kCloseParenthesis = 19,
71 kTimerEqualsDependencyTime = 23,
72 kTimerBelowDependencyTime = 24,
73 kTimerAboveDependencyTime = 25,
80 DependencyType type = DependencyType::kNone;
87 int16 milliseconds = -1;
89 bool satisfied =
false;
93 bool stopEvaluating =
false;
109 enum ExecutionState { kBegin, kRun, kActionTrigger };
110 enum ExecutionType { kOneShot = 1, kRepeating = 2 };
117 _state(ExecutionState::kBegin),
118 _cursorDependency(
nullptr) {}
122 virtual void execute() {}
123 virtual void onPause(
bool pause) {}
125 virtual CursorManager::CursorType getHoverCursor()
const {
return CursorManager::kHotspot; }
126 virtual bool cursorSetFromScript()
const {
return false; }
127 virtual void handleInput(
NancyInput &input) {}
134 virtual bool canHaveHotspot()
const {
return false; }
144 virtual bool survivesSceneChange(
bool nextSceneIsNoArt)
const {
return false; }
147 void finishExecution();
153 ExecutionType _execType;
164 ExecutionState _state;
178 void onPause(
bool pause)
override {
if (!pause) registerGraphics(); }
183 void execute()
override;
185 Common::String getRecordTypeName()
const override {
return "Unimplemented"; }
Definition: actionrecord.h:107
Definition: actionrecord.h:169
Definition: actionrecord.h:182
Definition: renderobject.h:48
Definition: algorithm.h:29
Definition: actionmanager.h:32
Definition: actionrecord.h:79