Fix SDKHooks Spawn hook crashing in Dota.

--HG--
extra : rebase_source : dfe1eb22256268b321b8c24be718fbc7c770e74e
This commit is contained in:
Nicholas Hastings 2013-12-28 08:19:34 -05:00
parent b83810b986
commit bdbc3c3b58
2 changed files with 21 additions and 0 deletions
extensions/sdkhooks

View File

@ -144,7 +144,11 @@ SH_DECL_MANUALHOOK0_void(PostThink, 0, 0, 0);
SH_DECL_MANUALHOOK0(Reload, 0, 0, 0, bool);
SH_DECL_MANUALHOOK2_void(SetTransmit, 0, 0, 0, CCheckTransmitInfo *, bool);
SH_DECL_MANUALHOOK2(ShouldCollide, 0, 0, 0, bool, int, int);
#if SOURCE_ENGINE == SE_DOTA
SH_DECL_MANUALHOOK1_void(Spawn, 0, 0, 0, CEntityKeyValues *);
#else
SH_DECL_MANUALHOOK0_void(Spawn, 0, 0, 0);
#endif
SH_DECL_MANUALHOOK1_void(StartTouch, 0, 0, 0, CBaseEntity *);
SH_DECL_MANUALHOOK0_void(Think, 0, 0, 0);
SH_DECL_MANUALHOOK1_void(Touch, 0, 0, 0, CBaseEntity *);
@ -1202,7 +1206,11 @@ bool SDKHooks::Hook_ShouldCollide(int collisionGroup, int contentsMask)
RETURN_META_VALUE(MRES_SUPERCEDE, ret);
}
#if SOURCE_ENGINE == SE_DOTA
void SDKHooks::Hook_Spawn(CEntityKeyValues *kv)
#else
void SDKHooks::Hook_Spawn()
#endif
{
int entity = gamehelpers->EntityToBCompatRef(META_IFACEPTR(CBaseEntity));
IPluginFunction *callback = NULL;
@ -1224,7 +1232,11 @@ void SDKHooks::Hook_Spawn()
RETURN_META(MRES_IGNORED);
}
#if SOURCE_ENGINE == SE_DOTA
void SDKHooks::Hook_SpawnPost(CEntityKeyValues *kv)
#else
void SDKHooks::Hook_SpawnPost()
#endif
{
Call(META_IFACEPTR(CBaseEntity), SDKHook_SpawnPost);
}

View File

@ -25,6 +25,10 @@
#define GAMEDESC_CAN_CHANGE
#endif
#if SOURCE_ENGINE == SE_DOTA
class CEntityKeyValues;
#endif
/**
* Globals
@ -266,8 +270,13 @@ public:
bool Hook_ReloadPost();
void Hook_SetTransmit(CCheckTransmitInfo *pInfo, bool bAlways);
bool Hook_ShouldCollide(int collisonGroup, int contentsMask);
#if SOURCE_ENGINE == SE_DOTA
void Hook_Spawn(CEntityKeyValues *kv);
void Hook_SpawnPost(CEntityKeyValues *kv);
#else
void Hook_Spawn();
void Hook_SpawnPost();
#endif
void Hook_StartTouch(CBaseEntity *pOther);
void Hook_StartTouchPost(CBaseEntity *pOther);
void Hook_Think();