CVProfExport::GetBudgetGroupInfos
0x00230e20 · 308 bytes · __thiscall
_ZN12CVProfExport19GetBudgetGroupInfosEPN12IVProfExport24CExportedBudgetGroupInfoE
Decompiled
undefined (2 params)
/* CVProfExport::GetBudgetGroupInfos(IVProfExport::CExportedBudgetGroupInfo*) */
void __thiscall
CVProfExport::GetBudgetGroupInfos(CVProfExport *this,CExportedBudgetGroupInfo *param_1)
{
CExportedBudgetGroupInfo *pCVar1;
int iVar2;
undefined *puVar3;
int iVar4;
undefined4 *puVar5;
int *piVar6;
int *piVar7;
int local_38;
int *local_34;
undefined *local_30;
undefined1 local_2c [4];
undefined1 local_28 [4];
undefined1 local_24 [4];
undefined1 local_20;
iVar2 = *(int *)(this + 0x10);
iVar4 = CVProfile::GetNumBudgetGroups();
if (iVar2 < iVar4) {
local_34 = *(int **)(this + 0x10);
}
else {
local_34 = (int *)CVProfile::GetNumBudgetGroups();
}
local_38 = 0;
if (0 < (int)local_34) {
local_30 = g_pVProfileForDisplay;
piVar6 = (int *)0x0;
do {
while( true ) {
puVar5 = (undefined4 *)((int)piVar6 * 8 + *(int *)(local_30 + 0x10a0));
if ((*(uint *)(this + 0x1c) & puVar5[1]) == 0) break;
pCVar1 = param_1 + local_38 * 0xc;
*(undefined4 *)pCVar1 = *puVar5;
piVar7 = (int *)((int)piVar6 + 1);
CVProfile::GetBudgetGroupColor
((int)g_pVProfileForDisplay,piVar6,(int *)local_2c,(int *)local_28,(int *)local_24
);
puVar3 = g_pVProfileForDisplay;
local_38 = local_38 + 1;
local_30 = g_pVProfileForDisplay;
*(uint *)(pCVar1 + 8) =
CONCAT13(local_20,CONCAT12(local_24[0],CONCAT11(local_28[0],local_2c[0])));
*(undefined4 *)(pCVar1 + 4) =
*(undefined4 *)(*(int *)(puVar3 + 0x10a0) + 4 + (int)piVar6 * 8);
piVar6 = piVar7;
if (piVar7 == local_34) {
return;
}
}
piVar6 = (int *)((int)piVar6 + 1);
} while (piVar6 != local_34);
}
return;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
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.
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.