2
0
mirror of https://github.com/rehlds/reapi.git synced 2025-01-01 01:25:47 +03:00

Added new members for CBasePlayerItem, CBasePlayerWeapon

This commit is contained in:
s1lentq 2016-06-15 18:39:57 +07:00
parent 559b6b88bd
commit 3101f29ff7
7 changed files with 395 additions and 9 deletions

View File

@ -34,7 +34,9 @@ enum members_tables_e
mt_movevars, mt_movevars,
mt_usercmd, mt_usercmd,
mt_pmtrace, mt_pmtrace,
mt_csplayer mt_csplayer,
mt_baseitem,
mt_baseweapon,
}; };
#define MAX_REGION_RANGE 1024 #define MAX_REGION_RANGE 1024

View File

@ -3879,3 +3879,291 @@ enum CCSPlayer_Members
*/ */
m_bForceShowMenu, m_bForceShowMenu,
}; };
// CBasePlayerItem
enum CBasePlayerItem_Members
{
/*
* Description: -
* Member type: class CBasePlayer *
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_pPlayer = BEGIN_MEMBER_REGION(baseitem),
/*
* Description: -
* Member type: class CBasePlayerItem *
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_pNext,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iId,
};
// CBasePlayerWeapon
enum CBasePlayerWeapon_Members
{
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iPlayEmptySound = BEGIN_MEMBER_REGION(baseweapon),
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_fFireOnEmpty,
/*
* Description: soonest time ItemPostFrame will call PrimaryAttack
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flNextPrimaryAttack,
/*
* Description: soonest time ItemPostFrame will call SecondaryAttack
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flNextSecondaryAttack,
/*
* Description: "primary" ammo index into players m_rgAmmo[]
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iPrimaryAmmoType,
/*
* Description: "secondary" ammo index into players m_rgAmmo[]
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iSecondaryAmmoType,
/*
* Description: number of shots left in the primary weapon clip, -1 it not used
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iClip,
/*
* Description: the last version of m_iClip sent to hud dll
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iClientClip,
/*
* Description: the last version of the weapon state sent to hud dll (is current weapon, is on target)
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iClientWeaponState,
/*
* Description: Are we in the middle of a reload
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_fInReload,
/*
* Description: Are we in the middle of a reload for the shotguns
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_fInSpecialReload,
/*
* Description: how much ammo you get when you pick up this weapon as placed by a level designer
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iDefaultAmmo,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iShellId,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_fMaxSpeed,
/*
* Description: -
* Member type: bool
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_bDelayFire,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iDirection,
/*
* Description: -
* Member type: bool
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_bSecondarySilencerOn,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flAccuracy,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flLastFire,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iShotsFired,
/*
* Description: time to shoot the remaining bullets of the glock18 burst fire
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flGlock18Shoot,
/*
* Description: used to keep track of the shots fired during the Glock18 burst fire mode
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iGlock18ShotsFired,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flFamasShoot,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iFamasShotsFired,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_fBurstSpread,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_iWeaponState,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flNextReload,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flDecreaseShotsFired,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_usFireGlock18,
/*
* Description: -
* Member type: int
* Get params: get_member(index, member);
* Set params: set_member(index, member, value);
*/
m_usFireFamas,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flPrevPrimaryAttack,
/*
* Description: -
* Member type: float
* Get params: Float:get_member(index, member);
* Set params: set_member(index, member, Float:value);
*/
m_flLastFireTime
};

View File

@ -210,8 +210,8 @@ typedef IVoidHookChain<class CBasePlayer *, int, int, BOOL, char *> IReGameHook_
typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, BOOL, char *> IReGameHookRegistry_ShowMenu; typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, BOOL, char *> IReGameHookRegistry_ShowMenu;
// ShowVGUIMenu hook // ShowVGUIMenu hook
typedef IVoidHookChain<class CBasePlayer *, int, int, char *, bool> IReGameHook_ShowVGUIMenu; typedef IVoidHookChain<class CBasePlayer *, int, int, char *> IReGameHook_ShowVGUIMenu;
typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, char *, bool> IReGameHookRegistry_ShowVGUIMenu; typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, char *> IReGameHookRegistry_ShowVGUIMenu;
// CHalfLifeMultiplay::FShouldSwitchWeapon hook // CHalfLifeMultiplay::FShouldSwitchWeapon hook
typedef IHookChain<BOOL, class CBasePlayer *, class CBasePlayerItem *> IReGameHook_CSGameRules_FShouldSwitchWeapon; typedef IHookChain<BOOL, class CBasePlayer *, class CBasePlayerItem *> IReGameHook_CSGameRules_FShouldSwitchWeapon;

View File

