#pragma once namespace codsrc { int ThreadInfoCompare(const void* a1, const void* a2); void Scr_DumpScriptThreads(game::scriptInstance_t scriptInstance); void Scr_InitVariableRange(unsigned int a1, unsigned int a2, game::scriptInstance_t inst); void Scr_InitClassMap(game::scriptInstance_t inst); unsigned int GetNewVariableIndexInternal3(game::scriptInstance_t inst, unsigned int parentId, unsigned int name, unsigned int index); unsigned int GetNewVariableIndexInternal2(unsigned int name, game::scriptInstance_t inst, unsigned int parentId, unsigned int index); unsigned int GetNewVariableIndexReverseInternal2(unsigned int name, game::scriptInstance_t inst, unsigned int parentId, unsigned int index); void MakeVariableExternal(game::VariableValueInternal* parentValue, game::scriptInstance_t inst, unsigned int index); void FreeChildValue(unsigned int id, game::scriptInstance_t inst, unsigned int parentId); void ClearObjectInternal(game::scriptInstance_t inst, unsigned int parentId); void ClearObject(unsigned int a1, game::scriptInstance_t inst); void Scr_StopThread(game::scriptInstance_t inst, unsigned int a2); unsigned int GetSafeParentLocalId(game::scriptInstance_t inst, unsigned int a2); unsigned int GetStartLocalId(unsigned int result, game::scriptInstance_t inst); void Scr_KillThread(game::scriptInstance_t inst, unsigned int parentId_1); unsigned __int16 AllocVariable(game::scriptInstance_t inst); void FreeVariable(unsigned int a1, game::scriptInstance_t inst); unsigned int AllocValue(game::scriptInstance_t inst); unsigned int AllocEntity(game::classNum_e classnum, game::scriptInstance_t inst, int entnum, int clientnum); unsigned int Scr_AllocArray(game::scriptInstance_t a1); unsigned int AllocChildThread(game::scriptInstance_t inst, unsigned int a2, unsigned int a3); void FreeValue(unsigned int id, game::scriptInstance_t inst); void RemoveRefToObject(unsigned int id, game::scriptInstance_t inst); float* Scr_AllocVector(game::scriptInstance_t a1); void RemoveRefToVector(const float* vectorValue, game::scriptInstance_t inst); void AddRefToValue(game::scriptInstance_t inst, game::VariableType type, game::VariableUnion u); void RemoveRefToValueInternal(game::scriptInstance_t inst, game::VariableType type, game::VariableUnion a3); unsigned int FindArrayVariable(unsigned int id, unsigned int intvalue, game::scriptInstance_t inst); unsigned int FindVariable(unsigned int name, unsigned int a2, game::scriptInstance_t inst); unsigned int GetArrayVariableIndex(unsigned int unsignedValue, game::scriptInstance_t inst, unsigned int parentId); unsigned int Scr_GetVariableFieldIndex(game::scriptInstance_t inst, unsigned int name, unsigned int parentId); game::VariableValue Scr_FindVariableField(game::scriptInstance_t inst, unsigned int parentId, unsigned int name); void ClearVariableField(game::scriptInstance_t inst, unsigned int id, unsigned int name, game::VariableValue* value); unsigned int GetVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int name); unsigned int GetNewVariable(game::scriptInstance_t inst, unsigned int a2, unsigned int a3); unsigned int GetObjectVariable(unsigned int a1, game::scriptInstance_t inst, unsigned int parentId); unsigned int GetNewObjectVariable(game::scriptInstance_t inst, unsigned int name, unsigned int parentId); void RemoveVariable(unsigned int name, unsigned int parentId, game::scriptInstance_t inst); void RemoveNextVariable(game::scriptInstance_t inst, unsigned int parentId); void SafeRemoveVariable(unsigned int unsignedValue, unsigned int parentId, game::scriptInstance_t inst); void CopyArray(game::scriptInstance_t inst, unsigned int parentId, unsigned int newParentId); void SetVariableValue(game::scriptInstance_t inst, game::VariableValue* a2, unsigned int a3); void SetVariableEntityFieldValue(game::scriptInstance_t inst, unsigned int parentId, unsigned int name, game::VariableValue* a4); game::VariableValue Scr_EvalVariable(game::scriptInstance_t inst, unsigned int a2); unsigned int Scr_EvalVariableObject(game::scriptInstance_t inst, unsigned int a2); game::VariableValue Scr_EvalVariableEntityField(unsigned int entId, game::scriptInstance_t inst, unsigned int name); game::VariableValue Scr_EvalVariableField(game::scriptInstance_t inst, unsigned int id); void Scr_EvalSizeValue(game::scriptInstance_t inst, game::VariableValue* value); unsigned int GetObject(game::scriptInstance_t inst, unsigned int a2); unsigned int GetArray(game::scriptInstance_t inst, unsigned int a2); void Scr_EvalBoolComplement(game::scriptInstance_t inst, game::VariableValue* a2); void Scr_CastBool(game::scriptInstance_t inst, game::VariableValue* a2); char Scr_CastString(game::scriptInstance_t inst, game::VariableValue* a2); void Scr_CastDebugString(game::scriptInstance_t inst, game::VariableValue* a2); void Scr_ClearVector(game::scriptInstance_t inst, game::VariableValue* a2); void Scr_CastVector(game::scriptInstance_t inst, game::VariableValue* a2); game::VariableUnion Scr_EvalFieldObject(game::VariableValue* a1, game::scriptInstance_t inst, unsigned int a3); void Scr_UnmatchingTypesError(game::scriptInstance_t inst, game::VariableValue* a2, game::VariableValue* value); void Scr_CastWeakerPair(game::VariableValue* a1, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_CastWeakerStringPair(game::VariableValue* a1, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalOr(game::VariableValue* result, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalExOr(game::VariableValue* result, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalAnd(game::VariableValue* result, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalEquality(game::VariableValue* a1, game::scriptInstance_t inst, game::VariableValue* a4); void Scr_EvalLess(game::VariableValue* a1, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalGreaterEqual(game::scriptInstance_t inst, game::VariableValue* a2, game::VariableValue* a3); void Scr_EvalGreater(game::VariableValue* a1, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalLessEqual(game::scriptInstance_t inst, game::VariableValue* a2, game::VariableValue* a3); void Scr_EvalShiftLeft(game::VariableValue* result, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalShiftRight(game::VariableValue* result, game::VariableValue* a2, game::scriptInstance_t inst); void Scr_EvalPlus(game::scriptInstance_t inst, game::VariableValue* a1, game::VariableValue* a2); void Scr_EvalMinus(game::VariableValue* a1, game::scriptInstance_t inst, game::VariableValue* a3); void Scr_EvalMultiply(game::VariableValue* a1, game::scriptInstance_t inst, game::VariableValue* a3); void Scr_EvalDivide(game::VariableValue* a1, game::scriptInstance_t inst, game::VariableValue* a3); void Scr_EvalMod(game::scriptInstance_t inst, game::VariableValue* a2, game::VariableValue* a3); void Scr_EvalBinaryOperator(game::scriptInstance_t inst, game::VariableValue* a2, game::OpcodeVM a4, game::VariableValue* a5); void Scr_FreeEntityNum(game::scriptInstance_t inst, game::classNum_e classnum, unsigned int entnum); void Scr_FreeEntityList(game::scriptInstance_t inst); void Scr_FreeObjects(game::scriptInstance_t inst); void Scr_SetClassMap(game::scriptInstance_t inst, game::classNum_e classnum); void Scr_RemoveClassMap(game::classNum_e classnum, game::scriptInstance_t inst); void Scr_AddClassField(game::scriptInstance_t inst, game::classNum_e classnum, const char* name, unsigned int offset); game::VariableUnion Scr_GetOffset(const char* name, game::scriptInstance_t inst, game::classNum_e classNum); unsigned int FindEntityId(unsigned int entClass, int entNum, game::scriptInstance_t inst); unsigned int Scr_GetEntityId(int entNum, game::scriptInstance_t inst, game::classNum_e classnum, int clientnum); unsigned int Scr_FindArrayIndex(game::scriptInstance_t inst, game::VariableValue* a2, unsigned int a3); void Scr_EvalArray(game::scriptInstance_t inst, game::VariableValue* eax0, game::VariableValue* a3); unsigned int Scr_EvalArrayRef(game::scriptInstance_t inst, unsigned int eax0); void ClearArray(unsigned int parentId, game::scriptInstance_t inst, game::VariableValue* value); void SetEmptyArray(game::scriptInstance_t inst, unsigned int parentId); void Scr_AddArrayKeys(unsigned int array, game::scriptInstance_t inst); game::scr_entref_t* Scr_GetEntityIdRef(game::scr_entref_t* result, game::scriptInstance_t inst, unsigned int a3); void CopyEntity(unsigned int parentId, unsigned int newParentId); float Scr_GetEndonUsage(unsigned int a1, game::scriptInstance_t inst); float Scr_GetEntryUsageInternal(game::scriptInstance_t inst, unsigned int type, game::VariableUnion u); float Scr_GetEntryUsage(game::scriptInstance_t inst, game::VariableValueInternal* entryValue); float Scr_GetObjectUsage(game::scriptInstance_t inst, unsigned int parentId); float Scr_GetThreadUsage(game::VariableStackBuffer* inst, game::scriptInstance_t a2, float* endonUsage); unsigned int Scr_FindField(game::scriptInstance_t inst, const char* name, int* type); char* Scr_GetSourceFile_LoadObj(const char* a1); char* Scr_GetSourceFile_FastFile(const char* a3); void Scr_AddFieldsForFile(game::scriptInstance_t inst, const char* filename); void Scr_AddFields_LoadObj(game::scriptInstance_t inst, const char* path, const char* extension); void Scr_AddFields_FastFile(game::scriptInstance_t inst, const char* path, const char* extension); int Scr_MakeValuePrimitive(game::scriptInstance_t inst, unsigned int parentId); void Scr_FreeGameVariable(game::scriptInstance_t inst, int bComplete); bool Scr_SLHasLowercaseString(unsigned int a1, const char* a2); unsigned int FindObject(game::scriptInstance_t inst, unsigned int id); unsigned int FindFirstSibling(game::scriptInstance_t inst, unsigned int id); unsigned int FindNextSibling(game::scriptInstance_t inst, unsigned int id); game::VariableValue Scr_GetArrayIndexValue(game::scriptInstance_t inst, unsigned int name); void AddRefToObject(game::scriptInstance_t inst, unsigned int id); void RemoveRefToEmptyObject(game::scriptInstance_t inst, unsigned int id); void Scr_ClearThread(game::scriptInstance_t inst, unsigned int parentId); unsigned int FindObjectVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int id); void RemoveObjectVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int id); game::VariableValueInternal_u* GetVariableValueAddress(game::scriptInstance_t inst, unsigned int id); void Scr_KillEndonThread(game::scriptInstance_t inst, unsigned int threadId); BOOL IsValidArrayIndex(game::scriptInstance_t inst, unsigned int unsignedValue); void RemoveArrayVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); void SafeRemoveArrayVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); void AddRefToVector(game::scriptInstance_t inst, const float* vecVal); unsigned int FindArrayVariableIndex(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); unsigned int GetVariableIndexInternal(game::scriptInstance_t inst, unsigned int parentId, unsigned int name); unsigned int GetNewVariableIndexInternal(game::scriptInstance_t inst, unsigned int parentId, unsigned int name); unsigned int AllocObject(game::scriptInstance_t inst); game::VariableType GetValueType(game::scriptInstance_t inst, unsigned int id); game::VariableType GetObjectType(game::scriptInstance_t inst, unsigned int id); float* Scr_AllocVector_(game::scriptInstance_t inst, const float* v); void Scr_EvalInequality(game::scriptInstance_t inst, game::VariableValue* value1, game::VariableValue* value2); unsigned int Scr_EvalArrayRefInternal(game::scriptInstance_t inst, game::VariableValue* varValue, game::VariableValueInternal* parentValue); unsigned int GetNewArrayVariableIndex(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); unsigned int GetNewArrayVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); unsigned int GetArrayVariable(game::scriptInstance_t inst, unsigned int parentId, unsigned int unsignedValue); unsigned int AllocThread(game::scriptInstance_t inst, unsigned int self); }