Skip to content

Commit 5c38e6f

Browse files
authored
Implemented CCSEntity members to export in AMXX headers (#296)
1 parent 4c1932c commit 5c38e6f

File tree

6 files changed

+42
-3
lines changed

6 files changed

+42
-3
lines changed

reapi/extra/amxmodx/scripting/include/reapi.inc

+2-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ enum members_tables_e
8080
mt_mapinfo,
8181
mt_csplayerweapon,
8282
mt_gib,
83-
mt_netadr
83+
mt_netadr,
84+
mt_csentity
8485
};
8586

8687
#define ReAPIFunc {EngineFunc, GamedllFunc, GamedllFunc_CBaseAnimating, GamedllFunc_CBasePlayer, GamedllFunc_CSGameRules, GamedllFunc_CGrenade, GamedllFunc_CWeaponBox, ReCheckerFunc, GamedllFunc_CBasePlayerWeapon, GamedllFunc_CGib, GamedllFunc_CBaseEntity, GamedllFunc_CBotManager}

reapi/extra/amxmodx/scripting/include/reapi_gamedll_const.inc

+22
Original file line numberDiff line numberDiff line change
@@ -6342,3 +6342,25 @@ enum CGib_Members
63426342
*/
63436343
m_Gib_lifeTime,
63446344
};
6345+
6346+
/**
6347+
* CCSEntity API Members
6348+
*/
6349+
enum CCSEntity_Members
6350+
{
6351+
/*
6352+
* Description: Penetration level of the damage caused by the inflictor
6353+
* Member type: unsigned char
6354+
* Get params: get_member(index, member);
6355+
* Set params: set_member(index, member, value);
6356+
*/
6357+
m_ucDmgPenetrationLevel = BEGIN_MEMBER_REGION(csplayerweapon),
6358+
6359+
/*
6360+
* Description: Cached inflictor passed inside TakeDamage to retrieve in Killed
6361+
* Member type: entvars_t *
6362+
* Get params: get_member(index, member);
6363+
* Set params: set_member(index, member, value);
6364+
*/
6365+
m_pevLastInflictor,
6366+
};

reapi/include/cssdk/dlls/API/CSEntity.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ class CCSEntity
4747
public:
4848
CBaseEntity *m_pContainingEntity;
4949
unsigned char m_ucDmgPenetrationLevel; // penetration level of the damage caused by the inflictor
50+
entvars_t *m_pevLastInflictor;
5051

5152
private:
5253
#if defined(_MSC_VER)
5354
#pragma region reserve_data_Region
5455
#endif
55-
char CCSEntity_Reserve[0x3FFF];
56+
char CCSEntity_Reserve[0x3FF7];
5657

5758
virtual void func_reserve1() {};
5859
virtual void func_reserve2() {};

reapi/src/member_list.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
#define MAPINFO_MEMBERS(mx) CLASS_MEMBERS_PREF(CMapInfo, mx, m_MapInfo_##mx, m_)
7171
#define CSPLWPN_MEMBERS(mx) CLASS_MEMBERS_PREF(CCSPlayerWeapon, mx, m_Weapon_##mx, m_)
7272
#define GIB_MEMBERS(mx) CLASS_MEMBERS_PREF(CGib, mx, m_Gib_##mx, m_)
73+
#define CSENT_MEMBERS(mx) CLASS_MEMBERS(CCSEntity, mx, mx)
7374

7475
inline MType getMemberType(float*) { return MEMBER_FLOAT; }
7576
inline MType getMemberType(float) { return MEMBER_FLOAT; }
@@ -1064,6 +1065,11 @@ member_t memberlist_netadr[] = {
10641065
NETADR_MEMBERS(port)
10651066
};
10661067

1068+
member_t memberlist_csentity[] = {
1069+
CSENT_MEMBERS(m_ucDmgPenetrationLevel),
1070+
CSENT_MEMBERS(m_pevLastInflictor),
1071+
};
1072+
10671073
#ifdef __GNUC__
10681074
#pragma GCC diagnostic pop
10691075
#endif // #ifdef __GNUC__
@@ -1128,6 +1134,7 @@ member_t *memberlist_t::operator[](size_t members) const
11281134
CASE(csplayerweapon)
11291135
CASE(gib)
11301136
CASE(netadr)
1137+
CASE(csentity)
11311138
}
11321139

11331140
#undef CASE

reapi/src/member_list.h

+8-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ struct memberlist_t
8383
mt_mapinfo,
8484
mt_csplayerweapon,
8585
mt_gib,
86-
mt_netadr
86+
mt_netadr,
87+
mt_csentity
8788
};
8889
};
8990

@@ -1088,3 +1089,9 @@ enum CGib_Members
10881089
m_Gib_material,
10891090
m_Gib_lifeTime,
10901091
};
1092+
1093+
enum CSEntity_Members
1094+
{
1095+
m_ucDmgPenetrationLevel = BEGIN_MEMBER_REGION(csentity),
1096+
m_pevLastInflictor,
1097+
};

reapi/src/natives/natives_members.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,7 @@ void *get_pdata_custom(CBaseEntity *pEntity, cell member)
11221122
{
11231123
const auto table = memberlist_t::members_tables_e(member / MAX_REGION_RANGE);
11241124
switch (table) {
1125+
case memberlist_t::mt_csentity:
11251126
case memberlist_t::mt_csplayer:
11261127
case memberlist_t::mt_csplayerweapon: {
11271128
if (unlikely(pEntity->m_pEntity == nullptr)) {

0 commit comments

Comments
 (0)