Add main_menu_style setting
authorPorygonZRocks <PorygonZRocks@users.noreply.github.com>
Tue, 5 Dec 2017 05:01:49 +0000 (23:01 -0600)
committersfan5 <sfan5@live.de>
Thu, 8 Feb 2018 14:38:24 +0000 (15:38 +0100)
builtin/mainmenu/init.lua
builtin/mainmenu/init_simple.lua [deleted file]
builtin/settingtypes.txt
src/defaultsettings.cpp

index ea64bf03c048b16d5fc27a0ec57f841c2c63d753..1861a835e45e21880e64201d5bee4d2fbbf0a0dd 100644 (file)
@@ -24,6 +24,10 @@ mt_color_dark_green = "#25C191"
 
 local menupath = core.get_mainmenu_path()
 local basepath = core.get_builtin_path()
+local menustyle = core.settings:get("main_menu_style")
+if menustyle == "auto" then
+       menustyle = PLATFORM == "Android" and "simple" or "full"
+end
 defaulttexturedir = core.get_texturepath_share() .. DIR_DELIM .. "base" ..
                                        DIR_DELIM .. "pack" .. DIR_DELIM
 
@@ -40,7 +44,7 @@ dofile(menupath .. DIR_DELIM .. "textures.lua")
 
 dofile(menupath .. DIR_DELIM .. "dlg_config_world.lua")
 dofile(menupath .. DIR_DELIM .. "dlg_settings_advanced.lua")
-if PLATFORM ~= "Android" then
+if menustyle ~= "simple" then
        dofile(menupath .. DIR_DELIM .. "dlg_create_world.lua")
        dofile(menupath .. DIR_DELIM .. "dlg_delete_mod.lua")
        dofile(menupath .. DIR_DELIM .. "dlg_delete_world.lua")
@@ -52,7 +56,7 @@ local tabs = {}
 tabs.settings = dofile(menupath .. DIR_DELIM .. "tab_settings.lua")
 tabs.mods = dofile(menupath .. DIR_DELIM .. "tab_mods.lua")
 tabs.credits = dofile(menupath .. DIR_DELIM .. "tab_credits.lua")
-if PLATFORM == "Android" then
+if menustyle == "simple" then
        tabs.simple_main = dofile(menupath .. DIR_DELIM .. "tab_simple_main.lua")
 else
        tabs.local_game = dofile(menupath .. DIR_DELIM .. "tab_local.lua")
@@ -73,7 +77,7 @@ local function init_globals()
        -- Init gamedata
        gamedata.worldindex = 0
 
-       if PLATFORM == "Android" then
+       if menustyle == "simple" then
                local world_list = core.get_worlds()
                local world_index
 
@@ -128,7 +132,7 @@ local function init_globals()
        -- Create main tabview
        local tv_main = tabview_create("maintab", {x = 12, y = 5.4}, {x = 0, y = 0})
 
-       if PLATFORM == "Android" then
+       if menustyle == "simple" then
                tv_main:add(tabs.simple_main)
                tv_main:add(tabs.settings)
        else
@@ -145,7 +149,7 @@ local function init_globals()
        tv_main:set_global_event_handler(main_event_handler)
        tv_main:set_fixed_size(false)
 
-       if PLATFORM ~= "Android" then
+       if menustyle ~= "simple" then
                tv_main:set_tab(core.settings:get("maintab_LAST"))
        end
        ui.set_default("maintab")
diff --git a/builtin/mainmenu/init_simple.lua b/builtin/mainmenu/init_simple.lua
deleted file mode 100644 (file)
index 298bd83..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
--- helper file to be able to debug the simple menu on PC
--- without messing around with actual menu code!
-PLATFORM = "Android"
-dofile("builtin/mainmenu/init.lua")
index de7a3dda2f244bbab461a1fdb6361765bcf5d9e0..c515b19ed20ad3dacd83732110f21292b219df3c 100644 (file)
@@ -1241,6 +1241,12 @@ curl_file_download_timeout (cURL file download timeout) int 300000
 #    Makes DirectX work with LuaJIT. Disable if it causes troubles.
 high_precision_fpu (High-precision FPU) bool true
 
+#    Changes the main menu UI:
+#    -   Full:  Multple singleplayer worlds, subgame choice, texture pack chooser, etc.
+#    -   Simple: One singleplayer world, no subgame or texture pack choosers. May be necessary for smaller screens.
+#    -   Auto: Simple on Android, full on everything else. 
+main_menu_style (Main menu style) enum auto auto,full,simple
+
 #    Replaces the default main menu with a custom one.
 main_menu_script (Main menu script) string
 
index 1d8b1ccdc3a1f271152480026f08c80c08a67c4c..f6a28633b95755db37f162ca99ad24a00cbf88f3 100644 (file)
@@ -255,6 +255,7 @@ void set_default_settings(Settings *settings)
        settings->setDefault("joystick_frustum_sensitivity", "170");
 
        // Main menu
+       settings->setDefault("main_menu_style", "auto");
        settings->setDefault("main_menu_path", "");
        settings->setDefault("main_menu_mod_mgr", "1");
        settings->setDefault("main_menu_game_mgr", "0");