Skip to content

Commit 3b04610

Browse files
committed
chore(core): Code Refactor
1 parent 5a68ed4 commit 3b04610

File tree

7 files changed

+43
-68
lines changed

7 files changed

+43
-68
lines changed

plugin_files/gamedata/offsets.json

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,14 @@
2727
"windows": 178,
2828
"linux": 177
2929
},
30-
"CCSPlayer_ItemServices_GiveNamedItem": {
31-
"windows": 17,
32-
"linux": 19
33-
},
34-
"CCSPlayer_ItemServices_RemoveWeapons": {
35-
"windows": 19,
36-
"linux": 20
30+
"CCSPlayer_WeaponServices_DropWeapon": {
31+
"windows": 20,
32+
"linux": 21
3733
},
3834
"CGameSceneNode_GetSkeletonInstance": {
3935
"windows": 8,
4036
"linux": 8
4137
},
42-
"CEntityResourceManifest_AddResource": {
43-
"windows": 2,
44-
"linux": 2
45-
},
4638
"SendNetMessage": {
4739
"windows": 15,
4840
"linux": 16

plugin_files/gamedata/signatures.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,6 @@
9494
"windows": "48 89 5C 24 ? 56 48 83 EC 40 48 8B F2 48 8B D9 BA ? ? ? ? E8 ? ? ? ? 48 8B 4B 30",
9595
"linux": "55 48 89 E5 41 56 41 55 41 54 49 89 F4 BE ? ? ? ? 53 48 89 FB 48 83 EC 30 E8 ? ? ? ? 48 8B 7B 30"
9696
},
97-
"CBaseEntity_EmitSoundParams": {
98-
"lib": "server",
99-
"windows": "48 8B C4 48 89 58 10 48 89 70 18 55 57 41 56 48 8D A8 08 FF FF FF",
100-
"linux": "48 B8 2A 2A 2A 2A 2A 2A 2A 2A 55 48 89 E5 41 55 41 54 49 89 FC 53 48 89 F3"
101-
},
10297
"CBaseEntity_EmitSoundFilter": {
10398
"lib": "server",
10499
"windows": "48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 48 89 7C 24 20 41 56 48 83 EC 30 48 8B EA",

src/plugins/core/scripting/weapons.cpp

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,7 @@ void PluginWeaponManager::RemoveWeapons()
5454
if (!weapon)
5555
continue;
5656

57-
weaponServices->m_hActiveWeapon = weaponHandle;
58-
itemServices->DropPlayerWeapon(weapon);
5957
weaponServices->RemoveWeapon(weapon);
60-
weapon->Despawn();
6158
}
6259
}
6360
void PluginWeaponManager::DropWeapons()
@@ -92,8 +89,7 @@ void PluginWeaponManager::DropWeapons()
9289
if (!weapon)
9390
continue;
9491

95-
weaponServices->m_hActiveWeapon = weaponHandle;
96-
itemServices->DropPlayerWeapon(weapon);
92+
weaponServices->DropWeapon(weapon);
9793
}
9894
}
9995

@@ -177,15 +173,10 @@ void PluginWeapon::Drop()
177173
if (!weaponServices)
178174
return;
179175

180-
CCSPlayer_ItemServices* itemServices = pawn->m_pItemServices();
181-
if (!itemServices)
182-
return;
183-
184176
if (!this->m_ptr)
185177
return;
186178

187-
weaponServices->m_hActiveWeapon = this->m_ptr;
188-
itemServices->DropPlayerWeapon(this->m_ptr);
179+
weaponServices->DropWeapon(this->m_ptr);
189180
}
190181
void PluginWeapon::Remove()
191182
{
@@ -208,10 +199,7 @@ void PluginWeapon::Remove()
208199
if (!this->m_ptr)
209200
return;
210201

211-
weaponServices->m_hActiveWeapon = this->m_ptr;
212-
itemServices->DropPlayerWeapon(this->m_ptr);
213202
weaponServices->RemoveWeapon(this->m_ptr);
214-
this->m_ptr->Despawn();
215203
}
216204

217205
std::vector<uint16_t> paintkitsFallbackCheck = { 1171, 1170, 1169, 1164, 1162, 1161, 1159, 1175, 1174, 1167, 1165, 1168, 1163, 1160, 1166, 1173 };

src/sdk/entity/CBaseEntity.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,6 @@ class CBaseEntity : public CEntityInstance
167167
g_Signatures->FetchSignature<CEntityInstance_AcceptInput>("CEntityInstance_AcceptInput")(this, pInputName, pActivator, pCaller, &variantValue, outputID);
168168
}
169169

