summaryrefslogtreecommitdiffstats
path: root/CONTEXT.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--CONTEXT.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/CONTEXT.md b/CONTEXT.md
index bd3507a..75b2f0a 100644
--- a/CONTEXT.md
+++ b/CONTEXT.md
@@ -298,6 +298,14 @@ vocabulary / decisions.
298 `CBaseEntity::FireBullets`; the `CUniformRandomStream` wrappers and 298 `CBaseEntity::FireBullets`; the `CUniformRandomStream` wrappers and
299 constructor-time `RandomSeed(0)` resets pass other objects and are left 299 constructor-time `RandomSeed(0)` resets pass other objects and are left
300 alone. 300 alone.
301- Seed choice alone cannot remove all of a shotgun's pellet spread: the best
302 of 256 sequences still leaves its 8/12 draws apart. `CShotManipulator::
303 ApplySpread` is inlined into `CBaseEntity::FireBullets` and draws x/y via
304 the global `CUniformRandomStream` (`_ZTV20CUniformRandomStream` + 8, slot 1
305 = `RandomFloat(float,float)`; confirmed against `libvstdlib.so`). The hook
306 returns 0 for those draws only when the calling frame's `this` (at
307 `ebp+8`) is the local server player, so every pellet follows the exact shot
308 direction. NPC fire and the client's prediction stream keep normal values.
301- This attacks the random cone offset only. The cone size, the pistol's 309- This attacks the random cone offset only. The cone size, the pistol's
302 `m_flAccuracyPenalty` growth, the server view punch added to 310 `m_flAccuracyPenalty` growth, the server view punch added to
303 `GetAutoaimVector`, and any damage falloff are server-side state. In 311 `GetAutoaimVector`, and any damage falloff are server-side state. In