3030
3131CReGameHookchains g_ReGameHookchains;
3232
33- int EXT_FUNC Cmd_Argc_api () {
33+ void EXT_FUNC Regamedll_ChangeString_api (char *&dest, const char *source)
34+ {
35+ size_t len = Q_strlen (source);
36+ if (dest == nullptr || Q_strlen (dest) != len) {
37+ delete [] dest;
38+ dest = new char [len + 1 ];
39+ }
40+
41+ Q_strcpy (dest, source);
42+ }
43+
44+ void EXT_FUNC RadiusDamage_api (Vector vecSrc, entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, float flRadius, int iClassIgnore, int bitsDamageType)
45+ {
46+ RadiusDamage (vecSrc, pevInflictor, pevAttacker, flDamage, flRadius, iClassIgnore, bitsDamageType);
47+ }
48+
49+ void EXT_FUNC ClearMultiDamage_api ()
50+ {
51+ ClearMultiDamage ();
52+ }
53+
54+ void EXT_FUNC ApplyMultiDamage_api (entvars_t *pevInflictor, entvars_t *pevAttacker)
55+ {
56+ ApplyMultiDamage (pevInflictor, pevAttacker);
57+ }
58+
59+ void EXT_FUNC AddMultiDamage_api (entvars_t *pevInflictor, CBaseEntity *pEntity, float flDamage, int bitsDamageType)
60+ {
61+ AddMultiDamage (pevInflictor, pEntity, flDamage, bitsDamageType);
62+ }
63+
64+ int EXT_FUNC Cmd_Argc_api ()
65+ {
3466 return CMD_ARGC_ ();
3567}
3668
37- const char *EXT_FUNC Cmd_Argv_api (int i) {
69+ const char *EXT_FUNC Cmd_Argv_api (int i)
70+ {
3871 return CMD_ARGV_ (i);
3972}
4073
41- CGrenade *PlantBomb_api (entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity) {
74+ CGrenade *EXT_FUNC PlantBomb_api (entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity)
75+ {
4276 return CGrenade::ShootSatchelCharge (pevOwner, vecStart, vecVelocity);
4377}
4478
45- CGib *SpawnHeadGib_api (entvars_t *pevVictim) {
79+ CGib *EXT_FUNC SpawnHeadGib_api (entvars_t *pevVictim)
80+ {
4681 return CGib::SpawnHeadGib (pevVictim);
4782}
4883
49- void SpawnRandomGibs_api (entvars_t *pevVictim, int cGibs, int human) {
84+ void EXT_FUNC SpawnRandomGibs_api (entvars_t *pevVictim, int cGibs, int human)
85+ {
5086 CGib::SpawnRandomGibs (pevVictim, cGibs, human);
5187}
5288
89+ void EXT_FUNC UTIL_RestartOther_api (const char *szClassname)
90+ {
91+ UTIL_RestartOther (szClassname);
92+ }
93+
94+ void EXT_FUNC UTIL_ResetEntities_api ()
95+ {
96+ UTIL_ResetEntities ();
97+ }
98+
99+ void EXT_FUNC UTIL_RemoveOther_api (const char *szClassname, int nCount)
100+ {
101+ UTIL_RemoveOther (szClassname, nCount);
102+ }
103+
104+ void EXT_FUNC UTIL_DecalTrace_api (TraceResult *pTrace, int decalNumber)
105+ {
106+ UTIL_DecalTrace (pTrace, decalNumber);
107+ }
108+
109+ void EXT_FUNC UTIL_Remove_api (CBaseEntity *pEntity)
110+ {
111+ UTIL_Remove (pEntity);
112+ }
113+
114+ int EXT_FUNC AddAmmoNameToAmmoRegistry_api (const char *szAmmoname)
115+ {
116+ return AddAmmoNameToAmmoRegistry (szAmmoname);
117+ }
118+
119+ void EXT_FUNC TextureTypePlaySound_api (TraceResult *ptr, Vector vecSrc, Vector vecEnd, int iBulletType)
120+ {
121+ TEXTURETYPE_PlaySound (ptr, vecSrc, vecEnd, iBulletType);
122+ }
123+
124+ CWeaponBox *EXT_FUNC CreateWeaponBox_api (CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo)
125+ {
126+ return CreateWeaponBox (pItem, pPlayerOwner, modelName, origin, angles, velocity, lifeTime < 0.0 ? CGameRules::GetItemKillDelay () : lifeTime, packAmmo);
127+ }
128+
129+ CGrenade *EXT_FUNC SpawnGrenade_api (WeaponIdType weaponId, entvars_t *pevOwner, Vector &vecSrc, Vector &vecThrow, float time, int iTeam, unsigned short usEvent)
130+ {
131+ switch (weaponId)
132+ {
133+ case WEAPON_HEGRENADE:
134+ return CGrenade::ShootTimed2 (pevOwner, vecSrc, vecThrow, time, iTeam, usEvent);
135+ case WEAPON_FLASHBANG:
136+ return CGrenade::ShootTimed (pevOwner, vecSrc, vecThrow, time);
137+ case WEAPON_SMOKEGRENADE:
138+ return CGrenade::ShootSmokeGrenade (pevOwner, vecSrc, vecThrow, time, usEvent);
139+ case WEAPON_C4:
140+ return CGrenade::ShootSatchelCharge (pevOwner, vecSrc, vecThrow);
141+ }
142+
143+ return nullptr ;
144+ }
145+
53146ReGameFuncs_t g_ReGameApiFuncs = {
54- & CREATE_NAMED_ENTITY,
147+ CREATE_NAMED_ENTITY,
55148
56- & Regamedll_ChangeString_api,
149+ Regamedll_ChangeString_api,
57150
58- & RadiusDamage_api,
59- & ClearMultiDamage_api,
60- & ApplyMultiDamage_api,
61- & AddMultiDamage_api,
151+ RadiusDamage_api,
152+ ClearMultiDamage_api,
153+ ApplyMultiDamage_api,
154+ AddMultiDamage_api,
62155
63- & UTIL_FindEntityByString,
156+ UTIL_FindEntityByString,
64157
65- & AddEntityHashValue,
66- & RemoveEntityHashValue,
158+ AddEntityHashValue,
159+ RemoveEntityHashValue,
67160
68161 Cmd_Argc_api,
69162 Cmd_Argv_api,
@@ -76,6 +169,13 @@ ReGameFuncs_t g_ReGameApiFuncs = {
76169 UTIL_RestartOther_api,
77170 UTIL_ResetEntities_api,
78171 UTIL_RemoveOther_api,
172+ UTIL_DecalTrace_api,
173+ UTIL_Remove_api,
174+
175+ AddAmmoNameToAmmoRegistry_api,
176+ TextureTypePlaySound_api,
177+ CreateWeaponBox_api,
178+ SpawnGrenade_api,
79179};
80180
81181GAMEHOOK_REGISTRY (CBasePlayer_Spawn);
@@ -210,6 +310,27 @@ GAMEHOOK_REGISTRY(CBasePlayer_JoiningThink);
210310
211311GAMEHOOK_REGISTRY (FreeGameRules);
212312GAMEHOOK_REGISTRY (PM_LadderMove);
313+ GAMEHOOK_REGISTRY (PM_WaterJump);
314+ GAMEHOOK_REGISTRY (PM_CheckWaterJump);
315+ GAMEHOOK_REGISTRY (PM_Jump);
316+ GAMEHOOK_REGISTRY (PM_Duck);
317+ GAMEHOOK_REGISTRY (PM_UnDuck);
318+ GAMEHOOK_REGISTRY (PM_PlayStepSound);
319+ GAMEHOOK_REGISTRY (PM_AirAccelerate);
320+ GAMEHOOK_REGISTRY (ClearMultiDamage);
321+ GAMEHOOK_REGISTRY (AddMultiDamage);
322+ GAMEHOOK_REGISTRY (ApplyMultiDamage);
323+ GAMEHOOK_REGISTRY (BuyItem);
324+ GAMEHOOK_REGISTRY (CSGameRules_Think);
325+ GAMEHOOK_REGISTRY (CSGameRules_TeamFull);
326+ GAMEHOOK_REGISTRY (CSGameRules_TeamStacked);
327+ GAMEHOOK_REGISTRY (CSGameRules_PlayerGotWeapon);
328+ GAMEHOOK_REGISTRY (CBotManager_OnEvent);
329+ GAMEHOOK_REGISTRY (CBasePlayer_CheckTimeBasedDamage);
330+ GAMEHOOK_REGISTRY (CBasePlayer_EntSelectSpawnPoint);
331+ GAMEHOOK_REGISTRY (CBasePlayerWeapon_ItemPostFrame);
332+ GAMEHOOK_REGISTRY (CBasePlayerWeapon_KickBack);
333+ GAMEHOOK_REGISTRY (CBasePlayerWeapon_SendWeaponAnim);
213334
214335int CReGameApi::GetMajorVersion () {
215336 return REGAMEDLL_API_VERSION_MAJOR;
@@ -272,48 +393,4 @@ bool CReGameApi::BGetIGameRules(const char *pchVersion) const
272393 return false ;
273394}
274395
275- EXT_FUNC void Regamedll_ChangeString_api (char *&dest, const char *source)
276- {
277- size_t len = Q_strlen (source);
278- if (dest == nullptr || Q_strlen (dest) != len) {
279- delete [] dest;
280- dest = new char [len + 1 ];
281- }
282-
283- Q_strcpy (dest, source);
284- }
285-
286- EXT_FUNC void RadiusDamage_api (Vector vecSrc, entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, float flRadius, int iClassIgnore, int bitsDamageType)
287- {
288- RadiusDamage (vecSrc, pevInflictor, pevAttacker, flDamage, flRadius, iClassIgnore, bitsDamageType);
289- }
290-
291- EXT_FUNC void ClearMultiDamage_api ()
292- {
293- ClearMultiDamage ();
294- }
295-
296- EXT_FUNC void ApplyMultiDamage_api (entvars_t *pevInflictor, entvars_t *pevAttacker)
297- {
298- ApplyMultiDamage (pevInflictor, pevAttacker);
299- }
300-
301- EXT_FUNC void AddMultiDamage_api (entvars_t *pevInflictor, CBaseEntity *pEntity, float flDamage, int bitsDamageType)
302- {
303- AddMultiDamage (pevInflictor, pEntity, flDamage, bitsDamageType);
304- }
305-
306- EXT_FUNC void UTIL_RestartOther_api (const char *szClassname) {
307- UTIL_RestartOther (szClassname);
308- }
309-
310- EXT_FUNC void UTIL_ResetEntities_api () {
311- UTIL_ResetEntities ();
312- }
313-
314- EXT_FUNC void UTIL_RemoveOther_api (const char *szClassname, int nCount)
315- {
316- UTIL_RemoveOther (szClassname, nCount);
317- }
318-
319396EXPOSE_SINGLE_INTERFACE (CReGameApi, IReGameApi, VRE_GAMEDLL_API_VERSION);
0 commit comments