22 #ifndef ALCACHOFA_SCRIPT_H 23 #define ALCACHOFA_SCRIPT_H 25 #include "alcachofa/common.h" 27 #include "common/hashmap.h" 28 #include "common/span.h" 29 #include "common/stream.h" 30 #include "common/system.h" 73 enum class ScriptKernelTask {
113 SetMaxCamSpeedFactor,
120 LerpCamToObjectWithScale,
121 LerpCamToObjectResettingZ,
129 LerpCamToObjectKeepingZ,
135 enum class ScriptFlags {
137 AllowMissing = (1 << 0),
138 IsBackground = (1 << 1)
140 inline ScriptFlags operator | (ScriptFlags a, ScriptFlags b) {
141 return (ScriptFlags)(((uint)a) | ((uint)b));
143 inline bool operator & (ScriptFlags a, ScriptFlags b) {
144 return ((uint)a) & ((uint)b);
159 int32 variable(
const char *name)
const;
160 int32 &variable(
const char *name);
162 MainCharacterKind character,
164 ScriptFlags flags = ScriptFlags::None);
166 MainCharacterKind character,
169 ScriptFlags flags = ScriptFlags::None);
173 using VariableNameIterator = Common::HashMap<Common::String, uint32>::const_iterator;
174 inline VariableNameIterator beginVariables()
const {
return _variableNames.begin(); }
175 inline VariableNameIterator endVariables()
const {
return _variableNames.end(); }
176 inline bool hasVariable(
const char *name)
const {
return _variableNames.contains(name); }
178 void setScriptTimer(
bool reset);
180 friend struct ScriptTask;
181 friend struct ScriptTimerTask;
187 uint32 _scriptTimer = 0;
192 #endif // ALCACHOFA_SCRIPT_H Definition: alcachofa.h:45
Definition: scheduler.h:164
Definition: serializer.h:79
int32 _op
int32 because it still has to be mapped using a game-specific translation table
Definition: script.h:150