diff options
| author | 2025-11-28 22:28:17 +0000 | |
|---|---|---|
| committer | 2025-11-28 22:30:55 +0000 | |
| commit | 3e057a6365ba6793531ba2930aa53453ee3f0d8e (patch) | |
| tree | 119256814db9acb54bfdf81f9ec8cc94dab05d45 | |
| parent | 8bed97cda76655c49fb80b604203ec572b2bf59e (diff) | |
| download | sst-3e057a6365ba6793531ba2930aa53453ee3f0d8e.tar.gz sst-3e057a6365ba6793531ba2930aa53453ee3f0d8e.zip | |
Fix sst_mouse_factor always being hidden
Kind of unpleasant and probably something to revisit at some point to
see if there's a more straightforward approach we can come up with.
| -rw-r--r-- | src/con_.h | 6 | ||||
| -rw-r--r-- | src/rinput.c | 7 | ||||
| -rw-r--r-- | src/sst.c | 1 |
3 files changed, 12 insertions, 2 deletions
@@ -464,6 +464,12 @@ void con_regcmd(struct con_cmd *c); * doing so. In practice this means anything that's not OE. On OE, these * functions currently just do nothing, although it would be possible in theory * to patch in command-hiding support if deemed important enough. + * + * Note: con_hide() will not work on an unregistered command or variable with + * CON_INIT_HIDDEN; this includes any of a feature's commands/variables during + * feature initialisation, except those that are manually registered first. + * In cases where a variable/command is to be registered automatically, the + * CON_INIT_HIDDEN flag can be removed using bitwise ops. */ void con_hide(struct con_cmdbase *b); void con_unhide(struct con_cmdbase *b); diff --git a/src/rinput.c b/src/rinput.c index 554577c..a7ed1a4 100644 --- a/src/rinput.c +++ b/src/rinput.c @@ -205,8 +205,11 @@ INIT { hook_inline_commit(h1.prologue, (void *)&hook_GetCursorPos); hook_inline_commit(h2.prologue, (void *)&hook_SetCursorPos); -ok: con_unhide(&m_rawinput->base); - con_unhide(&sst_mouse_factor->base); +ok: // XXX: this is a little tricky and a little clunky. we have registered + // m_rawinput above but sst_mouse_factor will get auto-registered after init + // returns, so the flags are different. + con_unhide(&m_rawinput->base); + sst_mouse_factor->base.flags &= ~CON_INIT_HIDDEN; return FEAT_OK; e1: DestroyWindow(inwin); @@ -270,6 +270,7 @@ static bool already_loaded = false, skip_unload = false; // auto-update message. see below in do_featureinit() static const char *updatenotes = "\ +* Fix sst_mouse_factor being hidden, causing toggle binds to break\n\ "; enum { // used in generated code, must line up with featmsgs arrays below |
