From d4d0f9945cefdb86241b5bd095e82ddbfca0e134 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Wed, 8 Oct 2008 18:47:13 +0000 Subject: Switch configuration file code to common configuration file code, and remove old code. Subversion-branch: /branches/raven-branch Subversion-revision: 1338 --- src/hexen/ct_chat.c | 13 ++- src/hexen/ct_chat.h | 8 ++ src/hexen/d_net.c | 4 +- src/hexen/g_game.c | 22 +--- src/hexen/h2_main.c | 41 ++++++- src/hexen/h2def.h | 25 ++-- src/hexen/m_misc.c | 324 --------------------------------------------------- src/hexen/mn_menu.c | 3 +- src/hexen/p_inter.c | 4 - src/hexen/r_local.h | 1 + src/hexen/r_main.c | 2 +- src/hexen/s_sound.c | 8 +- src/hexen/s_sound.h | 1 + src/hexen/sb_bar.c | 2 +- src/hexen/st_start.c | 1 + src/hexen/sv_save.c | 4 +- src/i_sdlsound.c | 5 + src/i_sound.c | 1 + src/m_config.c | 32 +++++ src/m_controls.c | 25 +++- src/m_controls.h | 8 ++ 21 files changed, 153 insertions(+), 381 deletions(-) (limited to 'src') diff --git a/src/hexen/ct_chat.c b/src/hexen/ct_chat.c index 983f3715..10a8829b 100644 --- a/src/hexen/ct_chat.c +++ b/src/hexen/ct_chat.c @@ -102,7 +102,18 @@ char *CT_FromPlrText[MAXPLAYERS] = { "PURPLE: " }; -char *chat_macros[10]; +char *chat_macros[10] = { + HUSTR_CHATMACRO0, + HUSTR_CHATMACRO1, + HUSTR_CHATMACRO2, + HUSTR_CHATMACRO3, + HUSTR_CHATMACRO4, + HUSTR_CHATMACRO5, + HUSTR_CHATMACRO6, + HUSTR_CHATMACRO7, + HUSTR_CHATMACRO8, + HUSTR_CHATMACRO9, +}; boolean altdown; boolean shiftdown; diff --git a/src/hexen/ct_chat.h b/src/hexen/ct_chat.h index 326f65cb..cdd26143 100644 --- a/src/hexen/ct_chat.h +++ b/src/hexen/ct_chat.h @@ -24,6 +24,9 @@ // Chat mode stuff // +#ifndef HEXEN_CT_CHAT_H +#define HEXEN_CT_CHAT_H + #define CT_PLR_GREEN 1 #define CT_PLR_YELLOW 2 #define CT_PLR_RED 3 @@ -35,3 +38,8 @@ #define CT_KEY_RED 'r' #define CT_KEY_BLUE 'b' #define CT_KEY_ALL 't' + +extern char *chat_macros[10]; + +#endif + diff --git a/src/hexen/d_net.c b/src/hexen/d_net.c index fec03c8d..d1a7c376 100644 --- a/src/hexen/d_net.c +++ b/src/hexen/d_net.c @@ -653,7 +653,7 @@ void D_ArbitrateNetStart(void) continue; if (netbuffer->checksum & NCMD_SETUP && netbuffer->starttic < 64) { - if (netbuffer->player != VERSION) + if (netbuffer->player != HEXEN_VERSION) I_Error ("Different HEXEN versions cannot play a net game!"); startskill = netbuffer->retransmitfrom & 15; @@ -682,7 +682,7 @@ void D_ArbitrateNetStart(void) if (respawnparm) netbuffer->retransmitfrom |= 0x10; netbuffer->starttic = startmap & 0x3f; - netbuffer->player = VERSION; + netbuffer->player = HEXEN_VERSION; netbuffer->numtics = 0; HSendPacket(i, NCMD_SETUP); } diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c index e7ba9e48..564c1f27 100644 --- a/src/hexen/g_game.c +++ b/src/hexen/g_game.c @@ -29,6 +29,7 @@ #include "i_video.h" #include "i_system.h" #include "i_timer.h" +#include "m_controls.h" #include "m_misc.h" #include "p_local.h" #include "v_video.h" @@ -108,26 +109,7 @@ boolean precache = true; // if true, load all graphics at start short consistancy[MAXPLAYERS][BACKUPTICS]; -// -// controls (have defaults) -// -int key_right, key_left, key_up, key_down; -int key_strafeleft, key_straferight, key_jump; -int key_fire, key_use, key_strafe, key_speed; -int key_flyup, key_flydown, key_flycenter; -int key_lookup, key_lookdown, key_lookcenter; -int key_invleft, key_invright, key_useartifact; - -int mousebfire; -int mousebstrafe; -int mousebforward; -int mousebjump; - -int joybfire; -int joybstrafe; -int joybuse; -int joybspeed; -int joybjump; +int mouseSensitivity = 5; int LeaveMap; static int LeavePosition; diff --git a/src/hexen/h2_main.c b/src/hexen/h2_main.c index e82f26e3..9d83a7da 100644 --- a/src/hexen/h2_main.c +++ b/src/hexen/h2_main.c @@ -32,16 +32,21 @@ #include #include #include + +#include "config.h" + #include "h2def.h" +#include "ct_chat.h" #include "s_sound.h" #include "i_system.h" #include "m_argv.h" +#include "m_config.h" +#include "m_controls.h" #include "p_local.h" #include "v_video.h" // MACROS ------------------------------------------------------------------ -#define CONFIG_FILE_NAME "hexen.cfg" #define MAXWADFILES 20 // TYPES ------------------------------------------------------------------- @@ -141,6 +146,34 @@ static execOpt_t ExecOptions[] = { // CODE -------------------------------------------------------------------- +void D_BindVariables(void) +{ + int i; + + I_BindVariables(); + M_BindBaseControls(); + M_BindHereticControls(); + M_BindHexenControls(); + + M_BindVariable("mouse_sensitivity", &mouseSensitivity); + M_BindVariable("sfx_volume", &snd_MaxVolume); + M_BindVariable("music_volume", &snd_MusicVolume); + M_BindVariable("messageson", &messageson); + M_BindVariable("screenblocks", &screenblocks); + M_BindVariable("snd_channels", &snd_Channels); + M_BindVariable("savedir", &SavePath); + + // Multiplayer chat macros + + for (i=0; i<10; ++i) + { + char buf[12]; + + sprintf(buf, "chatmacro%i", i); + M_BindVariable(buf, &chat_macros[i]); + } +} + //========================================================================== // // H2_Main @@ -169,7 +202,9 @@ void D_DoomMain(void) // Load defaults before initing other systems ST_Message("M_LoadDefaults: Load system defaults.\n"); - M_LoadDefaults(CONFIG_FILE_NAME); + D_BindVariables(); + M_SetConfigFilenames("hexen.cfg", PROGRAM_PREFIX "hexen.cfg"); + M_LoadDefaults(); // Now that the savedir is loaded from .CFG, make sure it exists CreateSavePath(); @@ -217,8 +252,6 @@ void D_DoomMain(void) S_StartSongName("orb", true); // Show version message now, so it's visible during R_Init() - ST_Message("Executable: " VERSIONTEXT ".\n"); - ST_Message("R_Init: Init Hexen refresh daemon"); R_Init(); ST_Message("\n"); diff --git a/src/hexen/h2def.h b/src/hexen/h2def.h index 621af01c..61ca87b9 100644 --- a/src/hexen/h2def.h +++ b/src/hexen/h2def.h @@ -52,8 +52,8 @@ #include "tables.h" -#define VERSION 110 -#define VERSION_TEXT "v1.1" +#define HEXEN_VERSION 110 +#define HEXEN_VERSION_TEXT "v1.1" // Uncomment, to enable all timebomb stuff //#define TIMEBOMB @@ -71,15 +71,15 @@ #ifndef VER_ID #define VER_ID "DVL" #endif -//#define VERSIONTEXT "ID V1.2" -//#define VERSIONTEXT "RETAIL STORE BETA" // 9/26/95 -//#define VERSIONTEXT "DVL BETA 10 05 95" // Used for GT for testing -//#define VERSIONTEXT "DVL BETA 10 07 95" // Just an update for Romero -//#define VERSIONTEXT "FINAL 1.0 (10 13 95)" // Just an update for Romero +//#define HEXEN_VERSIONTEXT "ID V1.2" +//#define HEXEN_VERSIONTEXT "RETAIL STORE BETA" // 9/26/95 +//#define HEXEN_VERSIONTEXT "DVL BETA 10 05 95" // Used for GT for testing +//#define HEXEN_VERSIONTEXT "DVL BETA 10 07 95" // Just an update for Romero +//#define HEXEN_VERSIONTEXT "FINAL 1.0 (10 13 95)" // Just an update for Romero #ifdef RANGECHECK -#define VERSIONTEXT "Version 1.1 +R "__DATE__" ("VER_ID")" +#define HEXEN_VERSIONTEXT "Version 1.1 +R "__DATE__" ("VER_ID")" #else -#define VERSIONTEXT "Version 1.1 "__DATE__" ("VER_ID")" +#define HEXEN_VERSIONTEXT "Version 1.1 "__DATE__" ("VER_ID")" #endif // all exterior data is defined here @@ -886,6 +886,8 @@ void G_ScreenShot(void); #define HXS_VERSION_TEXT_LENGTH 16 #define HXS_DESCRIPTION_LENGTH 24 +extern char *SavePath; + void SV_SaveGame(int slot, char *description); void SV_SaveMap(boolean savePlayers); void SV_LoadGame(int slot); @@ -993,9 +995,6 @@ extern int prndindex; void M_ClearRandom(void); // fix randoms for demos -void M_LoadDefaults(char *fileName); -void M_SaveDefaults(void); - int M_DrawText(int x, int y, boolean direct, char *string); //------------------------------ @@ -1164,6 +1163,8 @@ int MN_TextAWidth(char *text); void MN_DrTextB(char *text, int x, int y); int MN_TextBWidth(char *text); +extern int messageson; + #include "sounds.h" #endif // __H2DEF__ diff --git a/src/hexen/m_misc.c b/src/hexen/m_misc.c index e8a6c91b..eb16b621 100644 --- a/src/hexen/m_misc.c +++ b/src/hexen/m_misc.c @@ -171,327 +171,3 @@ void M_ForceUppercase(char *text) } } -/* -============================================================================== - - DEFAULTS - -============================================================================== -*/ - -int usemouse; -int usejoystick; - -extern int key_right, key_left, key_up, key_down; -extern int key_strafeleft, key_straferight, key_jump; -extern int key_fire, key_use, key_strafe, key_speed; -extern int key_flyup, key_flydown, key_flycenter; -extern int key_lookup, key_lookdown, key_lookcenter; -extern int key_invleft, key_invright, key_useartifact; - -extern int mousebfire; -extern int mousebstrafe; -extern int mousebforward; -extern int mousebjump; - -extern int joybfire; -extern int joybstrafe; -extern int joybuse; -extern int joybspeed; -extern int joybjump; - -extern boolean messageson; - -extern int viewwidth, viewheight; - -int mouseSensitivity; - -extern int screenblocks; - -extern char *chat_macros[10]; - -typedef struct -{ - char *name; - int *location; - int defaultvalue; - int scantranslate; // PC scan code hack - int untranslated; // lousy hack -} default_t; - -#ifndef __NeXT__ -extern int snd_Channels; -extern int snd_DesiredMusicDevice, snd_DesiredSfxDevice; -extern int snd_MusicDevice, // current music card # (index to dmxCodes) - snd_SfxDevice; // current sfx card # (index to dmxCodes) - -extern int snd_SBport, snd_SBirq, snd_SBdma; // sound blaster variables -extern int snd_Mport; // midi variables -#endif - -default_t defaults[] = { - {"mouse_sensitivity", &mouseSensitivity, 5}, - -#ifndef __NeXT__ - {"sfx_volume", &snd_MaxVolume, 10}, - {"music_volume", &snd_MusicVolume, 10}, -#endif - -#ifdef __WATCOMC__ -#define SC_UPARROW 0x48 -#define SC_DOWNARROW 0x50 -#define SC_LEFTARROW 0x4b -#define SC_RIGHTARROW 0x4d -#define SC_RCTRL 0x1d -#define SC_RALT 0x38 -#define SC_RSHIFT 0x36 -#define SC_SPACE 0x39 -#define SC_COMMA 0x33 -#define SC_PERIOD 0x34 -#define SC_PAGEUP 0x49 -#define SC_INSERT 0x52 -#define SC_HOME 0x47 -#define SC_PAGEDOWN 0x51 -#define SC_DELETE 0x53 -#define SC_END 0x4f -#define SC_ENTER 0x1c -#define SC_SLASH 0X35 - - {"key_right", &key_right, SC_RIGHTARROW, 1}, - {"key_left", &key_left, SC_LEFTARROW, 1}, - {"key_up", &key_up, SC_UPARROW, 1}, - {"key_down", &key_down, SC_DOWNARROW, 1}, - {"key_strafeleft", &key_strafeleft, SC_COMMA, 1}, - {"key_straferight", &key_straferight, SC_PERIOD, 1}, - {"key_jump", &key_jump, SC_SLASH, 1}, - {"key_flyup", &key_flyup, SC_PAGEUP, 1}, - {"key_flydown", &key_flydown, SC_INSERT, 1}, - {"key_flycenter", &key_flycenter, SC_HOME, 1}, - {"key_lookup", &key_lookup, SC_PAGEDOWN, 1}, - {"key_lookdown", &key_lookdown, SC_DELETE, 1}, - {"key_lookcenter", &key_lookcenter, SC_END, 1}, - {"key_invleft", &key_invleft, 0x1a, 1}, - {"key_invright", &key_invright, 0x1b, 1}, - {"key_useartifact", &key_useartifact, SC_ENTER, 1}, - - {"key_fire", &key_fire, SC_RCTRL, 1}, - {"key_use", &key_use, SC_SPACE, 1}, - {"key_strafe", &key_strafe, SC_RALT, 1}, - {"key_speed", &key_speed, SC_RSHIFT, 1}, -#endif - -#ifdef __NeXT__ - {"key_right", &key_right, KEY_RIGHTARROW}, - {"key_left", &key_left, KEY_LEFTARROW}, - {"key_up", &key_up, KEY_UPARROW}, - {"key_down", &key_down, KEY_DOWNARROW}, - {"key_strafeleft", &key_strafeleft, ','}, - {"key_straferight", &key_straferight, '.'}, - {"key_jump", &key_jump, '/'}, - {"key_flyup", &key_flyup, 'u'}, - {"key_flydown", &key_flydown, 'j'}, - {"key_flycenter", &key_flycenter, 'k'}, - {"key_lookup", &key_lookup, 'm'}, - {"key_lookdown", &key_lookdown, 'b'}, - {"key_lookcenter", &key_lookcenter, 'n'}, - {"key_invleft", &key_invleft, '['}, - {"key_invright", &key_invright, ']'}, - {"key_useartifact", &key_useartifact, 13}, - - {"key_fire", &key_fire, ' ', 1}, - {"key_use", &key_use, 'x', 1}, - {"key_strafe", &key_strafe, 'c', 1}, - {"key_speed", &key_speed, 'z', 1}, -#endif - - {"use_mouse", &usemouse, 1}, - {"mouseb_fire", &mousebfire, 0}, - {"mouseb_strafe", &mousebstrafe, 1}, - {"mouseb_forward", &mousebforward, 2}, - {"mouseb_jump", &mousebjump, -1}, - - {"use_joystick", &usejoystick, 0}, - {"joyb_fire", &joybfire, 0}, - {"joyb_strafe", &joybstrafe, 1}, - {"joyb_use", &joybuse, 3}, - {"joyb_speed", &joybspeed, 2}, - {"joyb_jump", &joybjump, -1}, - - {"screenblocks", &screenblocks, 10}, - -#ifndef __NeXT__ - {"snd_channels", &snd_Channels, 3}, - {"snd_musicdevice", &snd_DesiredMusicDevice, 0}, - {"snd_sfxdevice", &snd_DesiredSfxDevice, 0}, - {"snd_sbport", &snd_SBport, 544}, - {"snd_sbirq", &snd_SBirq, -1}, - {"snd_sbdma", &snd_SBdma, -1}, - {"snd_mport", &snd_Mport, -1}, -#endif - - {"usegamma", &usegamma, 0}, - -#define DEFAULT_SAVEPATH "hexndata/" - - {"savedir", (int *) &SavePath, (int) DEFAULT_SAVEPATH}, - - {"messageson", (int *) &messageson, 1}, - - {"chatmacro0", (int *) &chat_macros[0], (int) HUSTR_CHATMACRO0}, - {"chatmacro1", (int *) &chat_macros[1], (int) HUSTR_CHATMACRO1}, - {"chatmacro2", (int *) &chat_macros[2], (int) HUSTR_CHATMACRO2}, - {"chatmacro3", (int *) &chat_macros[3], (int) HUSTR_CHATMACRO3}, - {"chatmacro4", (int *) &chat_macros[4], (int) HUSTR_CHATMACRO4}, - {"chatmacro5", (int *) &chat_macros[5], (int) HUSTR_CHATMACRO5}, - {"chatmacro6", (int *) &chat_macros[6], (int) HUSTR_CHATMACRO6}, - {"chatmacro7", (int *) &chat_macros[7], (int) HUSTR_CHATMACRO7}, - {"chatmacro8", (int *) &chat_macros[8], (int) HUSTR_CHATMACRO8}, - {"chatmacro9", (int *) &chat_macros[9], (int) HUSTR_CHATMACRO9} -}; - -int numdefaults; -char defaultfile[128]; - -/* -============== -= -= M_SaveDefaults -= -============== -*/ - -void M_SaveDefaults(void) -{ - int i, v; - FILE *f; - - f = fopen(defaultfile, "w"); - if (!f) - return; // can't write the file, but don't complain - - for (i = 0; i < numdefaults; i++) - { -#ifdef __WATCOMC__ - if (defaults[i].scantranslate) - defaults[i].location = &defaults[i].untranslated; -#endif - if (defaults[i].defaultvalue > -0xfff - && defaults[i].defaultvalue < 0xfff) - { - v = *defaults[i].location; - fprintf(f, "%s\t\t%i\n", defaults[i].name, v); - } - else - { - fprintf(f, "%s\t\t\"%s\"\n", defaults[i].name, - *(char **) (defaults[i].location)); - } - } - - fclose(f); -} - -//========================================================================== -// -// M_LoadDefaults -// -//========================================================================== - -extern byte scantokey[128]; - -void M_LoadDefaults(char *fileName) -{ - int i; - int len; - FILE *f; - char def[80]; - char strparm[100]; - char *newstring; - int parm; - boolean isstring; - - // Set everything to base values - numdefaults = sizeof(defaults) / sizeof(defaults[0]); - for (i = 0; i < numdefaults; i++) - { - *defaults[i].location = defaults[i].defaultvalue; - } - - // Check for a custom config file - i = M_CheckParm("-config"); - if (i && i < myargc - 1) - { - strcpy(defaultfile, myargv[i + 1]); - ST_Message("config file: %s\n", defaultfile); - } - else if (cdrom) - { - sprintf(defaultfile, "c:\\hexndata\\%s", fileName); - } - else - { - strcpy(defaultfile, fileName); - } - - // Scan the config file - f = fopen(defaultfile, "r"); - if (f) - { - while (!feof(f)) - { - isstring = false; - if (fscanf(f, "%79s %[^\n]\n", def, strparm) == 2) - { - if (strparm[0] == '"') - { - // Get a string default - isstring = true; - len = strlen(strparm); - newstring = (char *) malloc(len); - if (newstring == NULL) - I_Error("can't malloc newstring"); - strparm[len - 1] = 0; - strcpy(newstring, strparm + 1); - } - else if (strparm[0] == '0' && strparm[1] == 'x') - { - sscanf(strparm + 2, "%x", &parm); - } - else - { - sscanf(strparm, "%i", &parm); - } - for (i = 0; i < numdefaults; i++) - { - if (!strcmp(def, defaults[i].name)) - { - if (!isstring) - { - *defaults[i].location = parm; - } - else - { - *defaults[i].location = (int) newstring; - } - break; - } - } - } - } - fclose(f); - } - -#ifdef __WATCOMC__ - // Translate the key scancodes - for (i = 0; i < numdefaults; i++) - { - if (defaults[i].scantranslate) - { - parm = *defaults[i].location; - defaults[i].untranslated = parm; - *defaults[i].location = scantokey[parm]; - } - } -#endif -} - diff --git a/src/hexen/mn_menu.c b/src/hexen/mn_menu.c index 46c083a6..df14e4d4 100644 --- a/src/hexen/mn_menu.c +++ b/src/hexen/mn_menu.c @@ -126,7 +126,6 @@ void MN_LoadSlotText(void); // EXTERNAL DATA DECLARATIONS ---------------------------------------------- extern int detailLevel; -extern int screenblocks; extern char *SavePath; extern int key_speed, key_strafe; extern boolean gamekeydown[256]; // The NUMKEYS macro is local to g_game @@ -135,7 +134,7 @@ extern boolean gamekeydown[256]; // The NUMKEYS macro is local to g_game boolean MenuActive; int InfoType; -boolean messageson; +int messageson = true; boolean mn_SuicideConsole; // PRIVATE DATA DEFINITIONS ------------------------------------------------ diff --git a/src/hexen/p_inter.c b/src/hexen/p_inter.c index bdc0f576..45ce3cd3 100644 --- a/src/hexen/p_inter.c +++ b/src/hexen/p_inter.c @@ -70,8 +70,6 @@ static void TryPickupWeaponPiece(player_t * player, pclass_t matchClass, void P_SetMessage(player_t * player, char *message, boolean ultmsg) { - extern boolean messageson; - if ((player->ultimateMessage || !messageson) && !ultmsg) { return; @@ -106,8 +104,6 @@ void P_SetMessage(player_t * player, char *message, boolean ultmsg) void P_SetYellowMessage(player_t * player, char *message, boolean ultmsg) { - extern boolean messageson; - if ((player->ultimateMessage || !messageson) && !ultmsg) { return; diff --git a/src/hexen/r_local.h b/src/hexen/r_local.h index 187e709f..3c51d1af 100644 --- a/src/hexen/r_local.h +++ b/src/hexen/r_local.h @@ -333,6 +333,7 @@ extern angle_t rw_normalangle; // // R_main.c // +extern int screenblocks; extern int viewwidth, viewheight, viewwindowx, viewwindowy; extern int centerx, centery; extern int flyheight; diff --git a/src/hexen/r_main.c b/src/hexen/r_main.c index 2427f5f4..05b5a0c7 100644 --- a/src/hexen/r_main.c +++ b/src/hexen/r_main.c @@ -663,7 +663,7 @@ void R_ExecuteSetViewSize(void) */ int detailLevel; -int screenblocks; +int screenblocks = 10; void R_Init(void) { diff --git a/src/hexen/s_sound.c b/src/hexen/s_sound.c index f8601e1a..a0f044e7 100644 --- a/src/hexen/s_sound.c +++ b/src/hexen/s_sound.c @@ -71,11 +71,9 @@ static byte *SoundCurve; static char ArchivePath[128]; -extern int snd_MusicDevice; -extern int snd_SfxDevice; -extern int snd_MaxVolume; -extern int snd_MusicVolume; -extern int snd_Channels; +int snd_MaxVolume; // maximum volume for sound +int snd_MusicVolume; // maximum volume for music +int snd_Channels = 3; extern int startepisode; extern int startmap; diff --git a/src/hexen/s_sound.h b/src/hexen/s_sound.h index 98ef48ea..88e946bf 100644 --- a/src/hexen/s_sound.h +++ b/src/hexen/s_sound.h @@ -77,6 +77,7 @@ typedef struct extern int snd_MaxVolume; extern int snd_MusicVolume; +extern int snd_Channels; void S_Start(void); void S_StartSound(mobj_t * origin, int sound_id); diff --git a/src/hexen/sb_bar.c b/src/hexen/sb_bar.c index 34f4e4fe..f567ce11 100644 --- a/src/hexen/sb_bar.c +++ b/src/hexen/sb_bar.c @@ -2099,7 +2099,7 @@ static void CheatClassFunc2(player_t * player, Cheat_t * cheat) static void CheatVersionFunc(player_t * player, Cheat_t * cheat) { - P_SetMessage(player, VERSIONTEXT, true); + P_SetMessage(player, HEXEN_VERSIONTEXT, true); } static void CheatDebugFunc(player_t * player, Cheat_t * cheat) diff --git a/src/hexen/st_start.c b/src/hexen/st_start.c index 317bf7bd..7eadb845 100644 --- a/src/hexen/st_start.c +++ b/src/hexen/st_start.c @@ -34,6 +34,7 @@ #include "h2def.h" #include "i_system.h" +#include "s_sound.h" #include "st_start.h" diff --git a/src/hexen/sv_save.c b/src/hexen/sv_save.c index a69cdd71..ded8f4b0 100644 --- a/src/hexen/sv_save.c +++ b/src/hexen/sv_save.c @@ -150,7 +150,9 @@ extern acsInfo_t *ACSInfo; // PUBLIC DATA DEFINITIONS ------------------------------------------------- -char *SavePath; +#define DEFAULT_SAVEPATH "hexndata/" + +char *SavePath = DEFAULT_SAVEPATH; // PRIVATE DATA DEFINITIONS ------------------------------------------------ diff --git a/src/i_sdlsound.c b/src/i_sdlsound.c index b26fb1b2..c4261751 100644 --- a/src/i_sdlsound.c +++ b/src/i_sdlsound.c @@ -561,6 +561,11 @@ static void I_SDL_UpdateSoundParams(int handle, int vol, int sep) left = ((254 - sep) * vol) / 127; right = ((sep) * vol) / 127; + if (left < 0) left = 0; + else if ( left > 255) left = 255; + if (right < 0) right = 0; + else if (right > 255) right = 255; + Mix_SetPanning(handle, left, right); } diff --git a/src/i_sound.c b/src/i_sound.c index 439f8689..bcdac459 100644 --- a/src/i_sound.c +++ b/src/i_sound.c @@ -251,6 +251,7 @@ void I_UpdateSound(void) static void CheckVolumeSeparation(int *sep, int *vol) { +return; if (*sep < 0) { *sep = 0; diff --git a/src/m_config.c b/src/m_config.c index b036121c..69cd3b16 100644 --- a/src/m_config.c +++ b/src/m_config.c @@ -178,6 +178,12 @@ static default_t doom_defaults_list[] = CONFIG_VARIABLE_KEY(key_straferight), + //! + // Keyboard key to jump. + // + + CONFIG_VARIABLE_KEY(key_jump), + //! // Keyboard key to fly upward. // @@ -284,6 +290,12 @@ static default_t doom_defaults_list[] = CONFIG_VARIABLE_INT(mouseb_forward), + //! + // Mouse button to jump. + // + + CONFIG_VARIABLE_INT(mouseb_jump), + //! // If non-zero, joystick input is enabled. // @@ -316,6 +328,12 @@ static default_t doom_defaults_list[] = CONFIG_VARIABLE_INT(joyb_speed), + //! + // Joystick button to jump. + // + + CONFIG_VARIABLE_INT(joyb_jump), + //! // Screen size, range 3-11. // @@ -387,6 +405,20 @@ static default_t doom_defaults_list[] = CONFIG_VARIABLE_INT(usegamma), + //! + // Directory in which to store savegames. + // + + CONFIG_VARIABLE_STRING(savedir), + + //! + // Controls whether messages are displayed in the heads-up display. + // If this has a non-zero value, messages are displayed. + // + + CONFIG_VARIABLE_INT(messageson), + + //! // Multiplayer chat macro: message to send when alt+0 is pressed. // diff --git a/src/m_controls.c b/src/m_controls.c index 62cad830..f24f6dda 100644 --- a/src/m_controls.c +++ b/src/m_controls.c @@ -25,10 +25,10 @@ #include "doomkeys.h" #include "m_config.h" - -// -// Keyboard controls -// + +// +// Keyboard controls +// int key_right = KEY_RIGHTARROW; int key_left = KEY_LEFTARROW; @@ -58,6 +58,12 @@ int key_invleft = '['; int key_invright = ']'; int key_useartifact = KEY_ENTER; +// +// Hexen key controls +// + +int key_jump = '/'; + // // Mouse controls // @@ -66,6 +72,8 @@ int mousebfire = 0; int mousebstrafe = 1; int mousebforward = 2; +int mousebjump = -1; + int mousebstrafeleft = -1; int mousebstraferight = -1; int mousebbackward = -1; @@ -83,6 +91,8 @@ int joybspeed = 2; int joybstrafeleft = -1; int joybstraferight = -1; +int joybjump = -1; + // Control whether if a mouse button is double clicked, it acts like // "use" has been pressed @@ -140,3 +150,10 @@ void M_BindHereticControls(void) M_BindVariable("key_useartifact", &key_useartifact); } +void M_BindHexenControls(void) +{ + M_BindVariable("key_jump", &key_jump); + M_BindVariable("mouseb_jump", &mousebjump); + M_BindVariable("joyb_jump", &joybjump); +} + diff --git a/src/m_controls.h b/src/m_controls.h index a4f19685..eb752ea2 100644 --- a/src/m_controls.h +++ b/src/m_controls.h @@ -45,11 +45,15 @@ extern int key_lookcenter; extern int key_invleft; extern int key_invright; extern int key_useartifact; + +extern int key_jump; extern int mousebfire; extern int mousebstrafe; extern int mousebforward; +extern int mousebjump; + extern int mousebstrafeleft; extern int mousebstraferight; extern int mousebbackward; @@ -59,6 +63,9 @@ extern int joybfire; extern int joybstrafe; extern int joybuse; extern int joybspeed; + +extern int joybjump; + extern int joybstrafeleft; extern int joybstraferight; @@ -66,6 +73,7 @@ extern int dclick_use; void M_BindBaseControls(void); void M_BindHereticControls(void); +void M_BindHexenControls(void); #endif /* #ifndef __M_CONTROLS_H__ */ -- cgit v1.2.3