<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Knagg0</id>
	<title>AlliedModders Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Knagg0"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/Knagg0"/>
	<updated>2026-06-06T23:19:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=3341</id>
		<title>CBaseCombatWeapon Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=3341"/>
		<updated>2006-09-09T11:13:54Z</updated>

		<summary type="html">&lt;p&gt;Knagg0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also for use when using [[Vfunc_offsets_%28SourceMM%29|VFunc offsets]].&lt;br /&gt;
&lt;br /&gt;
These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 09 Sept 2006&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0       CBaseCombatWeapon::~CBaseCombatWeapon()&lt;br /&gt;
1       CBaseEntity::SetRefEHandle(CBaseHandle const&amp;amp;)&lt;br /&gt;
2       CBaseEntity::GetRefEHandle() const&lt;br /&gt;
3       CBaseEntity::GetCollideable()&lt;br /&gt;
4       CBaseEntity::GetNetworkable()&lt;br /&gt;
5       CBaseEntity::GetBaseEntity()&lt;br /&gt;
6       CBaseEntity::GetModelIndex() const&lt;br /&gt;
7       CBaseEntity::GetModelName() const&lt;br /&gt;
8       CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9       CBaseCombatWeapon::_GetClassName()&lt;br /&gt;
10      CBaseCombatWeapon::GetServerClass()&lt;br /&gt;
11      CBaseCombatWeapon::GetClassName()&lt;br /&gt;
12      CBaseCombatWeapon::YouForgotToImplementOrDeclareServerClass()&lt;br /&gt;
13      CBaseCombatWeapon::GetDataDescMap()&lt;br /&gt;
14      CBaseAnimating::TestCollision(Ray_t const&amp;amp;, unsigned int, CGameTrace&amp;amp;)&lt;br /&gt;
15      CBaseAnimating::TestHitboxes(Ray_t const&amp;amp;, unsigned int, CGameTrace&amp;amp;)&lt;br /&gt;
16      CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector*, Vector*)&lt;br /&gt;
17      CBaseEntity::ShouldCollide(int, int) const&lt;br /&gt;
18      CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
19      CBaseEntity::ShouldTransmit(CCheckTransmitInfo const*)&lt;br /&gt;
20      CBaseCombatWeapon::UpdateTransmitState()&lt;br /&gt;
21      CBaseAnimating::SetTransmit(CCheckTransmitInfo*, bool)&lt;br /&gt;
22      CBaseEntity::GetTracerType()&lt;br /&gt;
23      CBaseCombatWeapon::Spawn()&lt;br /&gt;
24      CBaseCombatWeapon::Precache()&lt;br /&gt;
25      CBaseAnimating::SetModel(char const*)&lt;br /&gt;
26      CBaseEntity::PostConstructor(char const*)&lt;br /&gt;
27      CBaseEntity::PostClientActive()&lt;br /&gt;
28      CBaseEntity::ParseMapData(CEntityMapData*)&lt;br /&gt;
29      CBaseEntity::KeyValue(char const*, char const*)&lt;br /&gt;
30      CBaseEntity::KeyValue(char const*, float)&lt;br /&gt;
31      CBaseEntity::KeyValue(char const*, Vector)&lt;br /&gt;
32      CBaseCombatWeapon::Activate()&lt;br /&gt;
33      CBaseEntity::SetParent(CBaseEntity*, int)&lt;br /&gt;
34      CBaseCombatWeapon::ObjectCaps()&lt;br /&gt;
35      CBaseEntity::AcceptInput(char const*, CBaseEntity*, CBaseEntity*, variant_t, int)&lt;br /&gt;
36      CBaseAnimating::GetInputDispatchEffectPosition(char const*, Vector&amp;amp;, QAngle&amp;amp;)&lt;br /&gt;
37      CBaseEntity::DrawDebugGeometryOverlays()&lt;br /&gt;
38      CBaseAnimating::DrawDebugTextOverlays()&lt;br /&gt;
39      CBaseEntity::Save(ISave&amp;amp;)&lt;br /&gt;
40      CBaseEntity::Restore(IRestore&amp;amp;)&lt;br /&gt;
41      CBaseEntity::ShouldSavePhysics()&lt;br /&gt;
42      CBaseEntity::OnSave(IEntitySaveUtils*)&lt;br /&gt;
43      CBaseAnimating::OnRestore()&lt;br /&gt;
44      CBaseEntity::RequiredEdictIndex()&lt;br /&gt;
45      CBaseEntity::MoveDone()&lt;br /&gt;
46      CBaseEntity::Think()&lt;br /&gt;
47      CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick()&lt;br /&gt;
48      CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void*)&lt;br /&gt;
49      CBaseAnimating::GetBaseAnimating()&lt;br /&gt;
50      CBaseEntity::GetResponseSystem()&lt;br /&gt;
51      CBaseEntity::DispatchResponse(char const*)&lt;br /&gt;
52      CBaseEntity::Classify()&lt;br /&gt;
53      CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
54      CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
55      CBaseEntity::GetAutoAimRadius()&lt;br /&gt;
56      CBaseEntity::GetAutoAimCenter()&lt;br /&gt;
57      CBaseEntity::PassesDamageFilter(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
58      CBaseEntity::TraceAttack(CTakeDamageInfo const&amp;amp;, Vector const&amp;amp;, CGameTrace*)&lt;br /&gt;
59      CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60      CBaseEntity::OnTakeDamage(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
61      CBaseEntity::TakeHealth(float, int)&lt;br /&gt;
62      CBaseEntity::Event_Killed(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
63      CBaseEntity::Event_KilledOther(CBaseEntity*, CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
64      CBaseEntity::BloodColor()&lt;br /&gt;
65      CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
66      CBaseEntity::IsNPC() const&lt;br /&gt;
67      CBaseEntity::MyCombatCharacterPointer()&lt;br /&gt;
68      CBaseEntity::GetDelay()&lt;br /&gt;
69      CBaseEntity::IsMoving()&lt;br /&gt;
70      CBaseEntity::DamageDecal(int, int)&lt;br /&gt;
71      CBaseEntity::DecalTrace(CGameTrace*, char const*)&lt;br /&gt;
72      CBaseEntity::ImpactTrace(CGameTrace*, int, char*)&lt;br /&gt;
73      CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
74      CBaseEntity::HasTarget(string_t)&lt;br /&gt;
75      CBaseEntity::IsPlayer() const&lt;br /&gt;
76      CBaseEntity::IsNetClient() const&lt;br /&gt;
77      CBaseEntity::IsTemplate()&lt;br /&gt;
78      CBaseEntity::IsBaseObject() const&lt;br /&gt;
79      CBaseEntity::GetServerVehicle()&lt;br /&gt;
80      CBaseEntity::IsViewable()&lt;br /&gt;
81      CBaseEntity::ChangeTeam(int)&lt;br /&gt;
82      CBaseEntity::OnEntityEvent(EntityEvent_t, void*)&lt;br /&gt;
83      CBaseEntity::CanStandOn(CBaseEntity*) const&lt;br /&gt;
84      CBaseEntity::CanStandOn(edict_t*) const&lt;br /&gt;
85      CBaseEntity::GetEnemy()&lt;br /&gt;
86      CBaseEntity::GetEnemy() const&lt;br /&gt;
87      CBaseCombatWeapon::Use(CBaseEntity*, CBaseEntity*, USE_TYPE, float)&lt;br /&gt;
88      CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
89      CBaseEntity::Touch(CBaseEntity*)&lt;br /&gt;
90      CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
91      CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
92      CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
93      CBaseEntity::EndBlocked()&lt;br /&gt;
94      CBaseEntity::PhysicsSimulate()&lt;br /&gt;
95      CBaseEntity::UpdateOnRemove()&lt;br /&gt;
96      CBaseEntity::StopLoopingSounds()&lt;br /&gt;
97      CBaseEntity::SUB_AllowedToFade()&lt;br /&gt;
98      CBaseAnimating::Teleport(Vector const*, QAngle const*, Vector const*)&lt;br /&gt;
99      CBaseEntity::NotifySystemEvent(CBaseEntity*, notify_system_event_t, notify_system_event_params_t const&amp;amp;)&lt;br /&gt;
100     CBaseCombatWeapon::MakeTracer(Vector const&amp;amp;, CGameTrace const&amp;amp;, int)&lt;br /&gt;
101     CBaseEntity::FireBullets(FireBulletsInfo_t const&amp;amp;)&lt;br /&gt;
102     CBaseEntity::DoImpactEffect(CGameTrace&amp;amp;, int)&lt;br /&gt;
103     CBaseCombatWeapon::Respawn()&lt;br /&gt;
104     CBaseEntity::IsLockedByMaster()&lt;br /&gt;
105     CBaseAnimating::ModifyOrAppendCriteria(AI_CriteriaSet&amp;amp;)&lt;br /&gt;
106     CBaseEntity::NetworkStateChanged_m_iMaxHealth()&lt;br /&gt;
107     CBaseEntity::NetworkStateChanged_m_iMaxHealth(void*)&lt;br /&gt;
108     CBaseEntity::NetworkStateChanged_m_iHealth()&lt;br /&gt;
109     CBaseEntity::NetworkStateChanged_m_iHealth(void*)&lt;br /&gt;
110     CBaseEntity::NetworkStateChanged_m_lifeState()&lt;br /&gt;
111     CBaseEntity::NetworkStateChanged_m_lifeState(void*)&lt;br /&gt;
112     CBaseEntity::NetworkStateChanged_m_takedamage()&lt;br /&gt;
113     CBaseEntity::NetworkStateChanged_m_takedamage(void*)&lt;br /&gt;
114     CBaseEntity::GetDamageType() const&lt;br /&gt;
115     CBaseEntity::GetDamage()&lt;br /&gt;
116     CBaseEntity::SetDamage(float)&lt;br /&gt;
117     CBaseEntity::EyePosition()&lt;br /&gt;
118     CBaseEntity::EyeAngles()&lt;br /&gt;
119     CBaseEntity::LocalEyeAngles()&lt;br /&gt;
120     CBaseEntity::EarPosition()&lt;br /&gt;
121     CBaseEntity::BodyTarget(Vector const&amp;amp;, bool)&lt;br /&gt;
122     CBaseEntity::HeadTarget(Vector const&amp;amp;)&lt;br /&gt;
123     CBaseEntity::GetVectors(Vector*, Vector*, Vector*) const&lt;br /&gt;
124     CBaseEntity::GetViewOffset()&lt;br /&gt;
125     CBaseEntity::GetSmoothedVelocity()&lt;br /&gt;
126     CBaseAnimating::GetVelocity(Vector*, Vector*)&lt;br /&gt;
127     CBaseEntity::FVisible(CBaseEntity*, int, CBaseEntity**)&lt;br /&gt;
128     CBaseEntity::FVisible(Vector const&amp;amp;, int, CBaseEntity**)&lt;br /&gt;
129     CBaseEntity::CanBeSeenBy(CAI_BaseNPC*)&lt;br /&gt;
130     CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
131     CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
132     CBaseEntity::CanBePoweredUp()&lt;br /&gt;
133     CBaseEntity::AttemptToPowerup(int, float, float, CBaseEntity*, CDamageModifier*)&lt;br /&gt;
134     CBaseEntity::GetGroundVelocityToApply(Vector&amp;amp;)&lt;br /&gt;
135     CBaseEntity::PhysicsSplash(Vector const&amp;amp;, Vector const&amp;amp;, float, float)&lt;br /&gt;
136     CBaseEntity::Splash()&lt;br /&gt;
137     CBaseEntity::WorldSpaceCenter() const&lt;br /&gt;
138     CBaseEntity::GetSoundEmissionOrigin() const&lt;br /&gt;
139     CBaseEntity::CreateVPhysics()&lt;br /&gt;
140     CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
141     CBaseEntity::VPhysicsDestroyObject()&lt;br /&gt;
142     CBaseEntity::VPhysicsUpdate(IPhysicsObject*)&lt;br /&gt;
143     CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
144     CBaseEntity::VPhysicsShadowCollision(int, gamevcollisionevent_t*)&lt;br /&gt;
145     CBaseEntity::VPhysicsShadowUpdate(IPhysicsObject*)&lt;br /&gt;
146     CBaseEntity::VPhysicsCollision(int, gamevcollisionevent_t*)&lt;br /&gt;
147     CBaseEntity::VPhysicsFriction(IPhysicsObject*, float, int, int)&lt;br /&gt;
148     CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
149     CBaseEntity::VPhysicsGetObjectList(IPhysicsObject**, int)&lt;br /&gt;
150     CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
151     CBaseEntity::PhysicsSolidMaskForEntity() const&lt;br /&gt;
152     CBaseEntity::ResolveFlyCollisionCustom(CGameTrace&amp;amp;, Vector&amp;amp;)&lt;br /&gt;
153     CBaseEntity::PerformCustomPhysics(Vector*, Vector*, QAngle*, QAngle*)&lt;br /&gt;
154     CBaseAnimating::GetStepOrigin() const&lt;br /&gt;
155     CBaseAnimating::GetStepAngles() const&lt;br /&gt;
156     CBaseEntity::ShouldDrawWaterImpacts()&lt;br /&gt;
157     CBaseEntity::NetworkStateChanged_m_fFlags()&lt;br /&gt;
158     CBaseEntity::NetworkStateChanged_m_fFlags(void*)&lt;br /&gt;
159     CBaseEntity::NetworkStateChanged_m_nWaterLevel()&lt;br /&gt;
160     CBaseEntity::NetworkStateChanged_m_nWaterLevel(void*)&lt;br /&gt;
161     CBaseEntity::NetworkStateChanged_m_hGroundEntity()&lt;br /&gt;
162     CBaseEntity::NetworkStateChanged_m_hGroundEntity(void*)&lt;br /&gt;
163     CBaseEntity::NetworkStateChanged_m_vecBaseVelocity()&lt;br /&gt;
164     CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void*)&lt;br /&gt;
165     CBaseEntity::NetworkStateChanged_m_flFriction()&lt;br /&gt;
166     CBaseEntity::NetworkStateChanged_m_flFriction(void*)&lt;br /&gt;
167     CBaseEntity::NetworkStateChanged_m_vecVelocity()&lt;br /&gt;
168     CBaseEntity::NetworkStateChanged_m_vecVelocity(void*)&lt;br /&gt;
169     CBaseEntity::NetworkStateChanged_m_vecViewOffset()&lt;br /&gt;
170     CBaseEntity::NetworkStateChanged_m_vecViewOffset(void*)&lt;br /&gt;
171     CBaseAnimating::GetIdealSpeed() const&lt;br /&gt;
172     CBaseAnimating::GetIdealAccel() const&lt;br /&gt;
173     CBaseAnimating::StudioFrameAdvance()&lt;br /&gt;
174     CBaseAnimating::IsActivityFinished()&lt;br /&gt;
175     CBaseAnimating::ClampRagdollForce(Vector const&amp;amp;, Vector*)&lt;br /&gt;
176     CBaseAnimating::BecomeRagdollOnClient(Vector const&amp;amp;)&lt;br /&gt;
177     CBaseAnimating::IsRagdoll()&lt;br /&gt;
178     CBaseAnimating::CanBecomeRagdoll()&lt;br /&gt;
179     CBaseAnimating::GetSkeleton(CStudioHdr*, Vector*, Quaternion*, int)&lt;br /&gt;
180     CBaseAnimating::GetBoneTransform(int, matrix3x4_t&amp;amp;)&lt;br /&gt;
181     CBaseAnimating::SetupBones(matrix3x4_t*, int)&lt;br /&gt;
182     CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
183     CBaseAnimating::DispatchAnimEvents(CBaseAnimating*)&lt;br /&gt;
184     CBaseCombatWeapon::HandleAnimEvent(animevent_t*)&lt;br /&gt;
185     CBaseAnimating::GetAttachment(int, matrix3x4_t&amp;amp;)&lt;br /&gt;
186     CBaseAnimating::InitBoneControllers()&lt;br /&gt;
187     CBaseAnimating::GetGroundSpeedVelocity()&lt;br /&gt;
188     CBaseAnimating::Ignite(float, bool, float, bool)&lt;br /&gt;
189     CBaseAnimating::Extinguish()&lt;br /&gt;
190     CBaseAnimating::SetLightingOriginRelative(CBaseEntity*)&lt;br /&gt;
191     CBaseAnimating::SetLightingOrigin(CBaseEntity*)&lt;br /&gt;
192     CBaseCombatWeapon::IsPredicted() const&lt;br /&gt;
193     CBaseCombatWeapon::GetSubType()&lt;br /&gt;
194     CBaseCombatWeapon::SetSubType(int)&lt;br /&gt;
195     CBaseCombatWeapon::Equip(CBaseCombatCharacter*)&lt;br /&gt;
196     CBaseCombatWeapon::Drop(Vector const&amp;amp;)&lt;br /&gt;
197     CBaseCombatWeapon::UpdateClientData(CBasePlayer*)&lt;br /&gt;
198     CBaseCombatWeapon::IsAllowedToSwitch()&lt;br /&gt;
199     CBaseCombatWeapon::CanBeSelected()&lt;br /&gt;
200     CBaseCombatWeapon::VisibleInWeaponSelection()&lt;br /&gt;
201     CBaseCombatWeapon::HasAmmo()&lt;br /&gt;
202     CBaseCombatWeapon::SetPickupTouch()&lt;br /&gt;
203     CBaseCombatWeapon::DefaultTouch(CBaseEntity*)&lt;br /&gt;
204     CBaseCombatWeapon::ShouldDisplayHUDHint()&lt;br /&gt;
205     CBaseCombatWeapon::DisplayAltFireHudHint()&lt;br /&gt;
206     CBaseCombatWeapon::SetViewModelIndex(int)&lt;br /&gt;
207     CBaseCombatWeapon::SendWeaponAnim(int)&lt;br /&gt;
208     CBaseCombatWeapon::SendViewModelAnim(int)&lt;br /&gt;
209     CBaseCombatWeapon::SetViewModel()&lt;br /&gt;
210     CBaseCombatWeapon::HasWeaponIdleTimeElapsed()&lt;br /&gt;
211     CBaseCombatWeapon::SetWeaponIdleTime(float)&lt;br /&gt;
212     CBaseCombatWeapon::GetWeaponIdleTime()&lt;br /&gt;
213     CBaseCombatWeapon::HasAnyAmmo()&lt;br /&gt;
214     CBaseCombatWeapon::HasPrimaryAmmo()&lt;br /&gt;
215     CBaseCombatWeapon::HasSecondaryAmmo()&lt;br /&gt;
216     CBaseCombatWeapon::CanHolster()&lt;br /&gt;
217     CBaseCombatWeapon::DefaultDeploy(char*, char*, int, char*)&lt;br /&gt;
218     CBaseCombatWeapon::CanDeploy()&lt;br /&gt;
219     CBaseCombatWeapon::Deploy()&lt;br /&gt;
220     CBaseCombatWeapon::Holster(CBaseCombatWeapon*)&lt;br /&gt;
221     CBaseCombatWeapon::GetLastWeapon()&lt;br /&gt;
222     CBaseCombatWeapon::SetWeaponVisible(bool)&lt;br /&gt;
223     CBaseCombatWeapon::IsWeaponVisible()&lt;br /&gt;
224     CBaseCombatWeapon::ReloadOrSwitchWeapons()&lt;br /&gt;
225     CBaseCombatWeapon::ItemPreFrame()&lt;br /&gt;
226     CBaseCombatWeapon::ItemPostFrame()&lt;br /&gt;
227     CBaseCombatWeapon::ItemBusyFrame()&lt;br /&gt;
228     CBaseCombatWeapon::ItemHolsterFrame()&lt;br /&gt;
229     CBaseCombatWeapon::WeaponIdle()&lt;br /&gt;
230     CBaseCombatWeapon::HandleFireOnEmpty()&lt;br /&gt;
231     CBaseCombatWeapon::IsWeaponZoomed()&lt;br /&gt;
232     CBaseCombatWeapon::CheckReload()&lt;br /&gt;
233     CBaseCombatWeapon::FinishReload()&lt;br /&gt;
234     CBaseCombatWeapon::AbortReload()&lt;br /&gt;
235     CBaseCombatWeapon::Reload()&lt;br /&gt;
236     CBaseCombatWeapon::PrimaryAttack()&lt;br /&gt;
237     CBaseCombatWeapon::SecondaryAttack()&lt;br /&gt;
238     CBaseCombatWeapon::GetPrimaryAttackActivity()&lt;br /&gt;
239     CBaseCombatWeapon::GetSecondaryAttackActivity()&lt;br /&gt;
240     CBaseCombatWeapon::GetDrawActivity()&lt;br /&gt;
241     CBaseCombatWeapon::GetDefaultAnimSpeed()&lt;br /&gt;
242     CBaseCombatWeapon::GetBulletType()&lt;br /&gt;
243     CBaseCombatWeapon::GetBulletSpread()&lt;br /&gt;
244     CBaseCombatWeapon::GetBulletSpread(WeaponProficiency_t)&lt;br /&gt;
245     CBaseCombatWeapon::GetSpreadBias(WeaponProficiency_t)&lt;br /&gt;
246     CBaseCombatWeapon::GetFireRate()&lt;br /&gt;
247     CBaseCombatWeapon::GetMinBurst()&lt;br /&gt;
248     CBaseCombatWeapon::GetMaxBurst()&lt;br /&gt;
249     CBaseCombatWeapon::GetMinRestTime()&lt;br /&gt;
250     CBaseCombatWeapon::GetMaxRestTime()&lt;br /&gt;
251     CBaseCombatWeapon::GetRandomBurst()&lt;br /&gt;
252     CBaseCombatWeapon::WeaponSound(WeaponSound_t, float)&lt;br /&gt;
253     CBaseCombatWeapon::StopWeaponSound(WeaponSound_t)&lt;br /&gt;
254     CBaseCombatWeapon::GetProficiencyValues()&lt;br /&gt;
255     CBaseCombatWeapon::GetMaxAutoAimDeflection()&lt;br /&gt;
256     CBaseCombatWeapon::StartSprinting()&lt;br /&gt;
257     CBaseCombatWeapon::StopSprinting()&lt;br /&gt;
258     CBaseCombatWeapon::GetDamage(float, int)&lt;br /&gt;
259     CBaseCombatWeapon::SetActivity(Activity, float)&lt;br /&gt;
260     CBaseCombatWeapon::AddViewKick()&lt;br /&gt;
261     CBaseCombatWeapon::GetDeathNoticeName()&lt;br /&gt;
262     CBaseCombatWeapon::OnPickedUp(CBaseCombatCharacter*)&lt;br /&gt;
263     CBaseCombatWeapon::AddViewmodelBob(CBaseViewModel*, Vector&amp;amp;, QAngle&amp;amp;)&lt;br /&gt;
264     CBaseCombatWeapon::CalcViewmodelBob()&lt;br /&gt;
265     CBaseCombatWeapon::GetControlPanelInfo(int, char const*&amp;amp;)&lt;br /&gt;
266     CBaseCombatWeapon::GetControlPanelClassName(int, char const*&amp;amp;)&lt;br /&gt;
267     CBaseCombatWeapon::ShouldShowControlPanels()&lt;br /&gt;
268     CBaseCombatWeapon::CanBePickedUpByNPCs()&lt;br /&gt;
269     CBaseCombatWeapon::GetViewModel(int) const&lt;br /&gt;
270     CBaseCombatWeapon::GetWorldModel() const&lt;br /&gt;
271     CBaseCombatWeapon::GetAnimPrefix() const&lt;br /&gt;
272     CBaseCombatWeapon::GetMaxClip1() const&lt;br /&gt;
273     CBaseCombatWeapon::GetMaxClip2() const&lt;br /&gt;
274     CBaseCombatWeapon::GetDefaultClip1() const&lt;br /&gt;
275     CBaseCombatWeapon::GetDefaultClip2() const&lt;br /&gt;
276     CBaseCombatWeapon::GetWeight() const&lt;br /&gt;
277     CBaseCombatWeapon::AllowsAutoSwitchTo() const&lt;br /&gt;
278     CBaseCombatWeapon::AllowsAutoSwitchFrom() const&lt;br /&gt;
279     CBaseCombatWeapon::GetWeaponFlags() const&lt;br /&gt;
280     CBaseCombatWeapon::GetSlot() const&lt;br /&gt;
281     CBaseCombatWeapon::GetPosition() const&lt;br /&gt;
282     CBaseCombatWeapon::GetName() const&lt;br /&gt;
283     CBaseCombatWeapon::GetPrintName() const&lt;br /&gt;
284     CBaseCombatWeapon::GetShootSound(int) const&lt;br /&gt;
285     CBaseCombatWeapon::GetRumbleEffect() const&lt;br /&gt;
286     CBaseCombatWeapon::UsesClipsForAmmo1() const&lt;br /&gt;
287     CBaseCombatWeapon::UsesClipsForAmmo2() const&lt;br /&gt;
288     CBaseCombatWeapon::GetEncryptionKey()&lt;br /&gt;
289     CBaseCombatWeapon::GetPrimaryAmmoType() const&lt;br /&gt;
290     CBaseCombatWeapon::GetSecondaryAmmoType() const&lt;br /&gt;
291     CBaseCombatWeapon::GetSpriteActive() const&lt;br /&gt;
292     CBaseCombatWeapon::GetSpriteInactive() const&lt;br /&gt;
293     CBaseCombatWeapon::GetSpriteAmmo() const&lt;br /&gt;
294     CBaseCombatWeapon::GetSpriteAmmo2() const&lt;br /&gt;
295     CBaseCombatWeapon::GetSpriteCrosshair() const&lt;br /&gt;
296     CBaseCombatWeapon::GetSpriteAutoaim() const&lt;br /&gt;
297     CBaseCombatWeapon::GetSpriteZoomedCrosshair() const&lt;br /&gt;
298     CBaseCombatWeapon::GetSpriteZoomedAutoaim() const&lt;br /&gt;
299     CBaseCombatWeapon::ActivityOverride(Activity, bool*)&lt;br /&gt;
300     CBaseCombatWeapon::ActivityList()&lt;br /&gt;
301     CBaseCombatWeapon::ActivityListCount()&lt;br /&gt;
302     CBaseCombatWeapon::FallInit()&lt;br /&gt;
303     CBaseCombatWeapon::FallThink()&lt;br /&gt;
304     CBaseCombatWeapon::Materialize()&lt;br /&gt;
305     CBaseCombatWeapon::CheckRespawn()&lt;br /&gt;
306     CBaseCombatWeapon::Delete()&lt;br /&gt;
307     CBaseCombatWeapon::Kill()&lt;br /&gt;
308     CBaseCombatWeapon::CapabilitiesGet()&lt;br /&gt;
309     CBaseCombatWeapon::IsRemoveable()&lt;br /&gt;
310     CBaseCombatWeapon::WeaponLOSCondition(Vector const&amp;amp;, Vector const&amp;amp;, bool)&lt;br /&gt;
311     CBaseCombatWeapon::WeaponRangeAttack1Condition(float, float)&lt;br /&gt;
312     CBaseCombatWeapon::WeaponRangeAttack2Condition(float, float)&lt;br /&gt;
313     CBaseCombatWeapon::WeaponMeleeAttack1Condition(float, float)&lt;br /&gt;
314     CBaseCombatWeapon::WeaponMeleeAttack2Condition(float, float)&lt;br /&gt;
315     CBaseCombatWeapon::Operator_FrameUpdate(CBaseCombatCharacter*)&lt;br /&gt;
316     CBaseCombatWeapon::Operator_HandleAnimEvent(animevent_t*, CBaseCombatCharacter*)&lt;br /&gt;
317     CBaseCombatWeapon::Operator_ForceNPCFire(CBaseCombatCharacter*, bool)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Knagg0</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=3340</id>
		<title>CBaseCombatWeapon Offset List (Counter-Strike: Source)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=CBaseCombatWeapon_Offset_List_(Counter-Strike:_Source)&amp;diff=3340"/>
		<updated>2006-09-09T11:11:14Z</updated>

		<summary type="html">&lt;p&gt;Knagg0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== CBaseCombatWeapon (CS:S) Offset List ==&lt;br /&gt;
For use when using [[Vfunc_offsets_%28SourceMM%29|VFunc offsets]].&lt;br /&gt;
&lt;br /&gt;
This is the list of offsets I've been using. These are the &amp;lt;b&amp;gt;Windows&amp;lt;/b&amp;gt; offsets. &amp;lt;b&amp;gt;Linux offsets are 1 greater.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The List ==&lt;br /&gt;
This comes from the symbol tables, so you'll have to look in the SDK for return types...or guess for the CSS specific functions near the end.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Last Updated 09 Sept 2006&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0       CBaseCombatWeapon::~CBaseCombatWeapon()&lt;br /&gt;
1       CBaseEntity::SetRefEHandle(CBaseHandle const&amp;amp;)&lt;br /&gt;
2       CBaseEntity::GetRefEHandle() const&lt;br /&gt;
3       CBaseEntity::GetCollideable()&lt;br /&gt;
4       CBaseEntity::GetNetworkable()&lt;br /&gt;
5       CBaseEntity::GetBaseEntity()&lt;br /&gt;
6       CBaseEntity::GetModelIndex() const&lt;br /&gt;
7       CBaseEntity::GetModelName() const&lt;br /&gt;
8       CBaseEntity::SetModelIndex(int)&lt;br /&gt;
9       CBaseCombatWeapon::_GetClassName()&lt;br /&gt;
10      CBaseCombatWeapon::GetServerClass()&lt;br /&gt;
11      CBaseCombatWeapon::GetClassName()&lt;br /&gt;
12      CBaseCombatWeapon::YouForgotToImplementOrDeclareServerClass()&lt;br /&gt;
13      CBaseCombatWeapon::GetDataDescMap()&lt;br /&gt;
14      CBaseAnimating::TestCollision(Ray_t const&amp;amp;, unsigned int, CGameTrace&amp;amp;)&lt;br /&gt;
15      CBaseAnimating::TestHitboxes(Ray_t const&amp;amp;, unsigned int, CGameTrace&amp;amp;)&lt;br /&gt;
16      CBaseEntity::ComputeWorldSpaceSurroundingBox(Vector*, Vector*)&lt;br /&gt;
17      CBaseEntity::ShouldCollide(int, int) const&lt;br /&gt;
18      CBaseEntity::SetOwnerEntity(CBaseEntity*)&lt;br /&gt;
19      CBaseEntity::ShouldTransmit(CCheckTransmitInfo const*)&lt;br /&gt;
20      CBaseCombatWeapon::UpdateTransmitState()&lt;br /&gt;
21      CBaseAnimating::SetTransmit(CCheckTransmitInfo*, bool)&lt;br /&gt;
22      CBaseEntity::GetTracerType()&lt;br /&gt;
23      CBaseCombatWeapon::Spawn()&lt;br /&gt;
24      CBaseCombatWeapon::Precache()&lt;br /&gt;
25      CBaseAnimating::SetModel(char const*)&lt;br /&gt;
26      CBaseEntity::PostConstructor(char const*)&lt;br /&gt;
27      CBaseEntity::PostClientActive()&lt;br /&gt;
28      CBaseEntity::ParseMapData(CEntityMapData*)&lt;br /&gt;
29      CBaseEntity::KeyValue(char const*, char const*)&lt;br /&gt;
30      CBaseEntity::KeyValue(char const*, float)&lt;br /&gt;
31      CBaseEntity::KeyValue(char const*, Vector)&lt;br /&gt;
32      CBaseCombatWeapon::Activate()&lt;br /&gt;
33      CBaseEntity::SetParent(CBaseEntity*, int)&lt;br /&gt;
34      CBaseCombatWeapon::ObjectCaps()&lt;br /&gt;
35      CBaseEntity::AcceptInput(char const*, CBaseEntity*, CBaseEntity*, variant_t, int)&lt;br /&gt;
36      CBaseAnimating::GetInputDispatchEffectPosition(char const*, Vector&amp;amp;, QAngle&amp;amp;)&lt;br /&gt;
37      CBaseEntity::DrawDebugGeometryOverlays()&lt;br /&gt;
38      CBaseAnimating::DrawDebugTextOverlays()&lt;br /&gt;
39      CBaseEntity::Save(ISave&amp;amp;)&lt;br /&gt;
40      CBaseEntity::Restore(IRestore&amp;amp;)&lt;br /&gt;
41      CBaseEntity::ShouldSavePhysics()&lt;br /&gt;
42      CBaseEntity::OnSave(IEntitySaveUtils*)&lt;br /&gt;
43      CBaseAnimating::OnRestore()&lt;br /&gt;
44      CBaseEntity::RequiredEdictIndex()&lt;br /&gt;
45      CBaseEntity::MoveDone()&lt;br /&gt;
46      CBaseEntity::Think()&lt;br /&gt;
47      CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick()&lt;br /&gt;
48      CBaseCombatWeapon::NetworkStateChanged_m_nNextThinkTick(void*)&lt;br /&gt;
49      CBaseAnimating::GetBaseAnimating()&lt;br /&gt;
50      CBaseEntity::GetResponseSystem()&lt;br /&gt;
51      CBaseEntity::DispatchResponse(char const*)&lt;br /&gt;
52      CBaseEntity::Classify()&lt;br /&gt;
53      CBaseEntity::DeathNotice(CBaseEntity*)&lt;br /&gt;
54      CBaseEntity::ShouldAttractAutoAim(CBaseEntity*)&lt;br /&gt;
55      CBaseEntity::GetAutoAimRadius()&lt;br /&gt;
56      CBaseEntity::GetAutoAimCenter()&lt;br /&gt;
57      CBaseEntity::PassesDamageFilter(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
58      CBaseEntity::TraceAttack(CTakeDamageInfo const&amp;amp;, Vector const&amp;amp;, CGameTrace*)&lt;br /&gt;
59      CBaseEntity::CanBeHitByMeleeAttack(CBaseEntity*)&lt;br /&gt;
60      CBaseEntity::OnTakeDamage(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
61      CBaseEntity::TakeHealth(float, int)&lt;br /&gt;
62      CBaseEntity::Event_Killed(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
63      CBaseEntity::Event_KilledOther(CBaseEntity*, CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
64      CBaseEntity::BloodColor()&lt;br /&gt;
65      CBaseEntity::IsTriggered(CBaseEntity*)&lt;br /&gt;
66      CBaseEntity::IsNPC() const&lt;br /&gt;
67      CBaseEntity::MyCombatCharacterPointer()&lt;br /&gt;
68      CBaseEntity::GetDelay()&lt;br /&gt;
69      CBaseEntity::IsMoving()&lt;br /&gt;
70      CBaseEntity::DamageDecal(int, int)&lt;br /&gt;
71      CBaseEntity::DecalTrace(CGameTrace*, char const*)&lt;br /&gt;
72      CBaseEntity::ImpactTrace(CGameTrace*, int, char*)&lt;br /&gt;
73      CBaseEntity::OnControls(CBaseEntity*)&lt;br /&gt;
74      CBaseEntity::HasTarget(string_t)&lt;br /&gt;
75      CBaseEntity::IsPlayer() const&lt;br /&gt;
76      CBaseEntity::IsNetClient() const&lt;br /&gt;
77      CBaseEntity::IsTemplate()&lt;br /&gt;
78      CBaseEntity::IsBaseObject() const&lt;br /&gt;
79      CBaseEntity::GetServerVehicle()&lt;br /&gt;
80      CBaseEntity::IsViewable()&lt;br /&gt;
81      CBaseEntity::ChangeTeam(int)&lt;br /&gt;
82      CBaseEntity::OnEntityEvent(EntityEvent_t, void*)&lt;br /&gt;
83      CBaseEntity::CanStandOn(CBaseEntity*) const&lt;br /&gt;
84      CBaseEntity::CanStandOn(edict_t*) const&lt;br /&gt;
85      CBaseEntity::GetEnemy()&lt;br /&gt;
86      CBaseEntity::GetEnemy() const&lt;br /&gt;
87      CBaseCombatWeapon::Use(CBaseEntity*, CBaseEntity*, USE_TYPE, float)&lt;br /&gt;
88      CBaseEntity::StartTouch(CBaseEntity*)&lt;br /&gt;
89      CBaseEntity::Touch(CBaseEntity*)&lt;br /&gt;
90      CBaseEntity::EndTouch(CBaseEntity*)&lt;br /&gt;
91      CBaseEntity::StartBlocked(CBaseEntity*)&lt;br /&gt;
92      CBaseEntity::Blocked(CBaseEntity*)&lt;br /&gt;
93      CBaseEntity::EndBlocked()&lt;br /&gt;
94      CBaseEntity::PhysicsSimulate()&lt;br /&gt;
95      CBaseEntity::UpdateOnRemove()&lt;br /&gt;
96      CBaseEntity::StopLoopingSounds()&lt;br /&gt;
97      CBaseEntity::SUB_AllowedToFade()&lt;br /&gt;
98      CBaseAnimating::Teleport(Vector const*, QAngle const*, Vector const*)&lt;br /&gt;
99      CBaseEntity::NotifySystemEvent(CBaseEntity*, notify_system_event_t, notify_system_event_params_t const&amp;amp;)&lt;br /&gt;
100     CBaseCombatWeapon::MakeTracer(Vector const&amp;amp;, CGameTrace const&amp;amp;, int)&lt;br /&gt;
101     CBaseEntity::FireBullets(FireBulletsInfo_t const&amp;amp;)&lt;br /&gt;
102     CBaseEntity::DoImpactEffect(CGameTrace&amp;amp;, int)&lt;br /&gt;
103     CBaseCombatWeapon::Respawn()&lt;br /&gt;
104     CBaseEntity::IsLockedByMaster()&lt;br /&gt;
105     CBaseAnimating::ModifyOrAppendCriteria(AI_CriteriaSet&amp;amp;)&lt;br /&gt;
106     CBaseEntity::NetworkStateChanged_m_iMaxHealth()&lt;br /&gt;
107     CBaseEntity::NetworkStateChanged_m_iMaxHealth(void*)&lt;br /&gt;
108     CBaseEntity::NetworkStateChanged_m_iHealth()&lt;br /&gt;
109     CBaseEntity::NetworkStateChanged_m_iHealth(void*)&lt;br /&gt;
110     CBaseEntity::NetworkStateChanged_m_lifeState()&lt;br /&gt;
111     CBaseEntity::NetworkStateChanged_m_lifeState(void*)&lt;br /&gt;
112     CBaseEntity::NetworkStateChanged_m_takedamage()&lt;br /&gt;
113     CBaseEntity::NetworkStateChanged_m_takedamage(void*)&lt;br /&gt;
114     CBaseEntity::GetDamageType() const&lt;br /&gt;
115     CBaseEntity::GetDamage()&lt;br /&gt;
116     CBaseEntity::SetDamage(float)&lt;br /&gt;
117     CBaseEntity::EyePosition()&lt;br /&gt;
118     CBaseEntity::EyeAngles()&lt;br /&gt;
119     CBaseEntity::LocalEyeAngles()&lt;br /&gt;
120     CBaseEntity::EarPosition()&lt;br /&gt;
121     CBaseEntity::BodyTarget(Vector const&amp;amp;, bool)&lt;br /&gt;
122     CBaseEntity::HeadTarget(Vector const&amp;amp;)&lt;br /&gt;
123     CBaseEntity::GetVectors(Vector*, Vector*, Vector*) const&lt;br /&gt;
124     CBaseEntity::GetViewOffset()&lt;br /&gt;
125     CBaseEntity::GetSmoothedVelocity()&lt;br /&gt;
126     CBaseAnimating::GetVelocity(Vector*, Vector*)&lt;br /&gt;
127     CBaseEntity::FVisible(CBaseEntity*, int, CBaseEntity**)&lt;br /&gt;
128     CBaseEntity::FVisible(Vector const&amp;amp;, int, CBaseEntity**)&lt;br /&gt;
129     CBaseEntity::CanBeSeenBy(CAI_BaseNPC*)&lt;br /&gt;
130     CBaseEntity::GetAttackDamageScale(CBaseEntity*)&lt;br /&gt;
131     CBaseEntity::GetReceivedDamageScale(CBaseEntity*)&lt;br /&gt;
132     CBaseEntity::CanBePoweredUp()&lt;br /&gt;
133     CBaseEntity::AttemptToPowerup(int, float, float, CBaseEntity*, CDamageModifier*)&lt;br /&gt;
134     CBaseEntity::GetGroundVelocityToApply(Vector&amp;amp;)&lt;br /&gt;
135     CBaseEntity::PhysicsSplash(Vector const&amp;amp;, Vector const&amp;amp;, float, float)&lt;br /&gt;
136     CBaseEntity::Splash()&lt;br /&gt;
137     CBaseEntity::WorldSpaceCenter() const&lt;br /&gt;
138     CBaseEntity::GetSoundEmissionOrigin() const&lt;br /&gt;
139     CBaseEntity::CreateVPhysics()&lt;br /&gt;
140     CBaseEntity::ForceVPhysicsCollide(CBaseEntity*)&lt;br /&gt;
141     CBaseEntity::VPhysicsDestroyObject()&lt;br /&gt;
142     CBaseEntity::VPhysicsUpdate(IPhysicsObject*)&lt;br /&gt;
143     CBaseEntity::VPhysicsTakeDamage(CTakeDamageInfo const&amp;amp;)&lt;br /&gt;
144     CBaseEntity::VPhysicsShadowCollision(int, gamevcollisionevent_t*)&lt;br /&gt;
145     CBaseEntity::VPhysicsShadowUpdate(IPhysicsObject*)&lt;br /&gt;
146     CBaseEntity::VPhysicsCollision(int, gamevcollisionevent_t*)&lt;br /&gt;
147     CBaseEntity::VPhysicsFriction(IPhysicsObject*, float, int, int)&lt;br /&gt;
148     CBaseEntity::UpdatePhysicsShadowToCurrentPosition(float)&lt;br /&gt;
149     CBaseEntity::VPhysicsGetObjectList(IPhysicsObject**, int)&lt;br /&gt;
150     CBaseEntity::HasPhysicsAttacker(float)&lt;br /&gt;
151     CBaseEntity::PhysicsSolidMaskForEntity() const&lt;br /&gt;
152     CBaseEntity::ResolveFlyCollisionCustom(CGameTrace&amp;amp;, Vector&amp;amp;)&lt;br /&gt;
153     CBaseEntity::PerformCustomPhysics(Vector*, Vector*, QAngle*, QAngle*)&lt;br /&gt;
154     CBaseAnimating::GetStepOrigin() const&lt;br /&gt;
155     CBaseAnimating::GetStepAngles() const&lt;br /&gt;
156     CBaseEntity::ShouldDrawWaterImpacts()&lt;br /&gt;
157     CBaseEntity::NetworkStateChanged_m_fFlags()&lt;br /&gt;
158     CBaseEntity::NetworkStateChanged_m_fFlags(void*)&lt;br /&gt;
159     CBaseEntity::NetworkStateChanged_m_nWaterLevel()&lt;br /&gt;
160     CBaseEntity::NetworkStateChanged_m_nWaterLevel(void*)&lt;br /&gt;
161     CBaseEntity::NetworkStateChanged_m_hGroundEntity()&lt;br /&gt;
162     CBaseEntity::NetworkStateChanged_m_hGroundEntity(void*)&lt;br /&gt;
163     CBaseEntity::NetworkStateChanged_m_vecBaseVelocity()&lt;br /&gt;
164     CBaseEntity::NetworkStateChanged_m_vecBaseVelocity(void*)&lt;br /&gt;
165     CBaseEntity::NetworkStateChanged_m_flFriction()&lt;br /&gt;
166     CBaseEntity::NetworkStateChanged_m_flFriction(void*)&lt;br /&gt;
167     CBaseEntity::NetworkStateChanged_m_vecVelocity()&lt;br /&gt;
168     CBaseEntity::NetworkStateChanged_m_vecVelocity(void*)&lt;br /&gt;
169     CBaseEntity::NetworkStateChanged_m_vecViewOffset()&lt;br /&gt;
170     CBaseEntity::NetworkStateChanged_m_vecViewOffset(void*)&lt;br /&gt;
171     CBaseAnimating::GetIdealSpeed() const&lt;br /&gt;
172     CBaseAnimating::GetIdealAccel() const&lt;br /&gt;
173     CBaseAnimating::StudioFrameAdvance()&lt;br /&gt;
174     CBaseAnimating::IsActivityFinished()&lt;br /&gt;
175     CBaseAnimating::ClampRagdollForce(Vector const&amp;amp;, Vector*)&lt;br /&gt;
176     CBaseAnimating::BecomeRagdollOnClient(Vector const&amp;amp;)&lt;br /&gt;
177     CBaseAnimating::IsRagdoll()&lt;br /&gt;
178     CBaseAnimating::CanBecomeRagdoll()&lt;br /&gt;
179     CBaseAnimating::GetSkeleton(CStudioHdr*, Vector*, Quaternion*, int)&lt;br /&gt;
180     CBaseAnimating::GetBoneTransform(int, matrix3x4_t&amp;amp;)&lt;br /&gt;
181     CBaseAnimating::SetupBones(matrix3x4_t*, int)&lt;br /&gt;
182     CBaseAnimating::CalculateIKLocks(float)&lt;br /&gt;
183     CBaseAnimating::DispatchAnimEvents(CBaseAnimating*)&lt;br /&gt;
184     CBaseCombatWeapon::HandleAnimEvent(animevent_t*)&lt;br /&gt;
185     CBaseAnimating::GetAttachment(int, matrix3x4_t&amp;amp;)&lt;br /&gt;
186     CBaseAnimating::InitBoneControllers()&lt;br /&gt;
187     CBaseAnimating::GetGroundSpeedVelocity()&lt;br /&gt;
188     CBaseAnimating::Ignite(float, bool, float, bool)&lt;br /&gt;
189     CBaseAnimating::Extinguish()&lt;br /&gt;
190     CBaseAnimating::SetLightingOriginRelative(CBaseEntity*)&lt;br /&gt;
191     CBaseAnimating::SetLightingOrigin(CBaseEntity*)&lt;br /&gt;
192     CBaseCombatWeapon::IsPredicted() const&lt;br /&gt;
193     CBaseCombatWeapon::GetSubType()&lt;br /&gt;
194     CBaseCombatWeapon::SetSubType(int)&lt;br /&gt;
195     CBaseCombatWeapon::Equip(CBaseCombatCharacter*)&lt;br /&gt;
196     CBaseCombatWeapon::Drop(Vector const&amp;amp;)&lt;br /&gt;
197     CBaseCombatWeapon::UpdateClientData(CBasePlayer*)&lt;br /&gt;
198     CBaseCombatWeapon::IsAllowedToSwitch()&lt;br /&gt;
199     CBaseCombatWeapon::CanBeSelected()&lt;br /&gt;
200     CBaseCombatWeapon::VisibleInWeaponSelection()&lt;br /&gt;
201     CBaseCombatWeapon::HasAmmo()&lt;br /&gt;
202     CBaseCombatWeapon::SetPickupTouch()&lt;br /&gt;
203     CBaseCombatWeapon::DefaultTouch(CBaseEntity*)&lt;br /&gt;
204     CBaseCombatWeapon::ShouldDisplayHUDHint()&lt;br /&gt;
205     CBaseCombatWeapon::DisplayAltFireHudHint()&lt;br /&gt;
206     CBaseCombatWeapon::SetViewModelIndex(int)&lt;br /&gt;
207     CBaseCombatWeapon::SendWeaponAnim(int)&lt;br /&gt;
208     CBaseCombatWeapon::SendViewModelAnim(int)&lt;br /&gt;
209     CBaseCombatWeapon::SetViewModel()&lt;br /&gt;
210     CBaseCombatWeapon::HasWeaponIdleTimeElapsed()&lt;br /&gt;
211     CBaseCombatWeapon::SetWeaponIdleTime(float)&lt;br /&gt;
212     CBaseCombatWeapon::GetWeaponIdleTime()&lt;br /&gt;
213     CBaseCombatWeapon::HasAnyAmmo()&lt;br /&gt;
214     CBaseCombatWeapon::HasPrimaryAmmo()&lt;br /&gt;
215     CBaseCombatWeapon::HasSecondaryAmmo()&lt;br /&gt;
216     CBaseCombatWeapon::CanHolster()&lt;br /&gt;
217     CBaseCombatWeapon::DefaultDeploy(char*, char*, int, char*)&lt;br /&gt;
218     CBaseCombatWeapon::CanDeploy()&lt;br /&gt;
219     CBaseCombatWeapon::Deploy()&lt;br /&gt;
220     CBaseCombatWeapon::Holster(CBaseCombatWeapon*)&lt;br /&gt;
221     CBaseCombatWeapon::GetLastWeapon()&lt;br /&gt;
222     CBaseCombatWeapon::SetWeaponVisible(bool)&lt;br /&gt;
223     CBaseCombatWeapon::IsWeaponVisible()&lt;br /&gt;
224     CBaseCombatWeapon::ReloadOrSwitchWeapons()&lt;br /&gt;
225     CBaseCombatWeapon::ItemPreFrame()&lt;br /&gt;
226     CBaseCombatWeapon::ItemPostFrame()&lt;br /&gt;
227     CBaseCombatWeapon::ItemBusyFrame()&lt;br /&gt;
228     CBaseCombatWeapon::ItemHolsterFrame()&lt;br /&gt;
229     CBaseCombatWeapon::WeaponIdle()&lt;br /&gt;
230     CBaseCombatWeapon::HandleFireOnEmpty()&lt;br /&gt;
231     CBaseCombatWeapon::IsWeaponZoomed()&lt;br /&gt;
232     CBaseCombatWeapon::CheckReload()&lt;br /&gt;
233     CBaseCombatWeapon::FinishReload()&lt;br /&gt;
234     CBaseCombatWeapon::AbortReload()&lt;br /&gt;
235     CBaseCombatWeapon::Reload()&lt;br /&gt;
236     CBaseCombatWeapon::PrimaryAttack()&lt;br /&gt;
237     CBaseCombatWeapon::SecondaryAttack()&lt;br /&gt;
238     CBaseCombatWeapon::GetPrimaryAttackActivity()&lt;br /&gt;
239     CBaseCombatWeapon::GetSecondaryAttackActivity()&lt;br /&gt;
240     CBaseCombatWeapon::GetDrawActivity()&lt;br /&gt;
241     CBaseCombatWeapon::GetDefaultAnimSpeed()&lt;br /&gt;
242     CBaseCombatWeapon::GetBulletType()&lt;br /&gt;
243     CBaseCombatWeapon::GetBulletSpread()&lt;br /&gt;
244     CBaseCombatWeapon::GetBulletSpread(WeaponProficiency_t)&lt;br /&gt;
245     CBaseCombatWeapon::GetSpreadBias(WeaponProficiency_t)&lt;br /&gt;
246     CBaseCombatWeapon::GetFireRate()&lt;br /&gt;
247     CBaseCombatWeapon::GetMinBurst()&lt;br /&gt;
248     CBaseCombatWeapon::GetMaxBurst()&lt;br /&gt;
249     CBaseCombatWeapon::GetMinRestTime()&lt;br /&gt;
250     CBaseCombatWeapon::GetMaxRestTime()&lt;br /&gt;
251     CBaseCombatWeapon::GetRandomBurst()&lt;br /&gt;
252     CBaseCombatWeapon::WeaponSound(WeaponSound_t, float)&lt;br /&gt;
253     CBaseCombatWeapon::StopWeaponSound(WeaponSound_t)&lt;br /&gt;
254     CBaseCombatWeapon::GetProficiencyValues()&lt;br /&gt;
255     CBaseCombatWeapon::GetMaxAutoAimDeflection()&lt;br /&gt;
256     CBaseCombatWeapon::StartSprinting()&lt;br /&gt;
257     CBaseCombatWeapon::StopSprinting()&lt;br /&gt;
258     CBaseCombatWeapon::GetDamage(float, int)&lt;br /&gt;
259     CBaseCombatWeapon::SetActivity(Activity, float)&lt;br /&gt;
260     CBaseCombatWeapon::AddViewKick()&lt;br /&gt;
261     CBaseCombatWeapon::GetDeathNoticeName()&lt;br /&gt;
262     CBaseCombatWeapon::OnPickedUp(CBaseCombatCharacter*)&lt;br /&gt;
263     CBaseCombatWeapon::AddViewmodelBob(CBaseViewModel*, Vector&amp;amp;, QAngle&amp;amp;)&lt;br /&gt;
264     CBaseCombatWeapon::CalcViewmodelBob()&lt;br /&gt;
265     CBaseCombatWeapon::GetControlPanelInfo(int, char const*&amp;amp;)&lt;br /&gt;
266     CBaseCombatWeapon::GetControlPanelClassName(int, char const*&amp;amp;)&lt;br /&gt;
267     CBaseCombatWeapon::ShouldShowControlPanels()&lt;br /&gt;
268     CBaseCombatWeapon::CanBePickedUpByNPCs()&lt;br /&gt;
269     CBaseCombatWeapon::GetViewModel(int) const&lt;br /&gt;
270     CBaseCombatWeapon::GetWorldModel() const&lt;br /&gt;
271     CBaseCombatWeapon::GetAnimPrefix() const&lt;br /&gt;
272     CBaseCombatWeapon::GetMaxClip1() const&lt;br /&gt;
273     CBaseCombatWeapon::GetMaxClip2() const&lt;br /&gt;
274     CBaseCombatWeapon::GetDefaultClip1() const&lt;br /&gt;
275     CBaseCombatWeapon::GetDefaultClip2() const&lt;br /&gt;
276     CBaseCombatWeapon::GetWeight() const&lt;br /&gt;
277     CBaseCombatWeapon::AllowsAutoSwitchTo() const&lt;br /&gt;
278     CBaseCombatWeapon::AllowsAutoSwitchFrom() const&lt;br /&gt;
279     CBaseCombatWeapon::GetWeaponFlags() const&lt;br /&gt;
280     CBaseCombatWeapon::GetSlot() const&lt;br /&gt;
281     CBaseCombatWeapon::GetPosition() const&lt;br /&gt;
282     CBaseCombatWeapon::GetName() const&lt;br /&gt;
283     CBaseCombatWeapon::GetPrintName() const&lt;br /&gt;
284     CBaseCombatWeapon::GetShootSound(int) const&lt;br /&gt;
285     CBaseCombatWeapon::GetRumbleEffect() const&lt;br /&gt;
286     CBaseCombatWeapon::UsesClipsForAmmo1() const&lt;br /&gt;
287     CBaseCombatWeapon::UsesClipsForAmmo2() const&lt;br /&gt;
288     CBaseCombatWeapon::GetEncryptionKey()&lt;br /&gt;
289     CBaseCombatWeapon::GetPrimaryAmmoType() const&lt;br /&gt;
290     CBaseCombatWeapon::GetSecondaryAmmoType() const&lt;br /&gt;
291     CBaseCombatWeapon::GetSpriteActive() const&lt;br /&gt;
292     CBaseCombatWeapon::GetSpriteInactive() const&lt;br /&gt;
293     CBaseCombatWeapon::GetSpriteAmmo() const&lt;br /&gt;
294     CBaseCombatWeapon::GetSpriteAmmo2() const&lt;br /&gt;
295     CBaseCombatWeapon::GetSpriteCrosshair() const&lt;br /&gt;
296     CBaseCombatWeapon::GetSpriteAutoaim() const&lt;br /&gt;
297     CBaseCombatWeapon::GetSpriteZoomedCrosshair() const&lt;br /&gt;
298     CBaseCombatWeapon::GetSpriteZoomedAutoaim() const&lt;br /&gt;
299     CBaseCombatWeapon::ActivityOverride(Activity, bool*)&lt;br /&gt;
300     CBaseCombatWeapon::ActivityList()&lt;br /&gt;
301     CBaseCombatWeapon::ActivityListCount()&lt;br /&gt;
302     CBaseCombatWeapon::FallInit()&lt;br /&gt;
303     CBaseCombatWeapon::FallThink()&lt;br /&gt;
304     CBaseCombatWeapon::Materialize()&lt;br /&gt;
305     CBaseCombatWeapon::CheckRespawn()&lt;br /&gt;
306     CBaseCombatWeapon::Delete()&lt;br /&gt;
307     CBaseCombatWeapon::Kill()&lt;br /&gt;
308     CBaseCombatWeapon::CapabilitiesGet()&lt;br /&gt;
309     CBaseCombatWeapon::IsRemoveable()&lt;br /&gt;
310     CBaseCombatWeapon::WeaponLOSCondition(Vector const&amp;amp;, Vector const&amp;amp;, bool)&lt;br /&gt;
311     CBaseCombatWeapon::WeaponRangeAttack1Condition(float, float)&lt;br /&gt;
312     CBaseCombatWeapon::WeaponRangeAttack2Condition(float, float)&lt;br /&gt;
313     CBaseCombatWeapon::WeaponMeleeAttack1Condition(float, float)&lt;br /&gt;
314     CBaseCombatWeapon::WeaponMeleeAttack2Condition(float, float)&lt;br /&gt;
315     CBaseCombatWeapon::Operator_FrameUpdate(CBaseCombatCharacter*)&lt;br /&gt;
316     CBaseCombatWeapon::Operator_HandleAnimEvent(animevent_t*, CBaseCombatCharacter*)&lt;br /&gt;
317     CBaseCombatWeapon::Operator_ForceNPCFire(CBaseCombatCharacter*, bool)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Knagg0</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Virtual_Offsets_(Source_Mods)&amp;diff=3339</id>
		<title>Virtual Offsets (Source Mods)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Virtual_Offsets_(Source_Mods)&amp;diff=3339"/>
		<updated>2006-09-09T11:09:42Z</updated>

		<summary type="html">&lt;p&gt;Knagg0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Documentation (SourceMM)]]&lt;br /&gt;
== Calling virtual functions ==&lt;br /&gt;
I got this method from [[User:Mani|Mani]], who I believe got it from [[User:PM|Pavol Marko]]. Thank you!&lt;br /&gt;
&lt;br /&gt;
I hope to expand on an actual explantaion when I have the time (and understand it better). Hopefully, someone can expand on this, but for now I'll just post the examples and a list of the CCSPlayer virtual function table offsets.&lt;br /&gt;
&lt;br /&gt;
== Offset Lists ==&lt;br /&gt;
==== CS:S ====&lt;br /&gt;
* [[CCSPlayer_offset_list_(SourceMM)|CCSPlayer]]&lt;br /&gt;
* [[CBaseCombatWeapon_CSS_offset_list_(SourceMM)|CBaseCombatWeapon]]&lt;br /&gt;
&lt;br /&gt;
==== DOD:S ====&lt;br /&gt;
* [[CDODPlayer_offset_list_(SourceMM)|CDODPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== HL2:DM ====&lt;br /&gt;
* [[CHL2MP_Player_offset_list_(SourceMM)|CHL2MP_Player]]&lt;br /&gt;
&lt;br /&gt;
==== HL2CTF ====&lt;br /&gt;
* [[HL2CTF_CHL2_Player_offset_list_(SourceMM)|CHL2_Player]]&lt;br /&gt;
&lt;br /&gt;
==== Dystopia ====&lt;br /&gt;
* [[Dystopia_CDYSPlayer_offset_list_(SourceMM)|CDYSPlayer]]&lt;br /&gt;
&lt;br /&gt;
==== Empires ====&lt;br /&gt;
* [[Empires_CSDKPlayer_offset_list_(SourceMM)|CSDKPlayer]]&lt;br /&gt;
&lt;br /&gt;
== How to use the examples ==&lt;br /&gt;
&lt;br /&gt;
Basically, this lets you call any [[virtual function]] by knowing it's offset. A table is created for each class that lists the address of the function for each virtual function. This method takes advantage of that to call those addresses.&lt;br /&gt;
&lt;br /&gt;
Look at the examples below and edit to match the function you want to call:&lt;br /&gt;
Use the offset for the function you want to call in this line. ([[CCSPlayer_offset_list_(SourceMM)]])&lt;br /&gt;
&amp;lt;cpp&amp;gt;void *func = vtable[m_Off_GiveNamedItem];&amp;lt;/cpp&amp;gt;&lt;br /&gt;
Change this line to match your return type and parameters:&lt;br /&gt;
&amp;lt;cpp&amp;gt;union {CBaseEntity *(VfuncEmptyClass::*mfpnew)(const char *, int );&amp;lt;/cpp&amp;gt;&lt;br /&gt;
Call the original function with your parameters (change the return type to match the function you're calling):&lt;br /&gt;
&amp;lt;cpp&amp;gt;return (CBaseEntity *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ItemName, iSubType);&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll need to add an empty class for the union. Something like this:&lt;br /&gt;
&amp;lt;cpp&amp;gt;class VfuncEmptyClass {};&amp;lt;/cpp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
These examples are for CSS. Mani has created a set of macros to make this easier. If you ask nicely, maybe he'll give them to you or let you post them here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cpp&amp;gt;datamap_t *VFuncs::GetDataDescMap(CBaseEntity *pThisPtr)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_GetDataDescMap]; &lt;br /&gt;
&lt;br /&gt;
	union {datamap_t *(VfuncEmptyClass::*mfpnew)();&lt;br /&gt;
#ifndef __linux__&lt;br /&gt;
        void *addr;	} u; 	u.addr = func;&lt;br /&gt;
#else /* GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 */&lt;br /&gt;
			struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
	return (datamap_t *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::SetModel(CBaseEntity *pThisPtr, const char *ModelName)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_SetModel]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(const char *);&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ModelName);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::Teleport(CBaseEntity *pThisPtr, const Vector *newPosition, const QAngle *newAngles, const Vector *newVelocity)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_Teleport]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(const Vector *, const QAngle *, const Vector *);&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(newPosition, newAngles, newVelocity);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Vector VFuncs::EyePosition( CBaseEntity *pThisPtr )&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_EyePosition]; &lt;br /&gt;
&lt;br /&gt;
	union {Vector (VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (Vector) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)( );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
QAngle &amp;amp;VFuncs::EyeAngles( CBaseEntity *pThisPtr )&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_EyeAngles]; &lt;br /&gt;
&lt;br /&gt;
	union {QAngle&amp;amp; (VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (QAngle&amp;amp;) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)( );&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void VFuncs::Ignite(CBaseEntity *pThisPtr, float flFlameLifetime, bool bNPCOnly, float flSize, bool bCalledByLevelDesigner)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_Ignite]; &lt;br /&gt;
&lt;br /&gt;
	union {void (VfuncEmptyClass::*mfpnew)(float , bool , float , bool );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(void) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(flFlameLifetime, bNPCOnly, flSize, bCalledByLevelDesigner);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CBaseEntity *VFuncs::GiveNamedItem(CBaseEntity *pThisPtr, const char *ItemName, int iSubType)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_GiveNamedItem]; &lt;br /&gt;
&lt;br /&gt;
	union {CBaseEntity *(VfuncEmptyClass::*mfpnew)(const char *, int );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	return (CBaseEntity *) (reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)(ItemName, iSubType);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void VFuncs::CommitSuicide(CBaseEntity *pThisPtr)&lt;br /&gt;
{&lt;br /&gt;
	void **this_ptr = *(void ***)&amp;amp;pThisPtr;&lt;br /&gt;
	void **vtable = *(void ***)pThisPtr;&lt;br /&gt;
	void *func = vtable[m_Off_CommitSuicide]; &lt;br /&gt;
&lt;br /&gt;
	union {CBaseEntity *(VfuncEmptyClass::*mfpnew)( void );&lt;br /&gt;
	#ifndef __linux__&lt;br /&gt;
			void *addr;	} u; 	u.addr = func;&lt;br /&gt;
	#else // GCC's member function pointers all contain a this pointer adjustor. You'd probably set it to 0 &lt;br /&gt;
				struct {void *addr; intptr_t adjustor;} s; } u; u.s.addr = func; u.s.adjustor = 0;&lt;br /&gt;
	#endif&lt;br /&gt;
&lt;br /&gt;
	(reinterpret_cast&amp;lt;VfuncEmptyClass*&amp;gt;(this_ptr)-&amp;gt;*u.mfpnew)();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/cpp&amp;gt;&lt;/div&gt;</summary>
		<author><name>Knagg0</name></author>
		
	</entry>
</feed>