@ -684,14 +684,14 @@ void ShowMenu(IReGameHook_ShowMenu *chain, CBasePlayer *pPlayer, int bitsValidSl
callVoidForward(RG_ShowMenu, original, indexOfEdict(pPlayer->pev), bitsValidSlots, nDisplayTime, fNeedMore, pszText); callVoidForward(RG_ShowMenu, original, indexOfEdict(pPlayer->pev), bitsValidSlots, nDisplayTime, fNeedMore, pszText);
} }
void ShowVGUIMenu(IReGameHook_ShowVGUIMenu *chain, CBasePlayer *pPlayer, int MenuType, int BitMask, char *szOldMenu, bool bForceOldMenu) void ShowVGUIMenu(IReGameHook_ShowVGUIMenu *chain, CBasePlayer *pPlayer, int MenuType, int BitMask, char *szOldMenu)
{ {
auto original = [chain](int _pPlayer, int _MenuType, int _BitMask, char *_szOldMenu, bool _bForceOldMenu) auto original = [chain](int _pPlayer, int _MenuType, int _BitMask, char *_szOldMenu)
{ {
chain->callNext(getPrivate<CBasePlayer>(_pPlayer), _MenuType, _BitMask, _szOldMenu, _bForceOldMenu); chain->callNext(getPrivate<CBasePlayer>(_pPlayer), _MenuType, _BitMask, _szOldMenu);
}; };
callVoidForward(RG_ShowVGUIMenu, original, indexOfEdict(pPlayer->pev), MenuType, BitMask, szOldMenu, bForceOldMenu); callVoidForward(RG_ShowVGUIMenu, original, indexOfEdict(pPlayer->pev), MenuType, BitMask, szOldMenu);
} }
int g_iClientStartSpeak, g_iClientStopSpeak; int g_iClientStartSpeak, g_iClientStopSpeak;

View File

@ -306,7 +306,7 @@ void CBasePlayer_SetClientUserInfoName(IReGameHook_CBasePlayer_SetClientUserInfo
void HandleMenu_ChooseAppearance(IReGameHook_HandleMenu_ChooseAppearance *chain, CBasePlayer *pPlayer, int slot); void HandleMenu_ChooseAppearance(IReGameHook_HandleMenu_ChooseAppearance *chain, CBasePlayer *pPlayer, int slot);
BOOL HandleMenu_ChooseTeam(IReGameHook_HandleMenu_ChooseTeam *chain, CBasePlayer *pPlayer, int slot); BOOL HandleMenu_ChooseTeam(IReGameHook_HandleMenu_ChooseTeam *chain, CBasePlayer *pPlayer, int slot);
void ShowMenu(IReGameHook_ShowMenu *chain, CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText); void ShowMenu(IReGameHook_ShowMenu *chain, CBasePlayer *pPlayer, int bitsValidSlots, int nDisplayTime, BOOL fNeedMore, char *pszText);
void ShowVGUIMenu(IReGameHook_ShowVGUIMenu *chain, CBasePlayer *pPlayer, int MenuType, int BitMask, char *szOldMenu, bool bForceOldMenu); void ShowVGUIMenu(IReGameHook_ShowVGUIMenu *chain, CBasePlayer *pPlayer, int MenuType, int BitMask, char *szOldMenu);
extern int g_iClientStartSpeak; extern int g_iClientStartSpeak;
extern int g_iClientStopSpeak; extern int g_iClientStopSpeak;

View File

@ -14,6 +14,8 @@
#define UCMD_MEMBERS(mx) CLASS_MEMBERS(usercmd_s, mx, ucmd_) #define UCMD_MEMBERS(mx) CLASS_MEMBERS(usercmd_s, mx, ucmd_)
#define PMTRACE_MEMBERS(mx) CLASS_MEMBERS(pmtrace_s, mx, pmt_) #define PMTRACE_MEMBERS(mx) CLASS_MEMBERS(pmtrace_s, mx, pmt_)
#define CSPL_MEMBERS(mx) CLASS_MEMBERS(CCSPlayer, mx,) #define CSPL_MEMBERS(mx) CLASS_MEMBERS(CCSPlayer, mx,)
#define BASEITEM_MEMBERS(mx) CLASS_MEMBERS(CBasePlayerItem, mx,)
#define BASEWPN_MEMBERS(mx) CLASS_MEMBERS(CBasePlayerWeapon, mx,)
inline MType getMemberType(float*) { return MEMBER_FLOAT; } inline MType getMemberType(float*) { return MEMBER_FLOAT; }
inline MType getMemberType(float) { return MEMBER_FLOAT; } inline MType getMemberType(float) { return MEMBER_FLOAT; }
@ -668,6 +670,50 @@ member_t memberlist_csplayer[] = {
CSPL_MEMBERS(m_bForceShowMenu), CSPL_MEMBERS(m_bForceShowMenu),
}; };
member_t memberlist_baseitem[] = {
BASEITEM_MEMBERS(m_pPlayer),
BASEITEM_MEMBERS(m_pNext),
BASEITEM_MEMBERS(m_iId),
};
member_t memberlist_baseweapon[] = {
BASEWPN_MEMBERS(m_iPlayEmptySound),
BASEWPN_MEMBERS(m_fFireOnEmpty),
BASEWPN_MEMBERS(m_flNextPrimaryAttack),
BASEWPN_MEMBERS(m_flNextSecondaryAttack),
//BASEWPN_MEMBERS(m_flTimeWeaponIdle), // FIXME: conflict with CBasePlayer::m_flTimeWeaponIdle
BASEWPN_MEMBERS(m_iPrimaryAmmoType),
BASEWPN_MEMBERS(m_iSecondaryAmmoType),
BASEWPN_MEMBERS(m_iClip),
BASEWPN_MEMBERS(m_iClientClip),
BASEWPN_MEMBERS(m_iClientWeaponState),
BASEWPN_MEMBERS(m_fInReload),
BASEWPN_MEMBERS(m_fInSpecialReload),
BASEWPN_MEMBERS(m_iDefaultAmmo),
BASEWPN_MEMBERS(m_iShellId),
BASEWPN_MEMBERS(m_fMaxSpeed),
BASEWPN_MEMBERS(m_bDelayFire),
BASEWPN_MEMBERS(m_iDirection),
BASEWPN_MEMBERS(m_bSecondarySilencerOn),
BASEWPN_MEMBERS(m_flAccuracy),
BASEWPN_MEMBERS(m_flLastFire),
BASEWPN_MEMBERS(m_iShotsFired),
//BASEWPN_MEMBERS(m_vVecAiming),
//BASEWPN_MEMBERS(model_name),
BASEWPN_MEMBERS(m_flGlock18Shoot),
BASEWPN_MEMBERS(m_iGlock18ShotsFired),
BASEWPN_MEMBERS(m_flFamasShoot),
BASEWPN_MEMBERS(m_iFamasShotsFired),
BASEWPN_MEMBERS(m_fBurstSpread),
BASEWPN_MEMBERS(m_iWeaponState),
BASEWPN_MEMBERS(m_flNextReload),
BASEWPN_MEMBERS(m_flDecreaseShotsFired),
BASEWPN_MEMBERS(m_usFireGlock18),
BASEWPN_MEMBERS(m_usFireFamas),
BASEWPN_MEMBERS(m_flPrevPrimaryAttack),
BASEWPN_MEMBERS(m_flLastFireTime),
};
memberlist_t memberlist; memberlist_t memberlist;
member_t *memberlist_t::operator[](size_t members) const member_t *memberlist_t::operator[](size_t members) const
@ -689,6 +735,8 @@ member_t *memberlist_t::operator[](size_t members) const
CASE(usercmd) CASE(usercmd)
CASE(pmtrace) CASE(pmtrace)
CASE(csplayer) CASE(csplayer)
CASE(baseitem)
CASE(baseweapon)
} }
return nullptr; return nullptr;

