summaryrefslogtreecommitdiff
path: root/src/doom/d_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/doom/d_main.c')
-rw-r--r--src/doom/d_main.c44
1 files changed, 40 insertions, 4 deletions
diff --git a/src/doom/d_main.c b/src/doom/d_main.c
index c84783bc..ef5c4317 100644
--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -55,6 +55,7 @@
#include "m_argv.h"
#include "m_config.h"
+#include "m_controls.h"
#include "m_misc.h"
#include "m_menu.h"
#include "p_saveg.h"
@@ -336,6 +337,39 @@ void D_Display (void)
}
//
+// Add configuration file variable bindings.
+//
+
+void D_BindVariables(void)
+{
+ int i;
+
+ I_BindVariables();
+ M_BindBaseControls();
+ NET_BindVariables();
+
+ M_BindVariable("mouse_sensitivity", &mouseSensitivity);
+ M_BindVariable("sfx_volume", &sfxVolume);
+ M_BindVariable("music_volume", &musicVolume);
+ M_BindVariable("show_messages", &showMessages);
+ M_BindVariable("screenblocks", &screenblocks);
+ M_BindVariable("detaillevel", &detailLevel);
+ M_BindVariable("snd_channels", &snd_channels);
+ M_BindVariable("vanilla_savegame_limit", &vanilla_savegame_limit);
+ M_BindVariable("vanilla_demo_limit", &vanilla_demo_limit);
+
+ // Multiplayer chat macros
+
+ for (i=0; i<10; ++i)
+ {
+ char buf[12];
+
+ sprintf(buf, "chatmacro%i", i);
+ M_BindVariable(buf, &chat_macros[i]);
+ }
+}
+
+//
// D_GrabMouseCallback
//
// Called to determine whether to grab the mouse pointer
@@ -944,11 +978,13 @@ void D_DoomMain (void)
}
// init subsystems
- printf (DEH_String("V_Init: allocate screens.\n"));
- V_Init ();
+ printf(DEH_String("V_Init: allocate screens.\n"));
+ V_Init();
- printf (DEH_String("M_LoadDefaults: Load system defaults.\n"));
- M_LoadDefaults (); // load before initing other systems
+ // Load configuration files before initialising other subsystems.
+ printf(DEH_String("M_LoadDefaults: Load system defaults.\n"));
+ D_BindVariables();
+ M_LoadDefaults();
// Save configuration at exit.
I_AtExit(M_SaveDefaults, false);