voxelands/src/config_default.c

242 lines
11 KiB
C

/************************************************************************
* config_default.c
* voxelands - 3d voxel world sandbox game
* Copyright (C) Lisa 'darkrose' Milne 2016 <lisa@ltmnet.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
************************************************************************/
#include "common.h"
#include "path.h"
#ifndef SERVER
#include "sound.h"
#endif
#include <string.h>
void config_default_init()
{
config_set_default("log.min_level","error",log_minlevel_setter);
config_set_default("log.max_level","info",log_maxlevel_setter);
config_set_default("log.system.min_level","chat",log_sminlevel_setter);
config_set_default("log.system.max_level","info",log_smaxlevel_setter);
config_set_default("log.console.min_level","chat",log_cminlevel_setter);
config_set_default("log.console.max_level","info",log_cmaxlevel_setter);
config_set_default("path.log",NULL,log_file_setter);
config_set_default("path.data.custom",NULL,path_custom_setter);
config_set_default("path.screenshot",NULL,path_screenshot_setter);
config_set_default("world.path",NULL,path_world_setter);
config_set_default("debug.profiler.interval","0",NULL);
config_set_default("debug.show","false",NULL);
#ifndef SERVER
config_set_default("client.video.anisotropic","false",NULL);
config_set_default("client.video.bilinear","false",NULL);
config_set_default("client.video.trilinear","false",NULL);
config_set_default("client.video.mipmaps","true",NULL);
config_set_default("client.video.fullscreen","false",NULL);
config_set_default("client.video.fullscreen.bpp","24",NULL);
config_set_default("client.video.fullscreen.fsaa","0",NULL);
config_set_default("client.video.vsync","false",NULL);
config_set_default("client.video.size.width","1024",NULL);
config_set_default("client.video.size.height","600",NULL);
config_set_default("client.video.driver","opengl",NULL);
config_set_default("client.video.hpfpu","true",NULL);
config_set_default("client.sound.volume","50",sound_master_setter);
config_set_default("client.sound.volume.effects","50",sound_effects_setter);
config_set_default("client.sound.volume.music","50",sound_music_setter);
config_set_default("client.sound.mumble","true",NULL);
#if USE_MUMBLE == 0
config_set_default("client.name",NULL,sound_mumble_set_ident);
#endif
config_set_default("client.graphics.mesh.lod","3",NULL);
config_set_default("client.graphics.texture.animations","false",NULL);
config_set_default("client.graphics.texture.atlas","true",NULL);
config_set_default("client.graphics.texture.lod","3",NULL);
config_set_default("client.graphics.light.lod","3",NULL);
config_set_default("client.graphics.light.fog","true",NULL);
config_set_default("client.graphics.fov","72",NULL);
config_set_default("client.graphics.fps.min","30",NULL);
config_set_default("client.graphics.fps.max","60",NULL);
config_set_default("client.graphics.bobbing","true",NULL);
config_set_default("client.graphics.bobbing.amount","1.0",NULL);
config_set_default("client.graphics.range.min","15",NULL);
config_set_default("client.graphics.range.max","300",NULL);
config_set_default("client.graphics.particles","true",NULL);
config_set_default("client.graphics.clouds","true",NULL);
config_set_default("client.graphics.water.opaque","false",NULL);
config_set_default("client.graphics.selection","highlight",NULL);
config_set_default("client.ui.mainmenu.tab","credits",NULL);
config_set_default("client.ui.hud.old","false",NULL);
config_set_default("client.ui.hud.wieldindex","false",NULL);
config_set_default("client.ui.mouse.invert","false",NULL);
config_set_default("client.ui.mouse.sensitivity","0.2",NULL);
config_set_default("client.ui.font","unifont.ttf",NULL);
config_set_default("client.ui.font.size","14",NULL);
config_set_default("client.chunk.timeout","600",NULL);
config_set_default("keymap_forward","KEY_KEY_W",NULL);
config_set_default("keymap_backward","KEY_KEY_S",NULL);
config_set_default("keymap_left","KEY_KEY_A",NULL);
config_set_default("keymap_right","KEY_KEY_D",NULL);
config_set_default("keymap_jump","KEY_SPACE",NULL);
config_set_default("keymap_sneak","KEY_LSHIFT",NULL);
config_set_default("keymap_inventory","KEY_KEY_I",NULL);
config_set_default("keymap_examine","KEY_KEY_Q",NULL);
config_set_default("keymap_use","KEY_KEY_H",NULL);
config_set_default("keymap_chat","KEY_KEY_T",NULL);
config_set_default("keymap_cmd","/",NULL);
config_set_default("keymap_rangeselect","KEY_KEY_O",NULL);
config_set_default("keymap_freemove","KEY_KEY_K",NULL);
config_set_default("keymap_up","KEY_KEY_R",NULL);
config_set_default("keymap_down","KEY_KEY_F",NULL);
config_set_default("keymap_run","KEY_KEY_E",NULL);
config_set_default("keymap_screenshot","KEY_F12",NULL);
config_set_default("keymap_toggle_hud","KEY_F1",NULL);
config_set_default("keymap_toggle_chat","KEY_F2",NULL);
config_set_default("keymap_toggle_force_fog_off","KEY_F3",NULL);
config_set_default("keymap_toggle_update_camera","KEY_F4",NULL);
config_set_default("keymap_toggle_debug","KEY_F5",NULL);
config_set_default("keymap_toggle_profiler","KEY_F6",NULL);
config_set_default("keymap_increase_viewing_range_min","KEY_PRIOR",NULL);
config_set_default("keymap_decrease_viewing_range_min","KEY_NEXT",NULL);
config_set_default("keymap_select_prev",",",NULL);
config_set_default("keymap_select_next",".",NULL);
/* some (temporary) keys for debugging o.0 */
config_set_default("keymap_print_debug_stacks","KEY_KEY_P",NULL);
config_set_default("new_style_water","false",NULL);
config_set_default("new_style_leaves","true",NULL);
config_set_default("continuous_forward","false",NULL);
config_set_default("invisible_stone","false",NULL);
#endif
/* game/world */
config_set_default("world.player.inventory.starter","false",NULL);
config_set_default("world.player.inventory.creative","false",NULL);
config_set_default("world.player.inventory.droppable","true",NULL);
config_set_default("world.player.inventory.keep","false",NULL);
config_set_default("world.player.tool.wear","true",NULL);
config_set_default("world.player.damage","true",NULL);
config_set_default("world.player.suffocation","true",NULL);
config_set_default("world.player.hunger","true",NULL);
config_set_default("world.game.mob.spawn.level","destructive",NULL);
#ifndef SERVER
config_set_default("world.player.lava","true",NULL);
config_set_default("world.game.environment.tnt","true",NULL);
#else
config_set_default("world.player.lava","false",NULL);
config_set_default("world.game.environment.tnt","false",NULL);
#endif
config_set_default("world.game.mode","survival",config_default_gamemode);
config_set_default("world.game.borderstone.radius","5",NULL);
config_set_default("world.game.mob.spawn.natural","true",NULL);
config_set_default("world.game.environment.footprints","true",NULL);
config_set_default("world.game.environment.fire.spread","false",NULL);
config_set_default("world.game.environment.time.speed","96",NULL);
config_set_default("world.game.environment.season","auto",NULL);
config_set_default("world.game.motd","",NULL);
config_set_default("world.map.type","default",NULL);
/* server */
config_set_default("world.server.chunk.range.active","2",NULL);
config_set_default("world.server.chunk.range.send","7",NULL);
config_set_default("world.server.chunk.range.generate","5",NULL);
config_set_default("world.server.mob.range","3",NULL);
config_set_default("world.server.client.version.strict","false",NULL);
config_set_default("world.server.client.private","false",NULL);
config_set_default("world.server.client.emptypwd","false",NULL);
config_set_default("world.server.client.default.password","",NULL);
config_set_default("world.server.client.default.privs","build, shout",NULL);
config_set_default("world.server.client.max","20",NULL);
config_set_default("world.server.admin","",NULL);
config_set_default("server.net.client.queue.size","4",NULL);
config_set_default("server.net.client.queue.delay","2.0",NULL);
config_set_default("server.net.client.time.interval","5",NULL);
config_set_default("server.net.client.object.interval","0.2",NULL);
/* only enable http on the server, singleplayer doesn't need it */
#ifndef SERVER
config_set_default("server.net.http","false",NULL);
#else
config_set_default("server.net.http","true",NULL);
#endif
config_set_default("server.net.chunk.max","20",NULL);
config_set_default("server.chunk.timeout","19",NULL);
config_set_default("server.save.interval","60",NULL);
config_set_default("global.api.address","servers.voxelands.com",NULL);
#ifdef SERVER
config_set_default("world.server.api.announce","true",NULL);
#else
config_set_default("world.server.api.announce","false",NULL);
#endif
config_set_default("world.server.name","Voxelands Server",NULL);
config_set_default("world.server.address","",NULL);
config_set_default("world.server.port","30000",NULL);
config_set_default("server.world","default",NULL);
#ifndef SERVER
config_set_default("client.world","default",NULL);
#endif
config_default_survival();
}
void config_default_creative()
{
config_set_default("world.player.inventory.creative","true",NULL);
config_set_default("world.player.inventory.droppable","false",NULL);
config_set_default("world.player.inventory.keep","true",NULL);
config_set_default("world.player.tool.wear","false",NULL);
config_set_default("world.player.damage","false",NULL);
config_set_default("world.player.suffocation","false",NULL);
config_set_default("world.player.hunger","false",NULL);
config_set_default("world.game.mob.spawn.level","passive",NULL);
}
void config_default_survival()
{
config_set_default("world.player.inventory.creative","false",NULL);
config_set_default("world.player.inventory.droppable","true",NULL);
config_set_default("world.player.inventory.keep","false",NULL);
config_set_default("world.player.tool.wear","true",NULL);
config_set_default("world.player.damage","true",NULL);
config_set_default("world.player.suffocation","true",NULL);
config_set_default("world.player.hunger","true",NULL);
config_set_default("world.game.mob.spawn.level","destructive",NULL);
}
int config_default_gamemode(char* mode)
{
if (mode && !strcmp(mode,"creative")) {
config_default_creative();
}else{
config_default_survival();
}
return 0;
}