CSceneEntity::CSceneEntity
0x008175d0 · 1376 bytes · __thiscall
_ZN12CSceneEntityC2Ev
Decompiled
undefined (1 param)
/* CSceneEntity::CSceneEntity() */
void __thiscall CSceneEntity::CSceneEntity(CSceneEntity *this)
{
CBaseEdict *pCVar1;
int iVar2;
CBaseEntity::CBaseEntity((CBaseEntity *)this,false);
*(undefined ***)this = &PTR__CSceneEntity_00ccc868;
*(undefined ***)(this + 0x440) = &PTR_StartEvent_00cccc60;
*(undefined4 *)(this + 0x44c) = 0xffffffff;
*(undefined4 *)(this + 0x474) = 0xffffffff;
*(undefined4 *)(this + 0x478) = 0xffffffff;
*(undefined4 *)(this + 0x47c) = 0xffffffff;
*(undefined4 *)(this + 0x480) = 0xffffffff;
*(undefined4 *)(this + 0x484) = 0xffffffff;
*(undefined4 *)(this + 0x488) = 0xffffffff;
*(undefined4 *)(this + 0x48c) = 0xffffffff;
*(undefined4 *)(this + 0x490) = 0xffffffff;
*(undefined4 *)(this + 0x4c4) = 0;
*(undefined4 *)(this + 0x4c8) = 0;
*(undefined4 *)(this + 0x4cc) = 0;
*(undefined4 *)(this + 0x4d0) = 0;
*(undefined4 *)(this + 0x4d4) = 0;
*(undefined4 *)(this + 0x4d8) = 0;
*(undefined4 *)(this + 0x4dc) = 0;
*(undefined4 *)(this + 0x4e0) = 0;
*(undefined4 *)(this + 0x4e4) = 0;
*(undefined4 *)(this + 0x4e8) = 0;
*(undefined4 *)(this + 0x4f8) = 0;
*(undefined4 *)(this + 0x504) = 0xffffffff;
*(undefined4 *)(this + 0x508) = 0;
*(undefined4 *)(this + 0x510) = 0;
*(undefined4 *)(this + 0x51c) = 0xffffffff;
*(undefined4 *)(this + 0x520) = 0;
*(undefined4 *)(this + 0x528) = 0;
*(undefined4 *)(this + 0x534) = 0xffffffff;
*(undefined4 *)(this + 0x538) = 0;
*(undefined4 *)(this + 0x540) = 0;
*(undefined4 *)(this + 0x54c) = 0xffffffff;
*(undefined4 *)(this + 0x550) = 0;
*(undefined4 *)(this + 0x558) = 0;
*(undefined4 *)(this + 0x564) = 0xffffffff;
*(undefined4 *)(this + 0x568) = 0;
*(undefined4 *)(this + 0x570) = 0;
*(undefined4 *)(this + 0x57c) = 0xffffffff;
*(undefined4 *)(this + 0x580) = 0;
*(undefined4 *)(this + 0x588) = 0;
*(undefined4 *)(this + 0x594) = 0xffffffff;
*(undefined4 *)(this + 0x598) = 0;
*(undefined4 *)(this + 0x5a0) = 0;
*(undefined4 *)(this + 0x5ac) = 0xffffffff;
*(undefined4 *)(this + 0x5b0) = 0;
*(undefined4 *)(this + 0x5b8) = 0;
*(undefined4 *)(this + 0x5c4) = 0xffffffff;
*(undefined4 *)(this + 0x5c8) = 0;
*(undefined4 *)(this + 0x5d0) = 0;
*(undefined4 *)(this + 0x5dc) = 0xffffffff;
*(undefined4 *)(this + 0x5e0) = 0;
*(undefined4 *)(this + 0x5e8) = 0;
*(undefined4 *)(this + 0x5f4) = 0xffffffff;
*(undefined4 *)(this + 0x5f8) = 0;
*(undefined4 *)(this + 0x600) = 0;
*(undefined4 *)(this + 0x60c) = 0xffffffff;
*(undefined4 *)(this + 0x610) = 0;
*(undefined4 *)(this + 0x618) = 0;
*(undefined4 *)(this + 0x624) = 0xffffffff;
*(undefined4 *)(this + 0x628) = 0;
*(undefined4 *)(this + 0x630) = 0;
*(undefined4 *)(this + 0x63c) = 0xffffffff;
*(undefined4 *)(this + 0x640) = 0;
*(undefined4 *)(this + 0x648) = 0;
*(undefined4 *)(this + 0x654) = 0xffffffff;
*(undefined4 *)(this + 0x658) = 0;
*(undefined4 *)(this + 0x660) = 0;
*(undefined4 *)(this + 0x66c) = 0xffffffff;
*(undefined4 *)(this + 0x670) = 0;
*(undefined4 *)(this + 0x678) = 0;
*(undefined4 *)(this + 0x684) = 0xffffffff;
*(undefined4 *)(this + 0x688) = 0;
*(undefined4 *)(this + 0x690) = 0;
*(undefined4 *)(this + 0x69c) = 0xffffffff;
*(undefined4 *)(this + 0x6a0) = 0;
*(undefined4 *)(this + 0x6a8) = 0;
*(undefined4 *)(this + 0x6b4) = 0xffffffff;
*(undefined4 *)(this + 0x6b8) = 0;
*(undefined4 *)(this + 0x6c8) = 0xffffffff;
*(undefined4 *)(this + 0x6d0) = 0;
*(undefined4 *)(this + 0x6d4) = 0;
*(undefined4 *)(this + 0x6d8) = 0;
*(undefined4 *)(this + 0x6dc) = 0;
*(undefined4 *)(this + 0x6e0) = 0;
*(undefined4 *)(this + 0x6e4) = 0;
*(undefined4 *)(this + 0x6e8) = 0;
*(undefined4 *)(this + 0x6ec) = 0;
*(undefined4 *)(this + 0x6f0) = 0;
*(undefined4 *)(this + 0x6f4) = 0;
*(undefined4 *)(this + 0x700) = 0xffffffff;
*(undefined4 *)(this + 0x704) = 0xffffffff;
this[0x4bd] = (CSceneEntity)0x0;
this[0x4be] = (CSceneEntity)0x0;
this[0x4bf] = (CSceneEntity)0x0;
if (this[0x494] != (CSceneEntity)0x0) {
if (this[0x6c] == (CSceneEntity)0x0) {
pCVar1 = *(CBaseEdict **)(this + 0x30);
if (pCVar1 != (CBaseEdict *)0x0) {
*(uint *)pCVar1 = *(uint *)pCVar1 | 0x101;
iVar2 = CBaseEdict::GetChangeAccessor(pCVar1);
*(undefined2 *)(iVar2 + 2) = 0;
}
}
else {
this[0x70] = (CSceneEntity)((byte)this[0x70] | 1);
}
this[0x494] = (CSceneEntity)0x0;
}
if (this[0x495] != (CSceneEntity)0x0) {
if (this[0x6c] == (CSceneEntity)0x0) {
pCVar1 = *(CBaseEdict **)(this + 0x30);
if (pCVar1 != (CBaseEdict *)0x0) {
*(uint *)pCVar1 = *(uint *)pCVar1 | 0x101;
iVar2 = CBaseEdict::GetChangeAccessor(pCVar1);
*(undefined2 *)(iVar2 + 2) = 0;
}
}
else {
this[0x70] = (CSceneEntity)((byte)this[0x70] | 1);
}
this[0x495] = (CSceneEntity)0x0;
}
if (this[0x496] != (CSceneEntity)0x0) {
if (this[0x6c] == (CSceneEntity)0x0) {
pCVar1 = *(CBaseEdict **)(this + 0x30);
if (pCVar1 != (CBaseEdict *)0x0) {
*(uint *)pCVar1 = *(uint *)pCVar1 | 0x101;
/* try { // try from 008179c8 to 00817b44 has its CatchHandler @ 00817b52 */
iVar2 = CBaseEdict::GetChangeAccessor(pCVar1);
*(undefined2 *)(iVar2 + 2) = 0;
}
}
else {
this[0x70] = (CSceneEntity)((byte)this[0x70] | 1);
}
this[0x496] = (CSceneEntity)0x0;
}
*(undefined4 *)(this + 0x4a8) = 0x3f800000;
*(undefined4 *)(this + 0x444) = 0;
*(undefined4 *)(this + 0x448) = 0;
*(undefined4 *)(this + 0x44c) = 0xffffffff;
this[0x450] = (CSceneEntity)0x0;
SetCurrentTime(this,0.0,false);
iVar2 = m_pcvSndMixahead;
this[0x4a4] = (CSceneEntity)0x0;
this[0x4ac] = (CSceneEntity)0x0;
*(undefined4 *)(this + 0x4b0) = 0;
*(undefined4 *)(this + 0x4b4) = 0;
this[0x4bc] = (CSceneEntity)0x0;
*(undefined4 *)(this + 0x4b8) = 0;
*(undefined4 *)(this + 0x6c0) = 0;
this[0x6c4] = (CSceneEntity)0x0;
*(undefined4 *)(this + 0x6c8) = 0xffffffff;
*(undefined4 *)(this + 0x4f0) = 0;
this[0x6cc] = (CSceneEntity)0x0;
*(undefined4 *)(this + 0x708) = 0;
if (iVar2 != 0) {
return;
}
m_pcvSndMixahead = (**(code **)(*cvar + 0x30))(cvar,"snd_mixahead");
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.