2
0
mirror of https://github.com/rehlds/reapi.git synced 2024-12-29 08:05:36 +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_usercmd,
mt_pmtrace,
mt_csplayer
mt_csplayer,
mt_baseitem,
mt_baseweapon,
};
#define MAX_REGION_RANGE 1024

View File

@ -3879,3 +3879,291 @@ enum CCSPlayer_Members
*/
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;
// ShowVGUIMenu hook
typedef IVoidHookChain<class CBasePlayer *, int, int, char *, bool> IReGameHook_ShowVGUIMenu;
typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, char *, bool> IReGameHookRegistry_ShowVGUIMenu;
typedef IVoidHookChain<class CBasePlayer *, int, int, char *> IReGameHook_ShowVGUIMenu;
typedef IVoidHookChainRegistry<class CBasePlayer *, int, int, char *> IReGameHookRegistry_ShowVGUIMenu;
// CHalfLifeMultiplay::FShouldSwitchWeapon hook
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);
}
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;

View File

@ -306,7 +306,7 @@ void CBasePlayer_SetClientUserInfoName(IReGameHook_CBasePlayer_SetClientUserInfo
void HandleMenu_ChooseAppearance(IReGameHook_HandleMenu_ChooseAppearance *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 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_iClientStopSpeak;

View File

@ -14,6 +14,8 @@
#define UCMD_MEMBERS(mx) CLASS_MEMBERS(usercmd_s, mx, ucmd_)
#define PMTRACE_MEMBERS(mx) CLASS_MEMBERS(pmtrace_s, mx, pmt_)
#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; }
@ -668,6 +670,50 @@ member_t memberlist_csplayer[] = {
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;
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(pmtrace)
CASE(csplayer)
CASE(baseitem)
CASE(baseweapon)
}
return nullptr;

View File

@ -50,7 +50,9 @@ struct memberlist_t
mt_movevars,
mt_usercmd,
mt_pmtrace,
mt_csplayer
mt_csplayer,
mt_baseitem,
mt_baseweapon
};
};
@ -669,3 +671,49 @@ enum CSPlayer_Members
m_szModel = BEGIN_MEMBER_REGION(csplayer),
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
};