Repository navigation
fix: implement client fixes from tests with zen - #60
Open
matthias-hoste wants to merge 11 commits into
Open
matthias-hoste wants to merge 11 commits into
matthias-hoste wants to merge 11 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Multiple unresolved critical and moderate correctness issues affect compilation, console authorization, shader reloads, renderer initialization, input handling, and UI behavior.
8 open issues
Define inputLogEnabled before using it · New Make privileged access level opt-in · New Guard null compiled effects before vtable access · New Select the shader archive based on renderer state · New Use the effect cache key as the filename · New Clear FPS overlay lines when font loading fails · New Place End cursor after the final character · New Apply pending display settings before marking the game loaded · New
What changed in this PR
This pull request implements broad client fixes across DX9 rendering, post-processing, HUD/menu behavior, console and settings bindings, gameswf browser integration, and listen-server audio updates.
Changes:
- Adds shader/effect reload support, post-processing passes, video-option handling, fullscreen rendering, and debug/FPS overlays.
- Improves HUD edit controls, transform-list layout, font metrics, weapon HUD behavior, and menu event dispatch.
- Adds client console/settings bindings, browser and ActionScript integrations, input diagnostics, and listen-server sound updates.
| File | Reviewed change |
|---|---|
Code/Build/renddx9.cmd |
Adds StringUtil.cpp to the renderer console build sources. |
Code/BF2/RendDX9/VideoOptions.cpp |
Refactors video-setting application and adds renderer event handling; pending resolution/AA changes can be skipped during level-load initialization. Moderate issue. |
Code/BF2/RendDX9/ShaderParameter.h |
Grants Effect access to shader-parameter ownership state. |
Code/BF2/RendDX9/ShaderManager.cpp |
Adds shader path normalization and cached-effect reload support. Critical issue: reload reconstructs the filename from the cached effect value instead of the map key. |
Code/BF2/RendDX9/RendererConsole.cpp |
Adds post-processing and FPS renderer console properties. |
Code/BF2/RendDX9/RendDX9Init.cpp |
Applies profile video settings during renderer initialization. |
Code/BF2/RendDX9/RendDX9Draw.cpp |
Draws queued debug text before ending the scene. |
Code/BF2/RendDX9/PostProductionFrameWork.h |
Declares post-processing state, render-target helpers, and pass controls. |
Code/BF2/RendDX9/PostProductionFrameWork.cpp |
Implements post-processing resources, TV effects, tinnitus history, and teardown. Critical shader-archive selection issue and moderate event-listener registration issue. |
Code/BF2/RendDX9/Effect.cpp |
Adds effect rebinding, parameter snapshots, technique reset, and reload behavior. Critical null-effect dereference issue. |
Code/BF2/RendDX9/BF2Render.cpp |
Integrates post-processing, FPS overlays, render targets, and shader reloads. |
Code/BF2/Menu/BfEditNode.h |
Exposes typed event-dispatch access for edit nodes. |
Code/BF2/Menu/BfEditNode.cpp |
Implements edit-node painting, cursor movement, focus, and text editing. Moderate End-position and font-extension handling issues. |
Code/BF2/Menu/Bf2TransformListNode.h |
Adds transform-list update support and typed layout state. |
Code/BF2/Menu/Bf2TransformListNode.cpp |
Implements transform-list layout and child positioning. |
Code/BF2/IO/File/FileManagerConsole.cpp |
Adds client-side settings console bindings. |
Code/BF2/IO/Console/Console.cpp |
Adds temporary interactive client-console access handling. Critical issue: access level 2 becomes enabled by default for interactive clients. |
Code/BF2/GeomMisc/ModuleGeomMisc.cpp |
Registers the debug text writer manager. |
Code/BF2/GeomMisc/FSQuadDrawer.h |
Declares fullscreen draw, blit, and tinnitus-capture operations. |
Code/BF2/GeomMisc/FSQuadDrawer.cpp |
Implements fullscreen grids, post-processing passes, and history capture. |
Code/BF2/GeomMisc/FontSystem/FontSystem.cpp |
Adds font width and color accessors. |
Code/BF2/GeomMisc/DebugTextWriter.cpp |
Implements queued debug text rendering and writer management. Moderate issue: failed font loading leaves the per-frame queue uncleared. |
Code/BF2/Geom/TerrainDraw.cpp |
Uses shader-effect reloads during terrain technique fallback. |
Code/BF2/Geom/StaticMeshTemplate.cpp |
Exposes static-mesh technique rearming and priming helpers. |
Code/BF2/Geom/GeometryTemplateManager.cpp |
Rearms and primes geometry techniques after shader changes. |
Code/BF2/Game/Objects/WeaponHudCompTemplate.cpp |
Applies sprint-specific weapon HUD visibility. |
Code/BF2/Game/GameServer/GameServer.cpp |
Updates client sound state during listen-server ticks. |
Code/BF2/External/gameswf/SwiffPlayer/SwiffPlayer.cpp |
Adds browser, filtering, quit, refresh, and input-diagnostic bindings. Critical undeclared-helper compilation issue; moderate input-callback registration and history-pagination issues. |
Code/BF2/External/gameswf/gameswf_impl.cpp |
Adjusts root mouse dispatch and adds input tracing. |
Code/BF2/External/gameswf/gameswf_action.cpp |
Corrects ActionScript construct and double-press event names. |
Code/BF2/External/BFMeme/Node.cpp |
Adds typed event-16 handling for edit nodes. |
Code/BF2/Core/ConsoleObjectMacro.h |
Preserves Windows client float argument parsing behavior. |
Review effort: Lite
Comment on lines
+374
to
+375
| Effect* effect = static_cast<Effect*>(shaderManagerGetEffect( | ||
| g_shaderManager, "mods/xpack/Shaders/PostProduction_nv3x")); |
| @@ -114,6 +141,10 @@ BF2_CONSOLE_PROPERTY_FN(forceBundledMeshLod, int, g_Renderer != 0, | |||
| BF2_CONSOLE_PROPERTY_FN(drawHud, bool, g_Renderer != 0, | |||
Collaborator
There was a problem hiding this comment.
drawHud, I think, has the access level = 1 since it is accessible from the console
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Add null check for d3dxEffect before resetting techniques. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Add clear call when font fails to load Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


No description provided.