170-
void EmitSound(std::string sound_name, int pitch, float volume, float delay)
171-
{
172-
g_Signatures->FetchSignature<CBaseEntity_EmitSoundParams>("CBaseEntity_EmitSoundParams")(this, sound_name.c_str(), pitch, volume, delay);
173-
}
174-
175170
void EmitSoundFilter(IRecipientFilter& filter, std::string sound_name, int pitch, float volume)
176171
{
177172
EmitSound_t params;

src/sdk/entity/CCSPlayerPawn.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ class CCSPlayerPawn : public CBasePlayerPawn
88
public:
99
DECLARE_SCHEMA_CLASS_BASE(CCSPlayerPawn, false)
1010

11-
SCHEMA_FIELD_OFFSET(CCSPlayer_ActionTrackingServices *, m_pActionTrackingServices, 0)
12-
SCHEMA_FIELD_OFFSET(CCSPlayer_ViewModelServices *, m_pViewModelServices, 0)
13-
SCHEMA_FIELD_POINTER_OFFSET(CEconItemView, m_EconGloves, 0)
14-
SCHEMA_FIELD_OFFSET(float, m_flHealthShotBoostExpirationTime, 0)
11+
SCHEMA_FIELD_OFFSET(CCSPlayer_ActionTrackingServices*, m_pActionTrackingServices, 0);
12+
SCHEMA_FIELD_OFFSET(CCSPlayer_ViewModelServices*, m_pViewModelServices, 0);
13+
SCHEMA_FIELD_POINTER_OFFSET(CEconItemView, m_EconGloves, 0);
14+
SCHEMA_FIELD_OFFSET(float, m_flHealthShotBoostExpirationTime, 0);
1515

16-
void GiveNamedItem(const char *item)
16+
void GiveNamedItem(const char* item)
1717
{
1818
if (this->m_pItemServices() == nullptr)
1919
return;

src/sdk/entity/services.h

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,18 @@ class CPlayerPawnComponent
1717
private:
1818
[[maybe_unused]] uint8_t __pad0008[0x28]; // 0x8
1919
public:
20-
CBasePlayerPawn *m_pPawn; // 0x30
20+
CBasePlayerPawn* m_pPawn; // 0x30
2121
};
2222

2323
struct CSPerRoundStats_t
2424
{
2525
public:
2626
DECLARE_SCHEMA_CLASS_BASE(CSPerRoundStats_t, true)
2727

28-
SCHEMA_FIELD_OFFSET(int, m_iKills, 0)
29-
SCHEMA_FIELD_OFFSET(int, m_iDeaths, 0)
30-
SCHEMA_FIELD_OFFSET(int, m_iAssists, 0)
31-
SCHEMA_FIELD_OFFSET(int, m_iDamage, 0)
28+
SCHEMA_FIELD_OFFSET(int, m_iKills, 0);
29+
SCHEMA_FIELD_OFFSET(int, m_iDeaths, 0);
30+
SCHEMA_FIELD_OFFSET(int, m_iAssists, 0);
31+
SCHEMA_FIELD_OFFSET(int, m_iDamage, 0);
3232
};
3333

3434
struct CSMatchStats_t : public CSPerRoundStats_t
@@ -50,16 +50,14 @@ class CPlayer_MovementServices : public CPlayerPawnComponent
5050
public:
5151
DECLARE_SCHEMA_CLASS_BASE(CPlayer_MovementServices, false)
5252

53-
SCHEMA_FIELD_OFFSET(CInButtonState, m_nButtons, 0)
54-
SCHEMA_FIELD_OFFSET(uint64_t, m_nQueuedButtonDownMask, 0)
55-
SCHEMA_FIELD_OFFSET(uint64_t, m_nQueuedButtonChangeMask, 0)
56-
SCHEMA_FIELD_OFFSET(uint64_t, m_nButtonDoublePressed, 0)
57-
58-
// m_pButtonPressedCmdNumber[64]
59-
SCHEMA_FIELD_POINTER_OFFSET(uint32_t, m_pButtonPressedCmdNumber, 0)
60-
SCHEMA_FIELD_OFFSET(uint32_t, m_nLastCommandNumberProcessed, 0)
61-
SCHEMA_FIELD_OFFSET(uint64_t, m_nToggleButtonDownMask, 0)
62-
SCHEMA_FIELD_OFFSET(float, m_flMaxspeed, 0)
53+
SCHEMA_FIELD_OFFSET(CInButtonState, m_nButtons, 0);
54+
SCHEMA_FIELD_OFFSET(uint64_t, m_nQueuedButtonDownMask, 0);
55+
SCHEMA_FIELD_OFFSET(uint64_t, m_nQueuedButtonChangeMask, 0);
56+
SCHEMA_FIELD_OFFSET(uint64_t, m_nButtonDoublePressed, 0);
57+
SCHEMA_FIELD_POINTER_OFFSET(uint32_t, m_pButtonPressedCmdNumber, 0);
58+
SCHEMA_FIELD_OFFSET(uint32_t, m_nLastCommandNumberProcessed, 0);
59+
SCHEMA_FIELD_OFFSET(uint64_t, m_nToggleButtonDownMask, 0);
60+
SCHEMA_FIELD_OFFSET(float, m_flMaxspeed, 0);
6361
};
6462

6563
class CPlayer_MovementServices_Humanoid : CPlayer_MovementServices
@@ -89,9 +87,9 @@ class CCSPlayer_ItemServices
8987

