27#include "../qcommon/listener.h"
28#include "../qcommon/short3.h"
31# include "../fgame/misc.h"
46 VARIABLE_SAFECONTAINER,
52static const char *typenames[] = {
92 ScriptVariable *refValue;
104 void ClearInternal();
105 void ClearPointerInternal()
const;
109 ScriptVariable(
const ScriptVariable& variable);
110 ScriptVariable(ScriptVariable&& variable);
114 void CastBoolean(
void);
115 void CastConstArrayValue(
void);
116 void CastEntity(
void);
117 void CastFloat(
void);
118 void CastInteger(
void);
119 void CastString(
void);
124 const char *GetTypeName(
void)
const;
125 variabletype GetType(
void)
const;
128 bool HasValue()
const;
129 bool IsEntity()
const;
130 bool IsListener()
const;
131 bool IsNumeric()
const;
132 bool IsConstArray()
const;
133#ifdef WITH_SCRIPT_ENGINE
134 bool IsSimpleEntity()
const;
136 bool IsString()
const;
137 bool IsVector()
const;
139 void PrintValue(
void);
144 int arraysize(
void)
const;
145 size_t size(
void)
const;
147 bool booleanNumericValue(
void);
148 bool booleanValue(
void)
const;
150#ifdef WITH_SCRIPT_ENGINE
154 void SetKey(
const short3& key);
157 Entity *entityValue(
void);
159 void evalArrayAt(ScriptVariable& var);
161 void setArrayAt(ScriptVariable& index, ScriptVariable& value);
162 void setArrayAtRef(ScriptVariable& index, ScriptVariable& value);
163 void setArrayRefValue(ScriptVariable& var);
165 char charValue(
void)
const;
166 void setCharValue(
char newvalue);
168 ScriptVariable *constArrayValue(
void);
169 void setConstArrayValue(ScriptVariable *pVar,
unsigned int size);
171#ifdef WITH_SCRIPT_ENGINE
172 const_str constStringValue(
void)
const;
173 void setConstStringValue(const_str s);
179 float floatValue(
void)
const;
180 void setFloatValue(
float newvalue);
182 int intValue(
void)
const;
183 void setIntValue(
int newvalue);
185 Listener *listenerValue(
void)
const;
186 Listener *listenerAt(uintptr_t index)
const;
187 void setListenerValue(
Listener *newvalue);
189 void newPointer(
void);
190 void setPointer(
const ScriptVariable& newvalue);
192 void setRefValue(ScriptVariable *ref);
195 str stringValue(
void)
const;
196 void setStringValue(
str newvalue);
198#ifdef WITH_SCRIPT_ENGINE
202 Vector vectorValue(
void)
const;
203 void setVectorValue(
const Vector& newvector);
205 class PathNode *pathNodeValue(
void)
const;
206 class Waypoint *waypointValue(
void)
const;
208 void greaterthan(ScriptVariable& variable);
209 void greaterthanorequal(ScriptVariable& variable);
210 void lessthan(ScriptVariable& variable);
211 void lessthanorequal(ScriptVariable& variable);
213 void complement(
void);
215 ScriptVariable& operator=(
const ScriptVariable& variable);
216 ScriptVariable& operator=(ScriptVariable&& variable);
217 ScriptVariable& operator[](ScriptVariable& index);
218 ScriptVariable *operator[](
unsigned index)
const;
219 ScriptVariable *operator*();
220 void operator+=(
const ScriptVariable& value);
221 void operator-=(
const ScriptVariable& value);
222 void operator*=(
const ScriptVariable& value);
223 void operator/=(
const ScriptVariable& value);
224 void operator%=(
const ScriptVariable& value);
225 void operator&=(
const ScriptVariable& value);
226 void operator^=(
const ScriptVariable& value);
227 void operator|=(
const ScriptVariable& value);
228 void operator<<=(
const ScriptVariable& value);
229 void operator>>=(
const ScriptVariable& value);
231 bool operator!=(
const ScriptVariable& value);
232 bool operator==(
const ScriptVariable& value);
234 ScriptVariable operator++(
int);
235 ScriptVariable operator--(
int);
238 static void Archive(
Archiver& arc, ScriptVariable **obj);
239 void ArchiveInternal(
Archiver& arc);
241 void MakePrimitive();
248 unsigned int refCount;
254 static void Archive(
Archiver& arc, ScriptArrayHolder *& arrayValue);
261 unsigned int refCount;
266 static void Archive(
Archiver& arc, ScriptConstArrayHolder *& constArrayValue);
269 ScriptConstArrayHolder(
unsigned int size);
270 ScriptConstArrayHolder();
271 ~ScriptConstArrayHolder();
290#ifdef WITH_SCRIPT_ENGINE
305 void *
operator new(
size_t size) {
return con_set<short3, ScriptVariable>::NewEntry(size); }
307 void operator delete(
void *ptr) { con_set<short3, ScriptVariable>::DeleteEntry(ptr); }
309# ifdef ARCHIVE_SUPPORTED
310 void Archive(Archiver& arc) { value.Archive(arc); }
312 short3& GetKey() {
return value.GetKey(); }
314 void SetKey(
const short3& newKey) { value.SetKey(newKey); }
317class ScriptVariableList :
public Class
320 con_set<short3, ScriptVariable> list;
323 CLASS_PROTOTYPE(ScriptVariableList);
325 ScriptVariableList();
327 void ClearList(
void);
330 ScriptVariable *GetOrCreateVariable(str name);
331 ScriptVariable *GetOrCreateVariable(
unsigned int name);
333 ScriptVariable *GetVariable(str name)
const;
334 ScriptVariable *GetVariable(
unsigned int name)
const;
335 bool VariableExists(str name)
const;
337 ScriptVariable *SetVariable(
const char *name,
int value);
338 ScriptVariable *SetVariable(
const char *name,
float value);
339 ScriptVariable *SetVariable(
const char *name,
const char *value);
340 ScriptVariable *SetVariable(
const char *name, Entity *value);
341 ScriptVariable *SetVariable(
const char *name, Listener *value);
342 ScriptVariable *SetVariable(
const char *name, Vector& value);
343 ScriptVariable *SetVariable(
const char *name, ScriptVariable& value);
344 ScriptVariable *SetVariable(
unsigned int name, ScriptVariable& value);
345 ScriptVariable *SetVariable(
unsigned int name, ScriptVariable&& value);
347 void Archive(Archiver& arc)
override;
348 void Print(
void (*PrintFn)(
const char *format, ...));
349 void MakePrimitive();
Definition containerclass.h:32
Definition container.h:85
Definition lightclass.h:30
Definition listener.h:450
Definition navigate.h:153
Definition scriptvariable.h:245
Definition scriptvariable.h:258
Definition scriptvariable.h:275
Definition scriptvariable.h:75
Definition simpleentity.h:42