From 23fda0b842560d2f3cf64ecf9a57d5ad2861e488 Mon Sep 17 00:00:00 2001 From: Maya Date: Sun, 13 Nov 2022 04:01:14 +0100 Subject: Squirrel functions auto bind (#299) * Add defines to auto add squirrel funcs it brokey * Make it Work changed all squirrel function definitions to this system * Add defines to auto add squirrel funcs it brokey Co-authored-by: Emma-Miler <27428383+emma-miler@users.noreply.github.com> * Make it Work changed all squirrel function definitions to this system Co-authored-by: Emma-Miler <27428383+emma-miler@users.noreply.github.com> * Formatting * Good old Formatting commit * HelloGecko * Formatting Finalv2ForRealThisTime * idk anymore * i hate formatting * Rename some * Rename macro * Change function names to more human-readable * Revert to using old ScriptContext definition * Formatting Co-authored-by: RoyalBlue1 Co-authored-by: Emma-Miler <27428383+emma-miler@users.noreply.github.com> Co-authored-by: Emma Miler Co-authored-by: BobTheBob <32057864+BobTheBob9@users.noreply.github.com> --- NorthstarDLL/scriptdatatables.cpp | 68 +++++++++++---------------------------- 1 file changed, 19 insertions(+), 49 deletions(-) (limited to 'NorthstarDLL/scriptdatatables.cpp') diff --git a/NorthstarDLL/scriptdatatables.cpp b/NorthstarDLL/scriptdatatables.cpp index fc2be943..dfa45737 100644 --- a/NorthstarDLL/scriptdatatables.cpp +++ b/NorthstarDLL/scriptdatatables.cpp @@ -97,7 +97,7 @@ Vector3 StringToVector(char* pString) } // var function GetDataTable( asset path ) -template SQRESULT SQ_GetDatatable(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTable, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { const char* pAssetName; g_pSquirrel->getasset(sqvm, 2, &pAssetName); @@ -271,8 +271,8 @@ template SQRESULT SQ_GetDatatable(HSquirrelVM* sqvm) } } -// int function GetDataTableRowCount( var datatable, string columnName ) -template SQRESULT SQ_GetDataTableColumnByName(HSquirrelVM* sqvm) +// int function GetDataTableColumnByName( var datatable, string columnName ) +REPLACE_SQFUNC(GetDataTableColumnByName, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -299,7 +299,7 @@ template SQRESULT SQ_GetDataTableColumnByName(HSquirrelV } // int function GetDataTableRowCount( var datatable ) -template SQRESULT SQ_GetDataTableRowCount(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowCount, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -314,7 +314,7 @@ template SQRESULT SQ_GetDataTableRowCount(HSquirrelVM* s } // string function GetDataTableString( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableString(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableString, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -341,7 +341,7 @@ template SQRESULT SQ_GetDataTableString(HSquirrelVM* sqv } // asset function GetDataTableAsset( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableAsset(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableAsset, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -368,7 +368,7 @@ template SQRESULT SQ_GetDataTableAsset(HSquirrelVM* sqvm } // int function GetDataTableInt( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableInt(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableInt, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -395,7 +395,7 @@ template SQRESULT SQ_GetDataTableInt(HSquirrelVM* sqvm) } // float function GetDataTableFloat( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableFloat(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableFloat, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -422,7 +422,7 @@ template SQRESULT SQ_GetDataTableFloat(HSquirrelVM* sqvm } // bool function GetDataTableBool( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableBool(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableBool, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -449,7 +449,7 @@ template SQRESULT SQ_GetDataTableBool(HSquirrelVM* sqvm) } // vector function GetDataTableVector( var datatable, int row, int col ) -template SQRESULT SQ_GetDataTableVector(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableVector, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -476,7 +476,7 @@ template SQRESULT SQ_GetDataTableVector(HSquirrelVM* sqv } // int function GetDataTableRowMatchingStringValue( var datatable, int col, string value ) -template SQRESULT SQ_GetDataTableRowMatchingStringValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowMatchingStringValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -502,7 +502,7 @@ template SQRESULT SQ_GetDataTableRowMatchingStringValue( } // int function GetDataTableRowMatchingAssetValue( var datatable, int col, asset value ) -template SQRESULT SQ_GetDataTableRowMatchingAssetValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableMatchingAssetValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -529,7 +529,7 @@ template SQRESULT SQ_GetDataTableRowMatchingAssetValue(H } // int function GetDataTableRowMatchingFloatValue( var datatable, int col, float value ) -template SQRESULT SQ_GetDataTableRowMatchingFloatValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowMatchingFloatValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -555,7 +555,7 @@ template SQRESULT SQ_GetDataTableRowMatchingFloatValue(H } // int function GetDataTableRowMatchingIntValue( var datatable, int col, int value ) -template SQRESULT SQ_GetDataTableRowMatchingIntValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowMatchingIntValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -581,7 +581,7 @@ template SQRESULT SQ_GetDataTableRowMatchingIntValue(HSq } // int function GetDataTableRowMatchingVectorValue( var datatable, int col, vector value ) -template SQRESULT SQ_GetDataTableRowMatchingVectorValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowMatchingVectorValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -608,7 +608,7 @@ template SQRESULT SQ_GetDataTableRowMatchingVectorValue( } // int function GetDataTableRowGreaterThanOrEqualToIntValue( var datatable, int col, int value ) -template SQRESULT SQ_GetDataTableRowGreaterThanOrEqualToIntValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowGreaterThanOrEqualToIntValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -635,7 +635,7 @@ template SQRESULT SQ_GetDataTableRowGreaterThanOrEqualTo } // int function GetDataTableRowLessThanOrEqualToIntValue( var datatable, int col, int value ) -template SQRESULT SQ_GetDataTableRowLessThanOrEqualToIntValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowLessThanOrEqualToIntValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -661,7 +661,7 @@ template SQRESULT SQ_GetDataTableRowLessThanOrEqualToInt } // int function GetDataTableRowGreaterThanOrEqualToFloatValue( var datatable, int col, float value ) -template SQRESULT SQ_GetDataTableRowGreaterThanOrEqualToFloatValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowGreaterThanOrEqualToFloatValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -687,7 +687,7 @@ template SQRESULT SQ_GetDataTableRowGreaterThanOrEqualTo } // int function GetDataTableRowLessThanOrEqualToFloatValue( var datatable, int col, float value ) -template SQRESULT SQ_GetDataTableRowLessThanOrEqualToFloatValue(HSquirrelVM* sqvm) +REPLACE_SQFUNC(GetDataTableRowLessThanOrEqualToFloatValue, (ScriptContext::UI | ScriptContext::CLIENT | ScriptContext::SERVER)) { CSVData** pData; uint64_t typeId; @@ -886,43 +886,13 @@ void ConCommand_dump_datatables(const CCommand& args) DumpDatatable(datatable); } -template void RegisterDataTableFunctions() -{ - g_pSquirrel->AddFuncOverride("GetDataTable", SQ_GetDatatable); - g_pSquirrel->AddFuncOverride("GetDataTableColumnByName", SQ_GetDataTableColumnByName); - g_pSquirrel->AddFuncOverride("GetDatatableRowCount", SQ_GetDataTableRowCount); - g_pSquirrel->AddFuncOverride("GetDataTableString", SQ_GetDataTableString); - g_pSquirrel->AddFuncOverride("GetDataTableInt", SQ_GetDataTableInt); - g_pSquirrel->AddFuncOverride("GetDataTableFloat", SQ_GetDataTableFloat); - g_pSquirrel->AddFuncOverride("GetDataTableBool", SQ_GetDataTableBool); - g_pSquirrel->AddFuncOverride("GetDataTableAsset", SQ_GetDataTableAsset); - g_pSquirrel->AddFuncOverride("GetDataTableVector", SQ_GetDataTableVector); - g_pSquirrel->AddFuncOverride("GetDataTableRowMatchingStringValue", SQ_GetDataTableRowMatchingStringValue); - g_pSquirrel->AddFuncOverride("GetDataTableRowMatchingAssetValue", SQ_GetDataTableRowMatchingAssetValue); - g_pSquirrel->AddFuncOverride("GetDataTableRowMatchingFloatValue", SQ_GetDataTableRowMatchingFloatValue); - g_pSquirrel->AddFuncOverride("GetDataTableRowMatchingIntValue", SQ_GetDataTableRowMatchingIntValue); - g_pSquirrel->AddFuncOverride("GetDataTableRowMatchingVectorValue", SQ_GetDataTableRowMatchingVectorValue); - g_pSquirrel->AddFuncOverride( - "GetDataTableRowLessThanOrEqualToFloatValue", SQ_GetDataTableRowLessThanOrEqualToFloatValue); - g_pSquirrel->AddFuncOverride( - "GetDataTableRowGreaterThanOrEqualToFloatValue", SQ_GetDataTableRowGreaterThanOrEqualToFloatValue); - g_pSquirrel->AddFuncOverride("GetDataTableRowLessThanOrEqualToIntValue", SQ_GetDataTableRowLessThanOrEqualToIntValue); - g_pSquirrel->AddFuncOverride( - "GetDataTableRowGreaterThanOrEqualToFloatValue", SQ_GetDataTableRowGreaterThanOrEqualToIntValue); -} - ON_DLL_LOAD_RELIESON("server.dll", ServerScriptDatatables, ServerSquirrel, (CModule module)) { - RegisterDataTableFunctions(); - SQ_GetDatatableInternal = module.Offset(0x1250f0).As(); } ON_DLL_LOAD_RELIESON("client.dll", ClientScriptDatatables, ClientSquirrel, (CModule module)) { - RegisterDataTableFunctions(); - RegisterDataTableFunctions(); - SQ_GetDatatableInternal = module.Offset(0x1C9070).As(); SQ_GetDatatableInternal = SQ_GetDatatableInternal; } -- cgit v1.2.3