ref: 1eba6388bfed72e21a4525ef7a1c6c18d857b703
parent: 81b6bccab601ff1c08c8f8306d83bd24677d9d6c
author: Ben Harris <bjh21@bjh21.me.uk>
date: Sun Dec 11 08:05:16 EST 2022
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.
--- a/emcc.c
+++ b/emcc.c
@@ -975,6 +975,7 @@
*/
{
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;
@@ -981,7 +982,14 @@
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;
--- a/kaios/apppage.pl
+++ b/kaios/apppage.pl
@@ -16,7 +16,8 @@
<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,6 +300,7 @@
</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>
@@ -305,6 +307,7 @@
<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">