Senior Member
Join Date: Sep 2007
Location: US
01-04-2014
, 14:57
Re: set_user_frags/fm_set_user_frags/set_pev(..pev_frags..) Doesn't Work Properly in
#7
I started looking at other classes to see if there was something I was missing. Apparently m_iClientFrags is just pretend frags because "real_frags" exists in CBaseEntity. It looks like m_iClientFrags gets updated based on the value in real_frags and shouldn't (can't?) be written to.
$ pahole tfc/dlls/tfc.so -C CBaseEntity
Code:
die__process_function: tag not supported (template_type_parameter)!
struct CBaseEntity {
int ()(void) * * _vptr.CBaseEntity; /* 0 4 */
entvars_t * pev; /* 4 4 */
class CBaseEntity * m_pGoalEnt; /* 8 4 */
class CBaseEntity * m_pLink; /* 12 4 */
/* Bitfield combined with previous fields */
TYPEDESCRIPTION m_SaveData[0]; /* 0 0 */
/* XXX 16 bytes hole, try to pack */
struct {
void (*__pfn)(class CBaseEntity *); /* 16 4 */
int __delta; /* 20 4 */
} m_pfnThink; /* 16 8 */
struct {
void (*__pfn)(class CBaseEntity *, class CBaseEntity *); /* 24 4 */
int __delta; /* 28 4 */
} m_pfnTouch; /* 24 8 */
struct {
void (*__pfn)(class CBaseEntity *, class CBaseEntity *, class CBaseEntity *, USE_TYPE, float); /* 32 4 */
int __delta; /* 36 4 */
} m_pfnUse; /* 32 8 */
struct {
void (*__pfn)(class CBaseEntity *, class CBaseEntity *); /* 40 4 */
int __delta; /* 44 4 */
} m_pfnBlocked; /* 40 8 */
/* --- cacheline 1 boundary (64 bytes) --- */
int nextpc; /* 48 4 */
int lastpc; /* 52 4 */
int last_impulse; /* 56 4 */
int armorclass; /* 60 4 */
int tf_items; /* 64 4 */
int tf_items_flags; /* 68 4 */
int no_grenades_1; /* 72 4 */
int no_grenades_2; /* 76 4 */
int tp_grenades_1; /* 80 4 */
int tp_grenades_2; /* 84 4 */
string_t m_iszGrenadeName; /* 88 4 */
BOOL got_aliases; /* 92 4 */
BOOL cheat_check; /* 96 4 */
BOOL is_removed; /* 100 4 */
BOOL is_undercover; /* 104 4 */
BOOL is_building; /* 108 4 */
/* --- cacheline 2 boundary (128 bytes) --- */
BOOL is_detpacking; /* 112 4 */
BOOL is_feigning; /* 116 4 */
BOOL is_unableto_spy_or_teleport; /* 120 4 */
BOOL has_disconnected; /* 124 4 */
BOOL fClientGrenadePrimed; /* 128 4 */
BOOL bRemoveGrenade; /* 132 4 */
short unsigned int m_usBuildingEvent; /* 136 2 */
/* XXX 2 bytes hole, try to pack */
int m_iBuildingEventState; /* 140 4 */
class Vector m_vOldOrigin; /* 144 12 */
int tfstate; /* 156 4 */
int items; /* 160 4 */
int weapon; /* 164 4 */
int m_iPrimedGrenType; /* 168 4 */
class CBaseEntity * observer_list; /* 172 4 */
/* --- cacheline 3 boundary (192 bytes) --- */
class EHANDLE m_pOtherSection; /* 176 8 */
int m_iRightBound; /* 184 4 */
int m_iLeftBound; /* 188 4 */
float cl_no_grenades_1; /* 192 4 */
float cl_no_grenades_2; /* 196 4 */
int * current_ammo; /* 200 4 */
float currentammo; /* 204 4 */
int maxammo_medikit; /* 208 4 */
int ammo_medikit; /* 212 4 */
int maxammo_shells; /* 216 4 */
int ammo_detpack; /* 220 4 */
int maxammo_detpack; /* 224 4 */
int ammo_shells; /* 228 4 */
int maxammo_nails; /* 232 4 */
int ammo_nails; /* 236 4 */
/* --- cacheline 4 boundary (256 bytes) --- */
int maxammo_cells; /* 240 4 */
int ammo_cells; /* 244 4 */
int maxammo_rockets; /* 248 4 */
int ammo_rockets; /* 252 4 */
int items_allowed; /* 256 4 */
float armor_allowed; /* 260 4 */
float maxarmor; /* 264 4 */
int exec_scripts; /* 268 4 */
int exec_map_scripts; /* 272 4 */
int display_class_briefing; /* 276 4 */
int take_screenshots; /* 280 4 */
int local_blood; /* 284 4 */
float weaponmode; /* 288 4 */
float motd; /* 292 4 */
float current_menu; /* 296 4 */
float menu_displaytime; /* 300 4 */
/* --- cacheline 5 boundary (320 bytes) --- */
float menu_refreshtime; /* 304 4 */
float m_flSafetyCheckTime; /* 308 4 */
int team_no; /* 312 4 */
int lives; /* 316 4 */
int infection_team_no; /* 320 4 */
int real_frags; /* 324 4 */
float respawn_time; /* 328 4 */
float suicide_time; /* 332 4 */
class EHANDLE building; /* 336 8 */
float building_wait; /* 344 4 */
class EHANDLE real_owner; /* 348 8 */
float has_dispenser; /* 356 4 */
float has_sentry; /* 360 4 */
float has_entry_teleporter; /* 364 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
float has_exit_teleporter; /* 368 4 */
int weapons_carried; /* 372 4 */
float current_weapon; /* 376 4 */
int last_weapon; /* 380 4 */
float last_weaponmode; /* 384 4 */
float reload_shotgun; /* 388 4 */
float reload_super_shotgun; /* 392 4 */
float reload_nailgun; /* 396 4 */
float reload_super_nailgun; /* 400 4 */
float reload_grenade_launcher; /* 404 4 */
float reload_rocket_launcher; /* 408 4 */
float reload_flamethrower; /* 412 4 */
float reload_incendiary; /* 416 4 */
float heat; /* 420 4 */
float sniper_zoom; /* 424 4 */
float immune_to_check; /* 428 4 */
/* --- cacheline 7 boundary (448 bytes) --- */
float last_saveme_sound; /* 432 4 */
class Vector head_shot_vector; /* 436 12 */
float leg_damage; /* 448 4 */
float cheat_level; /* 452 4 */
float FlashTime; /* 456 4 */
float nailpos; /* 460 4 */
float old_leg_damage; /* 464 4 */
float clientHalluc; /* 468 4 */
float clientTranq; /* 472 4 */
float no_active_nail_grens; /* 476 4 */
float no_active_napalm_grens; /* 480 4 */
float no_active_gas_grens; /* 484 4 */
float numflames; /* 488 4 */
float timecount; /* 492 4 */
/* --- cacheline 8 boundary (512 bytes) --- */
char * flame_id; /* 496 4 */
int undercover_team; /* 500 4 */
int undercover_skin; /* 504 4 */
class EHANDLE undercover_target; /* 508 8 */
float StatusRefreshTime; /* 516 4 */
float StatusBarSize; /* 520 4 */
float StatusBarRes; /* 524 4 */
float ScannerOn; /* 528 4 */
int tf_id; /* 532 4 */
int teamkills; /* 536 4 */
BOOL is_admin; /* 540 4 */
int admin_mode; /* 544 4 */
class EHANDLE admin_use; /* 548 8 */
int ip; /* 556 4 */
/* --- cacheline 9 boundary (576 bytes) --- */
int goal_no; /* 560 4 */
int group_no; /* 564 4 */
int goal_state; /* 568 4 */
int owned_by; /* 572 4 */
string_t teamcheck; /* 576 4 */
string_t owned_by_teamcheck; /* 580 4 */
int goal_activation; /* 584 4 */
int goal_effects; /* 588 4 */
int goal_result; /* 592 4 */
int goal_group; /* 596 4 */
int else_goal; /* 600 4 */
int if_goal_is_active; /* 604 4 */
int if_goal_is_inactive; /* 608 4 */
int if_goal_is_removed; /* 612 4 */
int if_group_is_active; /* 616 4 */
int if_group_is_inactive; /* 620 4 */
/* --- cacheline 10 boundary (640 bytes) --- */
int if_group_is_removed; /* 624 4 */
float search_time; /* 628 4 */
float t_length; /* 632 4 */
int activate_goal_no; /* 636 4 */
int inactivate_goal_no; /* 640 4 */
int remove_goal_no; /* 644 4 */
int restore_goal_no; /* 648 4 */
int activate_group_no; /* 652 4 */
int inactivate_group_no; /* 656 4 */
int remove_group_no; /* 660 4 */
int restore_group_no; /* 664 4 */
BOOL m_bAddBonuses; /* 668 4 */
class Vector goal_min; /* 672 12 */
class Vector goal_max; /* 684 12 */
/* --- cacheline 11 boundary (704 bytes) was 8 bytes ago --- */
string_t replacement_model; /* 696 4 */
int replacement_model_body; /* 700 4 */
int replacement_model_skin; /* 704 4 */
int replacement_model_flags; /* 708 4 */
int has_item_from_group; /* 712 4 */
int hasnt_item_from_group; /* 716 4 */
int remove_item_group; /* 720 4 */
int return_item_no; /* 724 4 */
int if_item_has_moved; /* 728 4 */
int if_item_hasnt_moved; /* 732 4 */
int remove_spawnpoint; /* 736 4 */
int restore_spawnpoint; /* 740 4 */
int remove_spawngroup; /* 744 4 */
int restore_spawngroup; /* 748 4 */
/* --- cacheline 12 boundary (768 bytes) --- */
int display_item_status[4]; /* 752 16 */
string_t team_str_home; /* 768 4 */
string_t team_str_moved; /* 772 4 */
string_t team_str_carried; /* 776 4 */
string_t non_team_str_home; /* 780 4 */
string_t non_team_str_moved; /* 784 4 */
string_t non_team_str_carried; /* 788 4 */
int ex_skill_min; /* 792 4 */
int ex_skill_max; /* 796 4 */
int increase_team[4]; /* 800 16 */
/* --- cacheline 13 boundary (832 bytes) --- */
int increase_team_owned_by; /* 816 4 */
float wait; /* 820 4 */
int count; /* 824 4 */
int axhitme; /* 828 4 */
float drop_time; /* 832 4 */
class Vector redrop_origin; /* 836 12 */
int redrop_count; /* 848 4 */
float attack_finished; /* 852 4 */
float distance; /* 856 4 */
int speed_reduction; /* 860 4 */
float m_flEndRoundTime; /* 864 4 */
string_t m_iszEndRoundMsg_Team1_Win; /* 868 4 */
string_t m_iszEndRoundMsg_Team2_Win; /* 872 4 */
string_t m_iszEndRoundMsg_Team3_Win; /* 876 4 */
/* --- cacheline 14 boundary (896 bytes) --- */
string_t m_iszEndRoundMsg_Team4_Win; /* 880 4 */
string_t m_iszEndRoundMsg_Team1_Lose; /* 884 4 */
string_t m_iszEndRoundMsg_Team2_Lose; /* 888 4 */
string_t m_iszEndRoundMsg_Team3_Lose; /* 892 4 */
string_t m_iszEndRoundMsg_Team4_Lose; /* 896 4 */
string_t m_iszEndRoundMsg_Team1; /* 900 4 */
string_t m_iszEndRoundMsg_Team2; /* 904 4 */
string_t m_iszEndRoundMsg_Team3; /* 908 4 */
string_t m_iszEndRoundMsg_Team4; /* 912 4 */
string_t m_iszEndRoundMsg_OwnedBy; /* 916 4 */
string_t m_iszEndRoundMsg_NonOwnedBy; /* 920 4 */
string_t killtarget; /* 924 4 */
string_t noise4; /* 928 4 */
string_t broadcast; /* 932 4 */
string_t team_broadcast; /* 936 4 */
string_t non_team_broadcast; /* 940 4 */
/* --- cacheline 15 boundary (960 bytes) --- */
string_t owners_team_broadcast; /* 944 4 */
string_t non_owners_team_broadcast; /* 948 4 */
string_t team_drop; /* 952 4 */
string_t non_team_drop; /* 956 4 */
string_t org_broadcast; /* 960 4 */
string_t org_team_broadcast; /* 964 4 */
string_t org_non_team_broadcast; /* 968 4 */
string_t org_owners_team_broadcast; /* 972 4 */
string_t org_non_owners_team_broadcast; /* 976 4 */
string_t org_team_drop; /* 980 4 */
string_t org_non_team_drop; /* 984 4 */
string_t org_message; /* 988 4 */
string_t org_noise3; /* 992 4 */
string_t org_noise4; /* 996 4 */
string_t netname_broadcast; /* 1000 4 */
string_t netname_team_broadcast; /* 1004 4 */
/* --- cacheline 16 boundary (1024 bytes) --- */
string_t netname_non_team_broadcast; /* 1008 4 */
string_t netname_owners_team_broadcast; /* 1012 4 */
string_t netname_team_drop; /* 1016 4 */
string_t netname_non_team_drop; /* 1020 4 */
string_t speak; /* 1024 4 */
string_t AP_speak; /* 1028 4 */
string_t team_speak; /* 1032 4 */
string_t non_team_speak; /* 1036 4 */
string_t owners_team_speak; /* 1040 4 */
string_t non_owners_team_speak; /* 1044 4 */
string_t deathtype; /* 1048 4 */
int all_active; /* 1052 4 */
int item_list; /* 1056 4 */
float delay_time; /* 1060 4 */
BOOL do_triggerwork; /* 1064 4 */
float rv_s_h; /* 1068 4 */
/* --- cacheline 17 boundary (1088 bytes) --- */
float rs_s_h; /* 1072 4 */
float rv_gr; /* 1076 4 */
float rs_gr; /* 1080 4 */
float rv_g; /* 1084 4 */
float rs_g; /* 1088 4 */
float has_abbreviated; /* 1092 4 */
int timer_type; /* 1096 4 */
float invincible_finished; /* 1100 4 */
float invisible_finished; /* 1104 4 */
float super_damage_finished; /* 1108 4 */
float radsuit_finished; /* 1112 4 */
BOOL m_bLostInvincSound; /* 1116 4 */
BOOL m_bLostInvisSound; /* 1120 4 */
BOOL m_bLostSuperSound; /* 1124 4 */
BOOL m_bLostRadSound; /* 1128 4 */
float m_fInvincSound; /* 1132 4 */
/* --- cacheline 18 boundary (1152 bytes) --- */
float m_fSuperSound; /* 1136 4 */
void CBaseEntity(class CBaseEntity *, const class CBaseEntity &);
void CBaseEntity(class CBaseEntity *);
virtual void ~CBaseEntity(class CBaseEntity *, int);
virtual void Spawn(class CBaseEntity *); /* linkage=_ZN11CBaseEntity5SpawnEv */
virtual void Precache(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8PrecacheEv */
virtual void KeyValue(class CBaseEntity *, KeyValueData *); /* linkage=_ZN11CBaseEntity8KeyValueEP14KeyValueData_s */
void KeyValuePartTwo(class CBaseEntity *, KeyValueData *); /* linkage=_ZN11CBaseEntity15KeyValuePartTwoEP14KeyValueData_s */
void KeyValuePartThree(class CBaseEntity *, KeyValueData *); /* linkage=_ZN11CBaseEntity17KeyValuePartThreeEP14KeyValueData_s */
virtual int Save(class CBaseEntity *, class CSave &); /* linkage=_ZN11CBaseEntity4SaveER5CSave */
virtual int Restore(class CBaseEntity *, class CRestore &); /* linkage=_ZN11CBaseEntity7RestoreER8CRestore */
virtual int ObjectCaps(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10ObjectCapsEv */
virtual void Activate(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8ActivateEv */
virtual void SetObjectCollisionBox(class CBaseEntity *); /* linkage=_ZN11CBaseEntity21SetObjectCollisionBoxEv */
virtual int Classify(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8ClassifyEv */
virtual void DeathNotice(class CBaseEntity *, entvars_t *); /* linkage=_ZN11CBaseEntity11DeathNoticeEP9entvars_s */
virtual void TraceAttack(class CBaseEntity *, entvars_t *, float, class Vector, TraceResult *, int); /* linkage=_ZN11CBaseEntity11TraceAttackEP9entvars_sf6VectorP11TraceResulti */
virtual int TakeDamage(class CBaseEntity *, entvars_t *, entvars_t *, float, int); /* linkage=_ZN11CBaseEntity10TakeDamageEP9entvars_sS1_fi */
virtual int TakeHealth(class CBaseEntity *, float, int); /* linkage=_ZN11CBaseEntity10TakeHealthEfi */
virtual void Killed(class CBaseEntity *, entvars_t *, entvars_t *, int); /* linkage=_ZN11CBaseEntity6KilledEP9entvars_sS1_i */
virtual int BloodColor(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10BloodColorEv */
virtual void TraceBleed(class CBaseEntity *, float, class Vector, TraceResult *, int); /* linkage=_ZN11CBaseEntity10TraceBleedEf6VectorP11TraceResulti */
virtual int IsTriggered(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11IsTriggeredEv */
virtual class CBaseMonster * MyMonsterPointer(class CBaseEntity *); /* linkage=_ZN11CBaseEntity16MyMonsterPointerEv */
virtual class CSquadMonster * MySquadMonsterPointer(class CBaseEntity *); /* linkage=_ZN11CBaseEntity21MySquadMonsterPointerEv */
virtual int GetToggleState(class CBaseEntity *); /* linkage=_ZN11CBaseEntity14GetToggleStateEv */
virtual BOOL AddPlayerItem(class CBaseEntity *, class CBasePlayerItem *); /* linkage=_ZN11CBaseEntity13AddPlayerItemEP15CBasePlayerItem */
virtual BOOL RemovePlayerItem(class CBaseEntity *, class CBasePlayerItem *); /* linkage=_ZN11CBaseEntity16RemovePlayerItemEP15CBasePlayerItem */
virtual int GiveAmmo(class CBaseEntity *, int, char *, int, int *); /* linkage=_ZN11CBaseEntity8GiveAmmoEiPciPi */
virtual float GetDelay(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8GetDelayEv */
virtual int IsMoving(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8IsMovingEv */
virtual void OverrideReset(class CBaseEntity *); /* linkage=_ZN11CBaseEntity13OverrideResetEv */
virtual int DamageDecal(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity11DamageDecalEi */
virtual void SetToggleState(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity14SetToggleStateEi */
virtual void StartSneaking(class CBaseEntity *); /* linkage=_ZN11CBaseEntity13StartSneakingEv */
virtual void StopSneaking(class CBaseEntity *); /* linkage=_ZN11CBaseEntity12StopSneakingEv */
virtual BOOL OnControls(class CBaseEntity *, entvars_t *); /* linkage=_ZN11CBaseEntity10OnControlsEP9entvars_s */
virtual BOOL IsSneaking(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10IsSneakingEv */
virtual BOOL IsAlive(class CBaseEntity *); /* linkage=_ZN11CBaseEntity7IsAliveEv */
virtual BOOL IsBSPModel(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10IsBSPModelEv */
virtual BOOL ReflectGauss(class CBaseEntity *); /* linkage=_ZN11CBaseEntity12ReflectGaussEv */
virtual BOOL HasTarget(class CBaseEntity *, string_t); /* linkage=_ZN11CBaseEntity9HasTargetEj */
virtual BOOL IsInWorld(class CBaseEntity *); /* linkage=_ZN11CBaseEntity9IsInWorldEv */
virtual BOOL IsPlayer(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8IsPlayerEv */
virtual BOOL IsNetClient(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11IsNetClientEv */
virtual const char * DB_GetItemName(class CBaseEntity *); /* linkage=_ZN11CBaseEntity14DB_GetItemNameEv */
virtual class CBaseEntity * GetNextTarget(class CBaseEntity *); /* linkage=_ZN11CBaseEntity13GetNextTargetEv */
virtual void Think(class CBaseEntity *); /* linkage=_ZN11CBaseEntity5ThinkEv */
virtual void Touch(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity5TouchEPS_ */
virtual void Use(class CBaseEntity *, class CBaseEntity *, class CBaseEntity *, USE_TYPE, float); /* linkage=_ZN11CBaseEntity3UseEPS_S0_8USE_TYPEf */
virtual void Blocked(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity7BlockedEPS_ */
void * operator new(size_t, entvars_t *); /* linkage=_ZN11CBaseEntitynwEjP9entvars_s */
void operator delete(void *); /* linkage=_ZN11CBaseEntitydlEPv */
void UpdateOnRemove(class CBaseEntity *); /* linkage=_ZN11CBaseEntity14UpdateOnRemoveEv */
void SUB_Remove(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10SUB_RemoveEv */
void SUB_DoNothing(class CBaseEntity *); /* linkage=_ZN11CBaseEntity13SUB_DoNothingEv */
void SUB_StartFadeOut(class CBaseEntity *); /* linkage=_ZN11CBaseEntity16SUB_StartFadeOutEv */
void SUB_FadeOut(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11SUB_FadeOutEv */
void SUB_CallUseToggle(class CBaseEntity *); /* linkage=_ZN11CBaseEntity17SUB_CallUseToggleEv */
int ShouldToggle(class CBaseEntity *, USE_TYPE, BOOL); /* linkage=_ZN11CBaseEntity12ShouldToggleE8USE_TYPEi */
void FireBullets(class CBaseEntity *, ULONG, class Vector, class Vector, class Vector, float, int, int, int, entvars_t *); /* linkage=_ZN11CBaseEntity11FireBulletsEj6VectorS0_S0_fiiiP9entvars_s */
virtual class CBaseEntity * Respawn(class CBaseEntity *); /* linkage=_ZN11CBaseEntity7RespawnEv */
void SUB_UseTargets(class CBaseEntity *, class CBaseEntity *, USE_TYPE, float); /* linkage=_ZN11CBaseEntity14SUB_UseTargetsEPS_8USE_TYPEf */
int Intersects(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity10IntersectsEPS_ */
void MakeDormant(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11MakeDormantEv */
int IsDormant(class CBaseEntity *); /* linkage=_ZN11CBaseEntity9IsDormantEv */
BOOL IsLockedByMaster(class CBaseEntity *); /* linkage=_ZN11CBaseEntity16IsLockedByMasterEv */
class CBaseEntity * Instance(edict_t *); /* linkage=_ZN11CBaseEntity8InstanceEP7edict_s */
class CBaseEntity * Instance(entvars_t *); /* linkage=_ZN11CBaseEntity8InstanceEP9entvars_s */
class CBaseEntity * Instance(int); /* linkage=_ZN11CBaseEntity8InstanceEi */
class CBaseMonster * GetMonsterPointer(class CBaseEntity *, entvars_t *); /* linkage=_ZN11CBaseEntity17GetMonsterPointerEP9entvars_s */
class CBaseMonster * GetMonsterPointer(class CBaseEntity *, edict_t *); /* linkage=_ZN11CBaseEntity17GetMonsterPointerEP7edict_s */
virtual void UpdateOwner(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11UpdateOwnerEv */
class CBaseEntity * Create(char *, const class Vector &, const class Vector &, edict_t *); /* linkage=_ZN11CBaseEntity6CreateEPcRK6VectorS3_P7edict_s */
virtual BOOL FBecomeProne(class CBaseEntity *); /* linkage=_ZN11CBaseEntity12FBecomeProneEv */
edict_t * edict(class CBaseEntity *); /* linkage=_ZN11CBaseEntity5edictEv */
EOFFSET eoffset(class CBaseEntity *); /* linkage=_ZN11CBaseEntity7eoffsetEv */
int entindex(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8entindexEv */
virtual class Vector Center(class CBaseEntity *); /* linkage=_ZN11CBaseEntity6CenterEv */
virtual class Vector EyePosition(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11EyePositionEv */
virtual class Vector EarPosition(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11EarPositionEv */
virtual class Vector BodyTarget(class CBaseEntity *, const class Vector &); /* linkage=_ZN11CBaseEntity10BodyTargetERK6Vector */
virtual int Illumination(class CBaseEntity *); /* linkage=_ZN11CBaseEntity12IlluminationEv */
virtual BOOL FVisible(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity8FVisibleEPS_ */
virtual BOOL FVisible(class CBaseEntity *, const class Vector &); /* linkage=_ZN11CBaseEntity8FVisibleERK6Vector */
virtual BOOL EngineerUse(class CBaseEntity *, class CBasePlayer *); /* linkage=_ZN11CBaseEntity11EngineerUseEP11CBasePlayer */
class CBaseEntity * FindTimer(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity9FindTimerEi */
class CBaseEntity * CreateTimer(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity11CreateTimerEi */
BOOL CheckExistence(class CBaseEntity *); /* linkage=_ZN11CBaseEntity14CheckExistenceEv */
void CheckBelowBuilding(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity18CheckBelowBuildingEi */
int CheckArea(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity9CheckAreaEPS_ */
virtual void Finished(class CBaseEntity *); /* linkage=_ZN11CBaseEntity8FinishedEv */
BOOL IsAlly(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity6IsAllyEPS_ */
BOOL IsAlly(class CBaseEntity *, int); /* linkage=_ZN11CBaseEntity6IsAllyEi */
BOOL IsTeammate(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity10IsTeammateEPS_ */
virtual void TeamFortress_EMPExplode(class CBaseEntity *, entvars_t *, float, float); /* linkage=_ZN11CBaseEntity23TeamFortress_EMPExplodeEP9entvars_sff */
virtual void TeamFortress_CalcEMPDmgRad(class CBaseEntity *, float &, float &); /* linkage=_ZN11CBaseEntity26TeamFortress_CalcEMPDmgRadERfS0_ */
virtual void TeamFortress_TakeEMPBlast(class CBaseEntity *, entvars_t *); /* linkage=_ZN11CBaseEntity25TeamFortress_TakeEMPBlastEP9entvars_s */
virtual void TeamFortress_EMPRemove(class CBaseEntity *); /* linkage=_ZN11CBaseEntity22TeamFortress_EMPRemoveEv */
virtual void TeamFortress_TakeConcussionBlast(class CBaseEntity *, entvars_t *, float); /* linkage=_ZN11CBaseEntity32TeamFortress_TakeConcussionBlastEP9entvars_sf */
virtual void TeamFortress_Concuss(class CBaseEntity *, entvars_t *); /* linkage=_ZN11CBaseEntity20TeamFortress_ConcussEP9entvars_s */
void Timer_Infection(class CBaseEntity *); /* linkage=_ZN11CBaseEntity15Timer_InfectionEv */
void Timer_HealthRot(class CBaseEntity *); /* linkage=_ZN11CBaseEntity15Timer_HealthRotEv */
void Timer_Hallucination(class CBaseEntity *); /* linkage=_ZN11CBaseEntity19Timer_HallucinationEv */
void Timer_Tranquilisation(class CBaseEntity *); /* linkage=_ZN11CBaseEntity21Timer_TranquilisationEv */
void Timer_Regeneration(class CBaseEntity *); /* linkage=_ZN11CBaseEntity18Timer_RegenerationEv */
void Timer_Birthday(class CBaseEntity *); /* linkage=_ZN11CBaseEntity14Timer_BirthdayEv */
void Timer_DetpackSet(class CBaseEntity *); /* linkage=_ZN11CBaseEntity16Timer_DetpackSetEv */
void Timer_DetpackDisarm(class CBaseEntity *); /* linkage=_ZN11CBaseEntity19Timer_DetpackDisarmEv */
void Timer_FinishedBuilding(class CBaseEntity *); /* linkage=_ZN11CBaseEntity22Timer_FinishedBuildingEv */
void Timer_CheckBuildDistance(class CBaseEntity *); /* linkage=_ZN11CBaseEntity24Timer_CheckBuildDistanceEv */
void Timer_SpyUndercoverThink(class CBaseEntity *); /* linkage=_ZN11CBaseEntity24Timer_SpyUndercoverThinkEv */
void Timer_CeaseFireThink(class CBaseEntity *); /* linkage=_ZN11CBaseEntity20Timer_CeaseFireThinkEv */
void Timer_AutokickThink(class CBaseEntity *); /* linkage=_ZN11CBaseEntity19Timer_AutokickThinkEv */
void DoRespawn(class CBaseEntity *); /* linkage=_ZN11CBaseEntity9DoRespawnEv */
void tfgoal_timer_tick(class CBaseEntity *); /* linkage=_ZN11CBaseEntity17tfgoal_timer_tickEv */
void tfgoalitem_dropthink(class CBaseEntity *); /* linkage=_ZN11CBaseEntity20tfgoalitem_dropthinkEv */
void tfgoalitem_droptouch(class CBaseEntity *); /* linkage=_ZN11CBaseEntity20tfgoalitem_droptouchEv */
void tfgoalitem_remove(class CBaseEntity *); /* linkage=_ZN11CBaseEntity17tfgoalitem_removeEv */
void ReturnItem(class CBaseEntity *); /* linkage=_ZN11CBaseEntity10ReturnItemEv */
void DelayedResult(class CBaseEntity *); /* linkage=_ZN11CBaseEntity13DelayedResultEv */
void EndRoundEnd(class CBaseEntity *); /* linkage=_ZN11CBaseEntity11EndRoundEndEv */
void item_tfgoal_touch(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity17item_tfgoal_touchEPS_ */
void tfgoal_touch(class CBaseEntity *, class CBaseEntity *); /* linkage=_ZN11CBaseEntity12tfgoal_touchEPS_ */
void DoDrop(class CBaseEntity *, class Vector); /* linkage=_ZN11CBaseEntity6DoDropE6Vector */
class CBaseEntity * FindTeamSpawnPoint(class CBaseEntity *); /* linkage=_ZN11CBaseEntity18FindTeamSpawnPointEv */
/* --- cacheline 35 boundary (2240 bytes) was 36 bytes ago --- */
/* vtable has 63 entries: {
[2] = Spawn(_ZN11CBaseEntity5SpawnEv),
[3] = Precache(_ZN11CBaseEntity8PrecacheEv),
[4] = KeyValue(_ZN11CBaseEntity8KeyValueEP14KeyValueData_s),
[5] = Save(_ZN11CBaseEntity4SaveER5CSave),
[6] = Restore(_ZN11CBaseEntity7RestoreER8CRestore),
[7] = ObjectCaps(_ZN11CBaseEntity10ObjectCapsEv),
[8] = Activate(_ZN11CBaseEntity8ActivateEv),
[9] = SetObjectCollisionBox(_ZN11CBaseEntity21SetObjectCollisionBoxEv),
[10] = Classify(_ZN11CBaseEntity8ClassifyEv),
[11] = DeathNotice(_ZN11CBaseEntity11DeathNoticeEP9entvars_s),
[12] = TraceAttack(_ZN11CBaseEntity11TraceAttackEP9entvars_sf6VectorP11TraceResulti),
[13] = TakeDamage(_ZN11CBaseEntity10TakeDamageEP9entvars_sS1_fi),
[14] = TakeHealth(_ZN11CBaseEntity10TakeHealthEfi),
[15] = Killed(_ZN11CBaseEntity6KilledEP9entvars_sS1_i),
[16] = BloodColor(_ZN11CBaseEntity10BloodColorEv),
[17] = TraceBleed(_ZN11CBaseEntity10TraceBleedEf6VectorP11TraceResulti),
[18] = IsTriggered(_ZN11CBaseEntity11IsTriggeredEv),
[19] = MyMonsterPointer(_ZN11CBaseEntity16MyMonsterPointerEv),
[20] = MySquadMonsterPointer(_ZN11CBaseEntity21MySquadMonsterPointerEv),
[21] = GetToggleState(_ZN11CBaseEntity14GetToggleStateEv),
[22] = AddPlayerItem(_ZN11CBaseEntity13AddPlayerItemEP15CBasePlayerItem),
[23] = RemovePlayerItem(_ZN11CBaseEntity16RemovePlayerItemEP15CBasePlayerItem),
[24] = GiveAmmo(_ZN11CBaseEntity8GiveAmmoEiPciPi),
[25] = GetDelay(_ZN11CBaseEntity8GetDelayEv),
[26] = IsMoving(_ZN11CBaseEntity8IsMovingEv),
[27] = OverrideReset(_ZN11CBaseEntity13OverrideResetEv),
[28] = DamageDecal(_ZN11CBaseEntity11DamageDecalEi),
[29] = SetToggleState(_ZN11CBaseEntity14SetToggleStateEi),
[30] = StartSneaking(_ZN11CBaseEntity13StartSneakingEv),
[31] = StopSneaking(_ZN11CBaseEntity12StopSneakingEv),
[32] = OnControls(_ZN11CBaseEntity10OnControlsEP9entvars_s),
[33] = IsSneaking(_ZN11CBaseEntity10IsSneakingEv),
[34] = IsAlive(_ZN11CBaseEntity7IsAliveEv),
[35] = IsBSPModel(_ZN11CBaseEntity10IsBSPModelEv),
[36] = ReflectGauss(_ZN11CBaseEntity12ReflectGaussEv),
[37] = HasTarget(_ZN11CBaseEntity9HasTargetEj),
[38] = IsInWorld(_ZN11CBaseEntity9IsInWorldEv),
[39] = IsPlayer(_ZN11CBaseEntity8IsPlayerEv),
[40] = IsNetClient(_ZN11CBaseEntity11IsNetClientEv),
[41] = DB_GetItemName(_ZN11CBaseEntity14DB_GetItemNameEv),
[42] = GetNextTarget(_ZN11CBaseEntity13GetNextTargetEv),
[43] = Think(_ZN11CBaseEntity5ThinkEv),
[44] = Touch(_ZN11CBaseEntity5TouchEPS_),
[45] = Use(_ZN11CBaseEntity3UseEPS_S0_8USE_TYPEf),
[46] = Blocked(_ZN11CBaseEntity7BlockedEPS_),
[47] = Respawn(_ZN11CBaseEntity7RespawnEv),
[48] = UpdateOwner(_ZN11CBaseEntity11UpdateOwnerEv),
[49] = FBecomeProne(_ZN11CBaseEntity12FBecomeProneEv),
[50] = Center(_ZN11CBaseEntity6CenterEv),
[51] = EyePosition(_ZN11CBaseEntity11EyePositionEv),
[52] = EarPosition(_ZN11CBaseEntity11EarPositionEv),
[53] = BodyTarget(_ZN11CBaseEntity10BodyTargetERK6Vector),
[54] = Illumination(_ZN11CBaseEntity12IlluminationEv),
[55] = FVisible(_ZN11CBaseEntity8FVisibleEPS_),
[56] = FVisible(_ZN11CBaseEntity8FVisibleERK6Vector),
[57] = EngineerUse(_ZN11CBaseEntity11EngineerUseEP11CBasePlayer),
[58] = Finished(_ZN11CBaseEntity8FinishedEv),
[59] = TeamFortress_EMPExplode(_ZN11CBaseEntity23TeamFortress_EMPExplodeEP9entvars_sff),
[60] = TeamFortress_CalcEMPDmgRad(_ZN11CBaseEntity26TeamFortress_CalcEMPDmgRadERfS0_),
[61] = TeamFortress_TakeEMPBlast(_ZN11CBaseEntity25TeamFortress_TakeEMPBlastEP9entvars_s),
[62] = TeamFortress_EMPRemove(_ZN11CBaseEntity22TeamFortress_EMPRemoveEv),
[63] = TeamFortress_TakeConcussionBlast(_ZN11CBaseEntity32TeamFortress_TakeConcussionBlastEP9entvars_sf),
[64] = TeamFortress_Concuss(_ZN11CBaseEntity20TeamFortress_ConcussEP9entvars_s),
} */
/* size: 1140, cachelines: 18, members: 261 */
/* sum members: 2258, holes: 2, sum holes: 18 */
/* last cacheline: 52 bytes */
/* BRAIN FART ALERT! 1140 != 2258 + 18(holes), diff = -1136 */
};
Using this new real_frags offset, I am able to set the frags and they don't get overwritten. I'm going to do some more testing, but I'm pretty sure this problem is mostly solved.
Once fully tested, I guess I'll start working on some new TFC natives. I see DOD had similar issues (solved with dod_set_pl_deaths, dod_set_user_kills, dod_set_user_score, etc.).
--
Andy
Last edited by DynamicBits; 01-04-2014 at 14:58 .
Reason: grammar