kaios: Hack out everything that needs dialogue boxes

They're proving to be a right nuisance and will probably require a
substantial overhaul to how they work across the entire JavaScript
front-end.  I don't think any of the functionality provided by the
dialogue boxes is critical, so in the interests of getting a minimum
viable product actually released I've disabled those features.

In most cases, this just involves commenting out bits of HTML.  The
"Custom..." menu item is added by C code, though, so there I've fallen
back to the standard Puzzles way to implement a nasty hack: an
environment variable.
This commit is contained in:
Ben Harris
2022-12-11 13:05:16 +00:00
parent 81b6bccab6
commit 1eba6388bf
2 changed files with 13 additions and 2 deletions

10
emcc.c
View File

@ -975,13 +975,21 @@ int main(int argc, char **argv)
*/
{
struct preset_menu *menu = midend_get_presets(me, &npresets);
char *env;
presets = snewn(npresets, game_params *);
for (i = 0; i < npresets; i++)
presets[i] = NULL;
populate_js_preset_menu(0, menu);
if (thegame.can_configure)
/*
* Crude hack to allow the "Custom..." item to be hidden on
* KaiOS, where dialogs don't yet work.
*/
env = getenv("PUZZLES_ALLOW_CUSTOM");
if (thegame.can_configure &&
(!env || env[0] == 'y' || env[0] == 'Y'))
js_add_preset(0, "Custom...", -1);
have_presets_dropdown = npresets > 0 || thegame.can_configure;

View File

@ -16,7 +16,8 @@ print <<EOF;
<script defer type="text/javascript" src="${name}.js"></script>
<!-- Override some defaults for small screens -->
<script id="environment" type="application/json">
{ "PATTERN_DEFAULT": "10x10" }
{ "PATTERN_DEFAULT": "10x10",
"PUZZLES_ALLOW_CUSTOM": "N" }
</script>
<style class="text/css">
body {
@ -299,12 +300,14 @@ body {
</div>
<form id="gamemenu" class="transient">
<ul>
<!--
<li><div tabindex="0">Game<ul class="transient">
<li><button type="button" id="specific">Enter game ID...</button></li>
<li><button type="button" id="random">Enter random seed...</button></li>
<li><button type="button" id="save">Download save file...</button></li>
<li><button type="button" id="load">Upload save file...</button></li>
</ul></div></li>
-->
<li><div tabindex="0">Type<ul id="gametype" class="transient"></ul></div></li>
<li role="separator"></li>
<li><button type="button" id="new">