mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-27 23:25:41 +03:00
API: Added hook InstallGameRules
This commit is contained in:
parent
982d12176e
commit
bba210b6a1
@ -113,7 +113,9 @@ void CGameRules::__MAKE_VHOOK(RefreshSkillData)()
|
|||||||
gSkillData.healthkitCapacity = 15;
|
gSkillData.healthkitCapacity = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGameRules *InstallGameRules()
|
LINK_HOOK_CHAIN2(CGameRules *, InstallGameRules);
|
||||||
|
|
||||||
|
CGameRules *__API_HOOK(InstallGameRules)()
|
||||||
{
|
{
|
||||||
SERVER_COMMAND("exec game.cfg\n");
|
SERVER_COMMAND("exec game.cfg\n");
|
||||||
SERVER_EXECUTE();
|
SERVER_EXECUTE();
|
||||||
|
@ -767,6 +767,7 @@ public:
|
|||||||
extern CGameRules *g_pGameRules;
|
extern CGameRules *g_pGameRules;
|
||||||
|
|
||||||
CGameRules *InstallGameRules();
|
CGameRules *InstallGameRules();
|
||||||
|
CGameRules *InstallGameRules_();
|
||||||
|
|
||||||
inline CHalfLifeMultiplay *CSGameRules()
|
inline CHalfLifeMultiplay *CSGameRules()
|
||||||
{
|
{
|
||||||
|
@ -178,6 +178,10 @@ typedef IHookChainRegistryClassEmpty<bool, int, ScenarioEventEndRound, float> IR
|
|||||||
typedef IHookChain<bool, class CBasePlayer *, int> IReGameHook_CanBuyThis;
|
typedef IHookChain<bool, class CBasePlayer *, int> IReGameHook_CanBuyThis;
|
||||||
typedef IHookChainRegistry<bool, class CBasePlayer *, int> IReGameHookRegistry_CanBuyThis;
|
typedef IHookChainRegistry<bool, class CBasePlayer *, int> IReGameHookRegistry_CanBuyThis;
|
||||||
|
|
||||||
|
// InstallGameRules hook
|
||||||
|
typedef IHookChain<class CGameRules *> IReGameHook_InstallGameRules;
|
||||||
|
typedef IHookChainRegistry<class CGameRules *> IReGameHookRegistry_InstallGameRules;
|
||||||
|
|
||||||
class IReGameHookchains {
|
class IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
virtual ~IReGameHookchains() {}
|
virtual ~IReGameHookchains() {}
|
||||||
@ -221,6 +225,7 @@ public:
|
|||||||
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine() = 0;
|
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine() = 0;
|
||||||
virtual IReGameHookRegistry_RoundEnd* RoundEnd() = 0;
|
virtual IReGameHookRegistry_RoundEnd* RoundEnd() = 0;
|
||||||
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis() = 0;
|
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis() = 0;
|
||||||
|
virtual IReGameHookRegistry_InstallGameRules* InstallGameRules() = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -178,6 +178,10 @@ typedef IHookChainRegistryClassEmpty<bool, int, ScenarioEventEndRound, float> IR
|
|||||||
typedef IHookChain<bool, class CBasePlayer *, int> IReGameHook_CanBuyThis;
|
typedef IHookChain<bool, class CBasePlayer *, int> IReGameHook_CanBuyThis;
|
||||||
typedef IHookChainRegistry<bool, class CBasePlayer *, int> IReGameHookRegistry_CanBuyThis;
|
typedef IHookChainRegistry<bool, class CBasePlayer *, int> IReGameHookRegistry_CanBuyThis;
|
||||||
|
|
||||||
|
// InstallGameRules hook
|
||||||
|
typedef IHookChain<class CGameRules *> IReGameHook_InstallGameRules;
|
||||||
|
typedef IHookChainRegistry<class CGameRules *> IReGameHookRegistry_InstallGameRules;
|
||||||
|
|
||||||
class IReGameHookchains {
|
class IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
virtual ~IReGameHookchains() {}
|
virtual ~IReGameHookchains() {}
|
||||||
@ -221,6 +225,7 @@ public:
|
|||||||
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine() = 0;
|
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine() = 0;
|
||||||
virtual IReGameHookRegistry_RoundEnd* RoundEnd() = 0;
|
virtual IReGameHookRegistry_RoundEnd* RoundEnd() = 0;
|
||||||
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis() = 0;
|
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis() = 0;
|
||||||
|
virtual IReGameHookRegistry_InstallGameRules* InstallGameRules() = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2076,5 +2076,5 @@ class IReGameData {
|
|||||||
public:
|
public:
|
||||||
virtual ~IReGameData() {}
|
virtual ~IReGameData() {}
|
||||||
|
|
||||||
virtual class CGameRules** GetGameRules() = 0;
|
virtual class CGameRules* GetGameRules() = 0;
|
||||||
};
|
};
|
||||||
|
@ -89,6 +89,7 @@ IReGameHookRegistry_PlayerBlind* CReGameHookchains::PlayerBlind() { return &m_Pl
|
|||||||
IReGameHookRegistry_RadiusFlash_TraceLine* CReGameHookchains::RadiusFlash_TraceLine() { return &m_RadiusFlash_TraceLine; }
|
IReGameHookRegistry_RadiusFlash_TraceLine* CReGameHookchains::RadiusFlash_TraceLine() { return &m_RadiusFlash_TraceLine; }
|
||||||
IReGameHookRegistry_RoundEnd* CReGameHookchains::RoundEnd() { return &m_RoundEnd; }
|
IReGameHookRegistry_RoundEnd* CReGameHookchains::RoundEnd() { return &m_RoundEnd; }
|
||||||
IReGameHookRegistry_CanBuyThis* CReGameHookchains::CanBuyThis() { return &m_CanBuyThis; }
|
IReGameHookRegistry_CanBuyThis* CReGameHookchains::CanBuyThis() { return &m_CanBuyThis; }
|
||||||
|
IReGameHookRegistry_InstallGameRules* CReGameHookchains::InstallGameRules() { return &m_InstallGameRules; }
|
||||||
|
|
||||||
int CReGameApi::GetMajorVersion()
|
int CReGameApi::GetMajorVersion()
|
||||||
{
|
{
|
||||||
|
@ -172,6 +172,10 @@ typedef IHookChainRegistryClassEmptyImpl<bool, class CHalfLifeMultiplay, int, Sc
|
|||||||
typedef IHookChainImpl<bool, class CBasePlayer *, int> CReGameHook_CanBuyThis;
|
typedef IHookChainImpl<bool, class CBasePlayer *, int> CReGameHook_CanBuyThis;
|
||||||
typedef IHookChainRegistryImpl<bool, class CBasePlayer *, int> CReGameHookRegistry_CanBuyThis;
|
typedef IHookChainRegistryImpl<bool, class CBasePlayer *, int> CReGameHookRegistry_CanBuyThis;
|
||||||
|
|
||||||
|
// InstallGameRules hook
|
||||||
|
typedef IHookChainImpl<CGameRules *> CReGameHook_InstallGameRules;
|
||||||
|
typedef IHookChainRegistryImpl<CGameRules *> CReGameHookRegistry_InstallGameRules;
|
||||||
|
|
||||||
class CReGameHookchains: public IReGameHookchains {
|
class CReGameHookchains: public IReGameHookchains {
|
||||||
public:
|
public:
|
||||||
// CBasePlayer virtual
|
// CBasePlayer virtual
|
||||||
@ -213,6 +217,7 @@ public:
|
|||||||
CReGameHookRegistry_RadiusFlash_TraceLine m_RadiusFlash_TraceLine;
|
CReGameHookRegistry_RadiusFlash_TraceLine m_RadiusFlash_TraceLine;
|
||||||
CReGameHookRegistry_RoundEnd m_RoundEnd;
|
CReGameHookRegistry_RoundEnd m_RoundEnd;
|
||||||
CReGameHookRegistry_CanBuyThis m_CanBuyThis;
|
CReGameHookRegistry_CanBuyThis m_CanBuyThis;
|
||||||
|
CReGameHookRegistry_InstallGameRules m_InstallGameRules;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual IReGameHookRegistry_CBasePlayer_Spawn* CBasePlayer_Spawn();
|
virtual IReGameHookRegistry_CBasePlayer_Spawn* CBasePlayer_Spawn();
|
||||||
@ -253,6 +258,7 @@ public:
|
|||||||
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine();
|
virtual IReGameHookRegistry_RadiusFlash_TraceLine* RadiusFlash_TraceLine();
|
||||||
virtual IReGameHookRegistry_RoundEnd* RoundEnd();
|
virtual IReGameHookRegistry_RoundEnd* RoundEnd();
|
||||||
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis();
|
virtual IReGameHookRegistry_CanBuyThis* CanBuyThis();
|
||||||
|
virtual IReGameHookRegistry_InstallGameRules* InstallGameRules();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,6 +135,6 @@ ICSEntity *EXT_FUNC INDEX_TO_CSENTITY(int iEntityIndex)
|
|||||||
return CBASE_TO_CSENTITY(pEntity);
|
return CBASE_TO_CSENTITY(pEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
CGameRules** EXT_FUNC CReGameData::GetGameRules() {
|
CGameRules* EXT_FUNC CReGameData::GetGameRules() {
|
||||||
return &g_pGameRules;
|
return g_pGameRules;
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,16 @@ extern ICSEntity *INDEX_TO_CSENTITY(int iEntityIndex);
|
|||||||
return g_ReGameHookchains.m_##functionName.callChain(functionName##_, __VA_ARGS__);\
|
return g_ReGameHookchains.m_##functionName.callChain(functionName##_, __VA_ARGS__);\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LINK_HOOK_VOID_CHAIN2(functionName)\
|
||||||
|
void functionName() {\
|
||||||
|
g_ReGameHookchains.m_##functionName.callChain(functionName##_);\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LINK_HOOK_CHAIN2(ret, functionName)\
|
||||||
|
ret functionName() {\
|
||||||
|
return g_ReGameHookchains.m_##functionName.callChain(functionName##_);\
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Implementation interfaces
|
// Implementation interfaces
|
||||||
@ -2512,7 +2522,7 @@ public:
|
|||||||
|
|
||||||
class CReGameData: public IReGameData {
|
class CReGameData: public IReGameData {
|
||||||
public:
|
public:
|
||||||
virtual CGameRules** GetGameRules();
|
virtual CGameRules* GetGameRules();
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
|
Loading…
Reference in New Issue
Block a user