From 97fb6c91d39241ce8e4ba45ddb49442684543884 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Wed, 25 Sep 2024 14:34:56 +0200 Subject: [PATCH] VScript: add code class descriptor class Used for script class functions, e.g. player.GetOrigin(). --- src/public/vscript/ivscript.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/public/vscript/ivscript.h b/src/public/vscript/ivscript.h index 4cf0ee93..f0f8383b 100644 --- a/src/public/vscript/ivscript.h +++ b/src/public/vscript/ivscript.h @@ -100,4 +100,36 @@ struct ScriptFunctionBinding_t }; static_assert(sizeof(ScriptFunctionBinding_t) == 0x68); +//--------------------------------------------------------- + +struct ScriptClassDescriptor_t +{ + void AddFunction(const SQChar* scriptName, const SQChar* nativeName, + const SQChar* helpString, const SQChar* returnString, + const SQChar* parameters, const ScriptDataType_t returnType, + const ScriptFunctionBindingStorageType_t function) + { + const int index = m_FunctionBindings.AddToTail(); + ScriptFunctionBinding_t& binding = m_FunctionBindings.Element(index); + + binding.Init(scriptName, nativeName, helpString, returnString, parameters, returnType, function); + } + + const char* m_ScriptName; + const char* m_Classname; + const char* m_Description; + + ScriptClassDescriptor_t* m_BaseDesc; + CUtlVector m_FunctionBindings; + + // TODO: CUtlMemory? + ssize_t m_Unk1; + ssize_t m_Unk2; + void* m_Unk3; + + ScriptClassDescriptor_t* m_NextDesc; +}; + +static_assert(sizeof(ScriptClassDescriptor_t) == 0x60); + #endif // IVSCRIPT_H