Repository navigation
Hide server HUD text and engine centre text (part of #677) - #717
Conversation
…e text (#677) Rows 5, 7 and 8 of #677, found offline and not yet checked in the game: - dodstudio_hide_menus: drops VGUIMenu and MOTD while a demo plays (never live), so a POV demo recorded from joining shows no team menu, class menu or MOTD window. User-message hooks like map_text's, installed from the first real HUD_Frame so they catch a demo's loading segment. - dodstudio_hide_server_hud_text: plugin set_hudmessage text arrives as TE_TEXTMESSAGE, whose HudText the engine dispatches by name to every record, so no hook can drop it. The TE_TEXTMESSAGE handler's call to CL_HudMessage in hw.dll is pointed at a filter instead (per-build table); a map's own game_text still shows. Reads the text through pfnTextMessageGet (engfuncs slot 25, now in ClEngineFuncsPartial). - dodstudio_hide_center_text now also hides the engine's own svc_centerprint: the handler's call to SCR_CenterPrint becomes nops (per-build table). hw_call_site.rs holds the shared per-build call-site patching. tools/verify_engine_text_offsets.py checks both hw.dll builds and the client.dll facts. Docs: dodstudio_commands.md, Commands.txt, the regenerated console_commands_data.js, and goldsrc_hw_dll_survey.md. Part of #677 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
In-game checks on PRE (Brain account, test DLL
|
…to feat/hide-more-text-677 # Conflicts: # goldsrc-hooks/src/commands.rs # goldsrc-hooks/src/engine.rs # studio/src/console_commands_data.js
…-text-677 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Test pass 2026-10-13: stacked on #714, so no CI. Merged the updated feat/hide-spectator-text-677 in (lib.rs mod list and console_commands_data.js; regenerated). |
|
In-game check on PRE (Brain account, DLL from this branch, 5d30cdd; grabs in local/game-probe/717-menus-pre):
|
# Conflicts: # goldsrc-hooks/src/engine.rs # studio/src/console_commands_data.js
|
Merged the updated #714 branch in (375406b); conflicts in |
…t-677 Both sides kept in commands.rs (voice_menus from dev beside this branch's server_hud_text and vgui_menus). Commands.txt keeps this branch's lines with dev's hide_asset arguments. console_commands_data.js regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Smoke test after the dev merge (d07655e, DLL
Grabs are in |
…feat/hide-more-text-677 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review and in-game check (unattended pass): ready to merge after #714. Head Branch
Checked
In game (Brain account), PRE and POST,
Screenshots: |
…ings The three settings take #555's signed-off names: ds_hud_hide_center_text (already on dev), ds_hud_hide_server_text, ds_hud_hide_menus. The last two never shipped, so they get no old_names row; they join NEW_SINCE_555. console_commands_data.js regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Brought up to date with dev, with the ds_ names (unattended pass). Head Renamed to #555's signed-off table
Conflicts with dev (
Checked (on e7f9834, before that second merge)
In game. DLL
🤖 Generated with Claude Code |
# Conflicts: # studio/src/console_commands_data.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # studio/src/console_commands_data.js
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Smoke test of the rebuilt DLL: rebuild works on PRE and POST. DLL Row 7, server HUD text (
Row 8, engine centre text (
Row 5, demo menus (
Screenshots in |
# Conflicts: # studio/src/console_commands_data.js
With the setting off, no team menu, class menu or MOTD window appears in a demo, so the VGUIMenu/MOTD filter has nothing to do. Removes vgui_menus.rs, its cvar and wiring, the engine.rs helpers only it used, its Commands.txt, docs and console_prefix.rs entries, and its client.dll check in verify_engine_text_offsets.py; regenerates console_commands_data.js. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Release note: New: hide plugin HUD text such as "KTP PRACTICE MODE", and the engine's own centre messages such as "Game was paused".
Rows 7 and 8 of #677. #714, which this was stacked on, is merged, so this PR targets
devand CI runs on it.set_hudmessage, e.g. KTP's "KTP PRACTICE MODE", "Match Pending")ds_hud_hide_server_text 1(new)TE_TEXTMESSAGEtoHudTextthrough its by-name dispatcher, which calls every handler, so a user-message hook can't stop it. While the setting is on, the temp-entity handler's call toCL_HudMessagegoes through a filter instead (hw.dll, per-build table). A map's owngame_textlines are kept.svc_centerprint(e.g. "Game was paused")ds_hud_hide_center_textcall SCR_CenterPrintbecomesnops while it's on (hw.dll, per-build table). The other callers ofSCR_CenterPrintare left alone.server_hud_text.rsandengine_center_print.rs;hw_call_site.rs, which finds one call per build, keeps the original bytes and refuses to write over anyone else's patch;tools/verify_engine_text_offsets.py, which passes on PRE and POSThw.dll, and on stock, which is identical to POST.map_text.rssaidTE_TEXTMESSAGEwas empty; 68 demos carry it.msglog.rscalled the server-message dispatcher "by-name".ds_hud_hide_map_textcan't hide a map'sgame_text; the docs now say so.Decisions
ds_hud_hide_menus(row 5: drop theVGUIMenuandMOTDmessages during demo playback). It was dropped because demos never show those menus: with the setting off, no team menu, class menu or MOTD window appears.vgui_menus.rs, its cvar, itsCommands.txt, docs andconsole_prefix.rsentries, itsclient.dllcheck inverify_engine_text_offsets.py, and the twoengine.rshelpers only it used (playing_demo,hud_frame_driving) are removed.Tests
dev): goldsrc-hooks (i686) 869 passed;cargo test --workspace --lockedpasses;npm run test:unit904 passed, the console-name tests (command_suggest.test.js,console_prefix.rs) included; fmt and clippy 1.98.1 (-D warnings, workspace and i686 hooks) are clean; the hook DLL builds.verify_engine_text_offsets.pyis ALL OK on both builds (re-run after the menu check came out).verify_msglog_table.py,verify_hide_text_offsets.pyandverify_hudelements.pystill pass.dod_tools_decal_test_3_flushedat 17:33. "KTP PRACTICE MODE" shows with the setting off and is gone within a second of turning it on. The log readsserver_hud_text: hid "KTP PRACTICE MODE".ds_debug_statusreports "the engine's svc_centerprint is hidden too". My frames missed the "Game was paused" moment inwsod25_grp1_h1_hltvat 10:30-10:36 even with the setting off, so I still need the right time.Limits
svc_director, and the second direct caller ofMsgFunc_TextMsgthat Hide the spectator mode label, Press DUCK, centre text and two overview icons (part of #677) #714 noted.Other open PRs on the same files
#758, #882, #885, #906, #1000, #1040 and #1044 also touch
docs/dodstudio_commands.mdandgoldsrc-hooks/ui/Commands.txt(most alsocommands.rs,lib.rsorconsole_prefix.rs); whichever merges second regeneratesstudio/src/console_commands_data.js.To check
Use PRE's
doddemos. Rows 7 and 8 patchhw.dll, so check them on POST too.ktps8w10qf-m00cat_soul_m1_saints_h1at 30:30. "Operation Saints was a compleet failure!" should still show with the setting on.wsod25_grp1_h1_hltv, at the "Game paused by ..." moment. With the setting on, there should be no centre line.Part of #677
🤖 Generated with Claude Code