View File

@ -50,7 +50,9 @@ struct memberlist_t
mt_movevars, mt_movevars,
mt_usercmd, mt_usercmd,
mt_pmtrace, mt_pmtrace,
mt_csplayer mt_csplayer,
mt_baseitem,
mt_baseweapon
}; };
}; };
@ -669,3 +671,49 @@ enum CSPlayer_Members
m_szModel = BEGIN_MEMBER_REGION(csplayer), m_szModel = BEGIN_MEMBER_REGION(csplayer),
m_bForceShowMenu, m_bForceShowMenu,
}; };
enum CBasePlayerItem_Members
{
m_pPlayer = BEGIN_MEMBER_REGION(baseitem),
m_pNext,
m_iId,
};
enum CBasePlayerWeapon_Members
{
m_iPlayEmptySound = BEGIN_MEMBER_REGION(baseweapon),
m_fFireOnEmpty,
m_flNextPrimaryAttack,
m_flNextSecondaryAttack,
//m_flTimeWeaponIdle,
m_iPrimaryAmmoType,
m_iSecondaryAmmoType,
m_iClip,
m_iClientClip,
m_iClientWeaponState,
m_fInReload,
m_fInSpecialReload,
m_iDefaultAmmo,
m_iShellId,
m_fMaxSpeed,
m_bDelayFire,
m_iDirection,
m_bSecondarySilencerOn,
m_flAccuracy,
m_flLastFire,
m_iShotsFired,
//m_vVecAiming,
//model_name,
m_flGlock18Shoot,
m_iGlock18ShotsFired,
m_flFamasShoot,
m_iFamasShotsFired,
m_fBurstSpread,
m_iWeaponState,
m_flNextReload,
m_flDecreaseShotsFired,
m_usFireGlock18,
m_usFireFamas,
m_flPrevPrimaryAttack,
m_flLastFireTime
};