Skip to content

Commit f031b97

Browse files
ShootingKing-AMArkshine
authored andcommitted
[TFCX] Fix Medic infection Crash on Linux (#991)
* [TFCX] Fix Medic infection Crash on Linux Issue: #988 * [TFCX] Removed redundant code - Added `_DEBUG_TFCX` preprocessor directive - Deleted redundant code (which fetches pdata)
1 parent beaa8c4 commit f031b97

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

modules/tfcx/usermsg.cpp

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,23 @@ void Client_Damage(void* mValue){
121121
if ( FNullEnt( enemy ) )
122122
break;
123123

124+
#ifdef _DEBUG_TFCX
125+
ALERT(at_logged, "Clinet_damage Called with state-%d dmg-%d Netname'%s'(Class'%s') slno-'%d'\n",
126+
mState, damage, STRING(mPlayer->pEdict->v.netname),
127+
STRING(mPlayer->pEdict->v.classname), mPlayer->pEdict->serialnumber);
128+
129+
ALERT(at_logged, " Called with enemy-slno-%d Netname:'%s'(Class'%s')\n", mPlayer->pEdict->serialnumber,
130+
STRING(enemy->v.netname), STRING(enemy->v.classname));
131+
#endif // _DEBUG_TFCX
132+
124133
if (enemy->v.flags & (FL_CLIENT | FL_FAKECLIENT) ) { // attacker is player and his active weapon
125134

126135
pAttacker = GET_PLAYER_POINTER(enemy);
127-
136+
137+
#ifdef _DEBUG_TFCX
138+
ALERT(at_logged, " attacker is player and his active weapon id-%d, has flags - (FL_CLIENT | FL_FAKECLIENT)\n\n", pAttacker->current);
139+
#endif // _DEBUG_TFCX
140+
128141
aim = pAttacker->aiming;
129142
weapon = pAttacker->current;
130143

@@ -150,6 +163,15 @@ void Client_Damage(void* mValue){
150163

151164
pAttacker = GET_PLAYER_POINTER(enemy->v.owner);
152165

166+
#ifdef _DEBUG_TFCX
167+
ALERT(at_logged, " attacker is Class'%s'(with its enmy as Netname'%s'[Class'%s']) and his owner is '%s(%s)' enemy->owner has flags - FL_CLIENT | FL_FAKECLIENT\n\n",
168+
(enemy ? STRING(enemy->v.classname) : "Null"),
169+
(enemy->v.enemy ? STRING(enemy->v.enemy->v.netname) : "Null"),
170+
(enemy->v.enemy ? STRING(enemy->v.enemy->v.classname) : "Null"),
171+
(enemy->v.owner ? STRING(enemy->v.owner->v.netname) : "Null"),
172+
(enemy->v.owner ? STRING(enemy->v.owner->v.classname) : "Null"));
173+
#endif // _DEBUG_TFCX
174+
153175
const char *szClass = STRING(enemy->v.classname);
154176

155177
switch(szClass[10]){
@@ -185,16 +207,8 @@ void Client_Damage(void* mValue){
185207
if ( !weapon ) {
186208
switch(szClass[3]){
187209
case 'e':
188-
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ??
189-
190-
tempInt = get_pdata_ehandle(mPlayer->pEdict, pdTimerOwner * 4); // function is char-based.
191-
192-
if (tempInt < 1 || tempInt > gpGlobals->maxClients)
193-
{
194-
break;
195-
}
196-
197-
pAttacker = GET_PLAYER_POINTER_I(tempInt);
210+
weapon = TFC_WPN_TIMER; // TFC_WPN_MEDKIT ?? //ShootingKing: Class - "timer"
211+
pAttacker = GET_PLAYER_POINTER(enemy->v.enemy);
198212

199213
if (pAttacker->teamId == mPlayer->teamId) // ???
200214
{

0 commit comments

Comments
 (0)