Skip to content

Commit 3dee6bb

Browse files
committed
CreateWeaponBox: Remove constantly vector arguments
1 parent 73f5d6d commit 3dee6bb

4 files changed

Lines changed: 33 additions & 14 deletions

File tree

regamedll/dlls/API/CAPI_Impl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,8 @@ typedef IHookChainClassImpl<void, CBasePlayer, const char *> CReGameHook_CBasePl
568568
typedef IHookChainRegistryClassImpl<void, CBasePlayer, const char *> CReGameHookRegistry_CBasePlayer_DropIdlePlayer;
569569

570570
// CreateWeaponBox hook
571-
typedef IHookChainImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, const Vector &, const Vector &, const Vector &, float, bool> CReGameHook_CreateWeaponBox;
572-
typedef IHookChainRegistryImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, const Vector &, const Vector &, const Vector &, float, bool> CReGameHookRegistry_CreateWeaponBox;
571+
typedef IHookChainImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHook_CreateWeaponBox;
572+
typedef IHookChainRegistryImpl<CWeaponBox *, CBasePlayerItem *, CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> CReGameHookRegistry_CreateWeaponBox;
573573

574574
class CReGameHookchains: public IReGameHookchains {
575575
public:

regamedll/dlls/player.cpp

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,9 +1266,9 @@ BOOL EXT_FUNC CBasePlayer::__API_HOOK(TakeDamage)(entvars_t *pevInflictor, entva
12661266
return bTookDamage;
12671267
}
12681268

1269-
LINK_HOOK_CHAIN(CWeaponBox *, CreateWeaponBox, (CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, const Vector &origin, const Vector &angles, const Vector &velocity, float lifeTime, bool packAmmo), pItem, pPlayerOwner, modelName, origin, angles, velocity, lifeTime, packAmmo)
1269+
LINK_HOOK_CHAIN(CWeaponBox *, CreateWeaponBox, (CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo), pItem, pPlayerOwner, modelName, origin, angles, velocity, lifeTime, packAmmo)
12701270

1271-
CWeaponBox *EXT_FUNC __API_HOOK(CreateWeaponBox)(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, const Vector &origin, const Vector &angles, const Vector &velocity, float lifeTime, bool packAmmo)
1271+
CWeaponBox *EXT_FUNC __API_HOOK(CreateWeaponBox)(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo)
12721272
{
12731273
// create a box to pack the stuff into.
12741274
CWeaponBox *pWeaponBox = (CWeaponBox *)CBaseEntity::Create("weaponbox", origin, angles, ENT(pPlayerOwner->pev));
@@ -1309,12 +1309,16 @@ void PackPlayerItem(CBasePlayer *pPlayer, CBasePlayerItem *pItem, bool packAmmo)
13091309
const char *modelName = GetCSModelName(pItem->m_iId);
13101310
if (modelName)
13111311
{
1312+
Vector vecOrigin = pPlayer->pev->origin;
1313+
Vector vecAngles = pPlayer->pev->angles;
1314+
Vector vecVelocity = pPlayer->pev->origin * 0.75f;
1315+
13121316
// create a box to pack the stuff into
13131317
CreateWeaponBox(pItem, pPlayer,
13141318
modelName,
1315-
pPlayer->pev->origin,
1316-
pPlayer->pev->angles,
1317-
pPlayer->pev->velocity * 0.75f,
1319+
vecOrigin,
1320+
vecAngles,
1321+
vecVelocity,
13181322
CGameRules::GetItemKillDelay(), packAmmo
13191323
);
13201324
}
@@ -1353,12 +1357,15 @@ void PackPlayerNade(CBasePlayer *pPlayer, CBasePlayerItem *pItem, bool packAmmo)
13531357
vecAngles.x = 0.0f;
13541358
vecAngles.y += 45.0f;
13551359

1360+
Vector vecOrigin = pPlayer->pev->origin + dir;
1361+
Vector vecVelocity = pPlayer->pev->velocity * 0.75f;
1362+
13561363
// create a box to pack the stuff into.
13571364
CreateWeaponBox(pItem, pPlayer,
13581365
modelName,
1359-
pPlayer->pev->origin + dir,
1366+
vecOrigin,
13601367
vecAngles,
1361-
pPlayer->pev->velocity * 0.75f,
1368+
vecVelocity,
13621369
CGameRules::GetItemKillDelay(),
13631370
packAmmo);
13641371
}
@@ -7852,7 +7859,19 @@ CBaseEntity *EXT_FUNC CBasePlayer::__API_HOOK(DropPlayerItem)(const char *pszIte
78527859
}
78537860

78547861
const char *modelname = GetCSModelName(pWeapon->m_iId);
7855-
CWeaponBox *pWeaponBox = CreateWeaponBox(pWeapon, this, modelname, pev->origin + gpGlobals->v_forward * 10, pev->angles, gpGlobals->v_forward * 300 + gpGlobals->v_forward * 100, CGameRules::GetItemKillDelay(), false);
7862+
7863+
Vector vecOrigin = pev->origin + gpGlobals->v_forward * 10;
7864+
Vector vecAngles = pev->angles;
7865+
Vector vecVelocity = gpGlobals->v_forward * 300 + gpGlobals->v_forward * 100;
7866+
7867+
CWeaponBox *pWeaponBox = CreateWeaponBox(pWeapon, this,
7868+
modelname,
7869+
vecOrigin,
7870+
vecAngles,
7871+
vecVelocity,
7872+
CGameRules::GetItemKillDelay(),
7873+
false);
7874+
78567875
if (!pWeaponBox)
78577876
{
78587877
return nullptr;

regamedll/dlls/player.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -887,8 +887,8 @@ class CBasePlayer: public CBaseMonster {
887887
#endif
888888
};
889889

890-
CWeaponBox *CreateWeaponBox(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, const Vector &origin, const Vector &angles, const Vector &velocity, float lifeTime, bool packAmmo);
891-
CWeaponBox *CreateWeaponBox_OrigFunc(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, const Vector &origin, const Vector &angles, const Vector &velocity, float lifeTime, bool packAmmo);
890+
CWeaponBox *CreateWeaponBox(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo);
891+
CWeaponBox *CreateWeaponBox_OrigFunc(CBasePlayerItem *pItem, CBasePlayer *pPlayerOwner, const char *modelName, Vector &origin, Vector &angles, Vector &velocity, float lifeTime, bool packAmmo);
892892

893893
class CWShield: public CBaseEntity
894894
{

regamedll/public/regamedll/regamedll_api.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,8 +465,8 @@ typedef IHookChainClass<void, CBasePlayer, const char *> IReGameHook_CBasePlayer
465465
typedef IHookChainRegistryClass<void, CBasePlayer, const char *> IReGameHookRegistry_CBasePlayer_DropIdlePlayer;
466466

467467
// CreateWeaponBox hook
468-
typedef IHookChain<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, const Vector &, const Vector &, const Vector &, float, bool> IReGameHook_CreateWeaponBox;
469-
typedef IHookChainRegistry<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, const Vector &, const Vector &, const Vector &, float, bool> IReGameHookRegistry_CreateWeaponBox;
468+
typedef IHookChain<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHook_CreateWeaponBox;
469+
typedef IHookChainRegistry<class CWeaponBox *, class CBasePlayerItem *, class CBasePlayer *, const char *, Vector &, Vector &, Vector &, float, bool> IReGameHookRegistry_CreateWeaponBox;
470470

471471
class IReGameHookchains {
472472
public:

0 commit comments

Comments
 (0)