+ settings->setDefault("debug_log_level", "2");
+ settings->setDefault("emergequeue_limit_total", "256");
+ settings->setDefault("emergequeue_limit_diskonly", "32");
+ settings->setDefault("emergequeue_limit_generate", "32");
+ settings->setDefault("num_emerge_threads", "1");
+
+ // physics stuff
+ settings->setDefault("movement_acceleration_default", "3");
+ settings->setDefault("movement_acceleration_air", "2");
+ settings->setDefault("movement_acceleration_fast", "10");
+ settings->setDefault("movement_speed_walk", "4");
+ settings->setDefault("movement_speed_crouch", "1.35");
+ settings->setDefault("movement_speed_fast", "20");
+ settings->setDefault("movement_speed_climb", "2");
+ settings->setDefault("movement_speed_jump", "6.5");
+ settings->setDefault("movement_liquid_fluidity", "1");
+ settings->setDefault("movement_liquid_fluidity_smooth", "0.5");
+ settings->setDefault("movement_liquid_sink", "10");
+ settings->setDefault("movement_gravity", "9.81");
+
+ //liquid stuff
+ settings->setDefault("liquid_loop_max", "10000");
+ settings->setDefault("liquid_update", "1.0");
+
+ //mapgen stuff
+ settings->setDefault("mg_name", "v6");
+ settings->setDefault("water_level", "1");
+ settings->setDefault("chunksize", "5");
+ settings->setDefault("mg_flags", "");
+
+ // IPv6
+ settings->setDefault("enable_ipv6", "true");
+ settings->setDefault("ipv6_server", "false");
+
+ settings->setDefault("main_menu_path", "");
+ settings->setDefault("main_menu_mod_mgr", "1");
+ settings->setDefault("main_menu_game_mgr", "0");
+ settings->setDefault("modstore_download_url", "https://forum.minetest.net/media/");
+ settings->setDefault("modstore_listmods_url", "https://forum.minetest.net/mmdb/mods/");
+ settings->setDefault("modstore_details_url", "https://forum.minetest.net/mmdb/mod/*/");
+
+ settings->setDefault("high_precision_fpu", "true");
+
+ settings->setDefault("language", "");
+
+#ifdef __ANDROID__
+ settings->setDefault("screenW", "0");
+ settings->setDefault("screenH", "0");
+ settings->setDefault("enable_shaders", "false");
+ settings->setDefault("fullscreen", "true");
+ settings->setDefault("enable_particles", "false");
+ settings->setDefault("video_driver", "ogles1");
+ settings->setDefault("touchtarget", "true");
+ settings->setDefault("main_menu_script","/sdcard/Minetest/builtin/mainmenu/init_android.lua");
+ settings->setDefault("TMPFolder","/sdcard/Minetest/tmp/");
+ settings->setDefault("touchscreen_threshold","20");
+ settings->setDefault("smooth_lighting", "false");
+ settings->setDefault("max_simultaneous_block_sends_per_client", "3");
+ settings->setDefault("emergequeue_limit_diskonly", "8");
+ settings->setDefault("emergequeue_limit_generate", "8");
+ settings->setDefault("preload_item_visuals", "false");
+
+ settings->setDefault("viewing_range_nodes_max", "50");
+ settings->setDefault("viewing_range_nodes_min", "20");
+ settings->setDefault("inventory_image_hack", "false");
+
+ //check for device with small screen
+ float x_inches = ((double) porting::getDisplaySize().X /
+ (160 * porting::getDisplayDensity()));
+ if (x_inches < 3.5) {
+ settings->setDefault("gui_scaling", "0.6");
+ }
+ else if (x_inches < 4.5) {
+ settings->setDefault("gui_scaling", "0.7");
+ }
+ settings->setDefault("curl_verify_cert","false");
+#endif
+}
+
+void late_init_default_settings(Settings* settings)
+{
+#ifndef SERVER
+ std::stringstream fontsize;
+ fontsize << floor(
+ DEFAULT_FONT_SIZE *
+ porting::getDisplayDensity() *
+ settings->getFloat("gui_scaling")
+ );
+
+ settings->setDefault("font_size", fontsize.str());
+ settings->setDefault("mono_font_size", fontsize.str());
+ settings->setDefault("fallback_font_size", fontsize.str());
+#endif
+}
+
+void override_default_settings(Settings *settings, Settings *from)
+{
+ std::vector<std::string> names = from->getNames();
+ for(size_t i=0; i<names.size(); i++){
+ const std::string &name = names[i];
+ settings->setDefault(name, from->get(name));
+ }