CResponseSystem::BuildDispatchTables
0x005bb120 · 3016 bytes · __thiscall
_ZN15CResponseSystem19BuildDispatchTablesEv
Decompiled
undefined (1 param)
/* CResponseSystem::BuildDispatchTables() */
void __thiscall CResponseSystem::BuildDispatchTables(CResponseSystem *this)
{
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
*this_00;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*this_01;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*this_02;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*this_03;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*this_04;
char *pcVar1;
byte *pbVar2;
uint uVar3;
int local_28;
code *local_24;
undefined4 local_20;
pcVar1 = "#include";
uVar3 = 0x23;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
this_00 = (CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
*)(this + 0x3e20);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pcVar1 = "response";
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pcVar1 = "enumeration";
uVar3 = 0x65;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pcVar1 = "criterion";
uVar3 = 99;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pbVar2 = (byte *)0xc5cdbb;
uVar3 = 99;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pbVar2 = (byte *)0xc57ae9;
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
CUtlRBTree<unsigned_int,unsigned_short,bool(*)(unsigned_int_const&,unsigned_int_const&),CUtlMemory<UtlRBTreeNode_t<unsigned_int,unsigned_short>,unsigned_short>>
::Insert(this_00,(uint *)&local_28);
pcVar1 = "#include";
uVar3 = 0x23;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseInclude;
local_20 = 0;
this_01 = (CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*)(this + 0x3db0);
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pcVar1 = "response";
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pcVar1 = "criterion";
uVar3 = 99;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseCriterion;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pbVar2 = (byte *)0xc5cdbb;
uVar3 = 99;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseCriterion;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pbVar2 = (byte *)0xc57ae9;
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseRule;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pcVar1 = "enumeration";
uVar3 = 0x65;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseEnumeration;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_01,(Node_t *)&local_28);
pcVar1 = "matchonce";
uVar3 = 0x6d;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_MatchOnce;
local_20 = 0;
this_02 = (CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*)(this + 0x3dcc);
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pcVar1 = "applycontexttoworld";
uVar3 = 0x61;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_ApplyContextToWorld;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pcVar1 = "applycontext";
uVar3 = 0x61;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_ApplyContext;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pcVar1 = "response";
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_Response;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pcVar1 = "forceweight";
uVar3 = 0x66;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_ForceWeight;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pbVar2 = (byte *)0xc5cdbb;
uVar3 = 99;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseRule_Criteria;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pcVar1 = "criterion";
uVar3 = 99;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseRule_Criteria;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Rule&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_02,(Node_t *)&local_28);
pbVar2 = (byte *)0xc5643e;
uVar3 = 0x77;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Weight;
local_20 = 0;
this_03 = (CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*)(this + 0x3de8);
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "predelay";
uVar3 = 0x70;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_PreDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "nodelay";
uVar3 = 0x6e;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_NoDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "defaultdelay";
uVar3 = 100;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_DefaultDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pbVar2 = (byte *)0xce7a75;
uVar3 = 100;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Delay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "speakonce";
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_SpeakOnce;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "noscene";
uVar3 = 0x6e;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_NoScene;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "stop_on_nonidle";
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_StopOnNonIdle;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pbVar2 = &DAT_00c571d5;
uVar3 = 0x6f;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Odds;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "respeakdelay";
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_RespeakDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "weapondelay";
uVar3 = 0x77;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_WeaponDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pbVar2 = (byte *)0xc1e0d8;
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Soundlevel;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "displayfirst";
uVar3 = 100;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_DisplayFirst;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pcVar1 = "displaylast";
uVar3 = 100;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponse_DisplayLast;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pbVar2 = (byte *)0xc1a015;
uVar3 = 0x66;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Fire;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
pbVar2 = &DAT_00c57a9c;
uVar3 = 0x74;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponse_Then;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(Response&,ResponseGroup&,AI_ResponseParams*),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_03,(Node_t *)&local_28);
local_28 = 0x65;
local_24 = ParseResponseGroup_Start;
local_20 = 0;
this_04 = (CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
*)(this + 0x3e04);
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "predelay";
uVar3 = 0x70;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_PreDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "nodelay";
uVar3 = 0x6e;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_NoDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "defaultdelay";
uVar3 = 100;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_DefaultDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pbVar2 = (byte *)0xce7a75;
uVar3 = 100;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponseGroup_Delay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "speakonce";
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_SpeakOnce;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "noscene";
uVar3 = 0x6e;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_NoScene;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "stop_on_nonidle";
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_StopOnNonIdle;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pbVar2 = &DAT_00c571d5;
uVar3 = 0x6f;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponseGroup_Odds;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "respeakdelay";
uVar3 = 0x72;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_RespeakDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pcVar1 = "weapondelay";
uVar3 = 0x77;
local_28 = -0x55555556;
do {
pcVar1 = pcVar1 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)(byte)*pcVar1;
} while (*pcVar1 != 0);
local_24 = ParseResponseGroup_WeaponDelay;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
pbVar2 = (byte *)0xc1e0d8;
uVar3 = 0x73;
local_28 = -0x55555556;
do {
pbVar2 = pbVar2 + 1;
local_28 = uVar3 + local_28 * 0x21;
uVar3 = (uint)*pbVar2;
} while (*pbVar2 != 0);
local_24 = ParseResponseGroup_Soundlevel;
local_20 = 0;
CUtlRBTree<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short,CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::CKeyLess,CUtlMemory<UtlRBTreeNode_t<CUtlMap<unsigned_int,void(CResponseSystem::*)(char_const*,ResponseGroup&,AI_ResponseParams&),unsigned_short>::Node_t,unsigned_short>,unsigned_short>>
::Insert(this_04,(Node_t *)&local_28);
return;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)
Just a Signatures{} block, ready to drop into a gamedata
file. Wire it up in your plugin however you like - SDKCall, DHooks,
raw memory ops, or anything else.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Gamedata KeyValues
DHooks plugin example
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.