mirror of
https://github.com/JezuzLizard/T4SP-Server-Plugin.git
synced 2025-04-20 21:45:43 +00:00
192 lines
5.5 KiB
C++
192 lines
5.5 KiB
C++
#include <stdinc.hpp>
|
|
#include "clientscript_public.hpp"
|
|
|
|
namespace codsrc
|
|
{
|
|
// Decomp Status: Tested, Completed
|
|
void Scr_InitAllocNode(game::scriptInstance_t inst)
|
|
{
|
|
game::HunkUser* nodeUser;
|
|
|
|
assert(!game::g_allocNodeUser[inst]);
|
|
|
|
nodeUser = game::Hunk_UserCreate(0x10000, "Scr_InitAllocNode", false, true, false, 7);
|
|
game::g_allocNodeUser[inst] = nodeUser;
|
|
}
|
|
|
|
// Restored function
|
|
game::sval_u* Scr_AllocNode(game::scriptInstance_t inst, int size)
|
|
{
|
|
assert(game::g_allocNodeUser[inst]);
|
|
|
|
return (game::sval_u*)game::Hunk_UserAlloc(game::g_allocNodeUser[inst], 4 * size, 4);
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node0()
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 1);
|
|
result.node[0].intValue = game::ENUM_NOP;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node1(game::scr_enum_t type, game::sval_u val1)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 2);
|
|
result.node[0].intValue = type;
|
|
result.node[1].node = val1.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node2(game::scr_enum_t type, game::sval_u val1, game::sval_u val2)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 3);
|
|
result.node[0].intValue = type;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node3(game::scr_enum_t type, game::sval_u val1, game::sval_u val2, game::sval_u val3)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst,4);
|
|
result.node[0].intValue = type;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node4(game::scr_enum_t type, game::sval_u val1, game::sval_u val2, game::sval_u val3, game::sval_u val4)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 5);
|
|
result.node[0].intValue = type;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
result.node[4].node = val4.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node5(game::scr_enum_t type, game::sval_u val1, game::sval_u val2, game::sval_u val3, game::sval_u val4, game::sval_u val5)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 6);
|
|
result.node[0].intValue = type;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
result.node[4].node = val4.node;
|
|
result.node[5].node = val5.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node6(game::sval_u val1, game::sval_u val2, game::sval_u val3, game::sval_u val4, game::sval_u val5, game::sval_u val6)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 7);
|
|
result.node[0].intValue = game::ENUM_thread;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
result.node[4].node = val4.node;
|
|
result.node[5].node = val5.node;
|
|
result.node[6].node = val6.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node7(game::sval_u val1, game::sval_u val2, game::sval_u val3, game::sval_u val4, game::sval_u val5, game::sval_u val6, game::sval_u val7)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 8);
|
|
result.node[0].intValue = game::ENUM_if_else;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
result.node[4].node = val4.node;
|
|
result.node[5].node = val5.node;
|
|
result.node[6].node = val6.node;
|
|
result.node[7].node = val7.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u node8(game::sval_u val1, game::sval_u val2, game::sval_u val3, game::sval_u val4, game::sval_u val5, game::sval_u val6, game::sval_u val7, game::sval_u val8)
|
|
{
|
|
game::sval_u result;
|
|
|
|
result.node = game::Scr_AllocNode(*game::gInst, 9);
|
|
result.node[0].intValue = game::ENUM_for;
|
|
result.node[1].node = val1.node;
|
|
result.node[2].node = val2.node;
|
|
result.node[3].node = val3.node;
|
|
result.node[4].node = val4.node;
|
|
result.node[5].node = val5.node;
|
|
result.node[6].node = val6.node;
|
|
result.node[7].node = val7.node;
|
|
result.node[8].node = val8.node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u linked_list_end(game::sval_u val1)
|
|
{
|
|
game::sval_u* node;
|
|
game::sval_u result;
|
|
|
|
node = game::Scr_AllocNode(*game::gInst, 2);
|
|
node[0].node = val1.node;
|
|
node[1].stringValue = 0;
|
|
result.node = game::Scr_AllocNode(*game::gInst, 2);
|
|
result.node[0].node = node;
|
|
result.node[1].node = node;
|
|
return result;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u prepend_node(game::sval_u val1, game::sval_u val2)
|
|
{
|
|
game::sval_u* node;
|
|
|
|
node = game::Scr_AllocNode(*game::gInst, 2);
|
|
node[0] = val1;
|
|
node[1] = *val2.node;
|
|
val2.node->node = node;
|
|
return val2;
|
|
}
|
|
|
|
// Decomp Status: Tested, Completed
|
|
game::sval_u append_node(game::sval_u val1, game::sval_u val2)
|
|
{
|
|
game::sval_u* node;
|
|
|
|
node = game::Scr_AllocNode(*game::gInst, 2);
|
|
node[0] = val2;
|
|
node[1].stringValue = 0;
|
|
val1.node[1].node[1].stringValue = (unsigned int)node;
|
|
val1.node[1].node = node;
|
|
return val1;
|
|
}
|
|
|
|
}
|