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 {
112 SetMaxCamSpeedFactor,
119 LerpCamToObjectWithScale,
120 LerpCamToObjectResettingZ,
127 LerpCamToObjectKeepingZ,
129 SheriffTakesCharacter,
134 enum class ScriptFlags {
136 AllowMissing = (1 << 0),
137 IsBackground = (1 << 1)
139 inline ScriptFlags operator | (ScriptFlags a, ScriptFlags b) {
140 return (ScriptFlags)(((uint)a) | ((uint)b));
142 inline bool operator & (ScriptFlags a, ScriptFlags b) {
143 return ((uint)a) & ((uint)b);
158 int32 variable(
const char *name)
const;
159 int32 &variable(
const char *name);
161 MainCharacterKind character,
163 ScriptFlags flags = ScriptFlags::None);
165 MainCharacterKind character,
168 ScriptFlags flags = ScriptFlags::None);
172 using VariableNameIterator = Common::HashMap<Common::String, uint32>::const_iterator;
173 inline VariableNameIterator beginVariables()
const {
return _variableNames.begin(); }
174 inline VariableNameIterator endVariables()
const {
return _variableNames.end(); }
175 inline bool hasVariable(
const char *name)
const {
return _variableNames.contains(name); }
177 void setScriptTimer(
bool reset);
179 friend struct ScriptTask;
180 friend struct ScriptTimerTask;
186 uint32 _scriptTimer = 0;
191 #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:149