diff options
author | 2025-06-03 21:25:11 +0100 | |
---|---|---|
committer | 2025-06-03 21:25:11 +0100 | |
commit | 4aebf7cc9ce07dfb20db217274a45680b3cb00ed (patch) | |
tree | c2b36afefdf56bc8854ccc950267175aaf87a0f1 /src/build | |
parent | f72f653912ccc7b49f86e71c3198d1fd6ec1df72 (diff) | |
download | sst-4aebf7cc9ce07dfb20db217274a45680b3cb00ed.tar.gz sst-4aebf7cc9ce07dfb20db217274a45680b3cb00ed.zip |
Fix features continuing to init when preinit fails
I think this might actually be the last of the gluegen regressions now,
for real, maybe, perhaps.
Diffstat (limited to 'src/build')
-rw-r--r-- | src/build/gluegen.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/build/gluegen.c b/src/build/gluegen.c index 905706c..bc973fb 100644 --- a/src/build/gluegen.c +++ b/src/build/gluegen.c @@ -752,13 +752,13 @@ _( "static inline void initfeatures() {") for (int i = 0; i < nfeatures; ++i) { // N.B.: this *should* be 0-indexed! const char *else_ = ""; s16 mod = feat_initorder[i]; +F( " s8 status_%.*s;", mod_names[mod].len, mod_names[mod].s) if (mod_flags[mod] & HAS_PREINIT) { -F( " s8 status_%.*s = feats.preinit_%.*s;", +F( " if (feats.preinit_%.*s != FEAT_OK) status_%.*s = feats.preinit_%.*s;", + mod_names[mod].len, mod_names[mod].s, mod_names[mod].len, mod_names[mod].s, mod_names[mod].len, mod_names[mod].s) - } - else { -F( " s8 status_%.*s;", mod_names[mod].len, mod_names[mod].s) + else_ = "else "; } if (mod_gamespecific[mod].s) { F( " %sif (!GAMETYPE_MATCHES(%.*s)) status_%.*s = FEAT_SKIP;", else_, |