Skip to content

Commit a7540aa

Browse files
committed
Release v3.1: menu disclaimer for update prompt, doc naming
1 parent 3d77792 commit a7540aa

5 files changed

Lines changed: 13 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## v3.1
4+
5+
- Internal menus: startup update prompt now triggers on menu disclaimer (root `disclaimer`) instead of `start`; README and docs use "menu disclaimer" naming.
6+
37
## v3.0
48

59
- Internal menus (loading): engine loading UI is disabled via NOPs at exe 0x13AC7 (menu push) and 0x13ACE (SCR_UpdateScreen call); we push `loading/loading` and call SCR_UpdateScreen(true) in SCR_BeginLoadingPlaque Post hook. SCR_UpdateScreen at exe 0x15FA0. Additional 2-byte NOP at 0x13AAA so the plaque shows when the console is open.
@@ -16,7 +20,7 @@
1620
## v2.7
1721

1822
- HTTP maps: removed experimental/default-disabled note from docs; feature is now treated as normal.
19-
- Updater: startup update prompt now pre-intercepts intro/start menu flow; redundant post-hook injection removed.
23+
- Updater: startup update prompt now pre-intercepts menu disclaimer (start menu) flow; redundant post-hook injection removed.
2024
- Updater downloads: zip asset selection tightened for build target (Windows vs Windows XP, Linux/Wine fallback penalties), with stricter fallback filtering.
2125
- Updater UX: selected/downloaded release asset filename is now printed via `PRINT_DEV` and surfaced in update prompt/help menus.
2226

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0
1+
3.1

hdr/version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
Increment version using: ./increment_version.sh
88
*/
99

10-
#define SOFBUDDY_VERSION "3.0"
10+
#define SOFBUDDY_VERSION "3.1"

src/features/internal_menus/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ sofbuddy_menu <menu>/<page>
4242
### 4) Serving embedded menus (`FS_LoadFile` override)
4343
**Internal menus have priority over the filesystem:** the override intercepts the path and filename of the requested `.rmf`, normalizes them, and looks up `menu_name`/`filename` in `g_menu_internal_files`. On a match, the hook serves the in-memory content (via engine `Z_Malloc`) and does not call the original; otherwise it falls through to the original `FS_LoadFile`.
4444

45-
### 5) Loading and start-menu hooks
45+
### 5) Loading and menu-disclaimer (start) hooks
4646
**SCR_BeginLoadingPlaque**: At EarlyStartup we NOP 5 bytes at exe 0x13AC7 (engine’s menu push) and 5 at 0x13ACE (SCR_UpdateScreen call), so the original does not show its own loading UI. **SCR_BeginLoadingPlaque** Post (`internal_menus_SCR_BeginLoadingPlaque_post`): when `!noPlaque`, we run killmenu, `oM_PushMenu("loading/loading", "", lock_input)`, then `SCR_UpdateScreen(true)` (exe 0x15FA0). Loading is only pushed by us (this hook and `loading_show_ui()` from http_maps). The `"resolving..."` label is set in the loading reset state (http_maps), not here.
4747

48-
**M_PushMenu** Pre (`internal_menus_M_PushMenu_pre`): Normalizes menu name; only handles start/update-prompt: when the engine pushes root `start` and the updater queued a startup prompt, rewrites to `sof_buddy/sb_update_prompt`. No loading-signal detection or rewrite.
48+
**M_PushMenu** Pre (`internal_menus_M_PushMenu_pre`): Normalizes menu name; only handles menu-disclaimer/update-prompt: when the engine pushes the menu disclaimer (root `start`) and the updater queued a startup prompt, rewrites to `sof_buddy/sb_update_prompt`. No loading-signal detection or rewrite.
4949

50-
**M_PushMenu** Post (`internal_menus_M_PushMenu_post`): Watches root `start` pushes; if updater queued a startup update prompt, opens `sof_buddy/sb_update_prompt` on top once.
50+
**M_PushMenu** Post (`internal_menus_M_PushMenu_post`): Watches menu disclaimer (root `start`) pushes; if updater queued a startup update prompt, opens `sof_buddy/sb_update_prompt` on top once.
5151

5252
### 6) Loading UI cvar updates
5353
Loading UI is fed by direct helpers:
@@ -70,8 +70,8 @@ When video size changes, `update_layout_cvars(true)` recomputes runtime layout c
7070

7171
From `hooks/hooks.json`:
7272
- `FS_LoadFile` (override): serve embedded RMF from `g_menu_internal_files` when path matches menu_library; otherwise fall through to original.
73-
- `M_PushMenu` Pre: start/update-prompt only (rewrite `start` to `sof_buddy/sb_update_prompt` when updater queued); no loading signals.
74-
- `M_PushMenu` Post: on `start` push, consume queued startup-update prompt request and open prompt once.
73+
- `M_PushMenu` Pre: menu-disclaimer/update-prompt only (rewrite `start` to `sof_buddy/sb_update_prompt` when updater queued); no loading signals.
74+
- `M_PushMenu` Post: on menu disclaimer (`start`) push, consume queued startup-update prompt request and open prompt once.
7575
- `SCR_BeginLoadingPlaque` Post: when `!noPlaque`, push `loading/loading` and call `SCR_UpdateScreen(true)` (engine’s own push/update are NOP’d at 0x13AC7 / 0x13ACE).
7676

7777
From `callbacks/callbacks.json`:

src/features/internal_menus/hooks/m_pushmenu_pre.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ void internal_menus_M_PushMenu_pre(char const*& menu_file, char const*& parentFr
4545
const std::string leaf = menu_leaf(menu_name);
4646

4747
if ((!parentFrame || !parentFrame[0]) &&
48-
leaf == "start" &&
48+
leaf == "disclaimer" &&
4949
sofbuddy_update_consume_startup_prompt_request()) {
5050
menu_file = "sof_buddy/sb_update_prompt";
5151
menu_name = "sof_buddy/sb_update_prompt";

0 commit comments

Comments
 (0)