LCOV - code coverage report
Current view: top level - src - defaultsettings.cpp (source / functions) Hit Total Coverage
Test: report Lines: 241 246 98.0 %
Date: 2015-07-11 18:23:49 Functions: 3 4 75.0 %

          Line data    Source code
       1             : /*
       2             : Minetest
       3             : Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
       4             : 
       5             : This program is free software; you can redistribute it and/or modify
       6             : it under the terms of the GNU Lesser General Public License as published by
       7             : the Free Software Foundation; either version 2.1 of the License, or
       8             : (at your option) any later version.
       9             : 
      10             : This program is distributed in the hope that it will be useful,
      11             : but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             : GNU Lesser General Public License for more details.
      14             : 
      15             : You should have received a copy of the GNU Lesser General Public License along
      16             : with this program; if not, write to the Free Software Foundation, Inc.,
      17             : 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             : */
      19             : 
      20             : #include "settings.h"
      21             : #include "porting.h"
      22             : #include "filesys.h"
      23             : #include "config.h"
      24             : #include "constants.h"
      25             : #include "porting.h"
      26             : 
      27           1 : void set_default_settings(Settings *settings)
      28             : {
      29             :         // Client and server
      30             : 
      31           1 :         settings->setDefault("name", "");
      32             : 
      33             :         // Client stuff
      34           1 :         settings->setDefault("remote_port", "30000");
      35           1 :         settings->setDefault("keymap_forward", "KEY_KEY_W");
      36           1 :         settings->setDefault("keymap_backward", "KEY_KEY_S");
      37           1 :         settings->setDefault("keymap_left", "KEY_KEY_A");
      38           1 :         settings->setDefault("keymap_right", "KEY_KEY_D");
      39           1 :         settings->setDefault("keymap_jump", "KEY_SPACE");
      40           1 :         settings->setDefault("keymap_sneak", "KEY_LSHIFT");
      41           1 :         settings->setDefault("keymap_drop", "KEY_KEY_Q");
      42           1 :         settings->setDefault("keymap_inventory", "KEY_KEY_I");
      43           1 :         settings->setDefault("keymap_special1", "KEY_KEY_E");
      44           1 :         settings->setDefault("keymap_chat", "KEY_KEY_T");
      45           1 :         settings->setDefault("keymap_cmd", "/");
      46           1 :         settings->setDefault("keymap_minimap", "KEY_F9");
      47           1 :         settings->setDefault("keymap_console", "KEY_F10");
      48           1 :         settings->setDefault("keymap_rangeselect", "KEY_KEY_R");
      49           1 :         settings->setDefault("keymap_freemove", "KEY_KEY_K");
      50           1 :         settings->setDefault("keymap_fastmove", "KEY_KEY_J");
      51           1 :         settings->setDefault("keymap_noclip", "KEY_KEY_H");
      52           1 :         settings->setDefault("keymap_cinematic", "KEY_F8");
      53           1 :         settings->setDefault("keymap_screenshot", "KEY_F12");
      54           1 :         settings->setDefault("keymap_toggle_hud", "KEY_F1");
      55           1 :         settings->setDefault("keymap_toggle_chat", "KEY_F2");
      56           1 :         settings->setDefault("keymap_toggle_force_fog_off", "KEY_F3");
      57           2 :         settings->setDefault("keymap_toggle_update_camera",
      58             : #if DEBUG
      59             :                         "KEY_F4");
      60             : #else
      61           1 :                         "none");
      62             : #endif
      63           1 :         settings->setDefault("keymap_toggle_debug", "KEY_F5");
      64           1 :         settings->setDefault("keymap_toggle_profiler", "KEY_F6");
      65           1 :         settings->setDefault("keymap_camera_mode", "KEY_F7");
      66           1 :         settings->setDefault("keymap_increase_viewing_range_min", "+");
      67           1 :         settings->setDefault("keymap_decrease_viewing_range_min", "-");
      68           1 :         settings->setDefault("enable_build_where_you_stand", "false" );
      69           1 :         settings->setDefault("3d_mode", "none");
      70           1 :         settings->setDefault("3d_paralax_strength", "0.025");
      71           1 :         settings->setDefault("aux1_descends", "false");
      72           1 :         settings->setDefault("doubletap_jump", "false");
      73           1 :         settings->setDefault("always_fly_fast", "true");
      74           1 :         settings->setDefault("directional_colored_fog", "true");
      75           1 :         settings->setDefault("tooltip_show_delay", "400");
      76             : 
      77             :         // Some (temporary) keys for debugging
      78           1 :         settings->setDefault("keymap_print_debug_stacks", "KEY_KEY_P");
      79           1 :         settings->setDefault("keymap_quicktune_prev", "KEY_HOME");
      80           1 :         settings->setDefault("keymap_quicktune_next", "KEY_END");
      81           1 :         settings->setDefault("keymap_quicktune_dec", "KEY_NEXT");
      82           1 :         settings->setDefault("keymap_quicktune_inc", "KEY_PRIOR");
      83             : 
      84             :         // Show debug info by default?
      85             :         #ifdef NDEBUG
      86           1 :         settings->setDefault("show_debug", "false");
      87             :         #else
      88             :         settings->setDefault("show_debug", "true");
      89             :         #endif
      90             : 
      91           1 :         settings->setDefault("wanted_fps", "30");
      92           1 :         settings->setDefault("fps_max", "60");
      93           1 :         settings->setDefault("pause_fps_max", "20");
      94             :         // A bit more than the server will send around the player, to make fog blend well
      95           1 :         settings->setDefault("viewing_range_nodes_max", "240");
      96           1 :         settings->setDefault("viewing_range_nodes_min", "35");
      97           1 :         settings->setDefault("screenW", "800");
      98           1 :         settings->setDefault("screenH", "600");
      99           1 :         settings->setDefault("fullscreen", "false");
     100           1 :         settings->setDefault("fullscreen_bpp", "24");
     101           1 :         settings->setDefault("fsaa", "0");
     102           1 :         settings->setDefault("vsync", "false");
     103           1 :         settings->setDefault("address", "");
     104           1 :         settings->setDefault("random_input", "false");
     105           1 :         settings->setDefault("client_unload_unused_data_timeout", "600");
     106           1 :         settings->setDefault("enable_fog", "true");
     107           1 :         settings->setDefault("fov", "72");
     108           1 :         settings->setDefault("view_bobbing", "true");
     109           1 :         settings->setDefault("new_style_water", "false");
     110           1 :         settings->setDefault("new_style_leaves", "true");
     111           1 :         settings->setDefault("connected_glass", "false");
     112           1 :         settings->setDefault("smooth_lighting", "true");
     113           1 :         settings->setDefault("display_gamma", "1.8");
     114           1 :         settings->setDefault("texture_path", "");
     115           1 :         settings->setDefault("shader_path", "");
     116           1 :         settings->setDefault("video_driver", "opengl");
     117           1 :         settings->setDefault("free_move", "false");
     118           1 :         settings->setDefault("noclip", "false");
     119           1 :         settings->setDefault("continuous_forward", "false");
     120           1 :         settings->setDefault("cinematic", "false");
     121           1 :         settings->setDefault("camera_smoothing", "0");
     122           1 :         settings->setDefault("cinematic_camera_smoothing", "0.7");
     123           1 :         settings->setDefault("fast_move", "false");
     124           1 :         settings->setDefault("invert_mouse", "false");
     125           1 :         settings->setDefault("enable_clouds", "true");
     126           1 :         settings->setDefault("screenshot_path", ".");
     127           1 :         settings->setDefault("view_bobbing_amount", "1.0");
     128           1 :         settings->setDefault("fall_bobbing_amount", "0.0");
     129           1 :         settings->setDefault("enable_3d_clouds", "true");
     130           1 :         settings->setDefault("cloud_height", "120");
     131           1 :         settings->setDefault("cloud_radius", "12");
     132           1 :         settings->setDefault("menu_clouds", "true");
     133           1 :         settings->setDefault("opaque_water", "false");
     134           1 :         settings->setDefault("console_color", "(0,0,0)");
     135           1 :         settings->setDefault("console_alpha", "200");
     136           1 :         settings->setDefault("selectionbox_color", "(0,0,0)");
     137           1 :         settings->setDefault("enable_node_highlighting", "false");
     138           1 :         settings->setDefault("crosshair_color", "(255,255,255)");
     139           1 :         settings->setDefault("crosshair_alpha", "255");
     140           1 :         settings->setDefault("hud_scaling", "1.0");
     141           1 :         settings->setDefault("gui_scaling", "1.0");
     142           1 :         settings->setDefault("gui_scaling_filter", "false");
     143           1 :         settings->setDefault("gui_scaling_filter_txr2img", "true");
     144           1 :         settings->setDefault("mouse_sensitivity", "0.2");
     145           1 :         settings->setDefault("enable_sound", "true");
     146           1 :         settings->setDefault("sound_volume", "0.8");
     147           1 :         settings->setDefault("desynchronize_mapblock_texture_animation", "true");
     148           1 :         settings->setDefault("selectionbox_width","2");
     149           1 :         settings->setDefault("hud_hotbar_max_width","1.0");
     150           1 :         settings->setDefault("enable_local_map_saving", "false");
     151             : 
     152           1 :         settings->setDefault("mip_map", "false");
     153           1 :         settings->setDefault("anisotropic_filter", "false");
     154           1 :         settings->setDefault("bilinear_filter", "false");
     155           1 :         settings->setDefault("trilinear_filter", "false");
     156           1 :         settings->setDefault("texture_clean_transparent", "false");
     157           1 :         settings->setDefault("texture_min_size", "64");
     158           1 :         settings->setDefault("preload_item_visuals", "false");
     159           1 :         settings->setDefault("enable_bumpmapping", "false");
     160           1 :         settings->setDefault("enable_parallax_occlusion", "false");
     161           1 :         settings->setDefault("generate_normalmaps", "false");
     162           1 :         settings->setDefault("normalmaps_strength", "0.6");
     163           1 :         settings->setDefault("normalmaps_smooth", "1");
     164           1 :         settings->setDefault("parallax_occlusion_mode", "1");
     165           1 :         settings->setDefault("parallax_occlusion_iterations", "4");
     166           1 :         settings->setDefault("parallax_occlusion_scale", "0.08");
     167           1 :         settings->setDefault("parallax_occlusion_bias", "0.04");
     168           1 :         settings->setDefault("enable_waving_water", "false");
     169           1 :         settings->setDefault("water_wave_height", "1.0");
     170           1 :         settings->setDefault("water_wave_length", "20.0");
     171           1 :         settings->setDefault("water_wave_speed", "5.0");
     172           1 :         settings->setDefault("enable_waving_leaves", "false");
     173           1 :         settings->setDefault("enable_waving_plants", "false");
     174           1 :         settings->setDefault("ambient_occlusion_gamma", "2.2");
     175           1 :         settings->setDefault("enable_shaders", "true");
     176           1 :         settings->setDefault("repeat_rightclick_time", "0.25");
     177           1 :         settings->setDefault("enable_particles", "true");
     178           1 :         settings->setDefault("enable_mesh_cache", "true");
     179             : 
     180           1 :         settings->setDefault("enable_minimap", "true");
     181           1 :         settings->setDefault("minimap_shape_round", "true");
     182           1 :         settings->setDefault("minimap_double_scan_height", "true");
     183             : 
     184           1 :         settings->setDefault("curl_timeout", "5000");
     185           1 :         settings->setDefault("curl_parallel_limit", "8");
     186           1 :         settings->setDefault("curl_file_download_timeout", "300000");
     187           1 :         settings->setDefault("curl_verify_cert", "true");
     188             : 
     189           1 :         settings->setDefault("enable_remote_media_server", "true");
     190             : 
     191           1 :         settings->setDefault("serverlist_url", "servers.minetest.net");
     192           1 :         settings->setDefault("serverlist_file", "favoriteservers.txt");
     193           1 :         settings->setDefault("server_announce", "false");
     194           1 :         settings->setDefault("server_url", "");
     195           1 :         settings->setDefault("server_address", "");
     196           1 :         settings->setDefault("server_name", "");
     197           1 :         settings->setDefault("server_description", "");
     198             : 
     199             : #if USE_FREETYPE
     200           1 :         settings->setDefault("freetype", "true");
     201           1 :         settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "liberationsans.ttf"));
     202           1 :         settings->setDefault("font_shadow", "1");
     203           1 :         settings->setDefault("font_shadow_alpha", "128");
     204           1 :         settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "liberationmono.ttf"));
     205           1 :         settings->setDefault("fallback_font_path", porting::getDataPath("fonts" DIR_DELIM "DroidSansFallbackFull.ttf"));
     206             : 
     207           1 :         settings->setDefault("fallback_font_shadow", "1");
     208           1 :         settings->setDefault("fallback_font_shadow_alpha", "128");
     209             : 
     210           2 :         std::stringstream fontsize;
     211           1 :         fontsize << TTF_DEFAULT_FONT_SIZE;
     212             : 
     213           1 :         settings->setDefault("font_size", fontsize.str());
     214           1 :         settings->setDefault("mono_font_size", fontsize.str());
     215           1 :         settings->setDefault("fallback_font_size", fontsize.str());
     216             : #else
     217             :         settings->setDefault("freetype", "false");
     218             :         settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "lucida_sans"));
     219             :         settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "mono_dejavu_sans"));
     220             : 
     221             :         std::stringstream fontsize;
     222             :         fontsize << DEFAULT_FONT_SIZE;
     223             : 
     224             :         settings->setDefault("font_size", fontsize.str());
     225             :         settings->setDefault("mono_font_size", fontsize.str());
     226             : #endif
     227             : 
     228             :         // Server stuff
     229             :         // "map-dir" doesn't exist by default.
     230           1 :         settings->setDefault("workaround_window_size","5");
     231           1 :         settings->setDefault("max_packets_per_iteration","1024");
     232           1 :         settings->setDefault("port", "30000");
     233           1 :         settings->setDefault("bind_address", "");
     234           1 :         settings->setDefault("default_game", "minetest");
     235           1 :         settings->setDefault("motd", "");
     236           1 :         settings->setDefault("max_users", "15");
     237           1 :         settings->setDefault("strict_protocol_version_checking", "false");
     238           1 :         settings->setDefault("creative_mode", "false");
     239           1 :         settings->setDefault("enable_damage", "true");
     240           1 :         settings->setDefault("fixed_map_seed", "");
     241           1 :         settings->setDefault("give_initial_stuff", "false");
     242           1 :         settings->setDefault("default_password", "");
     243           1 :         settings->setDefault("default_privs", "interact, shout");
     244           1 :         settings->setDefault("player_transfer_distance", "0");
     245           1 :         settings->setDefault("enable_pvp", "true");
     246           1 :         settings->setDefault("disallow_empty_password", "false");
     247           1 :         settings->setDefault("disable_anticheat", "false");
     248           1 :         settings->setDefault("enable_rollback_recording", "false");
     249             : #ifdef NDEBUG
     250           1 :         settings->setDefault("deprecated_lua_api_handling", "legacy");
     251             : #else
     252             :         settings->setDefault("deprecated_lua_api_handling", "log");
     253             : #endif
     254             : 
     255           1 :         settings->setDefault("profiler_print_interval", "0");
     256           1 :         settings->setDefault("enable_mapgen_debug_info", "false");
     257           1 :         settings->setDefault("active_object_send_range_blocks", "3");
     258           1 :         settings->setDefault("active_block_range", "2");
     259             :         //settings->setDefault("max_simultaneous_block_sends_per_client", "1");
     260             :         // This causes frametime jitter on client side, or does it?
     261           1 :         settings->setDefault("max_simultaneous_block_sends_per_client", "10");
     262           1 :         settings->setDefault("max_simultaneous_block_sends_server_total", "40");
     263           1 :         settings->setDefault("max_block_send_distance", "9");
     264           1 :         settings->setDefault("max_block_generate_distance", "7");
     265           1 :         settings->setDefault("max_clearobjects_extra_loaded_blocks", "4096");
     266           1 :         settings->setDefault("time_send_interval", "5");
     267           1 :         settings->setDefault("time_speed", "72");
     268           1 :         settings->setDefault("year_days", "30");
     269           1 :         settings->setDefault("server_unload_unused_data_timeout", "29");
     270           1 :         settings->setDefault("max_objects_per_block", "49");
     271           1 :         settings->setDefault("server_map_save_interval", "5.3");
     272           1 :         settings->setDefault("sqlite_synchronous", "2");
     273           1 :         settings->setDefault("full_block_send_enable_min_time_from_building", "2.0");
     274           1 :         settings->setDefault("dedicated_server_step", "0.1");
     275           1 :         settings->setDefault("ignore_world_load_errors", "false");
     276           1 :         settings->setDefault("remote_media", "");
     277           1 :         settings->setDefault("debug_log_level", "2");
     278           1 :         settings->setDefault("emergequeue_limit_total", "256");
     279           1 :         settings->setDefault("emergequeue_limit_diskonly", "32");
     280           1 :         settings->setDefault("emergequeue_limit_generate", "32");
     281           1 :         settings->setDefault("num_emerge_threads", "1");
     282           1 :         settings->setDefault("secure.enable_security", "false");
     283           1 :         settings->setDefault("secure.trusted_mods", "");
     284             : 
     285             :         // physics stuff
     286           1 :         settings->setDefault("movement_acceleration_default", "3");
     287           1 :         settings->setDefault("movement_acceleration_air", "2");
     288           1 :         settings->setDefault("movement_acceleration_fast", "10");
     289           1 :         settings->setDefault("movement_speed_walk", "4");
     290           1 :         settings->setDefault("movement_speed_crouch", "1.35");
     291           1 :         settings->setDefault("movement_speed_fast", "20");
     292           1 :         settings->setDefault("movement_speed_climb", "2");
     293           1 :         settings->setDefault("movement_speed_jump", "6.5");
     294           1 :         settings->setDefault("movement_liquid_fluidity", "1");
     295           1 :         settings->setDefault("movement_liquid_fluidity_smooth", "0.5");
     296           1 :         settings->setDefault("movement_liquid_sink", "10");
     297           1 :         settings->setDefault("movement_gravity", "9.81");
     298             : 
     299             :         //liquid stuff
     300           1 :         settings->setDefault("liquid_loop_max", "100000");
     301           1 :         settings->setDefault("liquid_queue_purge_time", "0");
     302           1 :         settings->setDefault("liquid_update", "1.0");
     303             : 
     304             :         //mapgen stuff
     305           1 :         settings->setDefault("mg_name", "v6");
     306           1 :         settings->setDefault("water_level", "1");
     307           1 :         settings->setDefault("chunksize", "5");
     308           1 :         settings->setDefault("mg_flags", "dungeons");
     309           1 :         settings->setDefault("mgv6_spflags", "jungles, snowbiomes");
     310           1 :         settings->setDefault("enable_floating_dungeons", "true");
     311             : 
     312             :         // IPv6
     313           1 :         settings->setDefault("enable_ipv6", "true");
     314           1 :         settings->setDefault("ipv6_server", "false");
     315             : 
     316           1 :         settings->setDefault("main_menu_path", "");
     317           1 :         settings->setDefault("main_menu_mod_mgr", "1");
     318           1 :         settings->setDefault("main_menu_game_mgr", "0");
     319           1 :         settings->setDefault("modstore_download_url", "https://forum.minetest.net/media/");
     320           1 :         settings->setDefault("modstore_listmods_url", "https://forum.minetest.net/mmdb/mods/");
     321           1 :         settings->setDefault("modstore_details_url", "https://forum.minetest.net/mmdb/mod/*/");
     322             : 
     323           1 :         settings->setDefault("high_precision_fpu", "true");
     324             : 
     325           1 :         settings->setDefault("language", "");
     326             : 
     327             : #ifdef __ANDROID__
     328             :         settings->setDefault("screenW", "0");
     329             :         settings->setDefault("screenH", "0");
     330             :         settings->setDefault("enable_shaders", "false");
     331             :         settings->setDefault("fullscreen", "true");
     332             :         settings->setDefault("enable_particles", "false");
     333             :         settings->setDefault("video_driver", "ogles1");
     334             :         settings->setDefault("touchtarget", "true");
     335             :         settings->setDefault("TMPFolder","/sdcard/" PROJECT_NAME_C "/tmp/");
     336             :         settings->setDefault("touchscreen_threshold","20");
     337             :         settings->setDefault("smooth_lighting", "false");
     338             :         settings->setDefault("max_simultaneous_block_sends_per_client", "3");
     339             :         settings->setDefault("emergequeue_limit_diskonly", "8");
     340             :         settings->setDefault("emergequeue_limit_generate", "8");
     341             :         settings->setDefault("preload_item_visuals", "false");
     342             : 
     343             :         settings->setDefault("viewing_range_nodes_max", "50");
     344             :         settings->setDefault("viewing_range_nodes_min", "20");
     345             :         settings->setDefault("inventory_image_hack", "false");
     346             : 
     347             :         //check for device with small screen
     348             :         float x_inches = ((double) porting::getDisplaySize().X /
     349             :                         (160 * porting::getDisplayDensity()));
     350             :         if (x_inches  < 3.5) {
     351             :                 settings->setDefault("hud_scaling", "0.6");
     352             :         }
     353             :         else if (x_inches < 4.5) {
     354             :                 settings->setDefault("hud_scaling", "0.7");
     355             :         }
     356             :         settings->setDefault("curl_verify_cert","false");
     357             : #else
     358           1 :         settings->setDefault("screen_dpi", "72");
     359             : #endif
     360           1 : }
     361             : 
     362           0 : void override_default_settings(Settings *settings, Settings *from)
     363             : {
     364           0 :         std::vector<std::string> names = from->getNames();
     365           0 :         for(size_t i=0; i<names.size(); i++){
     366           0 :                 const std::string &name = names[i];
     367           0 :                 settings->setDefault(name, from->get(name));
     368             :         }
     369           3 : }

Generated by: LCOV version 1.11