9088
virtual ~CCSPlayer_ItemServices() = 0;
9189

92-
SCHEMA_FIELD_OFFSET(bool, m_bHasDefuser, 0)
93-
SCHEMA_FIELD_OFFSET(bool, m_bHasHelmet, 0)
94-
SCHEMA_FIELD_OFFSET(bool, m_bHasHeavyArmor, 0)
90+
SCHEMA_FIELD_OFFSET(bool, m_bHasDefuser, 0);
91+
SCHEMA_FIELD_OFFSET(bool, m_bHasHelmet, 0);
92+
SCHEMA_FIELD_OFFSET(bool, m_bHasHeavyArmor, 0);
9593

9694
private:
9795
virtual void unk_01() = 0;
@@ -108,12 +106,12 @@ class CCSPlayer_ItemServices
108106
virtual void unk_12() = 0;
109107
virtual void unk_13() = 0;
110108
virtual void unk_14() = 0;
111-
virtual CBaseEntity *_GiveNamedItem(const char *pchName) = 0;
109+
virtual CBaseEntity* _GiveNamedItem(const char* pchName) = 0;
112110

113111
public:
114-
virtual bool GiveNamedItemBool(const char *pchName) = 0;
115-
virtual CBaseEntity *GiveNamedItem(const char *pchName) = 0;
116-
virtual void DropPlayerWeapon(CBasePlayerWeapon *weapon) = 0;
112+
virtual bool GiveNamedItemBool(const char* pchName) = 0;
113+
virtual CBaseEntity* GiveNamedItem(const char* pchName) = 0;
114+
virtual void DropPlayerWeapon(CBasePlayerWeapon* weapon) = 0;
117115
virtual void StripPlayerWeapons() = 0;
118116
};
119117

@@ -155,12 +153,20 @@ class CPlayer_WeaponServices : public CPlayerPawnComponent
155153
public:
156154
DECLARE_SCHEMA_CLASS_BASE(CPlayer_WeaponServices, false)
157155

158-
SCHEMA_FIELD_POINTER_OFFSET(CUtlVector<CHandle<CBasePlayerWeapon>>, m_hMyWeapons, 0)
159-
SCHEMA_FIELD_OFFSET(CHandle<CBasePlayerWeapon>, m_hActiveWeapon, 0)
156+
SCHEMA_FIELD_POINTER_OFFSET(CUtlVector<CHandle<CBasePlayerWeapon>>, m_hMyWeapons, 0);
157+
SCHEMA_FIELD_OFFSET(CHandle<CBasePlayerWeapon>, m_hActiveWeapon, 0);
158+
159+
void DropWeapon(CBasePlayerWeapon* pWeapon, Vector* pVecTarget = nullptr, Vector* pVelocity = nullptr)
160+
{
161+
static int offset = g_Offsets->GetOffset("CCSPlayer_WeaponServices_DropWeapon");
162+
CALL_VIRTUAL(void, offset, this, pWeapon, pVecTarget, pVelocity);
163+
}
160164

161-
void RemoveWeapon(CBasePlayerWeapon *weapon)
165+
void RemoveWeapon(CBasePlayerWeapon* weapon)
162166
{
167+
this->DropWeapon(weapon);
163168
CALL_VIRTUAL(void, 20, weapon, nullptr, nullptr);
169+
weapon->Despawn();
164170
}
165171
};
166172

@@ -169,6 +175,6 @@ class CCSPlayerController_InventoryServices
169175
public:
170176
DECLARE_SCHEMA_CLASS_BASE(CCSPlayerController_InventoryServices, false)
171177

172-
SCHEMA_FIELD_OFFSET(uint16_t, m_unMusicID, 0)
173-
SCHEMA_FIELD_POINTER_OFFSET(uint8_t, m_rank, 0)
178+
SCHEMA_FIELD_OFFSET(uint16_t, m_unMusicID, 0);
179+
SCHEMA_FIELD_POINTER_OFFSET(uint8_t, m_rank, 0);
174180
};

src/signatures/Signatures.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ typedef void (*GiveNamedItem_t)(CCSPlayer_ItemServices*, const char*, int, int,
3535
typedef void (*CBasePlayerController_SetPawn)(CBasePlayerController*, CCSPlayerPawn*, bool, bool);
3636
typedef void (*CCSPlayerPawnBase_PostThink)(CCSPlayerPawnBase*);
3737
typedef void (*CBaseEntity_TakeDamageOld)(CBaseEntity*, CTakeDamageInfo*);
38-
typedef void (*CBaseEntity_EmitSoundParams)(CBaseEntity*, const char*, int, float, float);
3938
typedef void (*CCSPlayer_MovementServices_CheckJumpPre)(CCSPlayer_MovementServices*, void*);
4039
typedef SndOpEventGuid_t(*CBaseEntity_EmitSoundFilter)(IRecipientFilter& filter, CEntityIndex ent, const EmitSound_t& params);
4140

0 commit comments

Comments
 (0)