diff options
Diffstat (limited to 'FIX_PLAN.md')
| -rw-r--r-- | FIX_PLAN.md | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/FIX_PLAN.md b/FIX_PLAN.md index e4e149e..2c84122 100644 --- a/FIX_PLAN.md +++ b/FIX_PLAN.md | |||
| @@ -778,6 +778,16 @@ Caches are cleared by `esp_reset_session()` on map change/respawn. The ESP scan | |||
| 778 | itself is unchanged: projection only happens for the handful of entities that | 778 | itself is unchanged: projection only happens for the handful of entities that |
| 779 | survive the class/life/friendly filters, not for every entity. | 779 | survive the class/life/friendly filters, not for every entity. |
| 780 | 780 | ||
| 781 | ### Batch 5 — chams shadow passes | ||
| 782 | |||
| 783 | `IVModelRender::ForcedMaterialOverride` (slot 1) is now hooked as well, purely | ||
| 784 | to track the engine's current forced material. `DrawModelExecute` skips chams | ||
| 785 | when an override is already active, so shadow-depth and reflection passes draw | ||
| 786 | with their own material instead of being substituted with chams and then having | ||
| 787 | the engine's override cleared for every model drawn afterwards. This is the fix | ||
| 788 | for the corruption described in P2-6; it needs an in-game check because it | ||
| 789 | relies on the engine always going through the vtable for that call. | ||
| 790 | |||
| 781 | ### Known remaining work | 791 | ### Known remaining work |
| 782 | 792 | ||
| 783 | Deliberately deferred, with reasons: | 793 | Deliberately deferred, with reasons: |
| @@ -787,9 +797,6 @@ Deliberately deferred, with reasons: | |||
| 787 | slot plus a way to get the networkable from a raw entity pointer, or a | 797 | slot plus a way to get the networkable from a raw entity pointer, or a |
| 788 | cached pointer→index map. Not worth the risk for a hot path that fires a few | 798 | cached pointer→index map. Not worth the risk for a hot path that fires a few |
| 789 | times per second. | 799 | times per second. |
| 790 | - **P2-6 shadow-depth `ForcedMaterialOverride`** — requires reading the | ||
| 791 | engine's current override, which VEngineModel016 does not expose. Needs an | ||
| 792 | alternative detection (draw flags in `DrawModelState_t`) validated in-game. | ||
| 793 | - **P3-2 declarative settings table** — large rewrite of `config_save`, | 800 | - **P3-2 declarative settings table** — large rewrite of `config_save`, |
| 794 | `config_load`, `config_reset_defaults` and `build_cards`. It can regress | 801 | `config_load`, `config_reset_defaults` and `build_cards`. It can regress |
| 795 | config persistence, so it should follow an in-game pass. | 802 | config persistence, so it should follow an in-game pass. |
