mirror of
https://github.com/rehlds/reapi.git
synced 2025-03-15 15:00:27 +03:00
Implement RG_CreateWeaponBox hook (#275)
Interface was coded but never implemented. It needs tests
This commit is contained in:
parent
e4783140ff
commit
3cbdc162a5
@ -400,6 +400,13 @@ enum GamedllFunc
|
|||||||
* Params: (pevVictim, cGibs, human)
|
* Params: (pevVictim, cGibs, human)
|
||||||
*/
|
*/
|
||||||
RG_SpawnRandomGibs,
|
RG_SpawnRandomGibs,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Description: Called when a player drops a weapon (usually manual drop or death)
|
||||||
|
* Return type: CWeaponBox * (Entity index of weaponbox)
|
||||||
|
* Params: (const weaponent, const owner, modelName[], Float:origin[3], Float:angles[3], Float:velocity[3], Float:lifeTime, bool:packAmmo)
|
||||||
|
*/
|
||||||
|
RG_CreateWeaponBox,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1329,6 +1329,18 @@ bool IsPenetrableEntity(IReGameHook_IsPenetrableEntity *chain, Vector &vecSrc, V
|
|||||||
return callForward<bool>(RG_IsPenetrableEntity, original, getAmxVector(vecSrcCopy), getAmxVector(vecEndCopy), indexOfEdict(pevAttacker), indexOfEdict(pHit));
|
return callForward<bool>(RG_IsPenetrableEntity, original, getAmxVector(vecSrcCopy), getAmxVector(vecEndCopy), indexOfEdict(pevAttacker), indexOfEdict(pHit));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CWeaponBox *CreateWeaponBox(IReGameHook_CreateWeaponBox *chain, CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo)
|
||||||
|
{
|
||||||
|
Vector vecOriginCopy(origin), vecAnglesCopy(angles), vecVelocityCopy(velocity);
|
||||||
|
|
||||||
|
auto original = [chain, &vecOriginCopy, &vecAnglesCopy, &vecVelocityCopy](int _pItem, int _pPlayerOwner, const char *_modelName, cell _origin, cell _angles, cell _velocity, float _lifeTime, bool _packAmmo)
|
||||||
|
{
|
||||||
|
return indexOfPDataAmx(chain->callNext(getPrivate<CBasePlayerItem>(_pItem), getPrivate<CBasePlayer>(_pPlayerOwner), _modelName, vecOriginCopy, vecAnglesCopy, vecVelocityCopy, _lifeTime, _packAmmo));
|
||||||
|
};
|
||||||
|
|
||||||
|
return getPrivate<CWeaponBox>(callForward<size_t>(RG_CreateWeaponBox, original, indexOfEdictAmx(pItem->pev), indexOfEdictAmx(pPlayerOwner->pev), modelName, getAmxVector(vecOriginCopy), getAmxVector(vecAnglesCopy), getAmxVector(vecVelocityCopy), lifeTime, packAmmo));
|
||||||
|
}
|
||||||
|
|
||||||
CGib *SpawnHeadGib(IReGameHook_SpawnHeadGib *chain, entvars_t *pevVictim)
|
CGib *SpawnHeadGib(IReGameHook_SpawnHeadGib *chain, entvars_t *pevVictim)
|
||||||
{
|
{
|
||||||
auto original = [chain](int _pevVictim)
|
auto original = [chain](int _pevVictim)
|
||||||
|
@ -413,6 +413,7 @@ CGrenade *ThrowFlashbang(IReGameHook_ThrowFlashbang *chain, entvars_t *pevOwner,
|
|||||||
CGrenade *ThrowSmokeGrenade(IReGameHook_ThrowSmokeGrenade *chain, entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity, float time, unsigned short usEvent);
|
CGrenade *ThrowSmokeGrenade(IReGameHook_ThrowSmokeGrenade *chain, entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity, float time, unsigned short usEvent);
|
||||||
CGrenade *PlantBomb(IReGameHook_PlantBomb *chain, entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity);
|
CGrenade *PlantBomb(IReGameHook_PlantBomb *chain, entvars_t *pevOwner, Vector &vecStart, Vector &vecVelocity);
|
||||||
bool IsPenetrableEntity(IReGameHook_IsPenetrableEntity *chain, Vector &vecSrc, Vector &vecEnd, entvars_t *pevAttacker, edict_t *pHit);
|
bool IsPenetrableEntity(IReGameHook_IsPenetrableEntity *chain, Vector &vecSrc, Vector &vecEnd, entvars_t *pevAttacker, edict_t *pHit);
|
||||||
|
CWeaponBox *CreateWeaponBox(IReGameHook_CreateWeaponBox *chain, CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo);
|
||||||
CGib *SpawnHeadGib(IReGameHook_SpawnHeadGib *chain, entvars_t *pevVictim);
|
CGib *SpawnHeadGib(IReGameHook_SpawnHeadGib *chain, entvars_t *pevVictim);
|
||||||
void SpawnRandomGibs(IReGameHook_SpawnRandomGibs *chain, entvars_t *pevVictim, int cGibs, int human);
|
void SpawnRandomGibs(IReGameHook_SpawnRandomGibs *chain, entvars_t *pevVictim, int cGibs, int human);
|
||||||
|
|
||||||
|
@ -130,6 +130,7 @@ hook_t hooklist_gamedll[] = {
|
|||||||
DLL(IsPenetrableEntity),
|
DLL(IsPenetrableEntity),
|
||||||
DLL(SpawnHeadGib),
|
DLL(SpawnHeadGib),
|
||||||
DLL(SpawnRandomGibs),
|
DLL(SpawnRandomGibs),
|
||||||
|
DLL(CreateWeaponBox),
|
||||||
};
|
};
|
||||||
|
|
||||||
hook_t hooklist_animating[] = {
|
hook_t hooklist_animating[] = {
|
||||||
|
@ -144,6 +144,8 @@ enum GamedllFunc
|
|||||||
RG_SpawnHeadGib,
|
RG_SpawnHeadGib,
|
||||||
RG_SpawnRandomGibs,
|
RG_SpawnRandomGibs,
|
||||||
|
|
||||||
|
RG_CreateWeaponBox,
|
||||||
|
|
||||||
// [...]
|
// [...]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user