mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-27 07:05:38 +03:00
implement CGib (#536)
* implement CGib Move code part from basemonster.cpp to gib.cpp 3-rd party: Link entity to class (can hookable by HamSandwich amxx module) Add hooks for ReAPI
This commit is contained in:
parent
27c15c38f6
commit
bffb373539
@ -1,3 +1,3 @@
|
|||||||
majorVersion=5
|
majorVersion=5
|
||||||
minorVersion=16
|
minorVersion=17
|
||||||
maintenanceVersion=0
|
maintenanceVersion=0
|
||||||
|
@ -170,6 +170,12 @@ GAMEHOOK_REGISTRY(CBasePlayer_DropIdlePlayer);
|
|||||||
|
|
||||||
GAMEHOOK_REGISTRY(CreateWeaponBox);
|
GAMEHOOK_REGISTRY(CreateWeaponBox);
|
||||||
|
|
||||||
|
GAMEHOOK_REGISTRY(SpawnHeadGib);
|
||||||
|
GAMEHOOK_REGISTRY(SpawnRandomGibs);
|
||||||
|
GAMEHOOK_REGISTRY(CGib_Spawn);
|
||||||
|
GAMEHOOK_REGISTRY(CGib_BounceGibTouch);
|
||||||
|
GAMEHOOK_REGISTRY(CGib_WaitTillLand);
|
||||||
|
|
||||||
int CReGameApi::GetMajorVersion() {
|
int CReGameApi::GetMajorVersion() {
|
||||||
return REGAMEDLL_API_VERSION_MAJOR;
|
return REGAMEDLL_API_VERSION_MAJOR;
|
||||||
}
|
}
|
||||||
|
@ -105,6 +105,16 @@
|
|||||||
return g_ReGameHookchains.m_##functionName.callChain(functionName##_OrigFunc, __VA_ARGS__);\
|
return g_ReGameHookchains.m_##functionName.callChain(functionName##_OrigFunc, __VA_ARGS__);\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LINK_HOOK_GLOB_CLASS_VOID_CHAIN(className, functionName, args, ...)\
|
||||||
|
void className::functionName args {\
|
||||||
|
g_ReGameHookchains.m_##functionName.callChain(className::functionName##_OrigFunc, __VA_ARGS__);\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LINK_HOOK_GLOB_CLASS_CHAIN(ret, className, functionName, args, ...)\
|
||||||
|
ret className::functionName args {\
|
||||||
|
return g_ReGameHookchains.m_##functionName.callChain(className::functionName##_OrigFunc, __VA_ARGS__);\
|
||||||
|
}
|
||||||
|
|
||||||
#define LINK_HOOK_CUSTOM2_CHAIN(ret, customFuncName, functionName, args, ...)\
|
#define LINK_HOOK_CUSTOM2_CHAIN(ret, customFuncName, functionName, args, ...)\
|
||||||
ret functionName args {\
|
ret functionName args {\
|
||||||
return g_ReGameHookchains.m_##customFuncName.callChain(functionName##_OrigFunc, __VA_ARGS__);\
|
return g_ReGameHookchains.m_##customFuncName.callChain(functionName##_OrigFunc, __VA_ARGS__);\
|
||||||
@ -137,6 +147,8 @@
|
|||||||
#define LINK_HOOK_VOID_CHAIN2(...)
|
#define LINK_HOOK_VOID_CHAIN2(...)
|
||||||
#define LINK_HOOK_CHAIN(...)
|
#define LINK_HOOK_CHAIN(...)
|
||||||
#define LINK_HOOK_CHAIN2(...)
|
#define LINK_HOOK_CHAIN2(...)
|
||||||
|
#define LINK_HOOK_GLOB_CLASS_VOID_CHAIN(...)
|
||||||
|
#define LINK_HOOK_GLOB_CLASS_CHAIN(...)
|
||||||
|
|
||||||
#endif // REGAMEDLL_API
|
#endif // REGAMEDLL_API
|
||||||
|
|
||||||
@ -564,13 +576,33 @@ typedef IHookChainClassImpl<bool, CBasePlayerWeapon, int, int, float, float, con
|
|||||||
typedef IHookChainRegistryClassImpl<bool, CBasePlayerWeapon, int, int, float, float, const char *, const char *> CReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload;
|
typedef IHookChainRegistryClassImpl<bool, CBasePlayerWeapon, int, int, float, float, const char *, const char *> CReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload;
|
||||||
|
|
||||||
// CBasePlayer::DropIdlePlayer hook
|
// CBasePlayer::DropIdlePlayer hook
|
||||||
typedef IHookChainClassImpl<void, CBasePlayer, const char *> CReGameHook_CBasePlayer_DropIdlePlayer;
|
typedef IHookChainClassImpl<void, class CBasePlayer, const char *> CReGameHook_CBasePlayer_DropIdlePlayer;
|
||||||
typedef IHookChainRegistryClassImpl<void, CBasePlayer, const char *> CReGameHookRegistry_CBasePlayer_DropIdlePlayer;
|
typedef IHookChainRegistryClassImpl<void, class CBasePlayer, const char *> CReGameHookRegistry_CBasePlayer_DropIdlePlayer;
|
||||||
|
|
||||||
// CreateWeaponBox hook
|
// CreateWeaponBox hook
|
||||||
typedef IHookChainImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHook_CreateWeaponBox;
|
typedef IHookChainImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHook_CreateWeaponBox;
|
||||||
typedef IHookChainRegistryImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHookRegistry_CreateWeaponBox;
|
typedef IHookChainRegistryImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHookRegistry_CreateWeaponBox;
|
||||||
|
|
||||||
|
// SpawnHeadGib hook
|
||||||
|
typedef IHookChainImpl<class CGib *, entvars_t *> CReGameHook_SpawnHeadGib;
|
||||||
|
typedef IHookChainRegistryImpl<class CGib *, entvars_t *> CReGameHookRegistry_SpawnHeadGib;
|
||||||
|
|
||||||
|
// SpawnRandomGibs hook
|
||||||
|
typedef IHookChainImpl<void, entvars_t *, int, int> CReGameHook_SpawnRandomGibs;
|
||||||
|
typedef IHookChainRegistryImpl<void, entvars_t *, int, int> CReGameHookRegistry_SpawnRandomGibs;
|
||||||
|
|
||||||
|
// CGib::Spawn hook
|
||||||
|
typedef IHookChainClassImpl<void, class CGib, const char *> CReGameHook_CGib_Spawn;
|
||||||
|
typedef IHookChainRegistryClassImpl<void, class CGib, const char *> CReGameHookRegistry_CGib_Spawn;
|
||||||
|
|
||||||
|
// CGib::BounceGibTouch hook
|
||||||
|
typedef IHookChainClassImpl<void, class CGib, CBaseEntity *> CReGameHook_CGib_BounceGibTouch;
|
||||||
|
typedef IHookChainRegistryClassImpl<void, class CGib, CBaseEntity *> CReGameHookRegistry_CGib_BounceGibTouch;
|
||||||
|
|
||||||
|
// CGib::WaitTillLand hook
|
||||||
|
typedef IHookChainClassImpl<void, class CGib> CReGameHook_CGib_WaitTillLand;
|
||||||
|
typedef IHookChainRegistryClassImpl<void, class CGib> CReGameHookRegistry_CGib_WaitTillLand;
|
||||||
|
|
||||||
class CReGameHookchains: public IReGameHookchains {
|
class CReGameHookchains: public IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
// CBasePlayer virtual
|
// CBasePlayer virtual
|
||||||
@ -687,6 +719,12 @@ public:
|
|||||||
CReGameHookRegistry_CBasePlayer_DropIdlePlayer m_CBasePlayer_DropIdlePlayer;
|
CReGameHookRegistry_CBasePlayer_DropIdlePlayer m_CBasePlayer_DropIdlePlayer;
|
||||||
CReGameHookRegistry_CreateWeaponBox m_CreateWeaponBox;
|
CReGameHookRegistry_CreateWeaponBox m_CreateWeaponBox;
|
||||||
|
|
||||||
|
CReGameHookRegistry_SpawnHeadGib m_SpawnHeadGib;
|
||||||
|
CReGameHookRegistry_SpawnRandomGibs m_SpawnRandomGibs;
|
||||||
|
CReGameHookRegistry_CGib_Spawn m_CGib_Spawn;
|
||||||
|
CReGameHookRegistry_CGib_BounceGibTouch m_CGib_BounceGibTouch;
|
||||||
|
CReGameHookRegistry_CGib_WaitTillLand m_CGib_WaitTillLand;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual IReGameHookRegistry_CBasePlayer_Spawn *CBasePlayer_Spawn();
|
virtual IReGameHookRegistry_CBasePlayer_Spawn *CBasePlayer_Spawn();
|
||||||
virtual IReGameHookRegistry_CBasePlayer_Precache *CBasePlayer_Precache();
|
virtual IReGameHookRegistry_CBasePlayer_Precache *CBasePlayer_Precache();
|
||||||
@ -800,6 +838,12 @@ public:
|
|||||||
virtual IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload *CBasePlayerWeapon_DefaultShotgunReload();
|
virtual IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload *CBasePlayerWeapon_DefaultShotgunReload();
|
||||||
virtual IReGameHookRegistry_CBasePlayer_DropIdlePlayer *CBasePlayer_DropIdlePlayer();
|
virtual IReGameHookRegistry_CBasePlayer_DropIdlePlayer *CBasePlayer_DropIdlePlayer();
|
||||||
virtual IReGameHookRegistry_CreateWeaponBox *CreateWeaponBox();
|
virtual IReGameHookRegistry_CreateWeaponBox *CreateWeaponBox();
|
||||||
|
|
||||||
|
virtual IReGameHookRegistry_SpawnHeadGib *SpawnHeadGib();
|
||||||
|
virtual IReGameHookRegistry_SpawnRandomGibs *SpawnRandomGibs();
|
||||||
|
virtual IReGameHookRegistry_CGib_Spawn *CGib_Spawn();
|
||||||
|
virtual IReGameHookRegistry_CGib_BounceGibTouch *CGib_BounceGibTouch();
|
||||||
|
virtual IReGameHookRegistry_CGib_WaitTillLand *CGib_WaitTillLand();
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CReGameHookchains g_ReGameHookchains;
|
extern CReGameHookchains g_ReGameHookchains;
|
||||||
|
@ -368,32 +368,6 @@ void CBaseMonster::Killed(entvars_t *pevAttacker, int iGib)
|
|||||||
m_IdealMonsterState = MONSTERSTATE_DEAD;
|
m_IdealMonsterState = MONSTERSTATE_DEAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGib::WaitTillLand()
|
|
||||||
{
|
|
||||||
if (!IsInWorld())
|
|
||||||
{
|
|
||||||
UTIL_Remove(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pev->velocity == g_vecZero)
|
|
||||||
{
|
|
||||||
SetThink(&CBaseEntity::SUB_StartFadeOut);
|
|
||||||
pev->nextthink = gpGlobals->time + m_lifeTime;
|
|
||||||
|
|
||||||
#ifndef REGAMEDLL_FIXES
|
|
||||||
if (m_bloodColor != DONT_BLEED)
|
|
||||||
{
|
|
||||||
CSoundEnt::InsertSound(bits_SOUND_MEAT, pev->origin, 384, 25);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pev->nextthink = gpGlobals->time + 0.5f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL CBaseMonster::TakeHealth(float flHealth, int bitsDamageType)
|
BOOL CBaseMonster::TakeHealth(float flHealth, int bitsDamageType)
|
||||||
{
|
{
|
||||||
if (pev->takedamage == DAMAGE_NO)
|
if (pev->takedamage == DAMAGE_NO)
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#include "precompiled.h"
|
#include "precompiled.h"
|
||||||
|
|
||||||
|
LINK_ENTITY_TO_CLASS(gib, CGib, CCSGib)
|
||||||
|
|
||||||
void CGib::LimitVelocity()
|
void CGib::LimitVelocity()
|
||||||
{
|
{
|
||||||
float length = pev->velocity.Length();
|
float length = pev->velocity.Length();
|
||||||
@ -74,7 +76,9 @@ NOXREF void CGib::SpawnStickyGibs(entvars_t *pevVictim, Vector vecOrigin, int cG
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGib::SpawnHeadGib(entvars_t *pevVictim)
|
LINK_HOOK_GLOB_CLASS_CHAIN(CGib *, CGib, SpawnHeadGib, (entvars_t *pevVictim), pevVictim)
|
||||||
|
|
||||||
|
CGib *CGib::__API_HOOK(SpawnHeadGib)(entvars_t *pevVictim)
|
||||||
{
|
{
|
||||||
CGib *pGib = GetClassPtr<CCSGib>((CGib *)nullptr);
|
CGib *pGib = GetClassPtr<CCSGib>((CGib *)nullptr);
|
||||||
|
|
||||||
@ -132,9 +136,13 @@ void CGib::SpawnHeadGib(entvars_t *pevVictim)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pGib->LimitVelocity();
|
pGib->LimitVelocity();
|
||||||
|
|
||||||
|
return pGib;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGib::SpawnRandomGibs(entvars_t *pevVictim, int cGibs, int human)
|
LINK_HOOK_GLOB_CLASS_VOID_CHAIN(CGib, SpawnRandomGibs, (entvars_t *pevVictim, int cGibs, int human), pevVictim, cGibs, human)
|
||||||
|
|
||||||
|
void CGib::__API_HOOK(SpawnRandomGibs)(entvars_t *pevVictim, int cGibs, int human)
|
||||||
{
|
{
|
||||||
for (int cSplat = 0; cSplat < cGibs; cSplat++)
|
for (int cSplat = 0; cSplat < cGibs; cSplat++)
|
||||||
{
|
{
|
||||||
@ -198,11 +206,14 @@ void CGib::SpawnRandomGibs(entvars_t *pevVictim, int cGibs, int human)
|
|||||||
pGib->pev->solid = SOLID_BBOX;
|
pGib->pev->solid = SOLID_BBOX;
|
||||||
UTIL_SetSize(pGib->pev, Vector(0, 0, 0), Vector(0, 0, 0));
|
UTIL_SetSize(pGib->pev, Vector(0, 0, 0), Vector(0, 0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
pGib->LimitVelocity();
|
pGib->LimitVelocity();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGib::BounceGibTouch(CBaseEntity *pOther)
|
LINK_HOOK_CLASS_VOID_CHAIN(CGib, BounceGibTouch, (CBaseEntity *pOther), pOther)
|
||||||
|
|
||||||
|
void CGib::__API_HOOK(BounceGibTouch)(CBaseEntity *pOther)
|
||||||
{
|
{
|
||||||
if (pev->flags & FL_ONGROUND)
|
if (pev->flags & FL_ONGROUND)
|
||||||
{
|
{
|
||||||
@ -260,7 +271,9 @@ void CGib::StickyGibTouch(CBaseEntity *pOther)
|
|||||||
pev->movetype = MOVETYPE_NONE;
|
pev->movetype = MOVETYPE_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGib::Spawn(const char *szGibModel)
|
LINK_HOOK_CLASS_VOID_CHAIN(CGib, Spawn, (const char *szGibModel), szGibModel)
|
||||||
|
|
||||||
|
void CGib::__API_HOOK(Spawn)(const char *szGibModel)
|
||||||
{
|
{
|
||||||
pev->movetype = MOVETYPE_BOUNCE;
|
pev->movetype = MOVETYPE_BOUNCE;
|
||||||
|
|
||||||
@ -292,3 +305,31 @@ void CGib::Spawn(const char *szGibModel)
|
|||||||
// how many blood decals this gib can place (1 per bounce until none remain).
|
// how many blood decals this gib can place (1 per bounce until none remain).
|
||||||
m_cBloodDecals = 5;
|
m_cBloodDecals = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LINK_HOOK_CLASS_VOID_CHAIN2(CGib, WaitTillLand)
|
||||||
|
|
||||||
|
void CGib::__API_HOOK(WaitTillLand)()
|
||||||
|
{
|
||||||
|
if (!IsInWorld())
|
||||||
|
{
|
||||||
|
UTIL_Remove(this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pev->velocity == g_vecZero)
|
||||||
|
{
|
||||||
|
SetThink(&CBaseEntity::SUB_StartFadeOut);
|
||||||
|
pev->nextthink = gpGlobals->time + m_lifeTime;
|
||||||
|
|
||||||
|
#ifndef REGAMEDLL_FIXES
|
||||||
|
if (m_bloodColor != DONT_BLEED)
|
||||||
|
{
|
||||||
|
CSoundEnt::InsertSound(bits_SOUND_MEAT, pev->origin, 384, 25);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pev->nextthink = gpGlobals->time + 0.5f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -34,6 +34,10 @@ public:
|
|||||||
virtual int ObjectCaps() { return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION) | FCAP_DONT_SAVE; }
|
virtual int ObjectCaps() { return (CBaseEntity::ObjectCaps() & ~FCAP_ACROSS_TRANSITION) | FCAP_DONT_SAVE; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void Spawn_OrigFunc(const char *szGibModel);
|
||||||
|
void BounceGibTouch_OrigFunc(CBaseEntity *pOther);
|
||||||
|
void WaitTillLand_OrigFunc();
|
||||||
|
|
||||||
void Spawn(const char *szGibModel);
|
void Spawn(const char *szGibModel);
|
||||||
void EXPORT BounceGibTouch(CBaseEntity *pOther);
|
void EXPORT BounceGibTouch(CBaseEntity *pOther);
|
||||||
void EXPORT StickyGibTouch(CBaseEntity *pOther);
|
void EXPORT StickyGibTouch(CBaseEntity *pOther);
|
||||||
@ -41,7 +45,10 @@ public:
|
|||||||
void LimitVelocity();
|
void LimitVelocity();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void SpawnHeadGib(entvars_t *pevVictim);
|
static CGib *SpawnHeadGib_OrigFunc(entvars_t *pevVictim);
|
||||||
|
static void SpawnRandomGibs_OrigFunc(entvars_t *pevVictim, int cGibs, int human);
|
||||||
|
|
||||||
|
static CGib *SpawnHeadGib(entvars_t *pevVictim);
|
||||||
static void SpawnRandomGibs(entvars_t *pevVictim, int cGibs, int human);
|
static void SpawnRandomGibs(entvars_t *pevVictim, int cGibs, int human);
|
||||||
static void SpawnStickyGibs(entvars_t *pevVictim, Vector vecOrigin, int cGibs);
|
static void SpawnStickyGibs(entvars_t *pevVictim, Vector vecOrigin, int cGibs);
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
#include <API/CSInterfaces.h>
|
#include <API/CSInterfaces.h>
|
||||||
|
|
||||||
#define REGAMEDLL_API_VERSION_MAJOR 5
|
#define REGAMEDLL_API_VERSION_MAJOR 5
|
||||||
#define REGAMEDLL_API_VERSION_MINOR 16
|
#define REGAMEDLL_API_VERSION_MINOR 17
|
||||||
|
|
||||||
// CBasePlayer::Spawn hook
|
// CBasePlayer::Spawn hook
|
||||||
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_Spawn;
|
typedef IHookChainClass<void, class CBasePlayer> IReGameHook_CBasePlayer_Spawn;
|
||||||
@ -461,13 +461,33 @@ typedef IHookChainClass<bool, class CBasePlayerWeapon, int, int, float, float, c
|
|||||||
typedef IHookChainRegistryClass<bool, class CBasePlayerWeapon, int, int, float, float, const char *, const char *> IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload;
|
typedef IHookChainRegistryClass<bool, class CBasePlayerWeapon, int, int, float, float, const char *, const char *> IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload;
|
||||||
|
|
||||||
// CBasePlayer::DropIdlePlayer hook
|
// CBasePlayer::DropIdlePlayer hook
|
||||||
typedef IHookChainClass<void, CBasePlayer, const char *> IReGameHook_CBasePlayer_DropIdlePlayer;
|
typedef IHookChainClass<void, class CBasePlayer, const char *> IReGameHook_CBasePlayer_DropIdlePlayer;
|
||||||
typedef IHookChainRegistryClass<void, CBasePlayer, const char *> IReGameHookRegistry_CBasePlayer_DropIdlePlayer;
|
typedef IHookChainRegistryClass<void, class CBasePlayer, const char *> IReGameHookRegistry_CBasePlayer_DropIdlePlayer;
|
||||||
|
|
||||||
// CreateWeaponBox hook
|
// CreateWeaponBox hook
|
||||||
typedef IHookChain<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHook_CreateWeaponBox;
|
typedef IHookChain<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHook_CreateWeaponBox;
|
||||||
typedef IHookChainRegistry<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHookRegistry_CreateWeaponBox;
|
typedef IHookChainRegistry<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHookRegistry_CreateWeaponBox;
|
||||||
|
|
||||||
|
// SpawnHeadGib hook
|
||||||
|
typedef IHookChain<class CGib *, entvars_t *> IReGameHook_SpawnHeadGib;
|
||||||
|
typedef IHookChainRegistry<class CGib *, entvars_t *> IReGameHookRegistry_SpawnHeadGib;
|
||||||
|
|
||||||
|
// SpawnRandomGibs hook
|
||||||
|
typedef IHookChain<void, entvars_t *, int, int> IReGameHook_SpawnRandomGibs;
|
||||||
|
typedef IHookChainRegistry<void, entvars_t *, int, int> IReGameHookRegistry_SpawnRandomGibs;
|
||||||
|
|
||||||
|
// CGib::Spawn hook
|
||||||
|
typedef IHookChainClass<void, class CGib, const char *> IReGameHook_CGib_Spawn;
|
||||||
|
typedef IHookChainRegistryClass<void, class CGib, const char *> IReGameHookRegistry_CGib_Spawn;
|
||||||
|
|
||||||
|
// CGib::BounceGibTouch hook
|
||||||
|
typedef IHookChainClass<void, class CGib, CBaseEntity *> IReGameHook_CGib_BounceGibTouch;
|
||||||
|
typedef IHookChainRegistryClass<void, class CGib, CBaseEntity *> IReGameHookRegistry_CGib_BounceGibTouch;
|
||||||
|
|
||||||
|
// CGib::WaitTillLand hook
|
||||||
|
typedef IHookChainClass<void, class CGib> IReGameHook_CGib_WaitTillLand;
|
||||||
|
typedef IHookChainRegistryClass<void, class CGib> IReGameHookRegistry_CGib_WaitTillLand;
|
||||||
|
|
||||||
class IReGameHookchains {
|
class IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
virtual ~IReGameHookchains() {}
|
virtual ~IReGameHookchains() {}
|
||||||
@ -584,6 +604,12 @@ public:
|
|||||||
virtual IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload *CBasePlayerWeapon_DefaultShotgunReload() = 0;
|
virtual IReGameHookRegistry_CBasePlayerWeapon_DefaultShotgunReload *CBasePlayerWeapon_DefaultShotgunReload() = 0;
|
||||||
virtual IReGameHookRegistry_CBasePlayer_DropIdlePlayer *CBasePlayer_DropIdlePlayer() = 0;
|
virtual IReGameHookRegistry_CBasePlayer_DropIdlePlayer *CBasePlayer_DropIdlePlayer() = 0;
|
||||||
virtual IReGameHookRegistry_CreateWeaponBox *CreateWeaponBox() = 0;
|
virtual IReGameHookRegistry_CreateWeaponBox *CreateWeaponBox() = 0;
|
||||||
|
|
||||||
|
virtual IReGameHookRegistry_SpawnHeadGib *SpawnHeadGib() = 0;
|
||||||
|
virtual IReGameHookRegistry_SpawnRandomGibs *SpawnRandomGibs() = 0;
|
||||||
|
virtual IReGameHookRegistry_CGib_Spawn *CGib_Spawn() = 0;
|
||||||
|
virtual IReGameHookRegistry_CGib_BounceGibTouch *CGib_BounceGibTouch() = 0;
|
||||||
|
virtual IReGameHookRegistry_CGib_WaitTillLand *CGib_WaitTillLand() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ReGameFuncs_t {
|
struct ReGameFuncs_t {
|
||||||
|
Loading…
Reference in New Issue
Block a user