diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 055636870..542717654 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -773,6 +773,7 @@ set (PCH_SOURCES common/searchpaths.cpp common/initfs.cpp common/openaudio.cpp + common/optionmenu/optionmenu.cpp common/2d/v_2ddrawer.cpp common/2d/v_draw.cpp diff --git a/source/blood/src/menu.cpp b/source/blood/src/menu.cpp index bc57a8afb..d21148a08 100644 --- a/source/blood/src/menu.cpp +++ b/source/blood/src/menu.cpp @@ -244,7 +244,7 @@ CGameMenuItem7EE34 itemOption2("VIDEO MODE...", 3, 0, 160, 320, 1); CGameMenuItemChain itemChainParentalLock("PARENTAL LOCK", 3, 0, 170, 320, 1, &menuParentalLock, -1, NULL, 0); CGameMenuItemTitle itemControlsTitle("CONTROLS", 1, 160, 20, 2038); -CGameMenuItemSliderFloat sliderMouseSpeed("Mouse Sensitivity:", 1, 10, 70, 300, CONTROL_MouseSensitivity, 0.5f, 16.f, 0.5f, SetMouseSensitivity, -1,-1); +CGameMenuItemSliderFloat sliderMouseSpeed("Mouse Sensitivity:", 1, 10, 70, 300, in_mousesensitivity, 0.5f, 16.f, 0.5f, SetMouseSensitivity, -1,-1); CGameMenuItemZBool boolMouseFlipped("Invert Mouse Aim:", 1, 10, 90, 300, in_mouseflip, SetMouseAimFlipped, NULL, NULL); CGameMenuItemSlider sliderTurnSpeed("Key Turn Speed:", 1, 10, 110, 300, gTurnSpeed, 64, 128, 4, SetTurnSpeed, -1, -1); CGameMenuItemChain itemChainKeyList("Configure Keys...", 1, 0, 130, 320, 1, &menuKeys, -1, NULL, 0); @@ -492,9 +492,9 @@ CGameMenuItemChain itemOptionsDisplayModeApply("APPLY CHANGES", 3, 66, 125, 180, void PreDrawDisplayColor(CGameMenuItem *); CGameMenuItemTitle itemOptionsDisplayColorTitle("COLOR CORRECTION", 1, 160, 20, -1); -CGameMenuItemSliderFloat itemOptionsDisplayColorGamma("GAMMA:", 3, 66, 140, 180, &g_videoGamma, 0.3f, 4.f, 0.1f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); -CGameMenuItemSliderFloat itemOptionsDisplayColorContrast("CONTRAST:", 3, 66, 150, 180, &g_videoContrast, 0.1f, 2.7f, 0.05f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); -CGameMenuItemSliderFloat itemOptionsDisplayColorBrightness("BRIGHTNESS:", 3, 66, 160, 180, &g_videoBrightness, -0.8f, 0.8f, 0.05f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); +CGameMenuItemSliderFloat itemOptionsDisplayColorGamma("GAMMA:", 3, 66, 140, 180, &vid_gamma.Value, 0.3f, 4.f, 0.1f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); +CGameMenuItemSliderFloat itemOptionsDisplayColorContrast("CONTRAST:", 3, 66, 150, 180, &vid_contrast.Value, 0.1f, 2.7f, 0.05f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); +CGameMenuItemSliderFloat itemOptionsDisplayColorBrightness("BRIGHTNESS:", 3, 66, 160, 180, &vid_brightness.Value, -0.8f, 0.8f, 0.05f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); CGameMenuItemSliderFloat itemOptionsDisplayColorVisibility("VISIBILITY:", 3, 66, 170, 180, &r_ambientlight.Value, 0.125f, 4.f, 0.125f, UpdateVideoColorMenu, -1, -1, kMenuSliderValue); CGameMenuItemChain itemOptionsDisplayColorReset("RESET TO DEFAULTS", 3, 66, 180, 180, 0, NULL, 0, ResetVideoColor, 0); @@ -550,7 +550,6 @@ CGameMenuItemTitle itemOptionsDisplayPolymostTitle("POLYMOST SETUP", 1, 160, 20, CGameMenuItemZCycle itemOptionsDisplayPolymostTextureMode("TEXTURE MODE:", 3, 66, 60, 180, 0, UpdateTextureMode, pzTextureModeStrings, 2, 0); CGameMenuItemZCycle itemOptionsDisplayPolymostAnisotropy("ANISOTROPY:", 3, 66, 70, 180, 0, UpdateAnisotropy, pzAnisotropyStrings, 6, 0); CGameMenuItemZBool itemOptionsDisplayPolymostTrueColorTextures("TRUE COLOR TEXTURES:", 3, 66, 80, 180, 0, UpdateTrueColorTextures, NULL, NULL); -CGameMenuItemZCycle itemOptionsDisplayPolymostTexQuality("GL TEXTURE QUALITY:", 3, 66, 90, 180, 0, UpdateTexQuality, pzTexQualityStrings, 3, 0); CGameMenuItemZBool itemOptionsDisplayPolymostPreloadCache("PRE-LOAD MAP TEXTURES:", 3, 66, 100, 180, 0, UpdatePreloadCache, NULL, NULL); CGameMenuItemZBool itemOptionsDisplayPolymostDetailTex("DETAIL TEXTURES:", 3, 66, 120, 180, 0, UpdateDetailTex, NULL, NULL); CGameMenuItemZBool itemOptionsDisplayPolymostGlowTex("GLOW TEXTURES:", 3, 66, 130, 180, 0, UpdateGlowTex, NULL, NULL); @@ -642,13 +641,13 @@ void SetupMouseButtonMenu(CGameMenuItemChain *pItem); CGameMenuItemTitle itemOptionsControlMouseTitle("MOUSE SETUP", 1, 160, 20, 2038); CGameMenuItemChain itemOptionsControlMouseButton("BUTTON ASSIGNMENT", 3, 66, 60, 180, 0, &menuOptionsControlMouseButtonAssignment, 0, SetupMouseButtonMenu, 0); -CGameMenuItemSliderFloat itemOptionsControlMouseSensitivity("SENSITIVITY:", 3, 66, 70, 180, &CONTROL_MouseSensitivity, 0.5f, 16.f, 0.5f, SetMouseSensitivity, -1, -1, kMenuSliderValue); +CGameMenuItemSliderFloat itemOptionsControlMouseSensitivity("SENSITIVITY:", 3, 66, 70, 180, &in_mousesensitivity.Value, 0.5f, 16.f, 0.5f, SetMouseSensitivity, -1, -1, kMenuSliderValue); CGameMenuItemZBool itemOptionsControlMouseAimFlipped("INVERT AIMING:", 3, 66, 80, 180, false, SetMouseAimFlipped, NULL, NULL); CGameMenuItemZBool itemOptionsControlMouseFilterInput("FILTER INPUT:", 3, 66, 90, 180, false, SetMouseFilterInput, NULL, NULL); CGameMenuItemZBool itemOptionsControlMouseAimMode("AIMING TYPE:", 3, 66, 100, 180, false, SetMouseAimMode, "HOLD", "TOGGLE"); CGameMenuItemZBool itemOptionsControlMouseVerticalAim("VERTICAL AIMING:", 3, 66, 110, 180, false, SetMouseVerticalAim, NULL, NULL); -CGameMenuItemSlider itemOptionsControlMouseXScale("X-SCALE:", 3, 66, 120, 180, (int*)&MouseAnalogueScale[0], 0, 65536, 1024, SetMouseXScale, -1, -1, kMenuSliderQ16); -CGameMenuItemSlider itemOptionsControlMouseYScale("Y-SCALE:", 3, 66, 130, 180, (int*)&MouseAnalogueScale[1], 0, 65536, 1024, SetMouseYScale, -1, -1, kMenuSliderQ16); +CGameMenuItemSlider itemOptionsControlMouseXScale("X-SCALE:", 3, 66, 120, 180, (int*)&in_mousescalex, 0, 65536, 1024, SetMouseXScale, -1, -1, kMenuSliderQ16); +CGameMenuItemSlider itemOptionsControlMouseYScale("Y-SCALE:", 3, 66, 130, 180, (int*)&in_mousescaley, 0, 65536, 1024, SetMouseYScale, -1, -1, kMenuSliderQ16); CGameMenuItemZCycle itemOptionsControlMouseDigitalUp("DIGITAL UP", 3, 66, 140, 180, 0, SetMouseDigitalAxis, NULL, 0, 0, true); CGameMenuItemZCycle itemOptionsControlMouseDigitalDown("DIGITAL DOWN", 3, 66, 150, 180, 0, SetMouseDigitalAxis, NULL, 0, 0, true); CGameMenuItemZCycle itemOptionsControlMouseDigitalLeft("DIGITAL LEFT", 3, 66, 160, 180, 0, SetMouseDigitalAxis, NULL, 0, 0, true); @@ -748,7 +747,7 @@ void SetupMessagesMenu(void) void SetupControlsMenu(void) { - sliderMouseSpeed.fValue = ClipRangeF(CONTROL_MouseSensitivity, sliderMouseSpeed.fRangeLow, sliderMouseSpeed.fRangeHigh); + sliderMouseSpeed.fValue = ClipRangeF(in_mousesensitivity, sliderMouseSpeed.fRangeLow, sliderMouseSpeed.fRangeHigh); sliderTurnSpeed.nValue = ClipRange(gTurnSpeed, sliderTurnSpeed.nRangeLow, sliderTurnSpeed.nRangeHigh); boolMouseFlipped.at20 = in_mouseflip; menuControls.Add(&itemControlsTitle, false); @@ -1230,7 +1229,6 @@ void SetupOptionsMenu(void) //menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTextureMode, true); //menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostAnisotropy, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTrueColorTextures, true); - menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTexQuality, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostPreloadCache, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDetailTex, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostGlowTex, false); @@ -1238,7 +1236,6 @@ void SetupOptionsMenu(void) menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDeliriumBlur, false); menuOptionsDisplayPolymost.Add(&itemBloodQAV, false); - itemOptionsDisplayPolymostTexQuality.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostPreloadCache.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostDetailTex.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostGlowTex.pPreDrawCallback = PreDrawDisplayPolymost; @@ -1656,9 +1653,9 @@ void PreDrawVideoModeMenu(CGameMenuItem *pItem) void UpdateVideoColorMenu(CGameMenuItemSliderFloat *pItem) { UNREFERENCED_PARAMETER(pItem); - g_videoGamma = itemOptionsDisplayColorGamma.fValue; - g_videoContrast = itemOptionsDisplayColorContrast.fValue; - g_videoBrightness = itemOptionsDisplayColorBrightness.fValue; + vid_gamma = itemOptionsDisplayColorGamma.fValue; + vid_contrast = itemOptionsDisplayColorContrast.fValue; + vid_brightness = itemOptionsDisplayColorBrightness.fValue; r_ambientlight = itemOptionsDisplayColorVisibility.fValue; } @@ -1673,9 +1670,9 @@ void PreDrawDisplayColor(CGameMenuItem *pItem) void ResetVideoColor(CGameMenuItemChain *pItem) { UNREFERENCED_PARAMETER(pItem); - g_videoGamma = DEFAULT_GAMMA; - g_videoContrast = DEFAULT_CONTRAST; - g_videoBrightness = DEFAULT_BRIGHTNESS; + vid_gamma = 1.f; + vid_contrast = 1.f; + vid_brightness = 0.f; r_ambientlight = 1.f; } @@ -1702,7 +1699,6 @@ void SetupVideoPolymostMenu(CGameMenuItemChain *pItem) } } itemOptionsDisplayPolymostTrueColorTextures.at20 = hw_hightile; - itemOptionsDisplayPolymostTexQuality.m_nFocus = r_downsize; itemOptionsDisplayPolymostPreloadCache.at20 = r_precache; itemOptionsDisplayPolymostDetailTex.at20 = hw_detailmapping; itemOptionsDisplayPolymostGlowTex.at20 = hw_glowmapping; @@ -1737,13 +1733,6 @@ void DoModeChange(void) } #ifdef USE_OPENGL -void UpdateTexQuality(CGameMenuItemZCycle *pItem) -{ - r_downsize = pItem->m_nFocus; - r_downsizevar = r_downsize; - DoModeChange(); -} - void UpdatePreloadCache(CGameMenuItemZBool *pItem) { r_precache = pItem->at20; @@ -1771,9 +1760,7 @@ void UpdateDeliriumBlur(CGameMenuItemZBool *pItem) void PreDrawDisplayPolymost(CGameMenuItem *pItem) { - if (pItem == &itemOptionsDisplayPolymostTexQuality) - pItem->bEnable = hw_hightile; - else if (pItem == &itemOptionsDisplayPolymostPreloadCache) + if (pItem == &itemOptionsDisplayPolymostPreloadCache) pItem->bEnable = hw_hightile; else if (pItem == &itemOptionsDisplayPolymostDetailTex) pItem->bEnable = hw_hightile; @@ -1912,14 +1899,12 @@ void SetMouseVerticalAim(CGameMenuItemZBool *pItem) void SetMouseXScale(CGameMenuItemSlider *pItem) { - MouseAnalogueScale[0] = pItem->nValue; - CONTROL_SetAnalogAxisScale(0, pItem->nValue, controldevice_mouse); + in_mousescalex = pItem->nValue; } void SetMouseYScale(CGameMenuItemSlider *pItem) { - MouseAnalogueScale[1] = pItem->nValue; - CONTROL_SetAnalogAxisScale(1, pItem->nValue, controldevice_mouse); + in_mousescaley = pItem->nValue; } void SetMouseDigitalAxis(CGameMenuItemZCycle *pItem) diff --git a/source/blood/src/screentext.cpp b/source/blood/src/screentext.cpp index 7084156f0..8267aea4d 100644 --- a/source/blood/src/screentext.cpp +++ b/source/blood/src/screentext.cpp @@ -1077,7 +1077,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p) { int32_t cq = 0; - if (ud.fta_on == 0 || q < 0 || !(p->gm & MODE_GAME)) + if (hud_messages == 0 || q < 0 || !(p->gm & MODE_GAME)) return; if (q & MAXQUOTES) diff --git a/source/build/include/baselayer.h b/source/build/include/baselayer.h index bbed232d0..e509faa69 100644 --- a/source/build/include/baselayer.h +++ b/source/build/include/baselayer.h @@ -25,10 +25,12 @@ extern char modechange; extern char nogl; extern int32_t swapcomplete; + EXTERN_CVAR(Int, r_borderless); +EXTERN_CVAR(Bool, r_usenewaspect) // video -extern int32_t r_usenewaspect, newaspect_enable; +extern int32_t newaspect_enable; extern int32_t r_fpgrouscan; extern int32_t setaspect_new_use_dimen; extern uint32_t r_screenxy; @@ -66,13 +68,7 @@ extern int32_t lockcount; } while(0) #endif -extern float g_videoGamma, g_videoContrast, g_videoBrightness; - -#define DEFAULT_GAMMA 1.0f -#define DEFAULT_CONTRAST 1.0f -#define DEFAULT_BRIGHTNESS 0.0f - -#define GAMMA_CALC ((int32_t)(min(max((float)((g_videoGamma - 1.0f) * 10.0f), 0.f), 15.f))) +#define GAMMA_CALC ((int32_t)(min(max((float)((vid_gamma - 1.0f) * 10.0f), 0.f), 15.f))) #ifdef USE_OPENGL extern int osdcmd_glinfo(osdcmdptr_t parm); diff --git a/source/build/include/build.h b/source/build/include/build.h index 7a6357275..75999d0c1 100644 --- a/source/build/include/build.h +++ b/source/build/include/build.h @@ -1095,7 +1095,6 @@ EXTERN_CVAR(Bool, r_voxels) extern int32_t r_parallaxskyclamping; extern int32_t r_downsize; -extern int32_t r_downsizevar; extern int32_t mdtims, omdtims; extern int32_t glrendmode; diff --git a/source/build/src/engine.cpp b/source/build/src/engine.cpp index e35f25402..c11e2c805 100644 --- a/source/build/src/engine.cpp +++ b/source/build/src/engine.cpp @@ -132,16 +132,13 @@ static int32_t beforedrawrooms = 1; static int32_t oxdimen = -1, oviewingrange = -1, oxyaspect = -1; // r_usenewaspect is the cvar, newaspect_enable to trigger the new behaviour in the code -int32_t r_usenewaspect = 1, newaspect_enable=0; +CVAR(Bool, r_usenewaspect, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG); +int32_t newaspect_enable=0; uint32_t r_screenxy = 0; int32_t r_fpgrouscan = 1; int32_t globalflags; -float g_videoGamma = DEFAULT_GAMMA; -float g_videoContrast = DEFAULT_CONTRAST; -float g_videoBrightness = DEFAULT_BRIGHTNESS; - //Textured Map variables static char globalpolytype; static int16_t **dotp1, **dotp2; diff --git a/source/build/src/polymost.cpp b/source/build/src/polymost.cpp index 21389cbcd..a3a0431df 100644 --- a/source/build/src/polymost.cpp +++ b/source/build/src/polymost.cpp @@ -138,8 +138,6 @@ int32_t glprojectionhacks = 2; static FHardwareTexture *polymosttext = 0; int32_t glrendmode = REND_POLYMOST; -int32_t r_downsize = 0; -int32_t r_downsizevar = -1; int32_t r_scenebrightness = 0; int32_t r_rortexture = 0; diff --git a/source/common/console/c_cvars.cpp b/source/common/console/c_cvars.cpp index 66f709d0b..687fefb58 100644 --- a/source/common/console/c_cvars.cpp +++ b/source/common/console/c_cvars.cpp @@ -81,17 +81,17 @@ FBaseCVar::FBaseCVar (const char *var_name, uint32_t flags, void (*callback)(FBa */ } - FBaseCVar *var; - var = FindCVar (var_name, NULL); m_Callback = callback; Flags = 0; VarName = ""; Description = descr; + FBaseCVar* var = nullptr; if (var_name) { + var = FindCVar(var_name, NULL); C_AddTabCommand (var_name); VarName = var_name; m_Next = CVars; diff --git a/source/common/console/c_cvars.h b/source/common/console/c_cvars.h index a71caa483..641af4605 100644 --- a/source/common/console/c_cvars.h +++ b/source/common/console/c_cvars.h @@ -120,6 +120,13 @@ public: void SetArchiveBit () { Flags |= CVAR_ARCHIVE; } void MarkUnsafe(); + int ToInt() + { + ECVarType vt; + auto val = GetFavoriteRep(&vt); + return ToInt(val, vt); + } + virtual ECVarType GetRealType () const = 0; virtual const char *GetHumanString(int precision=-1) const; @@ -448,6 +455,9 @@ void C_ForgetCVars (void); #define CVARD_NAMED(type,name,varname,def,flags, descr) \ F##type##CVar varname (#name, def, flags, nullptr, descr); +#define CVAR_UNAMED(type,varname) \ +F##type##CVar varname (nullptr, 0, 0, nullptr, nullptr); + extern FBaseCVar *CVars; #endif //__C_CVARS_H__ diff --git a/source/common/gamecontrol.cpp b/source/common/gamecontrol.cpp index 5125df0bf..94cd0b901 100644 --- a/source/common/gamecontrol.cpp +++ b/source/common/gamecontrol.cpp @@ -465,7 +465,6 @@ int CONFIG_SetMapBestTime(uint8_t const* const mapmd4, int32_t tm) int32_t MouseDigitalFunctions[MAXMOUSEAXES][2]; int32_t MouseAnalogueAxes[MAXMOUSEAXES]; -int32_t MouseAnalogueScale[MAXMOUSEAXES]; int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2]; int32_t JoystickDigitalFunctions[MAXJOYAXES][2]; int32_t JoystickAnalogueAxes[MAXJOYAXES]; @@ -612,41 +611,6 @@ const char* CONFIG_AnalogNumToName(int32_t func) void CONFIG_SetupMouse(void) { - const char* val; - FString section = currentGame + ".MouseSettings"; - if (!GameConfig->SetSection(section)) return; - - // map over the axes - for (int i = 0; i < MAXMOUSEAXES; i++) - { - section.Format("MouseAnalogAxes%d", i); - val = GameConfig->GetValueForKey(section); - if (val) - MouseAnalogueAxes[i] = CONFIG_AnalogNameToNum(val); - - section.Format("MouseDigitalAxes%d_0", i); - val = GameConfig->GetValueForKey(section); - if (val) - MouseDigitalFunctions[i][0] = buttonMap.FindButtonIndex(val); - - section.Format("MouseDigitalAxes%d_1", i); - val = GameConfig->GetValueForKey(section); - if (val) - MouseDigitalFunctions[i][1] = buttonMap.FindButtonIndex(val); - - section.Format("MouseAnalogScale%d", i); - val = GameConfig->GetValueForKey(section); - if (val) - MouseAnalogueScale[i] = (int32_t)strtoull(val, nullptr, 0); - } - - for (int i = 0; i < MAXMOUSEAXES; i++) - { - CONTROL_MapAnalogAxis(i, MouseAnalogueAxes[i], controldevice_mouse); - CONTROL_MapDigitalAxis(i, MouseDigitalFunctions[i][0], 0, controldevice_mouse); - CONTROL_MapDigitalAxis(i, MouseDigitalFunctions[i][1], 1, controldevice_mouse); - CONTROL_SetAnalogAxisScale(i, MouseAnalogueScale[i], controldevice_mouse); - } CONTROL_MouseEnabled = (in_mouse && CONTROL_MousePresent); } @@ -1043,9 +1007,6 @@ void CONFIG_InitMouseAndController() for (int i = 0; i < MAXMOUSEAXES; i++) { - MouseAnalogueScale[i] = DEFAULTMOUSEANALOGUESCALE; - CONTROL_SetAnalogAxisScale(i, MouseAnalogueScale[i], controldevice_mouse); - MouseDigitalFunctions[i][0] = buttonMap.FindButtonIndex(mousedigitaldefaults[i * 2]); MouseDigitalFunctions[i][1] = buttonMap.FindButtonIndex(mousedigitaldefaults[i * 2 + 1]); CONTROL_MapDigitalAxis(i, MouseDigitalFunctions[i][0], 0, controldevice_mouse); @@ -1071,34 +1032,7 @@ void CONFIG_PutNumber(const char* key, int number) void CONFIG_WriteControllerSettings() { FString buf; - if (in_mouse) - { - FString section = currentGame + ".MouseSettings"; - GameConfig->SetSection(section); - for (int i = 0; i < MAXMOUSEAXES; i++) - { - if (CONFIG_AnalogNumToName(MouseAnalogueAxes[i])) - { - buf.Format("MouseAnalogAxes%d", i); - GameConfig->SetValueForKey(buf, CONFIG_AnalogNumToName(MouseAnalogueAxes[i])); - } - if (buttonMap.GetButtonName(MouseDigitalFunctions[i][0])) - { - buf.Format("MouseDigitalAxes%d_0", i); - GameConfig->SetValueForKey(buf, buttonMap.GetButtonName(MouseDigitalFunctions[i][0])); - } - - if (buttonMap.GetButtonName(MouseDigitalFunctions[i][1])) - { - buf.Format("MouseDigitalAxes%d_1", i); - GameConfig->SetValueForKey(buf, buttonMap.GetButtonName(MouseDigitalFunctions[i][1])); - } - - buf.Format("MouseAnalogScale%d", i); - CONFIG_PutNumber(buf, MouseAnalogueScale[i]); - } - } if (in_joystick) { diff --git a/source/common/gamecontrol.h b/source/common/gamecontrol.h index 852109816..61d3a1068 100644 --- a/source/common/gamecontrol.h +++ b/source/common/gamecontrol.h @@ -36,7 +36,6 @@ void CONFIG_SetDefaultKeys(const char *defbinds); extern int32_t MouseDigitalFunctions[MAXMOUSEAXES][2]; extern int32_t MouseAnalogueAxes[MAXMOUSEAXES]; -extern int32_t MouseAnalogueScale[MAXMOUSEAXES]; extern int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2]; extern int32_t JoystickDigitalFunctions[MAXJOYAXES][2]; extern int32_t JoystickAnalogueAxes[MAXJOYAXES]; diff --git a/source/common/gamecvars.cpp b/source/common/gamecvars.cpp index ed29b4cbf..33f591620 100644 --- a/source/common/gamecvars.cpp +++ b/source/common/gamecvars.cpp @@ -317,7 +317,18 @@ CUSTOM_CVARD(Float, in_mousesensitivity, DEFAULTMOUSESENSITIVITY, CVAR_ARCHIVE|C { if (self < 0) self = 0; else if (self > 25) self = 25; - else CONTROL_MouseSensitivity = self; +} + +CUSTOM_CVARD(Int, in_mousescalex, 65536, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "changes the mouse sensitivity") +{ + if (self < -4) self = 4; + else if (self > 4) self = 4; +} + +CUSTOM_CVARD(Int, in_mousescaley, 65536, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "changes the mouse sensitivity") +{ + if (self < -4) self = 4; + else if (self > 4) self = 4; } @@ -457,6 +468,31 @@ CUSTOM_CVAR(String, playername, "Player", CVAR_ARCHIVE | CVAR_USERINFO) //Net_SendClientInfo(); This is in the client code. Todo. } +CUSTOM_CVARD(Float, vid_gamma, 1.f, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "adjusts gamma component of gamma ramp") +{ + if (self < 0) self = 0; + else if (self > 5) self = 5; + // todo: tell the system to update +} + +CUSTOM_CVARD(Float, vid_contrast, 1.f, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "adjusts contrast component of gamma ramp") +{ + if (self < 0) self = 0; + else if (self > 5) self = 5; + // todo: tell the system to update +} + +CUSTOM_CVARD(Float, vid_brightness, 0.f, CVAR_ARCHIVE | CVAR_GLOBALCONFIG, "adjusts brightness component of gamma ramp") +{ + if (self < 0) self = 0; + else if (self > 5) self = 5; + // todo: tell the system to update +} + +//{ "vid_contrast","adjusts contrast component of gamma ramp",(void *) &vid_contrast, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 }, +//{ "vid_brightness","adjusts brightness component of gamma ramp",(void *) &vid_brightness, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 }, + + CUSTOM_CVAR(String, rtsname, "", CVAR_ARCHIVE | CVAR_USERINFO) { RTS_Init(self); @@ -464,6 +500,17 @@ CUSTOM_CVAR(String, rtsname, "", CVAR_ARCHIVE | CVAR_USERINFO) CVAR(String, usermapfolder, "", CVAR_ARCHIVE); + +// Internal settings for demo recording and the multiplayer menu. These won't get saved and only are CVARs so that the menu code can use them. +CVAR(Bool, m_recstat, false, CVAR_NOSET) +CVAR(Int, m_coop, 0, CVAR_NOSET) +CVAR(Int, m_ffire, 1, CVAR_NOSET) +CVAR(Int, m_marker, 1, CVAR_NOSET) +CVAR(Int, m_level_number, 0, CVAR_NOSET) +CVAR(Int, m_noexits, 0, CVAR_NOSET) +CVAR(Int, playercolor, 0, CVAR_NOSET) +CVAR(Int, playerteam, 0, CVAR_NOSET) + #if 0 // These have to wait until the HUD code is cleaned up (no idea which may survive and which won't.) @@ -473,12 +520,10 @@ CVAR(String, usermapfolder, "", CVAR_ARCHIVE); // Currently unavailable due to dependency on an obsolete OpenGL feature { "deliriumblur", "enable/disable delirium blur effect(polymost)", (void *)&gDeliriumBlur, CVAR_BOOL, 0, 1 }, - // This needs some serious internal cleanup first, the implementation is all over the place and prone to whacking the user setting. - { "color", "changes player palette", (void *)&ud.color, CVAR_INT|CVAR_MULTI, 0, MAXPALOOKUPS-1 }, if (!Bstrcasecmp(parm->name, "color")) { - ud.color = G_CheckPlayerColor(ud.color); - g_player[0].ps->palookup = g_player[0].pcolor = ud.color; + playercolor = G_CheckPlayerColor(playercolor); + g_player[0].ps->palookup = g_player[0].pcolor = playercolor; } // This one gets changed at run time by the game code, so making it persistent does not work @@ -490,7 +535,7 @@ CVAR(String, usermapfolder, "", CVAR_ARCHIVE); { "skill","changes the game skill setting", (void *)&ud.m_player_skill, CVAR_INT|CVAR_FUNCPTR|CVAR_NOSAVE/*|CVAR_NOMULTI*/, 0, 5 }, // requires cleanup first - //{ "team","change team in multiplayer", (void *)&ud.team, CVAR_INT|CVAR_MULTI, 0, 3 }, + //{ "team","change team in multiplayer", (void *)&playerteam, CVAR_INT|CVAR_MULTI, 0, 3 }, // just as a reminder: /* @@ -505,12 +550,8 @@ CVAR(String, usermapfolder, "", CVAR_ARCHIVE); /* Baselayer CVARs. Some are pointless, some not worth bothering before the backend is swappewd out, the only relevant one was r_voxels. static osdcvardata_t cvars_engine[] = { - { "r_usenewaspect","enable/disable new screen aspect ratio determination code",(void *) &r_usenewaspect, CVAR_BOOL, 0, 1 }, { "r_screenaspect","if using r_usenewaspect and in fullscreen, screen aspect ratio in the form XXYY, e.g. 1609 for 16:9", (void *) &r_screenxy, SCREENASPECT_CVAR_TYPE, 0, 9999 }, - //{ "vid_gamma","adjusts gamma component of gamma ramp",(void *) &g_videoGamma, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 }, - //{ "vid_contrast","adjusts contrast component of gamma ramp",(void *) &g_videoContrast, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 }, - //{ "vid_brightness","adjusts brightness component of gamma ramp",(void *) &g_videoBrightness, CVAR_FLOAT|CVAR_FUNCPTR, 0, 10 }, }; */ diff --git a/source/common/gamecvars.h b/source/common/gamecvars.h index 12c3f6527..1b9265c47 100644 --- a/source/common/gamecvars.h +++ b/source/common/gamecvars.h @@ -52,6 +52,8 @@ extern int MusicDevice; EXTERN_CVAR(Int, hud_layout) EXTERN_CVAR(Int, hud_scale) +EXTERN_CVAR(Int, hud_size) + EXTERN_CVAR(Int, hud_custom) EXTERN_CVAR(Bool, hud_stats) EXTERN_CVAR(Bool, hud_showmapname) @@ -79,6 +81,11 @@ EXTERN_CVAR(Bool, r_shadows) EXTERN_CVAR(Bool, r_rotatespritenowidescreen) EXTERN_CVAR(Bool, r_precache) EXTERN_CVAR(Bool, r_voxels) +EXTERN_CVAR(Int, r_upscalefactor) + +EXTERN_CVAR(Float, vid_gamma) +EXTERN_CVAR(Float, vid_contrast) +EXTERN_CVAR(Float, vid_brightness) EXTERN_CVAR(Bool, in_joystick) @@ -90,6 +97,8 @@ EXTERN_CVAR(Bool, in_mouseflip) EXTERN_CVAR(Bool, in_mousemode) EXTERN_CVAR(Bool, in_mousesmoothing) EXTERN_CVAR(Float, in_mousesensitivity) +EXTERN_CVAR(Int, in_mousescalex) +EXTERN_CVAR(Int, in_mousescaley) extern int32_t g_MyAimMode; EXTERN_CVAR(Bool, in_mousemode) EXTERN_CVAR(String, wchoice) @@ -107,6 +116,16 @@ EXTERN_CVAR(String, playername) EXTERN_CVAR(String, rtsname) EXTERN_CVAR(String, usermapfolder) +EXTERN_CVAR(Bool, m_recstat) +EXTERN_CVAR(Int, m_coop) +EXTERN_CVAR(Int, m_marker) +EXTERN_CVAR(Int, m_level_number) +EXTERN_CVAR(Int, m_ffire) +EXTERN_CVAR(Int, m_noexits) +EXTERN_CVAR(Int, m_levelnumber) +EXTERN_CVAR(Int, playercolor) +EXTERN_CVAR(Int, playerteam) + extern bool gNoAutoLoad; extern float r_ambientlightrecip; extern int hud_statusbarrange; // will be set by the game's configuration setup. diff --git a/source/duke3d/src/cheats.cpp b/source/duke3d/src/cheats.cpp index 0cae13a14..7b317e6a6 100644 --- a/source/duke3d/src/cheats.cpp +++ b/source/duke3d/src/cheats.cpp @@ -368,13 +368,13 @@ void G_DoCheats(void) levnume--; ud.m_volume_number = volnume; - ud.m_level_number = levnume; + m_level_number = levnume; } else { // JBF 20030914 ud.m_volume_number = osdcmd_cheatsinfo_stat.volume; - ud.m_level_number = osdcmd_cheatsinfo_stat.level; + m_level_number = osdcmd_cheatsinfo_stat.level; } } else if (cheatNum == CHEAT_SKILL) @@ -399,7 +399,7 @@ void G_DoCheats(void) if (originalCheatNum == CHEAT_SCOTTY) { ud.m_volume_number = ud.volume_number; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } else if (originalCheatNum == CHEAT_SKILL) { @@ -555,7 +555,7 @@ void G_DoCheats(void) case CHEAT_SCOTTY: { - int32_t const volnume = ud.m_volume_number, levnume = ud.m_level_number; + int32_t const volnume = ud.m_volume_number, levnume = m_level_number; if ((!VOLUMEONE || volnume == 0) && (unsigned)volnume < (unsigned)g_volumeCnt && (unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL) @@ -580,7 +580,7 @@ void G_DoCheats(void) #if 0 if (numplayers > 1 && g_netServer) - Net_NewGame(ud.m_volume_number, ud.m_level_number); + Net_NewGame(ud.m_volume_number, m_level_number); else #endif pPlayer->gm |= MODE_RESTART; diff --git a/source/duke3d/src/config.cpp b/source/duke3d/src/config.cpp index 3aaa33a6d..886984031 100644 --- a/source/duke3d/src/config.cpp +++ b/source/duke3d/src/config.cpp @@ -73,14 +73,11 @@ void CONFIG_SetDefaults(void) ud.althud = 1; ud.angleinterpolation = 0; ud.camerasprite = -1; - ud.color = 0; ud.config.ShowWeapons = 0; ud.default_skill = 1; - ud.detail = 0; ud.display_bonus_screen = 1; hud_position = 0; - ud.m_marker = 1; ud.menu_scrollbartilenum = -1; ud.menu_scrollbarz = 65536; ud.menu_scrollcursorz = 65536; @@ -98,16 +95,14 @@ void CONFIG_SetDefaults(void) ud.statusbarflags = 0;//STATUSBAR_NOSHRINK; ud.statusbarmode = 1; ud.statusbarscale = 100; - ud.team = 0; - ud.fta_on = 1; ud.god = 0; ud.m_respawn_items = 0; ud.m_respawn_monsters = 0; ud.m_respawn_inventory = 0; ud.warp_on = 0; ud.cashman = 0; - ud.m_ffire = 1; + m_ffire = 1; ud.m_player_skill = ud.player_skill = 2; memcpy(g_player[0].wchoice, "\3\4\5\7\0x8\6\0\2\0x9\1", 10); wchoice.Callback(); diff --git a/source/duke3d/src/demo.cpp b/source/duke3d/src/demo.cpp index 723f7aba5..ea8c1f243 100644 --- a/source/duke3d/src/demo.cpp +++ b/source/duke3d/src/demo.cpp @@ -144,7 +144,7 @@ void G_OpenDemoWrite(void) { Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!"); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; return; } do @@ -181,7 +181,7 @@ void G_OpenDemoWrite(void) error_wopen_demo: Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS."); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; return; } @@ -193,7 +193,7 @@ error_wopen_demo: P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); ud.reccnt = 0; - ud.recstat = ud.m_recstat = 1; // + ud.recstat = m_recstat = 1; // # if KRANDDEBUG krd_enable(1); @@ -278,7 +278,7 @@ void G_CloseDemoWrite(void) // lastly, we need to write the number of written recsyncs to the demo file g_demo_filePtr->Write(&g_demo_cnt, sizeof(g_demo_cnt)); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; delete g_demo_filePtr; g_demo_filePtr = nullptr; diff --git a/source/duke3d/src/game.cpp b/source/duke3d/src/game.cpp index 8a21166f2..41f2c7f29 100644 --- a/source/duke3d/src/game.cpp +++ b/source/duke3d/src/game.cpp @@ -188,11 +188,11 @@ void G_HandleSpecialKeys(void) if (g_networkMode != NET_DEDICATED_SERVER && ALT_IS_PRESSED && inputState.GetKeyStatus(sc_Enter)) { - if (videoSetGameMode(!ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail)) + if (videoSetGameMode(!ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1)) { OSD_Printf(OSD_ERROR "Failed setting video mode!\n"); - if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail)) + if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1)) G_GameExit("Fatal error: unable to recover from failure setting video mode!\n"); } else @@ -273,7 +273,7 @@ void G_GameExit(const char *msg) g_mostConcurrentPlayers > 1 && g_player[myconnectindex].ps->gm & MODE_GAME && GTFLAGS(GAMETYPE_SCORESHEET) && *msg == ' ') { G_BonusScreen(1); - videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail); + videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1); } // shareware and TEN screens @@ -4466,7 +4466,7 @@ void GameInterface::set_hud_layout(int layout) void GameInterface::set_hud_scale(int scale) { - G_UpdateScreenArea(); + G_SetStatusBarScale(scale); } void G_HandleLocalKeys(void) @@ -4862,10 +4862,10 @@ FAKE_F3: { inputState.ClearKeyStatus(sc_F8); - int const fta = !ud.fta_on; - ud.fta_on = 1; + int const fta = !hud_messages; + hud_messages = 1; P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, &myplayer); - ud.fta_on = fta; + hud_messages = fta; } if ((buttonMap.ButtonDown(gamefunc_Quick_Load) || g_doQuickSave == 2) && (myplayer.gm & MODE_GAME)) @@ -5729,9 +5729,9 @@ static void G_CompileScripts(void) static inline void G_CheckGametype(void) { - ud.m_coop = clamp(ud.m_coop, 0, g_gametypeCnt-1); - initprintf("%s\n",g_gametypeNames[ud.m_coop]); - if (g_gametypeFlags[ud.m_coop] & GAMETYPE_ITEMRESPAWN) + m_coop = clamp(*m_coop, 0, g_gametypeCnt-1); + initprintf("%s\n",g_gametypeNames[m_coop]); + if (g_gametypeFlags[m_coop] & GAMETYPE_ITEMRESPAWN) ud.m_respawn_items = ud.m_respawn_inventory = 1; } @@ -5991,9 +5991,9 @@ void G_UpdatePlayerFromMenu(void) /*int32_t j = p.team;*/ P_SetupMiscInputSettings(); - p.palookup = g_player[myconnectindex].pcolor = ud.color; + p.palookup = g_player[myconnectindex].pcolor = playercolor; - g_player[myconnectindex].pteam = ud.team; + g_player[myconnectindex].pteam = playerteam; if (sprite[p.i].picnum == APLAYER && sprite[p.i].pal != 1) sprite[p.i].pal = g_player[myconnectindex].pcolor; @@ -6055,7 +6055,7 @@ static int G_EndOfLevel(void) } else { - ud.m_level_number = 0; + m_level_number = 0; ud.level_number = 0; } } @@ -6208,7 +6208,7 @@ int GameInterface::app_main() if (numplayers == 1 && boardfilename[0] != 0) { - ud.m_level_number = 7; + m_level_number = 7; ud.m_volume_number = 0; ud.warp_on = 1; } @@ -6252,7 +6252,7 @@ int GameInterface::app_main() if (g_networkMode != NET_DEDICATED_SERVER && validmodecnt > 0) { - if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail) < 0) + if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1) < 0) { initprintf("Failure setting video mode %dx%dx%d %s! Trying next mode...\n", *ScreenWidth, *ScreenHeight, *ScreenBPP, *ScreenMode ? "fullscreen" : "windowed"); @@ -6271,7 +6271,7 @@ int GameInterface::app_main() int const savedIdx = resIdx; int bpp = ScreenBPP; - while (videoSetGameMode(0, validmode[resIdx].xdim, validmode[resIdx].ydim, bpp, ud.detail) < 0) + while (videoSetGameMode(0, validmode[resIdx].xdim, validmode[resIdx].ydim, bpp, 1) < 0) { initprintf("Failure setting video mode %dx%dx%d windowed! Trying next mode...\n", validmode[resIdx].xdim, validmode[resIdx].ydim, bpp); @@ -6360,7 +6360,7 @@ MAIN_LOOP_RESTART: { if ((g_netServer || ud.multimode > 1) && boardfilename[0] != 0) { - ud.m_level_number = 7; + m_level_number = 7; ud.m_volume_number = 0; ud.m_respawn_monsters = !!(ud.m_player_skill == 4); @@ -6393,13 +6393,13 @@ MAIN_LOOP_RESTART: ud.showweapons = ud.config.ShowWeapons; P_SetupMiscInputSettings(); - g_player[myconnectindex].pteam = ud.team; + g_player[myconnectindex].pteam = playerteam; if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM) myplayer.palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam); else { - if (ud.color) myplayer.palookup = g_player[myconnectindex].pcolor = ud.color; + if (playercolor) myplayer.palookup = g_player[myconnectindex].pcolor = playercolor; else myplayer.palookup = g_player[myconnectindex].pcolor; } diff --git a/source/duke3d/src/game.h b/source/duke3d/src/game.h index 771f9e09a..cf89ab514 100644 --- a/source/duke3d/src/game.h +++ b/source/duke3d/src/game.h @@ -163,21 +163,21 @@ typedef struct { int32_t reccnt; int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125 - int32_t color,statusbarmode; - int32_t m_noexits,noexits; - int32_t team, althud; + int32_t statusbarmode; + int32_t noexits; + int32_t althud; int32_t statusbarflags, statusbarrange; int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz; int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz; - int32_t entered_name,screen_tilting,fta_on; - int32_t m_coop,coop,screen_size; + int32_t entered_name,screen_tilting; + int32_t coop,screen_size; int32_t playerai,angleinterpolation; int32_t respawn_monsters,respawn_items,respawn_inventory,recstat,monsters_off,brightness; - int32_t m_respawn_items,m_respawn_monsters,m_respawn_inventory,m_recstat,m_monsters_off,detail; - int32_t m_ffire,ffire,m_player_skill,m_level_number,m_volume_number,multimode; - int32_t player_skill,level_number,volume_number,m_marker,marker; + int32_t m_respawn_items,m_respawn_monsters,m_respawn_inventory,m_monsters_off; + int32_t ffire,m_player_skill,m_level_number,m_volume_number,multimode; + int32_t player_skill,level_number,volume_number,marker; int32_t music_episode, music_level, skill_voice; int32_t playerbest; @@ -236,7 +236,7 @@ static inline int G_HaveUserMap(void) static inline int Menu_HaveUserMap(void) { - return (boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0); + return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0); } extern const char *G_DefaultRtsFile(void); @@ -461,7 +461,7 @@ enum static inline void G_NewGame_EnterLevel(void) { - G_NewGame(ud.m_volume_number, ud.m_level_number, ud.m_player_skill); + G_NewGame(ud.m_volume_number, m_level_number, ud.m_player_skill); if (G_EnterLevel(MODE_GAME)) G_BackToMenu(); @@ -525,7 +525,7 @@ EXTERN_INLINE_HEADER void SetIfGreater(int32_t *variable, int32_t potentialValue EXTERN_INLINE void G_SetStatusBarScale(int32_t sc) { - ud.statusbarscale = clamp(sc, 50, 100); + ud.statusbarscale = clamp(sc, 36, 100); G_UpdateScreenArea(); } diff --git a/source/duke3d/src/gameexec.cpp b/source/duke3d/src/gameexec.cpp index dd99b204a..52d700d07 100644 --- a/source/duke3d/src/gameexec.cpp +++ b/source/duke3d/src/gameexec.cpp @@ -3936,7 +3936,7 @@ badindex: } ud.m_volume_number = ud.volume_number = volumeNum; - ud.m_level_number = ud.level_number = levelNum; + m_level_number = ud.level_number = levelNum; // if (numplayers > 1 && g_netServer) // Net_NewGame(volnume,levnume); //else diff --git a/source/duke3d/src/gamestructures.cpp b/source/duke3d/src/gamestructures.cpp index 29528f9bd..da3abf8b6 100644 --- a/source/duke3d/src/gamestructures.cpp +++ b/source/duke3d/src/gamestructures.cpp @@ -1409,12 +1409,12 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_ENTERED_NAME: labelNum = ud.entered_name; break; case USERDEFS_SCREEN_TILTING: labelNum = ud.screen_tilting; break; case USERDEFS_SHADOWS: labelNum = r_shadows; break; - case USERDEFS_FTA_ON: labelNum = ud.fta_on; break; + case USERDEFS_FTA_ON: labelNum = hud_messages; break; case USERDEFS_EXECUTIONS: labelNum = 1; break; case USERDEFS_AUTO_RUN: labelNum = cl_autorun; break; case USERDEFS_COORDS: labelNum = cl_showcoords; break; case USERDEFS_TICKRATE: labelNum = r_showfps; break; - case USERDEFS_M_COOP: labelNum = ud.m_coop; break; + case USERDEFS_M_COOP: labelNum = m_coop; break; case USERDEFS_COOP: labelNum = ud.coop; break; case USERDEFS_SCREEN_SIZE: labelNum = ud.screen_size; break; case USERDEFS_LOCKOUT: labelNum = adult_lockout; break; @@ -1429,13 +1429,13 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_M_RESPAWN_ITEMS: labelNum = ud.m_respawn_items; break; case USERDEFS_M_RESPAWN_MONSTERS: labelNum = ud.m_respawn_monsters; break; case USERDEFS_M_RESPAWN_INVENTORY: labelNum = ud.m_respawn_inventory; break; - case USERDEFS_M_RECSTAT: labelNum = ud.m_recstat; break; + case USERDEFS_M_RECSTAT: labelNum = m_recstat; break; case USERDEFS_M_MONSTERS_OFF: labelNum = ud.m_monsters_off; break; - case USERDEFS_DETAIL: labelNum = ud.detail; break; - case USERDEFS_M_FFIRE: labelNum = ud.m_ffire; break; + case USERDEFS_DETAIL: labelNum = 1; break; + case USERDEFS_M_FFIRE: labelNum = m_ffire; break; case USERDEFS_FFIRE: labelNum = ud.ffire; break; case USERDEFS_M_PLAYER_SKILL: labelNum = ud.m_player_skill; break; - case USERDEFS_M_LEVEL_NUMBER: labelNum = ud.m_level_number; break; + case USERDEFS_M_LEVEL_NUMBER: labelNum = m_level_number; break; case USERDEFS_M_VOLUME_NUMBER: labelNum = ud.m_volume_number; break; case USERDEFS_M_USER_MAP: labelNum = Menu_HaveUserMap(); break; case USERDEFS_MULTIMODE: labelNum = ud.multimode; break; @@ -1443,7 +1443,7 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_LEVEL_NUMBER: labelNum = ud.level_number; break; case USERDEFS_VOLUME_NUMBER: labelNum = ud.volume_number; break; case USERDEFS_USER_MAP: labelNum = G_HaveUserMap(); break; - case USERDEFS_M_MARKER: labelNum = ud.m_marker; break; + case USERDEFS_M_MARKER: labelNum = m_marker; break; case USERDEFS_MARKER: labelNum = ud.marker; break; case USERDEFS_MOUSEFLIP: labelNum = !in_mouseflip; break; case USERDEFS_STATUSBARSCALE: labelNum = ud.statusbarscale; break; @@ -1451,15 +1451,15 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_MOUSEAIMING: labelNum = in_aimmode; break; case USERDEFS_WEAPONSWITCH: labelNum = cl_weaponswitch; break; case USERDEFS_DEMOCAMS: labelNum = cl_democams; break; - case USERDEFS_COLOR: labelNum = ud.color; break; + case USERDEFS_COLOR: labelNum = playercolor; break; case USERDEFS_MSGDISPTIME: labelNum = hud_messagetime; break; case USERDEFS_STATUSBARMODE: labelNum = ud.statusbarmode; break; - case USERDEFS_M_NOEXITS: labelNum = ud.m_noexits; break; + case USERDEFS_M_NOEXITS: labelNum = m_noexits; break; case USERDEFS_NOEXITS: labelNum = ud.noexits; break; case USERDEFS_AUTOVOTE: labelNum = cl_autovote; break; case USERDEFS_AUTOMSG: labelNum = cl_automsg; break; case USERDEFS_IDPLAYERS: labelNum = cl_idplayers; break; - case USERDEFS_TEAM: labelNum = ud.team; break; + case USERDEFS_TEAM: labelNum = playerteam; break; case USERDEFS_VIEWBOB: labelNum = cl_viewbob; break; case USERDEFS_WEAPONSWAY: labelNum = cl_weaponsway; break; case USERDEFS_ANGLEINTERPOLATION: labelNum = ud.angleinterpolation; break; @@ -1480,7 +1480,7 @@ int32_t __fastcall VM_GetUserdef(int32_t labelNum, int const lParm2) case USERDEFS_USEHIGHTILE: labelNum = hw_hightile; break; case USERDEFS_USEMODELS: labelNum = hw_models; break; case USERDEFS_GAMETYPEFLAGS: labelNum = g_gametypeFlags[ud.coop]; break; - case USERDEFS_M_GAMETYPEFLAGS: labelNum = g_gametypeFlags[ud.m_coop]; break; + case USERDEFS_M_GAMETYPEFLAGS: labelNum = g_gametypeFlags[m_coop]; break; case USERDEFS_GLOBALFLAGS: labelNum = globalflags; break; case USERDEFS_GLOBALGAMEFLAGS: labelNum = duke3d_globalflags; break; case USERDEFS_VM_PLAYER: labelNum = vm.playerNum; break; @@ -1597,12 +1597,12 @@ void __fastcall VM_SetUserdef(int const labelNum, int const lParm2, int32_t cons case USERDEFS_ENTERED_NAME: ud.entered_name = iSet; break; case USERDEFS_SCREEN_TILTING: ud.screen_tilting = iSet; break; case USERDEFS_SHADOWS: r_shadows.SetGenericRepDefault(iSet, CVAR_Int); break; - case USERDEFS_FTA_ON: ud.fta_on = iSet; break; + case USERDEFS_FTA_ON: hud_messages = iSet; break; case USERDEFS_EXECUTIONS: break; // what was this supposed to accomplish? case USERDEFS_AUTO_RUN: cl_autorun.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_COORDS: cl_showcoords.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_TICKRATE: r_showfps = iSet; break; - case USERDEFS_M_COOP: ud.m_coop = iSet; break; + case USERDEFS_M_COOP: m_coop = iSet; break; case USERDEFS_COOP: ud.coop = iSet; break; case USERDEFS_SCREEN_SIZE: if (ud.screen_size != iSet) @@ -1623,20 +1623,20 @@ void __fastcall VM_SetUserdef(int const labelNum, int const lParm2, int32_t cons case USERDEFS_M_RESPAWN_ITEMS: ud.m_respawn_items = iSet; break; case USERDEFS_M_RESPAWN_MONSTERS: ud.m_respawn_monsters = iSet; break; case USERDEFS_M_RESPAWN_INVENTORY: ud.m_respawn_inventory = iSet; break; - case USERDEFS_M_RECSTAT: ud.m_recstat = iSet; break; + case USERDEFS_M_RECSTAT: m_recstat = iSet; break; case USERDEFS_M_MONSTERS_OFF: ud.m_monsters_off = iSet; break; // REMINDER: must implement "boolean" setters like "!!iSet" in Lunatic, too. - case USERDEFS_DETAIL: ud.detail = clamp(iSet, 1, 16); break; - case USERDEFS_M_FFIRE: ud.m_ffire = iSet; break; + case USERDEFS_DETAIL: /*ud.detail = clamp(iSet, 1, 16); obsolete*/ break; + case USERDEFS_M_FFIRE: m_ffire = iSet; break; case USERDEFS_FFIRE: ud.ffire = iSet; break; case USERDEFS_M_PLAYER_SKILL: ud.m_player_skill = iSet; break; - case USERDEFS_M_LEVEL_NUMBER: ud.m_level_number = iSet; break; + case USERDEFS_M_LEVEL_NUMBER: m_level_number = iSet; break; case USERDEFS_M_VOLUME_NUMBER: ud.m_volume_number = iSet; break; case USERDEFS_MULTIMODE: ud.multimode = iSet; break; case USERDEFS_PLAYER_SKILL: ud.player_skill = iSet; break; case USERDEFS_LEVEL_NUMBER: ud.level_number = iSet; break; case USERDEFS_VOLUME_NUMBER: ud.volume_number = iSet; break; - case USERDEFS_M_MARKER: ud.m_marker = iSet; break; + case USERDEFS_M_MARKER: m_marker = iSet; break; case USERDEFS_MARKER: ud.marker = iSet; break; case USERDEFS_MOUSEFLIP: in_mouseflip.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_STATUSBARSCALE: ud.statusbarscale = iSet; break; @@ -1644,15 +1644,15 @@ void __fastcall VM_SetUserdef(int const labelNum, int const lParm2, int32_t cons case USERDEFS_MOUSEAIMING: in_aimmode.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_WEAPONSWITCH: cl_weaponswitch.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_DEMOCAMS: cl_democams = iSet; break; - case USERDEFS_COLOR: ud.color = iSet; break; + case USERDEFS_COLOR: playercolor = iSet; break; case USERDEFS_MSGDISPTIME: hud_messagetime.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_STATUSBARMODE: ud.statusbarmode = iSet; break; - case USERDEFS_M_NOEXITS: ud.m_noexits = iSet; break; + case USERDEFS_M_NOEXITS: m_noexits = iSet; break; case USERDEFS_NOEXITS: ud.noexits = iSet; break; case USERDEFS_AUTOVOTE: cl_autovote.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_AUTOMSG: cl_automsg.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_IDPLAYERS: cl_idplayers.SetGenericRepDefault(iSet, CVAR_Int); break; - case USERDEFS_TEAM: ud.team = iSet; break; + case USERDEFS_TEAM: playerteam = iSet; break; case USERDEFS_VIEWBOB: cl_viewbob.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_WEAPONSWAY: cl_weaponsway.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_ANGLEINTERPOLATION: ud.angleinterpolation = iSet; break; diff --git a/source/duke3d/src/menus.cpp b/source/duke3d/src/menus.cpp index c76611de0..81f238ce6 100644 --- a/source/duke3d/src/menus.cpp +++ b/source/duke3d/src/menus.cpp @@ -36,6 +36,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #include "c_bind.h" #include "../../glbackend/glbackend.h" +bool ShowOptionMenu(); + +namespace ImGui +{ + void ShowDemoWindow(bool*); +} + BEGIN_DUKE_NS @@ -393,10 +400,10 @@ static int32_t MEOSV_GAMESETUP_AIM_AUTO[] = { 0, 1, 2, }; static MenuOptionSet_t MEOS_GAMESETUP_AIM_AUTO = MAKE_MENUOPTIONSET( MEOSN_GAMESETUP_AIM_AUTO, MEOSV_GAMESETUP_AIM_AUTO, 0x2 ); -static MenuOption_t MEO_GAMESETUP_AIM_AUTO = MAKE_MENUOPTION( &MF_Redfont, &MEOS_GAMESETUP_AIM_AUTO, &cl_autoaim.Value ); +static MenuOption_t MEO_GAMESETUP_AIM_AUTO = MAKE_MENUOPTION( &MF_Redfont, &MEOS_GAMESETUP_AIM_AUTO, &cl_autoaim ); static MenuEntry_t ME_GAMESETUP_AIM_AUTO = MAKE_MENUENTRY( "Auto aim:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_AIM_AUTO, Option ); -static MenuOption_t MEO_GAMESETUP_ALWAYS_RUN = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &cl_autorun.Value); +static MenuOption_t MEO_GAMESETUP_ALWAYS_RUN = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &cl_autorun); static MenuEntry_t ME_GAMESETUP_ALWAYS_RUN = MAKE_MENUENTRY( "Always run:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_ALWAYS_RUN, Option ); static char const *MEOSN_GAMESETUP_WEAPSWITCH_PICKUP[] = { "Never", "If new", /*"If favored",*/ }; @@ -406,10 +413,10 @@ static MenuEntry_t ME_GAMESETUP_WEAPSWITCH_PICKUP = MAKE_MENUENTRY( "Equip picku static char const *MEOSN_DemoRec[] = { "Off", "Running", }; static MenuOptionSet_t MEOS_DemoRec = MAKE_MENUOPTIONSET( MEOSN_DemoRec, NULL, 0x3 ); -static MenuOption_t MEO_GAMESETUP_DEMOREC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &ud.m_recstat ); +static MenuOption_t MEO_GAMESETUP_DEMOREC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &m_recstat ); static MenuEntry_t ME_GAMESETUP_DEMOREC = MAKE_MENUENTRY( "Record demo:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_DEMOREC, Option ); -static MenuOption_t MEO_ADULTMODE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &adult_lockout.Value); +static MenuOption_t MEO_ADULTMODE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &adult_lockout); static MenuEntry_t ME_ADULTMODE = MAKE_MENUENTRY( "Parental lock:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_ADULTMODE, Option ); #if defined(EDUKE32_ANDROID_MENU) || !defined(EDUKE32_SIMPLE_MENU) @@ -448,7 +455,14 @@ MAKE_MENU_TOP_ENTRYLINK( "Touch Setup", MEF_BigOptionsRtSections, OPTIONS_TOUCHS MAKE_MENU_TOP_ENTRYLINK("Cheats", MEF_OptionsMenu, OPTIONS_CHEATS, MENU_CHEATS); #endif -static int32_t newresolution, newrendermode, newfullscreen, newvsync, newborderless; +// Zhe menu code lacks flexibility, it can either be hardwired to ints or to CVARs. +// Since CVARs are more important it means that these need to be implemented as CVARs even though they are just temporaries. +// By giving them no name we ensure that they remain outside the CVAR system. +CVAR_UNAMED(Int, newresolution) +CVAR_UNAMED(Int, newrendermode) +CVAR_UNAMED(Int, newfullscreen) +CVAR_UNAMED(Int, newvsync) +CVAR_UNAMED(Int, newborderless) enum resflags_t { RES_FS = 0x1, @@ -472,13 +486,8 @@ static MenuOption_t MEO_VIDEOSETUP_RESOLUTION = MAKE_MENUOPTION( &MF_Redfont, &M static MenuEntry_t ME_VIDEOSETUP_RESOLUTION = MAKE_MENUENTRY( "Resolution:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_VIDEOSETUP_RESOLUTION, Option ); #ifdef USE_OPENGL -#ifdef POLYMER -static char const *MEOSN_VIDEOSETUP_RENDERER[] = { "Classic", "Polymost", "Polymer", }; -static int32_t MEOSV_VIDEOSETUP_RENDERER[] = { REND_CLASSIC, REND_POLYMOST, REND_POLYMER, }; -#else static char const *MEOSN_VIDEOSETUP_RENDERER[] = { "Classic", "OpenGL", }; static int32_t MEOSV_VIDEOSETUP_RENDERER[] = { REND_CLASSIC, REND_POLYMOST, }; -#endif static MenuOptionSet_t MEOS_VIDEOSETUP_RENDERER = MAKE_MENUOPTIONSET( MEOSN_VIDEOSETUP_RENDERER, MEOSV_VIDEOSETUP_RENDERER, 0x2 ); @@ -512,85 +521,53 @@ static MenuLink_t MEO_DISPLAYSETUP_COLORCORR = { MENU_COLCORR, MA_Advance, }; static MenuEntry_t ME_DISPLAYSETUP_COLORCORR = MAKE_MENUENTRY( "Color Correction", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_COLORCORR, Link ); -static char const *MEOSN_DISPLAYSETUP_UPSCALING[] = { "None", "2x" }; -static int32_t MEOSV_DISPLAYSETUP_UPSCALING[] = { 1, 2 }; -static MenuOptionSet_t MEOS_DISPLAYSETUP_UPSCALING = MAKE_MENUOPTIONSET( MEOSN_DISPLAYSETUP_UPSCALING, MEOSV_DISPLAYSETUP_UPSCALING, 0x0 ); -static MenuOption_t MEO_DISPLAYSETUP_UPSCALING = MAKE_MENUOPTION( &MF_Redfont, &MEOS_DISPLAYSETUP_UPSCALING, &ud.detail ); -static MenuEntry_t ME_DISPLAYSETUP_UPSCALING = MAKE_MENUENTRY( "Upscaling:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_UPSCALING, Option ); - - #ifndef EDUKE32_ANDROID_MENU static MenuOption_t MEO_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &r_usenewaspect); static MenuEntry_t ME_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUENTRY( "Widescreen:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ASPECTRATIO, Option ); #endif -static MenuOption_t MEO_DISPLAYSETUP_VOXELS = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &r_voxels.Value); +static MenuOption_t MEO_DISPLAYSETUP_VOXELS = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &r_voxels); static MenuEntry_t ME_DISPLAYSETUP_VOXELS = MAKE_MENUENTRY( "Voxels:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_VOXELS, Option ); -static MenuRangeInt32_t MEO_DISPLAYSETUP_FOV = MAKE_MENURANGE( &r_fov.Value, &MF_Redfont, 70, 120, 0, 11, 1 ); +static MenuRangeInt32_t MEO_DISPLAYSETUP_FOV = MAKE_MENURANGE( &r_fov, &MF_Redfont, 70, 120, 0, 11, 1 ); static MenuEntry_t ME_DISPLAYSETUP_FOV = MAKE_MENUENTRY( "FOV:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_FOV, RangeInt32 ); #ifdef USE_OPENGL -# if !(defined EDUKE32_STANDALONE) || defined POLYMER -#define TEXFILTER_MENU_OPTIONS -//POGOTODO: allow filtering again in standalone once indexed colour textures support filtering -#ifdef TEXFILTER_MENU_OPTIONS static char const *MEOSN_DISPLAYSETUP_TEXFILTER[] = { "Classic", "Filtered" }; static int32_t MEOSV_DISPLAYSETUP_TEXFILTER[] = { TEXFILTER_OFF, TEXFILTER_ON }; static MenuOptionSet_t MEOS_DISPLAYSETUP_TEXFILTER = MAKE_MENUOPTIONSET( MEOSN_DISPLAYSETUP_TEXFILTER, MEOSV_DISPLAYSETUP_TEXFILTER, 0x2 ); -static MenuOption_t MEO_DISPLAYSETUP_TEXFILTER = MAKE_MENUOPTION( &MF_Redfont, &MEOS_DISPLAYSETUP_TEXFILTER, &hw_texfilter.Value ); +static MenuOption_t MEO_DISPLAYSETUP_TEXFILTER = MAKE_MENUOPTION( &MF_Redfont, &MEOS_DISPLAYSETUP_TEXFILTER, &hw_texfilter ); static MenuEntry_t ME_DISPLAYSETUP_TEXFILTER = MAKE_MENUENTRY( "Texture Mode:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_TEXFILTER, Option ); static char const *MEOSN_DISPLAYSETUP_ANISOTROPY[] = { "Max", "None", "2x", "4x", "8x", "16x", }; static int32_t MEOSV_DISPLAYSETUP_ANISOTROPY[] = { 0, 1, 2, 4, 8, 16, }; static MenuOptionSet_t MEOS_DISPLAYSETUP_ANISOTROPY = MAKE_MENUOPTIONSET( MEOSN_DISPLAYSETUP_ANISOTROPY, MEOSV_DISPLAYSETUP_ANISOTROPY, 0x0 ); -static MenuOption_t MEO_DISPLAYSETUP_ANISOTROPY = MAKE_MENUOPTION(&MF_Redfont, &MEOS_DISPLAYSETUP_ANISOTROPY, &hw_anisotropy.Value); +static MenuOption_t MEO_DISPLAYSETUP_ANISOTROPY = MAKE_MENUOPTION(&MF_Redfont, &MEOS_DISPLAYSETUP_ANISOTROPY, &hw_anisotropy); static MenuEntry_t ME_DISPLAYSETUP_ANISOTROPY = MAKE_MENUENTRY( "Anisotropy:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ANISOTROPY, Option ); -#endif -# endif - -# ifdef EDUKE32_ANDROID_MENU -static MenuOption_t MEO_DISPLAYSETUP_HIDEDPAD = MAKE_MENUOPTION(&MF_Redfont, &MEOS_NoYes, &droidinput.hideStick); -static MenuEntry_t ME_DISPLAYSETUP_HIDEDPAD = MAKE_MENUENTRY("Hide touch D-pad:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_HIDEDPAD, Option); - -static MenuRangeFloat_t MEO_DISPLAYSETUP_TOUCHALPHA = MAKE_MENURANGE(&droidinput.gameControlsAlpha, &MF_Redfont, 0, 1, 0, 16, 2); -static MenuEntry_t ME_DISPLAYSETUP_TOUCHALPHA = MAKE_MENUENTRY("UI opacity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_TOUCHALPHA, RangeFloat); -# endif #endif static char const s_Scale[] = "Scale:"; -static MenuOption_t MEO_SCREENSETUP_CROSSHAIR = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &cl_crosshair.Value); +static MenuOption_t MEO_SCREENSETUP_CROSSHAIR = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &cl_crosshair); static MenuEntry_t ME_SCREENSETUP_CROSSHAIR = MAKE_MENUENTRY( "Crosshair:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_CROSSHAIR, Option ); -static MenuRangeInt32_t MEO_SCREENSETUP_CROSSHAIRSIZE = MAKE_MENURANGE( &cl_crosshairscale.Value, &MF_Redfont, 25, 100, 0, 16, 2 ); +static MenuRangeInt32_t MEO_SCREENSETUP_CROSSHAIRSIZE = MAKE_MENURANGE( &cl_crosshairscale, &MF_Redfont, 25, 100, 0, 16, 2 ); static MenuEntry_t ME_SCREENSETUP_CROSSHAIRSIZE = MAKE_MENUENTRY( s_Scale, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SCREENSETUP_CROSSHAIRSIZE, RangeInt32 ); -static int32_t vpsize; -static MenuRangeInt32_t MEO_SCREENSETUP_SCREENSIZE = MAKE_MENURANGE( &vpsize, &MF_Redfont, 0, 0, 0, 1, EnforceIntervals ); -static MenuOption_t MEO_SCREENSETUP_SCREENSIZE_TWO = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &vpsize ); +static MenuRangeInt32_t MEO_SCREENSETUP_SCREENSIZE = MAKE_MENURANGE( &hud_size, &MF_Redfont, 0, 11, 0, 1, EnforceIntervals ); +static MenuOption_t MEO_SCREENSETUP_SCREENSIZE_TWO = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &hud_size ); static MenuEntry_t ME_SCREENSETUP_SCREENSIZE = MAKE_MENUENTRY( "Status bar:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SCREENSIZE, RangeInt32 ); -static MenuRangeInt32_t MEO_SCREENSETUP_TEXTSIZE = MAKE_MENURANGE( &hud_textscale.Value, &MF_Redfont, 100, 400, 0, 16, 2 ); +static MenuRangeInt32_t MEO_SCREENSETUP_TEXTSIZE = MAKE_MENURANGE( &hud_textscale, &MF_Redfont, 100, 400, 0, 16, 2 ); static MenuEntry_t ME_SCREENSETUP_TEXTSIZE = MAKE_MENUENTRY( s_Scale, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SCREENSETUP_TEXTSIZE, RangeInt32 ); -static MenuOption_t MEO_SCREENSETUP_LEVELSTATS = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &hud_stats.Value); +static MenuOption_t MEO_SCREENSETUP_LEVELSTATS = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &hud_stats); static MenuEntry_t ME_SCREENSETUP_LEVELSTATS = MAKE_MENUENTRY( "Level stats:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_LEVELSTATS, Option ); -static MenuOption_t MEO_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &ud.fta_on); +static MenuOption_t MEO_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &hud_messages); static MenuEntry_t ME_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUENTRY( "Game messages:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SHOWPICKUPMESSAGES, Option ); - - -#ifdef EDUKE32_ANDROID_MENU -static char const *MEOSN_SCREENSETUP_STATUSBARONTOP[] = { "Bottom", "Top" }; -static int32_t MEOSV_SCREENSETUP_STATUSBARONTOP[] = { 0, 1 }; -static MenuOptionSet_t MEOS_SCREENSETUP_STATUSBARONTOP = MAKE_MENUOPTIONSET( MEOSN_SCREENSETUP_STATUSBARONTOP, MEOSV_SCREENSETUP_STATUSBARONTOP, 0x2 ); -static MenuOption_t MEO_SCREENSETUP_STATUSBARONTOP = MAKE_MENUOPTION(&MF_Redfont, &MEOS_SCREENSETUP_STATUSBARONTOP, &hud_position.Value); -static MenuEntry_t ME_SCREENSETUP_STATUSBARONTOP = MAKE_MENUENTRY( "Status bar:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_STATUSBARONTOP, Option ); -#endif - -static MenuRangeInt32_t MEO_SCREENSETUP_SBARSIZE = MAKE_MENURANGE( &ud.statusbarscale, &MF_Redfont, 50, 100, 0, 10, 2 ); +static MenuRangeInt32_t MEO_SCREENSETUP_SBARSIZE = MAKE_MENURANGE( &hud_scale, &MF_Redfont, 50, 100, 0, 10, 2 ); static MenuEntry_t ME_SCREENSETUP_SBARSIZE = MAKE_MENUENTRY( s_Scale, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SCREENSETUP_SBARSIZE, RangeInt32 ); @@ -598,16 +575,9 @@ static MenuLink_t MEO_DISPLAYSETUP_SCREENSETUP = { MENU_SCREENSETUP, MA_Advance, static MenuEntry_t ME_DISPLAYSETUP_SCREENSETUP = MAKE_MENUENTRY( "HUD setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_SCREENSETUP, Link ); -#ifndef EDUKE32_SIMPLE_MENU #ifdef USE_OPENGL static MenuLink_t MEO_DISPLAYSETUP_ADVANCED_GL_POLYMOST = { MENU_POLYMOST, MA_Advance, }; static MenuEntry_t ME_DISPLAYSETUP_ADVANCED_GL_POLYMOST = MAKE_MENUENTRY( "Polymost setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ADVANCED_GL_POLYMOST, Link ); - -#ifdef POLYMER -static MenuLink_t MEO_DISPLAYSETUP_ADVANCED_GL_POLYMER = { MENU_POLYMER, MA_Advance, }; -static MenuEntry_t ME_DISPLAYSETUP_ADVANCED_GL_POLYMER = MAKE_MENUENTRY("Polymer setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ADVANCED_GL_POLYMER, Link); -#endif -#endif #endif #ifndef EDUKE32_ANDROID_MENU @@ -710,60 +680,22 @@ static MenuEntry_t *MEL_DISPLAYSETUP[] = { &ME_DISPLAYSETUP_VOXELS, &ME_DISPLAYSETUP_FOV, #endif - &ME_DISPLAYSETUP_UPSCALING, }; #ifdef USE_OPENGL static MenuEntry_t *MEL_DISPLAYSETUP_GL[] = { &ME_DISPLAYSETUP_SCREENSETUP, &ME_DISPLAYSETUP_COLORCORR, -#ifndef EDUKE32_ANDROID_MENU &ME_DISPLAYSETUP_VIDEOSETUP, &ME_DISPLAYSETUP_ASPECTRATIO, &ME_DISPLAYSETUP_VOXELS, &ME_DISPLAYSETUP_FOV, -#endif -#ifndef EDUKE32_STANDALONE -# ifdef TEXFILTER_MENU_OPTIONS &ME_DISPLAYSETUP_TEXFILTER, -# endif -#endif -#ifdef EDUKE32_ANDROID_MENU - &ME_DISPLAYSETUP_HIDEDPAD, - &ME_DISPLAYSETUP_TOUCHALPHA, -#else -# ifndef EDUKE32_STANDALONE -# ifdef TEXFILTER_MENU_OPTIONS &ME_DISPLAYSETUP_ANISOTROPY, -# endif -# endif -# ifndef EDUKE32_SIMPLE_MENU &ME_DISPLAYSETUP_ADVANCED_GL_POLYMOST, -# endif #endif }; -#ifdef POLYMER -static MenuEntry_t *MEL_DISPLAYSETUP_GL_POLYMER[] = { - &ME_DISPLAYSETUP_SCREENSETUP, - &ME_DISPLAYSETUP_COLORCORR, -#ifndef EDUKE32_ANDROID_MENU - &ME_DISPLAYSETUP_VIDEOSETUP, - &ME_DISPLAYSETUP_FOV, - &ME_DISPLAYSETUP_VOXELS, -#endif -#ifdef TEXFILTER_MENU_OPTIONS - &ME_DISPLAYSETUP_TEXFILTER, - &ME_DISPLAYSETUP_ANISOTROPY, -#endif -#ifndef EDUKE32_SIMPLE_MENU - &ME_DISPLAYSETUP_ADVANCED_GL_POLYMER, -#endif -}; - -#endif -#endif - static char const *MenuKeyNone = " -"; @@ -830,37 +762,32 @@ static int32_t MenuMouseDataIndex[MENUMOUSEFUNCTIONS][2] = { static MenuOption_t MEO_MOUSEJOYSETUPBTNS_TEMPLATE = MAKE_MENUOPTION( &MF_Minifont, &MEOS_Gamefuncs, NULL ); static MenuOption_t MEO_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; static MenuEntry_t ME_MOUSEJOYSETUPBTNS_TEMPLATE = MAKE_MENUENTRY( NULL, &MF_Minifont, &MEF_FuncList, NULL, Option ); -static MenuEntry_t ME_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; -static MenuEntry_t *MEL_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; -static MenuLink_t MEO_MOUSESETUP_BTNS = { MENU_MOUSEBTNS, MA_Advance, }; -static MenuEntry_t ME_MOUSESETUP_BTNS = MAKE_MENUENTRY( "Button assignment", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_BTNS, Link ); -static MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &CONTROL_MouseSensitivity, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 ); +static MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &in_mousesensitivity, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 ); static MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat ); #ifndef EDUKE32_SIMPLE_MENU static char const *MEOSN_MOUSESETUP_AIM_TYPE [] = { "Toggle", "Hold" }; static MenuOptionSet_t MEOS_MOUSESETUP_AIM_TYPE = MAKE_MENUOPTIONSET(MEOSN_MOUSESETUP_AIM_TYPE, NULL, 0x2); -static MenuOption_t MEO_MOUSESETUP_MOUSEAIMINGTYPE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_MOUSESETUP_AIM_TYPE, &in_aimmode.Value); +static MenuOption_t MEO_MOUSESETUP_MOUSEAIMINGTYPE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_MOUSESETUP_AIM_TYPE, &in_aimmode); static MenuEntry_t ME_MOUSESETUP_MOUSEAIMINGTYPE = MAKE_MENUENTRY("Aiming type:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_MOUSEAIMINGTYPE, Option); -static MenuOption_t MEO_MOUSESETUP_MOUSEAIMING = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousemode.Value ); +static MenuOption_t MEO_MOUSESETUP_MOUSEAIMING = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousemode ); static MenuEntry_t ME_MOUSESETUP_MOUSEAIMING = MAKE_MENUENTRY( "Vertical aiming:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_MOUSEAIMING, Option ); #endif -static MenuOption_t MEO_MOUSESETUP_INVERT = MAKE_MENUOPTION( &MF_Redfont, &MEOS_YesNo, &in_mouseflip.Value ); +static MenuOption_t MEO_MOUSESETUP_INVERT = MAKE_MENUOPTION( &MF_Redfont, &MEOS_YesNo, &in_mouseflip ); static MenuEntry_t ME_MOUSESETUP_INVERT = MAKE_MENUENTRY( "Invert aiming:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_INVERT, Option ); -static MenuOption_t MEO_MOUSESETUP_SMOOTH = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousesmoothing.Value ); +static MenuOption_t MEO_MOUSESETUP_SMOOTH = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &in_mousesmoothing ); static MenuEntry_t ME_MOUSESETUP_SMOOTH = MAKE_MENUENTRY( "Filter input:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SMOOTH, Option ); #ifndef EDUKE32_SIMPLE_MENU static MenuLink_t MEO_MOUSESETUP_ADVANCED = { MENU_MOUSEADVANCED, MA_Advance, }; static MenuEntry_t ME_MOUSESETUP_ADVANCED = MAKE_MENUENTRY( "Advanced setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_ADVANCED, Link ); #endif -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEX = MAKE_MENURANGE(&MouseAnalogueScale[0], &MF_Redfont, -262144, 262144, 65536, 161, 3); +static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEX = MAKE_MENURANGE(&in_mousescalex, &MF_Redfont, -262144, 262144, 65536, 161, 3); static MenuEntry_t ME_MOUSEADVANCED_SCALEX = MAKE_MENUENTRY("X-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEX, RangeInt32); -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEY = MAKE_MENURANGE(&MouseAnalogueScale[1], &MF_Redfont, -262144, 262144, 65536, 161, 3); +static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEY = MAKE_MENURANGE(&in_mousescaley, &MF_Redfont, -262144, 262144, 65536, 161, 3); static MenuEntry_t ME_MOUSEADVANCED_SCALEY = MAKE_MENUENTRY("Y-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEY, RangeInt32); static MenuEntry_t *MEL_MOUSESETUP[] = { - &ME_MOUSESETUP_BTNS, &ME_MOUSESETUP_SENSITIVITY, #ifdef EDUKE32_SIMPLE_MENU &ME_MOUSEADVANCED_SCALEX, @@ -910,7 +837,7 @@ static MenuEntry_t *MEL_TOUCHSENS [] = { }; #endif -static MenuOption_t MEO_JOYSTICK_ENABLE = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &in_joystick.Value ); +static MenuOption_t MEO_JOYSTICK_ENABLE = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &in_joystick ); static MenuEntry_t ME_JOYSTICK_ENABLE = MAKE_MENUENTRY( "Enable Gamepad:", &MF_Redfont, &MEF_BigOptionsRtSections, &MEO_JOYSTICK_ENABLE, Option ); MAKE_MENU_TOP_ENTRYLINK( "Edit Buttons", MEF_BigOptionsRtSections, JOYSTICK_EDITBUTTONS, MENU_JOYSTICKBTNS ); @@ -992,28 +919,23 @@ static MenuEntry_t *MEL_INTERNAL_JOYSTICKAXIS_DIGITAL[] = { }; #ifdef USE_OPENGL -static MenuOption_t MEO_RENDERERSETUP_HIGHTILE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_hightile.Value ); +static MenuOption_t MEO_RENDERERSETUP_HIGHTILE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_hightile ); static MenuEntry_t ME_RENDERERSETUP_HIGHTILE = MAKE_MENUENTRY( "True color textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_HIGHTILE, Option ); -static char const *MEOSN_RENDERERSETUP_TEXQUALITY [] = { "Full", "Half", "Barf", }; -static MenuOptionSet_t MEOS_RENDERERSETUP_TEXQUALITY = MAKE_MENUOPTIONSET(MEOSN_RENDERERSETUP_TEXQUALITY, NULL, 0x2); -static MenuOption_t MEO_RENDERERSETUP_TEXQUALITY = MAKE_MENUOPTION(&MF_Bluefont, &MEOS_RENDERERSETUP_TEXQUALITY, &r_downsize); -static MenuEntry_t ME_RENDERERSETUP_TEXQUALITY = MAKE_MENUENTRY("GL texture quality:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_TEXQUALITY, Option); - -static MenuOption_t MEO_RENDERERSETUP_PRECACHE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &r_precache.Value ); +static MenuOption_t MEO_RENDERERSETUP_PRECACHE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &r_precache ); static MenuEntry_t ME_RENDERERSETUP_PRECACHE = MAKE_MENUENTRY( "Pre-load map textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_PRECACHE, Option ); # ifndef EDUKE32_GLES static char const *MEOSN_RENDERERSETUP_TEXCACHE[] = { "Off", "On", "Compr.", }; static MenuOptionSet_t MEOS_RENDERERSETUP_TEXCACHE = MAKE_MENUOPTIONSET( MEOSN_RENDERERSETUP_TEXCACHE, NULL, 0x2 ); # endif # ifdef USE_GLEXT -static MenuOption_t MEO_RENDERERSETUP_DETAILTEX = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_detailmapping.Value ); +static MenuOption_t MEO_RENDERERSETUP_DETAILTEX = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_detailmapping ); static MenuEntry_t ME_RENDERERSETUP_DETAILTEX = MAKE_MENUENTRY( "Detail textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_DETAILTEX, Option ); -static MenuOption_t MEO_RENDERERSETUP_GLOWTEX = MAKE_MENUOPTION(&MF_Bluefont, &MEOS_NoYes, &hw_glowmapping.Value); +static MenuOption_t MEO_RENDERERSETUP_GLOWTEX = MAKE_MENUOPTION(&MF_Bluefont, &MEOS_NoYes, &hw_glowmapping); static MenuEntry_t ME_RENDERERSETUP_GLOWTEX = MAKE_MENUENTRY("Glow textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_GLOWTEX, Option); # endif -static MenuOption_t MEO_RENDERERSETUP_MODELS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_models.Value ); +static MenuOption_t MEO_RENDERERSETUP_MODELS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_models ); static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_MODELS, Option ); #endif @@ -1021,7 +943,6 @@ static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_B #ifdef USE_OPENGL static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { &ME_RENDERERSETUP_HIGHTILE, - &ME_RENDERERSETUP_TEXQUALITY, &ME_RENDERERSETUP_PRECACHE, # ifdef USE_GLEXT &ME_RENDERERSETUP_DETAILTEX, @@ -1033,15 +954,11 @@ static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { #endif -#ifdef EDUKE32_ANDROID_MENU -static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &g_videoGamma, &MF_Bluefont, 1.f, 2.5f, 0.f, 39, 1 ); -#else -static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &g_videoGamma, &MF_Bluefont, 0.3f, 4.f, 0.f, 75, 1 ); -#endif +static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &vid_gamma, &MF_Bluefont, 0.3f, 4.f, 0.f, 75, 1 ); static MenuEntry_t ME_COLCORR_GAMMA = MAKE_MENUENTRY( "Gamma:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_GAMMA, RangeFloat ); -static MenuRangeFloat_t MEO_COLCORR_CONTRAST = MAKE_MENURANGE( &g_videoContrast, &MF_Bluefont, 0.1f, 2.7f, 0.f, 53, 1 ); +static MenuRangeFloat_t MEO_COLCORR_CONTRAST = MAKE_MENURANGE( &vid_contrast, &MF_Bluefont, 0.1f, 2.7f, 0.f, 53, 1 ); static MenuEntry_t ME_COLCORR_CONTRAST = MAKE_MENUENTRY( "Contrast:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_CONTRAST, RangeFloat ); -static MenuRangeFloat_t MEO_COLCORR_BRIGHTNESS = MAKE_MENURANGE( &g_videoBrightness, &MF_Bluefont, -0.8f, 0.8f, 0.f, 33, 1 ); +static MenuRangeFloat_t MEO_COLCORR_BRIGHTNESS = MAKE_MENURANGE( &vid_brightness, &MF_Bluefont, -0.8f, 0.8f, 0.f, 33, 1 ); static MenuEntry_t ME_COLCORR_BRIGHTNESS = MAKE_MENUENTRY( "Brightness:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_BRIGHTNESS, RangeFloat ); static MenuLink_t MEO_COLCORR_RESET = { MENU_COLCORRRESETVERIFY, MA_None, }; static MenuEntry_t ME_COLCORR_RESET = MAKE_MENUENTRY( "Reset To Defaults", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_RESET, Link ); @@ -1051,7 +968,7 @@ static MenuEntry_t ME_COLCORR_RESET = MAKE_MENUENTRY( "Reset To Defaults", &MF_R #define MINVIS 0.125f #endif #ifndef EDUKE32_SIMPLE_MENU -static MenuRangeFloat_t MEO_COLCORR_AMBIENT = MAKE_MENURANGE( &r_ambientlight.Value, &MF_Bluefont, MINVIS, 4.f, 0.f, 32, 1 ); +static MenuRangeFloat_t MEO_COLCORR_AMBIENT = MAKE_MENURANGE( &r_ambientlight, &MF_Bluefont, MINVIS, 4.f, 0.f, 32, 1 ); static MenuEntry_t ME_COLCORR_AMBIENT = MAKE_MENUENTRY( "Visibility:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_AMBIENT, RangeFloat ); #endif static MenuEntry_t *MEL_COLCORR[] = { @@ -1099,19 +1016,21 @@ static MenuEntry_t ME_SAVE_NEW = MAKE_MENUENTRY( s_NewSaveGame, &MF_Minifont, &M static MenuEntry_t *ME_SAVE; static MenuEntry_t **MEL_SAVE; -static int32_t soundrate, soundvoices, musicdevice; -static MenuOption_t MEO_SOUND = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &snd_enabled.Value ); +CVAR_UNAMED(Int, soundrate) +CVAR_UNAMED(Int, soundvoices) +CVAR_UNAMED(Int, musicdevice) +static MenuOption_t MEO_SOUND = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &snd_enabled ); static MenuEntry_t ME_SOUND = MAKE_MENUENTRY( "Sound:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SOUND, Option ); -static MenuOption_t MEO_SOUND_MUSIC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &mus_enabled.Value ); +static MenuOption_t MEO_SOUND_MUSIC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &mus_enabled ); static MenuEntry_t ME_SOUND_MUSIC = MAKE_MENUENTRY( "Music:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SOUND_MUSIC, Option ); static char const s_Volume[] = "Volume:"; -static MenuRangeInt32_t MEO_SOUND_VOLUME_FX = MAKE_MENURANGE( &snd_fxvolume.Value, &MF_Redfont, 0, 255, 0, 33, 2 ); +static MenuRangeInt32_t MEO_SOUND_VOLUME_FX = MAKE_MENURANGE( &snd_fxvolume, &MF_Redfont, 0, 255, 0, 33, 2 ); static MenuEntry_t ME_SOUND_VOLUME_FX = MAKE_MENUENTRY( s_Volume, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SOUND_VOLUME_FX, RangeInt32 ); -static MenuRangeInt32_t MEO_SOUND_VOLUME_MUSIC = MAKE_MENURANGE( &mus_volume.Value, &MF_Redfont, 0, 255, 0, 33, 2 ); +static MenuRangeInt32_t MEO_SOUND_VOLUME_MUSIC = MAKE_MENURANGE( &mus_volume, &MF_Redfont, 0, 255, 0, 33, 2 ); static MenuEntry_t ME_SOUND_VOLUME_MUSIC = MAKE_MENUENTRY( s_Volume, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SOUND_VOLUME_MUSIC, RangeInt32 ); #ifndef EDUKE32_STANDALONE @@ -1180,12 +1099,12 @@ static MenuEntry_t *MEL_ADVSOUND[] = { }; -static MenuOption_t MEO_SAVESETUP_AUTOSAVE = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &cl_autosave.Value ); +static MenuOption_t MEO_SAVESETUP_AUTOSAVE = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &cl_autosave ); static MenuEntry_t ME_SAVESETUP_AUTOSAVE = MAKE_MENUENTRY( "Checkpoints:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SAVESETUP_AUTOSAVE, Option ); -static MenuOption_t MEO_SAVESETUP_AUTOSAVEDELETION = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &cl_autosavedeletion.Value ); +static MenuOption_t MEO_SAVESETUP_AUTOSAVEDELETION = MAKE_MENUOPTION( &MF_Redfont, &MEOS_NoYes, &cl_autosavedeletion ); static MenuEntry_t ME_SAVESETUP_AUTOSAVEDELETION = MAKE_MENUENTRY( "Auto-Delete:", &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SAVESETUP_AUTOSAVEDELETION, Option ); -static MenuRangeInt32_t MEO_SAVESETUP_MAXAUTOSAVES = MAKE_MENURANGE( &cl_maxautosaves.Value, &MF_Redfont, 1, 10, 0, 10, 1 ); +static MenuRangeInt32_t MEO_SAVESETUP_MAXAUTOSAVES = MAKE_MENURANGE( &cl_maxautosaves, &MF_Redfont, 1, 10, 0, 10, 1 ); static MenuEntry_t ME_SAVESETUP_MAXAUTOSAVES = MAKE_MENUENTRY( "Limit:", &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SAVESETUP_MAXAUTOSAVES, RangeInt32 ); static MenuEntry_t ME_SAVESETUP_CLEANUP = MAKE_MENUENTRY( "Clean Up Saves", &MF_Redfont, &MEF_BigOptionsRt, &MEO_NULL, Link ); @@ -1213,11 +1132,11 @@ static MenuEntry_t *MEL_NETWORK[] = { static char const *MEOSN_PLAYER_COLOR[] = { "Auto", "Blue", "Red", "Green", "Gray", "Dark gray", "Dark green", "Brown", "Dark blue", "Bright red", "Yellow", }; static int32_t MEOSV_PLAYER_COLOR[] = { 0, 9, 10, 11, 12, 13, 14, 15, 16, 21, 23, }; static MenuOptionSet_t MEOS_PLAYER_COLOR = MAKE_MENUOPTIONSET( MEOSN_PLAYER_COLOR, MEOSV_PLAYER_COLOR, 0x2 ); -static MenuOption_t MEO_PLAYER_COLOR = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_COLOR, &ud.color ); +static MenuOption_t MEO_PLAYER_COLOR = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_COLOR, &playercolor ); static MenuEntry_t ME_PLAYER_COLOR = MAKE_MENUENTRY( "Color", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_COLOR, Option ); static char const *MEOSN_PLAYER_TEAM[] = { "Blue", "Red", "Green", "Gray", }; static MenuOptionSet_t MEOS_PLAYER_TEAM = MAKE_MENUOPTIONSET( MEOSN_PLAYER_TEAM, NULL, 0x2 ); -static MenuOption_t MEO_PLAYER_TEAM = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_TEAM, &ud.team ); +static MenuOption_t MEO_PLAYER_TEAM = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_TEAM, &playerteam ); static MenuEntry_t ME_PLAYER_TEAM = MAKE_MENUENTRY( "Team", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_TEAM, Option ); #ifndef EDUKE32_SIMPLE_MENU static MenuLink_t MEO_PLAYER_MACROS = { MENU_MACROS, MA_Advance, }; @@ -1266,26 +1185,26 @@ static MenuEntry_t *MEL_NETHOST[] = { }; static MenuOptionSet_t MEOS_NETOPTIONS_GAMETYPE = MAKE_MENUOPTIONSET( MEOSN_NetGametypes, NULL, 0x0 ); -static MenuOption_t MEO_NETOPTIONS_GAMETYPE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_GAMETYPE, &ud.m_coop ); +static MenuOption_t MEO_NETOPTIONS_GAMETYPE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_GAMETYPE, &m_coop ); static MenuEntry_t ME_NETOPTIONS_GAMETYPE = MAKE_MENUENTRY( "Game Type", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_GAMETYPE, Option ); static MenuOptionSet_t MEOS_NETOPTIONS_EPISODE = MAKE_MENUOPTIONSET( MEOSN_NetEpisodes, MEOSV_NetEpisodes, 0x0 ); -static int32_t NetEpisode; +CVAR_UNAMED(Int, NetEpisode); static MenuOption_t MEO_NETOPTIONS_EPISODE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_EPISODE, &NetEpisode ); static MenuEntry_t ME_NETOPTIONS_EPISODE = MAKE_MENUENTRY( "Episode", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_EPISODE, Option ); static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL_TEMPLATE = MAKE_MENUOPTIONSETNULL; static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL[MAXVOLUMES]; -static MenuOption_t MEO_NETOPTIONS_LEVEL = MAKE_MENUOPTION( &MF_Bluefont, NULL, &ud.m_level_number ); +static MenuOption_t MEO_NETOPTIONS_LEVEL = MAKE_MENUOPTION( &MF_Bluefont, NULL, &m_level_number ); static MenuEntry_t ME_NETOPTIONS_LEVEL = MAKE_MENUENTRY( "Level", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_LEVEL, Option ); static MenuLink_t MEO_NETOPTIONS_USERMAP = { MENU_NETUSERMAP, MA_Advance, }; static MenuEntry_t ME_NETOPTIONS_USERMAP = MAKE_MENUENTRY( "User Map", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_USERMAP, Link ); static MenuOptionSet_t MEOS_NETOPTIONS_MONSTERS = MAKE_MENUOPTIONSET( MEOSN_NetSkills, NULL, 0x0 ); static MenuOption_t MEO_NETOPTIONS_MONSTERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_MONSTERS, NULL ); static MenuEntry_t ME_NETOPTIONS_MONSTERS = MAKE_MENUENTRY( "Monsters", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MONSTERS, Option ); -static MenuOption_t MEO_NETOPTIONS_MARKERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &ud.m_marker ); +static MenuOption_t MEO_NETOPTIONS_MARKERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &m_marker ); static MenuEntry_t ME_NETOPTIONS_MARKERS = MAKE_MENUENTRY( "Markers", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MARKERS, Option ); -static MenuOption_t MEO_NETOPTIONS_MAPEXITS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OnOff, &ud.m_noexits ); +static MenuOption_t MEO_NETOPTIONS_MAPEXITS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OnOff, &m_noexits ); static MenuEntry_t ME_NETOPTIONS_MAPEXITS = MAKE_MENUENTRY( "Map Exits", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MAPEXITS, Option ); -static MenuOption_t MEO_NETOPTIONS_FRFIRE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &ud.m_ffire ); +static MenuOption_t MEO_NETOPTIONS_FRFIRE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &m_ffire ); static MenuEntry_t ME_NETOPTIONS_FRFIRE = MAKE_MENUENTRY( "Fr. Fire", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_FRFIRE, Option ); static MenuEntry_t ME_NETOPTIONS_ACCEPT = MAKE_MENUENTRY( "Accept", &MF_Redfont, &MEF_NetSetup_Confirm, &MEO_NETWORK_HOSTGAME, Link ); @@ -1341,10 +1260,8 @@ static MenuMenu_t M_TOUCHSENS = MAKE_MENUMENU( "Sensitivity", &MMF_BigOptions, M static MenuPanel_t M_TOUCHBUTTONS = { "Button Setup", MENU_TOUCHSETUP, MA_Return, MENU_TOUCHSETUP, MA_Advance, }; #endif static MenuMenu_t M_JOYSTICKSETUP = MAKE_MENUMENU( "Gamepad Setup", &MMF_BigOptions, MEL_JOYSTICKSETUP ); -static MenuMenu_t M_JOYSTICKBTNS = MAKE_MENUMENU( "Gamepad Buttons", &MMF_MouseJoySetupBtns, MEL_JOYSTICKBTNS ); static MenuMenu_t M_JOYSTICKAXES = MAKE_MENUMENU( "Gamepad Axes", &MMF_BigSliders, MEL_JOYSTICKAXES ); static MenuMenu_t M_KEYBOARDKEYS = MAKE_MENUMENU( "Key Configuration", &MMF_KeyboardSetupFuncs, MEL_KEYBOARDSETUPFUNCS ); -static MenuMenu_t M_MOUSEBTNS = MAKE_MENUMENU( "Mouse Buttons", &MMF_MouseJoySetupBtns, MEL_MOUSESETUPBTNS ); static MenuMenu_t M_MOUSEADVANCED = MAKE_MENUMENU( "Advanced Mouse", &MMF_BigSliders, MEL_MOUSEADVANCED ); static MenuMenu_t M_JOYSTICKAXIS = MAKE_MENUMENU( NULL, &MMF_BigSliders, MEL_JOYSTICKAXIS ); #ifdef USE_OPENGL @@ -1432,17 +1349,10 @@ static Menu_t Menus[] = { { &M_KEYBOARDSETUP, MENU_KEYBOARDSETUP, MENU_CONTROLS, MA_Return, Menu }, { &M_MOUSESETUP, MENU_MOUSESETUP, MENU_CONTROLS, MA_Return, Menu }, { &M_JOYSTICKSETUP, MENU_JOYSTICKSETUP, MENU_CONTROLS, MA_Return, Menu }, - { &M_JOYSTICKBTNS, MENU_JOYSTICKBTNS, MENU_JOYSTICKSETUP, MA_Return, Menu }, { &M_JOYSTICKAXES, MENU_JOYSTICKAXES, MENU_JOYSTICKSETUP, MA_Return, Menu }, { &M_KEYBOARDKEYS, MENU_KEYBOARDKEYS, MENU_KEYBOARDSETUP, MA_Return, Menu }, - { &M_MOUSEBTNS, MENU_MOUSEBTNS, MENU_MOUSESETUP, MA_Return, Menu }, { &M_MOUSEADVANCED, MENU_MOUSEADVANCED, MENU_MOUSESETUP, MA_Return, Menu }, { &M_JOYSTICKAXIS, MENU_JOYSTICKAXIS, MENU_JOYSTICKAXES, MA_Return, Menu }, -#ifdef EDUKE32_ANDROID_MENU - { &M_TOUCHSETUP, MENU_TOUCHSETUP, MENU_OPTIONS, MA_Return, Menu }, - { &M_TOUCHSENS, MENU_TOUCHSENS, MENU_TOUCHSETUP, MA_Return, Menu }, - { &M_TOUCHBUTTONS, MENU_TOUCHBUTTONS, MENU_TOUCHSETUP, MA_Return, Panel }, -#endif { &M_CONTROLS, MENU_CONTROLS, MENU_OPTIONS, MA_Return, Menu }, #ifdef USE_OPENGL { &M_RENDERERSETUP_POLYMOST, MENU_POLYMOST, MENU_DISPLAYSETUP, MA_Return, Menu }, @@ -1829,16 +1739,6 @@ void Menu_Init(void) MEO_KEYBOARDSETUPFUNCS[i] = MEO_KEYBOARDSETUPFUNCS_TEMPLATE; } M_KEYBOARDKEYS.numEntries = NUMGAMEFUNCTIONS; - for (i = 0; i < MENUMOUSEFUNCTIONS; ++i) - { - MEL_MOUSESETUPBTNS[i] = &ME_MOUSESETUPBTNS[i]; - ME_MOUSESETUPBTNS[i] = ME_MOUSEJOYSETUPBTNS_TEMPLATE; - ME_MOUSESETUPBTNS[i].name = MenuMouseNames[i]; - ME_MOUSESETUPBTNS[i].entry = &MEO_MOUSESETUPBTNS[i]; - MEO_MOUSESETUPBTNS[i] = MEO_MOUSEJOYSETUPBTNS_TEMPLATE; - static int32_t sink; - MEO_MOUSESETUPBTNS[i].data = &sink; - } for (i = 0; i < 2*joystick.numButtons + 8*joystick.numHats; ++i) { if (i < 2*joystick.numButtons) @@ -1852,15 +1752,7 @@ void Menu_Init(void) { Bsnprintf(MenuJoystickNames[i], MAXJOYBUTTONSTRINGLENGTH, (i & 1) ? "Double Hat %d %s" : "Hat %d %s", ((i - 2*joystick.numButtons)>>3), MenuJoystickHatDirections[((i - 2*joystick.numButtons)>>1) % 4]); } - - MEL_JOYSTICKBTNS[i] = &ME_JOYSTICKBTNS[i]; - ME_JOYSTICKBTNS[i] = ME_MOUSEJOYSETUPBTNS_TEMPLATE; - ME_JOYSTICKBTNS[i].name = MenuJoystickNames[i]; - ME_JOYSTICKBTNS[i].entry = &MEO_JOYSTICKBTNS[i]; - MEO_JOYSTICKBTNS[i] = MEO_MOUSEJOYSETUPBTNS_TEMPLATE; - MEO_JOYSTICKBTNS[i].data = &JoystickFunctions[i>>1][i&1]; } - M_JOYSTICKBTNS.numEntries = 2*joystick.numButtons + 8*joystick.numHats; for (i = 0; i < joystick.numAxes; ++i) { ME_JOYSTICKAXES[i] = ME_JOYSTICKAXES_TEMPLATE; @@ -1967,7 +1859,7 @@ static void Menu_Pre(MenuID_t cm) case MENU_GAMESETUP: MEO_GAMESETUP_DEMOREC.options = (ps->gm&MODE_GAME) ? &MEOS_DemoRec : &MEOS_OffOn; - MenuEntry_DisableOnCondition(&ME_GAMESETUP_DEMOREC, (ps->gm&MODE_GAME) && ud.m_recstat != 1); + MenuEntry_DisableOnCondition(&ME_GAMESETUP_DEMOREC, (ps->gm&MODE_GAME) && m_recstat != 1); break; case MENU_DISPLAYSETUP: @@ -1975,10 +1867,6 @@ static void Menu_Pre(MenuID_t cm) #ifdef USE_OPENGL if (videoGetRenderMode() == REND_CLASSIC) MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP); -#ifdef POLYMER - else if (videoGetRenderMode() == REND_POLYMER) - MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP_GL_POLYMER); -#endif else MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP_GL); @@ -2001,37 +1889,13 @@ static void Menu_Pre(MenuID_t cm) } MenuEntry_HideOnCondition(&ME_SCREENSETUP_SCREENSIZE, (MEO_SCREENSETUP_SCREENSIZE.steps < 2)); - vpsize = -1; - -#ifndef EDUKE32_STANDALONE -#ifdef TEXFILTER_MENU_OPTIONS - if (videoGetRenderMode() != REND_CLASSIC) - { - //POGOTODO: allow setting anisotropy again while hw_useindexedcolortextures is set when support is added down the line - // don't allow setting anisotropy while in POLYMOST and hw_useindexedcolortextures is enabled - MenuEntry_DisableOnCondition(&ME_DISPLAYSETUP_ANISOTROPY, videoGetRenderMode() == REND_POLYMOST && hw_useindexedcolortextures); - - for (i = (int32_t) ARRAY_SIZE(MEOSV_DISPLAYSETUP_ANISOTROPY) - 1; i >= 0; --i) - { - if (MEOSV_DISPLAYSETUP_ANISOTROPY[i] <= GLInterface.glinfo.maxanisotropy) - { - MEOS_DISPLAYSETUP_ANISOTROPY.numOptions = i + 1; - break; - } - } - } -#endif -#endif break; case MENU_POLYMER: case MENU_POLYMOST: - MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXQUALITY, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile); -# ifdef USE_GLEXT MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_GLOWTEX, !hw_hightile); -# endif #endif break; @@ -2123,7 +1987,7 @@ static void Menu_Pre(MenuID_t cm) MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL; MEO_NETOPTIONS_LEVEL.options = &MEOS_NETOPTIONS_LEVEL[MEOSV_NetEpisodes[MEO_NETOPTIONS_EPISODE.currentOption]]; } - if (!(g_gametypeFlags[ud.m_coop] & GAMETYPE_MARKEROPTION)) + if (!(g_gametypeFlags[m_coop] & GAMETYPE_MARKEROPTION)) { ME_NETOPTIONS_MARKERS.type = Dummy; ME_NETOPTIONS_MARKERS.flags |= MEF_Disabled; @@ -2133,7 +1997,7 @@ static void Menu_Pre(MenuID_t cm) ME_NETOPTIONS_MARKERS.type = Option; ME_NETOPTIONS_MARKERS.flags &= ~MEF_Disabled; } - MEL_NETOPTIONS[5] = (g_gametypeFlags[ud.m_coop] & (GAMETYPE_PLAYERSFRIENDLY|GAMETYPE_TDM)) ? &ME_NETOPTIONS_FRFIRE : &ME_NETOPTIONS_MAPEXITS; + MEL_NETOPTIONS[5] = (g_gametypeFlags[m_coop] & (GAMETYPE_PLAYERSFRIENDLY|GAMETYPE_TDM)) ? &ME_NETOPTIONS_FRFIRE : &ME_NETOPTIONS_MAPEXITS; break; case MENU_OPTIONS: @@ -2281,7 +2145,7 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin) break; case MENU_PLAYER: - rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(ud.team) : ud.color,10); + rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10); break; case MENU_MACROS: @@ -2307,27 +2171,27 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin) mminitext(origin.x + (90<<16), origin.y + ((90+8)<<16), "Episode", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8)<<16), "Level", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8)<<16), ME_NETOPTIONS_MONSTERS.name, MF_Minifont.pal_deselected); - if (ud.m_coop == 0) + if (m_coop == 0) mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8)<<16), "Markers", MF_Minifont.pal_deselected); - else if (ud.m_coop == 1) + else if (m_coop == 1) mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8)<<16), "Friendly Fire", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8+8)<<16), "User Map", MF_Minifont.pal_deselected); - mminitext(origin.x + ((90+60)<<16), origin.y + (90<<16), g_gametypeNames[ud.m_coop], MF_Minifont.pal_deselected_right); + mminitext(origin.x + ((90+60)<<16), origin.y + (90<<16), g_gametypeNames[m_coop], MF_Minifont.pal_deselected_right); mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8)<<16), g_volumeNames[ud.m_volume_number], MF_Minifont.pal_deselected_right); - mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8)<<16), g_mapInfo[MAXLEVELS*ud.m_volume_number+ud.m_level_number].name, MF_Minifont.pal_deselected_right); + mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8)<<16), g_mapInfo[MAXLEVELS*ud.m_volume_number+m_level_number].name, MF_Minifont.pal_deselected_right); if (ud.m_monsters_off == 0 || ud.m_player_skill > 0) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8)<<16), g_skillNames[ud.m_player_skill], MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8)<<16), "None", MF_Minifont.pal_deselected_right); - if (ud.m_coop == 0) + if (m_coop == 0) { - if (ud.m_marker) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); + if (m_marker) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right); } - else if (ud.m_coop == 1) + else if (m_coop == 1) { - if (ud.m_ffire) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); + if (m_ffire) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right); } break; @@ -3055,7 +2919,7 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry) if (entry != &ME_EPISODE_USERMAP) { ud.m_volume_number = M_EPISODE.currentEntry; - ud.m_level_number = 0; + m_level_number = 0; if (g_skillCnt == 0) Menu_StartGameWithoutSkill(); @@ -3113,13 +2977,13 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry) case MENU_JOYSTICKAXES: M_JOYSTICKAXIS.title = joyGetName(0, M_JOYSTICKAXES.currentEntry); +#if 0 MEO_JOYSTICKAXIS_ANALOG.data = &JoystickAnalogueAxes[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_SCALE.variable = &JoystickAnalogueScale[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_INVERT.data = &JoystickAnalogueInvert[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_DEAD.variable = &JoystickAnalogueDead[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_SATU.variable = &JoystickAnalogueSaturate[M_JOYSTICKAXES.currentEntry]; - MEO_JOYSTICKAXIS_DIGITALNEGATIVE.data = &JoystickDigitalFunctions[M_JOYSTICKAXES.currentEntry][0]; - MEO_JOYSTICKAXIS_DIGITALPOSITIVE.data = &JoystickDigitalFunctions[M_JOYSTICKAXES.currentEntry][1]; +#endif break; case MENU_CHEATS: @@ -3349,26 +3213,7 @@ static void Menu_EntryOptionDidModify(MenuEntry_t *entry) entry == &ME_PLAYER_COLOR || entry == &ME_PLAYER_TEAM) G_UpdatePlayerFromMenu(); - else if (entry == &ME_DISPLAYSETUP_UPSCALING) - { - if (in3dmode()) - { - videoSetGameMode(fullscreen, xres, yres, bpp, ud.detail); - } - } #ifdef USE_OPENGL -#ifndef EDUKE32_STANDALONE -#ifdef TEXFILTER_MENU_OPTIONS - else if (entry == &ME_DISPLAYSETUP_ANISOTROPY || entry == &ME_DISPLAYSETUP_TEXFILTER) - gltexapplyprops(); -#endif -#endif - else if (entry == &ME_RENDERERSETUP_TEXQUALITY) - { - r_downsizevar = r_downsize; - domodechange = 1; - } - if (domodechange) { videoResetMode(); @@ -3397,16 +3242,12 @@ static int32_t Menu_EntryRangeInt32Modify(MenuEntry_t *entry, int32_t newValue) FX_SetVolume(newValue); else if (entry == &ME_SOUND_VOLUME_MUSIC) S_MusicVolume(newValue); - else if (entry == &ME_MOUSEADVANCED_SCALEX) - CONTROL_SetAnalogAxisScale(0, newValue, controldevice_mouse); - else if (entry == &ME_MOUSEADVANCED_SCALEY) - CONTROL_SetAnalogAxisScale(1, newValue, controldevice_mouse); else if (entry == &ME_JOYSTICKAXIS_SCALE) CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick); else if (entry == &ME_JOYSTICKAXIS_DEAD) - joySetDeadZone(M_JOYSTICKAXES.currentEntry, newValue, *MEO_JOYSTICKAXIS_SATU.variable); + joySetDeadZone(M_JOYSTICKAXES.currentEntry, newValue, *MEO_JOYSTICKAXIS_SATU.cVar); else if (entry == &ME_JOYSTICKAXIS_SATU) - joySetDeadZone(M_JOYSTICKAXES.currentEntry, *MEO_JOYSTICKAXIS_DEAD.variable, newValue); + joySetDeadZone(M_JOYSTICKAXES.currentEntry, *MEO_JOYSTICKAXIS_DEAD.cVar, newValue); return 0; } @@ -3634,9 +3475,9 @@ static void Menu_Verify(int32_t input) case MENU_COLCORRRESETVERIFY: if (input) { - g_videoGamma = DEFAULT_GAMMA; - g_videoContrast = DEFAULT_CONTRAST; - g_videoBrightness = DEFAULT_BRIGHTNESS; + vid_gamma = 1.f; + vid_contrast = 1.f; + vid_brightness = 0.f; r_ambientlight = 1.f; videoSetPalette(0,g_player[myconnectindex].ps->palette,0); } @@ -3861,7 +3702,7 @@ static void Menu_FileSelect(int32_t input) if (input) { ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; if (g_skillCnt > 0) Menu_AnimateChange(MENU_SKILL, MA_Advance); @@ -3943,8 +3784,8 @@ void Menu_AnimateChange(int32_t cm, MenuAnimationType_t animtype) { if (cm == MENU_OPTIONS) { - GUICapture |= 2; - return; + //GUICapture |= 2; + //return; } if (FURY) @@ -4841,7 +4682,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current case Option: { auto object = (MenuOption_t*)entry->entry; - int32_t currentOption = Menu_FindOptionBinarySearch(object, object->data == NULL ? Menu_EntryOptionSource(entry, object->currentOption) : *object->data, 0, object->options->numOptions); + int32_t currentOption = Menu_FindOptionBinarySearch(object, object->cVar == NULL ? Menu_EntryOptionSource(entry, object->currentOption) : object->cVar->ToInt(), 0, object->options->numOptions); if (currentOption >= 0) object->currentOption = currentOption; @@ -4993,7 +4834,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current rotatesprite_ybounds(slidebarx, slidebary, mulscale16(ud.menu_slidebarz, z), 0, SLIDEBAR, s, p, 2|8|16|ROTATESPRITE_FULL16, ydim_upper, ydim_lower); const int32_t slideregionwidth = mulscale16((tilesiz[SLIDEBAR].x * ud.menu_slidebarz) - (ud.menu_slidebarmargin<<1) - (tilesiz[SLIDEBAR+1].x * ud.menu_slidecursorz), z); - const int32_t slidepointx = slidebarx + mulscale16(ud.menu_slidebarmargin, z) + scale(slideregionwidth, *object->variable - object->min, object->max - object->min); + const int32_t slidepointx = slidebarx + mulscale16(ud.menu_slidebarmargin, z) + scale(slideregionwidth, *object->cVar - object->min, object->max - object->min); const int32_t slidepointy = slidebary + mulscale16((((tilesiz[SLIDEBAR].y>>1) * ud.menu_slidebarz) - ((tilesiz[SLIDEBAR+1].y>>1) * ud.menu_slidecursorz)), z); rotatesprite_ybounds(slidepointx, slidepointy, mulscale16(ud.menu_slidecursorz, z), 0, SLIDEBAR+1, s, p, 2|8|16|ROTATESPRITE_FULL16, ydim_upper, ydim_lower); @@ -5009,13 +4850,13 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current switch (object->flags & DisplayTypeMask) { case DisplayTypeInteger: - Bsprintf(tempbuf, "%d", *object->variable); + Bsprintf(tempbuf, "%d", **object->cVar); break; case DisplayTypePercent: - Bsprintf(tempbuf, "%d%%", roundscale(*object->variable, 100, onehundredpercent)); + Bsprintf(tempbuf, "%d%%", roundscale(*object->cVar, 100, onehundredpercent)); break; case DisplayTypeNormalizedDecimal: - Bsprintf(tempbuf, "%.2f", (double) *object->variable / (double) onehundredpercent); + Bsprintf(tempbuf, "%.2f", (double) *object->cVar / (double) onehundredpercent); break; } @@ -5092,7 +4933,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current rotatesprite_ybounds(slidebarx, slidebary, mulscale16(ud.menu_slidebarz, z), 0, SLIDEBAR, s, p, 2|8|16|ROTATESPRITE_FULL16, ydim_upper, ydim_lower); const int32_t slideregionwidth = mulscale16((tilesiz[SLIDEBAR].x * ud.menu_slidebarz) - (ud.menu_slidebarmargin<<1) - (tilesiz[SLIDEBAR+1].x * ud.menu_slidecursorz), z); - const int32_t slidepointx = slidebarx + mulscale16(ud.menu_slidebarmargin, z) + Blrintf((float) slideregionwidth * (*object->variable - object->min) / (object->max - object->min)); + const int32_t slidepointx = slidebarx + mulscale16(ud.menu_slidebarmargin, z) + Blrintf((float) slideregionwidth * (*object->cVar - object->min) / (object->max - object->min)); const int32_t slidepointy = slidebary + mulscale16(((tilesiz[SLIDEBAR].y>>1) * ud.menu_slidebarz) - ((tilesiz[SLIDEBAR+1].y>>1) * ud.menu_slidecursorz), z); rotatesprite_ybounds(slidepointx, slidepointy, mulscale16(ud.menu_slidecursorz, z), 0, SLIDEBAR+1, s, p, 2|8|16|ROTATESPRITE_FULL16, ydim_upper, ydim_lower); @@ -5108,13 +4949,13 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current switch (object->flags & DisplayTypeMask) { case DisplayTypeInteger: - Bsprintf(tempbuf, "%.2f", *object->variable); + Bsprintf(tempbuf, "%.2f", **object->cVar); break; case DisplayTypePercent: - Bsprintf(tempbuf, "%ld%%", lrintf(*object->variable * 100.f / onehundredpercent)); + Bsprintf(tempbuf, "%ld%%", lrintf(*object->cVar * 100.f / onehundredpercent)); break; case DisplayTypeNormalizedDecimal: - Bsprintf(tempbuf, "%.2f", *object->variable / onehundredpercent); + Bsprintf(tempbuf, "%.2f", *object->cVar / onehundredpercent); break; } @@ -5937,9 +5778,12 @@ static int32_t Menu_RunInput_EntryOption_Modify(MenuEntry_t *entry, MenuOption_t { object->currentOption = newValueIndex; - if ((int32_t*)object->data != NULL) // NULL implies the functions will handle it - *((int32_t*)object->data) = newValue; - + if (object->cVar != NULL) // NULL implies the functions will handle it + { + UCVarValue v; + v.Int = newValue; + object->cVar->ForceSet(v, CVAR_Int, false); + } Menu_EntryOptionDidModify(entry); return 0; @@ -6016,7 +5860,7 @@ static void Menu_RunInput_EntryCustom2Col_Activate(MenuEntry_t *entry) static void Menu_RunInput_EntryRangeInt32_MovementVerify(MenuEntry_t *entry, MenuRangeInt32_t *object, int32_t newValue) { if (!Menu_EntryRangeInt32Modify(entry, newValue)) - *object->variable = newValue; + *object->cVar = newValue; } static void Menu_RunInput_EntryRangeInt32_MovementArbitrary(MenuEntry_t *entry, MenuRangeInt32_t *object, int32_t newValue) @@ -6034,7 +5878,7 @@ static void Menu_RunInput_EntryRangeInt32_MovementArbitrary(MenuEntry_t *entry, static void Menu_RunInput_EntryRangeInt32_Movement(MenuEntry_t *entry, MenuRangeInt32_t *object, MenuMovement_t direction) { - int32_t const oldValue = *object->variable; + int32_t const oldValue = *object->cVar; int32_t const range = object->max - object->min; int32_t const maxInterval = object->steps - 1; int32_t const oldValueIndex = roundscale(oldValue - object->min, maxInterval, range); @@ -6075,7 +5919,7 @@ static void Menu_RunInput_EntryRangeFloat_MovementVerify(MenuEntry_t *entry, Men { if (!Menu_EntryRangeFloatModify(entry, newValue)) { - *object->variable = newValue; + *object->cVar = newValue; Menu_EntryRangeFloatDidModify(entry); } } @@ -6095,7 +5939,7 @@ static void Menu_RunInput_EntryRangeFloat_MovementArbitrary(MenuEntry_t *entry, static void Menu_RunInput_EntryRangeFloat_Movement(MenuEntry_t *entry, MenuRangeFloat_t *object, MenuMovement_t direction) { - float const oldValue = *object->variable; + float const oldValue = *object->cVar; float const range = object->max - object->min; float const maxInterval = (float)(object->steps - 1); float const oldValueIndexUnrounded = (oldValue - object->min) * maxInterval / range; @@ -6910,17 +6754,6 @@ static void Menu_RunInput(Menu_t *cm) } } -END_DUKE_NS - -namespace ImGui -{ - void ShowAboutWindow(bool*); - void ShowDemoWindow(bool*); - void ShowUserGuide(); -} - -BEGIN_DUKE_NS - void M_DisplayMenus(void) { vec2_t origin = { 0, 0 }, previousOrigin = { 0, 0 }; @@ -7070,8 +6903,13 @@ void M_DisplayMenus(void) { ImGui_Begin_Frame(); bool b = true; + videoFadeToBlack(1); +#if 0 ImGui::ShowDemoWindow(&b); if (!b) +#else + if (!ShowOptionMenu()) +#endif { GUICapture &= ~2; GUICapture |= 4; diff --git a/source/duke3d/src/menus.h b/source/duke3d/src/menus.h index 0ed13baeb..4ec5c6e3f 100644 --- a/source/duke3d/src/menus.h +++ b/source/duke3d/src/menus.h @@ -207,7 +207,7 @@ typedef struct MenuOption_t MenuOptionSet_t *options; // so that common sets such as Yes/No, On/Off can be reused // effect - int32_t *data; + FBaseCVar *cVar; // state int32_t currentOption; @@ -241,7 +241,7 @@ enum MenuRangeFlags_t typedef struct MenuRangeInt32_t { // effect - int32_t *variable; + FIntCVar *cVar; // appearance MenuFont_t *font; @@ -257,7 +257,7 @@ typedef struct MenuRangeInt32_t typedef struct MenuRangeFloat_t { // effect - float *variable; + FFloatCVar *cVar; // appearance MenuFont_t *font; diff --git a/source/duke3d/src/network.cpp b/source/duke3d/src/network.cpp index 550005252..f0864e9c1 100644 --- a/source/duke3d/src/network.cpp +++ b/source/duke3d/src/network.cpp @@ -1993,22 +1993,22 @@ static void Net_ReceiveUserMapName(uint8_t *pbuf, int32_t packbufleng) } } - if (ud.m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) - ud.m_level_number = 0; + if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) + m_level_number = 0; } static void Net_ExtractNewGame(newgame_t *newgame, int32_t menuonly) { - ud.m_level_number = newgame->level_number; + m_level_number = newgame->level_number; ud.m_volume_number = newgame->volume_number; ud.m_player_skill = newgame->player_skill; ud.m_monsters_off = newgame->monsters_off; ud.m_respawn_monsters = newgame->respawn_monsters; ud.m_respawn_items = newgame->respawn_items; ud.m_respawn_inventory = newgame->respawn_inventory; - ud.m_ffire = newgame->ffire; - ud.m_noexits = newgame->noexits; - ud.m_coop = newgame->coop; + m_ffire = newgame->ffire; + m_noexits = newgame->noexits; + m_coop = newgame->coop; if (!menuonly) { @@ -4536,16 +4536,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu) { if (frommenu) { - newgame->level_number = ud.m_level_number; + newgame->level_number = m_level_number; newgame->volume_number = ud.m_volume_number; newgame->player_skill = ud.m_player_skill; newgame->monsters_off = ud.m_monsters_off; newgame->respawn_monsters = ud.m_respawn_monsters; newgame->respawn_items = ud.m_respawn_items; newgame->respawn_inventory = ud.m_respawn_inventory; - newgame->ffire = ud.m_ffire; - newgame->noexits = ud.m_noexits; - newgame->coop = ud.m_coop; + newgame->ffire = m_ffire; + newgame->noexits = m_noexits; + newgame->coop = m_coop; } else { @@ -4802,9 +4802,9 @@ void Net_SendClientInfo(void) tempnetbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_aimmode; tempnetbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; tempnetbuf[l++] = g_player[myconnectindex].ps->weaponswitch = cl_weaponswitch; - tempnetbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = ud.color; + tempnetbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = playercolor; - tempnetbuf[l++] = g_player[myconnectindex].pteam = ud.team; + tempnetbuf[l++] = g_player[myconnectindex].pteam = playerteam; for (i = 0; i < 10; i++) { @@ -5176,7 +5176,7 @@ void Net_StartNewGame() Net_ExtractNewGame(&pendingnewgame, 0); G_NewGame(ud.volume_number, ud.level_number, ud.player_skill); - ud.coop = ud.m_coop; + ud.coop = m_coop; if (G_EnterLevel(MODE_GAME)) { diff --git a/source/duke3d/src/osdcmds.cpp b/source/duke3d/src/osdcmds.cpp index e9e512ed1..db76be6ec 100644 --- a/source/duke3d/src/osdcmds.cpp +++ b/source/duke3d/src/osdcmds.cpp @@ -85,7 +85,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm) else if (voting == -1) { ud.m_volume_number = volume; - ud.m_level_number = level; + m_level_number = level; if (g_player[myconnectindex].ps->i) { @@ -104,12 +104,12 @@ static int osdcmd_changelevel(osdcmdptr_t parm) tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[1] = myconnectindex; tempbuf[2] = ud.m_volume_number; - tempbuf[3] = ud.m_level_number; + tempbuf[3] = m_level_number; enet_peer_send(g_netClientPeer, CHAN_GAMESTATE, enet_packet_create(tempbuf, 4, ENET_PACKET_FLAG_RELIABLE)); } - if ((g_gametypeFlags[ud.m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[ud.m_coop] & GAMETYPE_TDM)) - ud.m_noexits = 0; + if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM)) + m_noexits = 0; M_OpenMenu(myconnectindex); Menu_Change(MENU_NETWAITVOTES); @@ -130,7 +130,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm) osdcmd_cheatsinfo_stat.cheatnum = -1; ud.m_volume_number = volume; - ud.m_level_number = level; + m_level_number = level; ud.m_monsters_off = 0; ud.monsters_off = 0; @@ -177,15 +177,15 @@ static int osdcmd_map(osdcmdptr_t parm) { Net_SendUserMapName(); ud.m_volume_number = 0; - ud.m_level_number = 7; - Net_NewGame(ud.m_volume_number, ud.m_level_number); + m_level_number = 7; + Net_NewGame(ud.m_volume_number, m_level_number); } else if (voting == -1) { Net_SendUserMapName(); ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; if (g_player[myconnectindex].ps->i) { @@ -203,12 +203,12 @@ static int osdcmd_map(osdcmdptr_t parm) tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[1] = myconnectindex; tempbuf[2] = ud.m_volume_number; - tempbuf[3] = ud.m_level_number; + tempbuf[3] = m_level_number; enet_peer_send(g_netClientPeer, CHAN_GAMESTATE, enet_packet_create(tempbuf, 4, ENET_PACKET_FLAG_RELIABLE)); } - if ((g_gametypeFlags[ud.m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[ud.m_coop] & GAMETYPE_TDM)) - ud.m_noexits = 0; + if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM)) + m_noexits = 0; M_OpenMenu(myconnectindex); Menu_Change(MENU_NETWAITVOTES); @@ -219,7 +219,7 @@ static int osdcmd_map(osdcmdptr_t parm) osdcmd_cheatsinfo_stat.cheatnum = -1; ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; ud.m_monsters_off = ud.monsters_off = 0; @@ -230,7 +230,7 @@ static int osdcmd_map(osdcmdptr_t parm) if (g_player[myconnectindex].ps->gm & MODE_GAME) { - G_NewGame(ud.m_volume_number, ud.m_level_number, ud.m_player_skill); + G_NewGame(ud.m_volume_number, m_level_number, ud.m_player_skill); g_player[myconnectindex].ps->gm = MODE_RESTART; } else G_NewGame_EnterLevel(); diff --git a/source/duke3d/src/player.cpp b/source/duke3d/src/player.cpp index 18636bc64..1519e9b69 100644 --- a/source/duke3d/src/player.cpp +++ b/source/duke3d/src/player.cpp @@ -4374,13 +4374,13 @@ void P_EndLevel(void) if (ud.from_bonus) { ud.level_number = ud.from_bonus; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.from_bonus = 0; } else { ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } } @@ -4413,7 +4413,7 @@ static int P_DoFist(DukePlayer_t *pPlayer) if ((unsigned)ud.secretlevel <= MAXLEVELS) ud.level_number = ud.secretlevel - 1; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } else P_EndLevel(); diff --git a/source/duke3d/src/premap.cpp b/source/duke3d/src/premap.cpp index 49d5e366a..2d8dba18b 100644 --- a/source/duke3d/src/premap.cpp +++ b/source/duke3d/src/premap.cpp @@ -1324,7 +1324,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum) ready2send = 0; - if (ud.m_recstat != 2 && ud.last_level != -1 && !VM_OnEventWithReturn(EVENT_EXITGAMESCREEN, g_player[myconnectindex].ps->i, myconnectindex, 0) + if (m_recstat != 2 && ud.last_level != -1 && !VM_OnEventWithReturn(EVENT_EXITGAMESCREEN, g_player[myconnectindex].ps->i, myconnectindex, 0) && (g_netServer || ud.multimode > 1) && (ud.coop & GAMETYPE_SCORESHEET)) G_BonusScreen(1); @@ -1368,7 +1368,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum) for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++) G_FreeMapState(i); - if (ud.m_coop != 1) + if (m_coop != 1) { for (int weaponNum = 0; weaponNum < MAX_WEAPONS; weaponNum++) { @@ -1775,13 +1775,13 @@ int G_EnterLevel(int gameMode) ud.respawn_items = ud.m_respawn_items; ud.respawn_inventory = ud.m_respawn_inventory; ud.monsters_off = ud.m_monsters_off; - ud.coop = ud.m_coop; - ud.marker = ud.m_marker; - ud.ffire = ud.m_ffire; - ud.noexits = ud.m_noexits; + ud.coop = m_coop; + ud.marker = m_marker; + ud.ffire = m_ffire; + ud.noexits = m_noexits; if ((gameMode & MODE_DEMO) != MODE_DEMO) - ud.recstat = ud.m_recstat; + ud.recstat = m_recstat; if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2) ud.recstat = 0; @@ -1807,7 +1807,7 @@ int G_EnterLevel(int gameMode) levelNum &= MAXLEVELS-1; volumeNum = (volumeNum - levelNum) / MAXLEVELS; - ud.level_number = ud.m_level_number = levelNum; + ud.level_number = m_level_number = levelNum; ud.volume_number = ud.m_volume_number = volumeNum; boardfilename[0] = 0; diff --git a/source/duke3d/src/savegame.cpp b/source/duke3d/src/savegame.cpp index 2b137d24c..efbd75a0c 100644 --- a/source/duke3d/src/savegame.cpp +++ b/source/duke3d/src/savegame.cpp @@ -437,7 +437,7 @@ int32_t G_LoadPlayer(savebrief_t & sv) S_ClearSoundLocks(); ud.m_volume_number = volume; - ud.m_level_number = level; + m_level_number = level; ud.m_player_skill = skill; boardfilename[0] = '\0'; @@ -501,7 +501,7 @@ int32_t G_LoadPlayer(savebrief_t & sv) for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++) G_FreeMapState(i); - if (ud.m_coop != 1) + if (m_coop != 1) p0.last_weapon = -1; display_mirror = 0; @@ -634,7 +634,7 @@ int32_t G_LoadPlayer(savebrief_t & sv) // non-"m_" fields will be loaded from svgm_udnetw ud.m_volume_number = h.volnum; - ud.m_level_number = h.levnum; + m_level_number = h.levnum; ud.m_player_skill = h.skill; // NOTE: Bmemcpy needed for SAVEGAME_MUSIC. @@ -1945,17 +1945,17 @@ static void sv_postudload() { // Bmemcpy(&boardfilename[0], ¤tboardfilename[0], BMAX_PATH); // DON'T do this in demos! #if 1 - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.m_volume_number = ud.volume_number; ud.m_player_skill = ud.player_skill; ud.m_respawn_monsters = ud.respawn_monsters; ud.m_respawn_items = ud.respawn_items; ud.m_respawn_inventory = ud.respawn_inventory; ud.m_monsters_off = ud.monsters_off; - ud.m_coop = ud.coop; - ud.m_marker = ud.marker; - ud.m_ffire = ud.ffire; - ud.m_noexits = ud.noexits; + m_coop = ud.coop; + m_marker = ud.marker; + m_ffire = ud.ffire; + m_noexits = ud.noexits; #endif } //static int32_t lockclock_dummy; diff --git a/source/duke3d/src/screentext.cpp b/source/duke3d/src/screentext.cpp index 46092d6c4..9329c52e3 100644 --- a/source/duke3d/src/screentext.cpp +++ b/source/duke3d/src/screentext.cpp @@ -1133,7 +1133,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p) { int32_t cq = 0; - if (ud.fta_on == 0 || q < 0 || !(p->gm & MODE_GAME)) + if (hud_messages == 0 || q < 0 || !(p->gm & MODE_GAME)) return; if (q & MAXQUOTES) diff --git a/source/mact/include/control.h b/source/mact/include/control.h index f9e32ccbd..23cfbb374 100644 --- a/source/mact/include/control.h +++ b/source/mact/include/control.h @@ -162,7 +162,7 @@ int CONTROL_FlagActive( int which ); void CONTROL_ClearAssignments( void ); // void CONTROL_GetFunctionInput( void ); void CONTROL_GetInput( ControlInfo *info ); -extern float CONTROL_MouseSensitivity; + bool CONTROL_Startup(controltype which, int32_t ( *TimeFunction )( void ), int32_t ticspersecond); void CONTROL_Shutdown( void ); diff --git a/source/mact/src/control.cpp b/source/mact/src/control.cpp index 959b285ff..3bf9323df 100644 --- a/source/mact/src/control.cpp +++ b/source/mact/src/control.cpp @@ -14,6 +14,7 @@ #include "keyboard.h" #include "mouse.h" #include "osd.h" +#include "gamecvars.h" #include "pragmas.h" bool CONTROL_Started = false; @@ -24,15 +25,12 @@ bool CONTROL_JoystickEnabled = false; LastSeenInput CONTROL_LastSeenInput; -float CONTROL_MouseSensitivity = DEFAULTMOUSESENSITIVITY; static int32_t CONTROL_NumMouseButtons = 0; static int32_t CONTROL_NumJoyButtons = 0; static int32_t CONTROL_NumJoyAxes = 0; // static controlkeymaptype CONTROL_KeyMapping[CONTROL_NUM_FLAGS]; -static int32_t CONTROL_MouseAxesScale[2]; - static controlaxismaptype CONTROL_JoyAxesMap[MAXJOYAXES]; static controlaxistype CONTROL_JoyAxes[MAXJOYAXES]; static controlaxistype CONTROL_LastJoyAxes[MAXJOYAXES]; @@ -89,8 +87,8 @@ static void CONTROL_GetMouseDelta(ControlInfo * info) last = input; } - info->mousex = mulscale16(Blrintf(finput.x * 4.f * CONTROL_MouseSensitivity), CONTROL_MouseAxesScale[0]); - info->mousey = mulscale16(Blrintf(finput.y * 4.f * CONTROL_MouseSensitivity), CONTROL_MouseAxesScale[1]); + info->mousex = mulscale16(Blrintf(finput.x * 4.f * in_mousesensitivity), in_mousescalex); + info->mousey = mulscale16(Blrintf(finput.y * 4.f * in_mousesensitivity), in_mousescaley); } static int32_t CONTROL_GetTime(void) @@ -167,17 +165,6 @@ void CONTROL_SetAnalogAxisScale(int32_t whichaxis, int32_t axisscale, controldev switch (device) { - case controldevice_mouse: - if ((unsigned) whichaxis >= ARRAY_SIZE(CONTROL_MouseAxesScale)) - { - //Error("CONTROL_SetAnalogAxisScale: axis %d out of valid range for %d mouse axes.", - // whichaxis, MAXMOUSEAXES); - return; - } - - set = CONTROL_MouseAxesScale; - break; - case controldevice_joystick: if ((unsigned) whichaxis >= (unsigned) MAXJOYAXES) { @@ -270,12 +257,6 @@ void CONTROL_ClearAssignments(void) // memset(CONTROL_KeyMapping, KEYUNDEFINED, sizeof(CONTROL_KeyMapping)); memset(CONTROL_LastJoyAxes, 0, sizeof(CONTROL_LastJoyAxes)); memset(CONTROL_MouseButtonMapping, BUTTONUNDEFINED, sizeof(CONTROL_MouseButtonMapping)); - - for (int & i : CONTROL_MouseAxesScale) - i = NORMALAXISSCALE; - - for (int & i : CONTROL_JoyAxesScale) - i = NORMALAXISSCALE; } static int DoGetDeviceButtons( diff --git a/source/rr/src/actors.cpp b/source/rr/src/actors.cpp index f30ded343..12ae0d40c 100644 --- a/source/rr/src/actors.cpp +++ b/source/rr/src/actors.cpp @@ -3986,7 +3986,7 @@ ACTOR_STATIC void G_MoveActors(void) ud.level_number++; if (ud.level_number > 6) ud.level_number = 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } } diff --git a/source/rr/src/cheats.cpp b/source/rr/src/cheats.cpp index e1c1007bf..603b364bb 100644 --- a/source/rr/src/cheats.cpp +++ b/source/rr/src/cheats.cpp @@ -361,13 +361,13 @@ void G_DoCheats(void) levnume--; ud.m_volume_number = volnume; - ud.m_level_number = levnume; + m_level_number = levnume; } else { // JBF 20030914 ud.m_volume_number = osdcmd_cheatsinfo_stat.volume; - ud.m_level_number = osdcmd_cheatsinfo_stat.level; + m_level_number = osdcmd_cheatsinfo_stat.level; } } else if (cheatNum == CHEAT_SKILL) @@ -554,7 +554,7 @@ void G_DoCheats(void) { if (RR) g_lastLevel = 0; - int32_t const volnume = ud.m_volume_number, levnume = ud.m_level_number; + int32_t const volnume = ud.m_volume_number, levnume = m_level_number; if ((!VOLUMEONE || volnume == 0) && (unsigned)volnume < (unsigned)g_volumeCnt && (unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL) @@ -581,7 +581,7 @@ void G_DoCheats(void) #if 0 if (numplayers > 1 && g_netServer) - Net_NewGame(ud.m_volume_number, ud.m_level_number); + Net_NewGame(ud.m_volume_number, m_level_number); else #endif pPlayer->gm |= MODE_RESTART; diff --git a/source/rr/src/config.cpp b/source/rr/src/config.cpp index d4c68ea9b..8a11aeb15 100644 --- a/source/rr/src/config.cpp +++ b/source/rr/src/config.cpp @@ -68,10 +68,6 @@ void CONFIG_SetDefaults(void) ud.camera_time = 0;//4; - ud.color = 0; - ud.detail = 0; - ud.m_ffire = 1; - ud.m_marker = 1; ud.menu_slidebarz = 65536; ud.menu_slidebarmargin = RR ? 6 * 65536 : 65536; ud.menu_slidecursorz = RR ? 32768 : 65536; @@ -81,7 +77,7 @@ void CONFIG_SetDefaults(void) ud.statusbarflags = STATUSBAR_NOSHRINK; ud.statusbarmode = 1; ud.statusbarscale = 100; - ud.team = 0; + playerteam = 0; ud.angleinterpolation = 0; ScreenMode = 1; diff --git a/source/rr/src/demo.cpp b/source/rr/src/demo.cpp index 706f7a8e1..1ca20b462 100644 --- a/source/rr/src/demo.cpp +++ b/source/rr/src/demo.cpp @@ -145,7 +145,7 @@ void G_OpenDemoWrite(void) { Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!"); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; return; } do @@ -182,7 +182,7 @@ void G_OpenDemoWrite(void) error_wopen_demo: Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS."); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; return; } @@ -194,7 +194,7 @@ error_wopen_demo: P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); ud.reccnt = 0; - ud.recstat = ud.m_recstat = 1; // + ud.recstat = m_recstat = 1; // # if KRANDDEBUG krd_enable(1); @@ -279,7 +279,7 @@ void G_CloseDemoWrite(void) // lastly, we need to write the number of written recsyncs to the demo file g_demo_filePtr->Write(&g_demo_cnt, sizeof(g_demo_cnt)); - ud.recstat = ud.m_recstat = 0; + ud.recstat = m_recstat = 0; delete g_demo_filePtr; g_demo_filePtr = nullptr; diff --git a/source/rr/src/game.cpp b/source/rr/src/game.cpp index 70d448aca..d257d1a51 100644 --- a/source/rr/src/game.cpp +++ b/source/rr/src/game.cpp @@ -170,10 +170,10 @@ void G_HandleSpecialKeys(void) if (/*g_networkMode != NET_DEDICATED_SERVER && */ALT_IS_PRESSED && inputState.GetKeyStatus(sc_Enter)) { - if (videoSetGameMode(!ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,ud.detail)) + if (videoSetGameMode(!ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,1)) { OSD_Printf(OSD_ERROR "Failed setting fullscreen video mode.\n"); - if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail)) + if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1)) G_GameExit("Failed to recover from failure to set fullscreen video mode.\n"); } else ScreenMode = !ScreenMode; @@ -374,7 +374,7 @@ void G_GameExit(const char *msg) if (g_mostConcurrentPlayers > 1 && g_player[myconnectindex].ps->gm&MODE_GAME && GTFLAGS(GAMETYPE_SCORESHEET) && *msg == ' ') { G_BonusScreen(1); - videoSetGameMode(ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,ud.detail); + videoSetGameMode(ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,1); } // shareware and TEN screens @@ -6014,7 +6014,7 @@ void GameInterface::set_hud_layout(int layout) void GameInterface::set_hud_scale(int scale) { - G_UpdateScreenArea(); + G_SetStatusBarScale(scale); } void G_HandleLocalKeys(void) @@ -6408,10 +6408,10 @@ FAKE_F3: { inputState.ClearKeyStatus(sc_F8); - int const fta = !ud.fta_on; - ud.fta_on = 1; + int const fta = !hud_messages; + hud_messages = 1; P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, g_player[myconnectindex].ps); - ud.fta_on = fta; + hud_messages = fta; } if ((buttonMap.ButtonDown(gamefunc_Quick_Load) || g_doQuickSave == 2) && (!RRRA || ud.player_skill != 4) && (!RR || RRRA || ud.player_skill != 5) && (g_player[myconnectindex].ps->gm&MODE_GAME)) @@ -7119,9 +7119,9 @@ static void G_CompileScripts(void) static inline void G_CheckGametype(void) { - ud.m_coop = clamp(ud.m_coop, 0, g_gametypeCnt-1); - initprintf("%s\n",g_gametypeNames[ud.m_coop]); - if (g_gametypeFlags[ud.m_coop] & GAMETYPE_ITEMRESPAWN) + m_coop = clamp(*m_coop, 0, g_gametypeCnt-1); + initprintf("%s\n",g_gametypeNames[m_coop]); + if (g_gametypeFlags[m_coop] & GAMETYPE_ITEMRESPAWN) ud.m_respawn_items = ud.m_respawn_inventory = 1; } @@ -7413,9 +7413,9 @@ void G_UpdatePlayerFromMenu(void) /*int32_t j = g_player[myconnectindex].ps->team;*/ P_SetupMiscInputSettings(); - g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = ud.color; + g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = playercolor; - g_player[myconnectindex].pteam = ud.team; + g_player[myconnectindex].pteam = playerteam; if (sprite[g_player[myconnectindex].ps->i].picnum == APLAYER && sprite[g_player[myconnectindex].ps->i].pal != 1) sprite[g_player[myconnectindex].ps->i].pal = g_player[myconnectindex].pcolor; @@ -7478,7 +7478,7 @@ static int G_EndOfLevel(void) } else { - ud.m_level_number = 0; + m_level_number = 0; ud.level_number = 0; } } @@ -7650,7 +7650,7 @@ int GameInterface::app_main() if (numplayers == 1 && boardfilename[0] != 0) { - ud.m_level_number = 7; + m_level_number = 7; ud.m_volume_number = 0; ud.warp_on = 1; } @@ -7689,7 +7689,7 @@ int GameInterface::app_main() //if (g_networkMode != NET_DEDICATED_SERVER) { - if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail) < 0) + if (videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1) < 0) { initprintf("Failure setting video mode %dx%dx%d %s! Trying next mode...\n", *ScreenWidth, *ScreenHeight, *ScreenBPP, *ScreenMode ? "fullscreen" : "windowed"); @@ -7708,7 +7708,7 @@ int GameInterface::app_main() int const savedIdx = resIdx; int bpp = ScreenBPP; - while (videoSetGameMode(0, validmode[resIdx].xdim, validmode[resIdx].ydim, bpp, ud.detail) < 0) + while (videoSetGameMode(0, validmode[resIdx].xdim, validmode[resIdx].ydim, bpp, 1) < 0) { initprintf("Failure setting video mode %dx%dx%d windowed! Trying next mode...\n", validmode[resIdx].xdim, validmode[resIdx].ydim, bpp); @@ -7784,7 +7784,7 @@ MAIN_LOOP_RESTART: { if ((g_netServer || ud.multimode > 1) && boardfilename[0] != 0) { - ud.m_level_number = 7; + m_level_number = 7; ud.m_volume_number = 0; if (ud.m_player_skill == 4) @@ -7820,13 +7820,13 @@ MAIN_LOOP_RESTART: ud.showweapons = ud.config.ShowOpponentWeapons; P_SetupMiscInputSettings(); - g_player[myconnectindex].pteam = ud.team; + g_player[myconnectindex].pteam = playerteam; if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM) g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam); else { - if (ud.color) g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = ud.color; + if (playercolor) g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = playercolor; else g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor; } diff --git a/source/rr/src/game.h b/source/rr/src/game.h index b2ed285d4..75f91f351 100644 --- a/source/rr/src/game.h +++ b/source/rr/src/game.h @@ -144,21 +144,21 @@ typedef struct { int32_t reccnt; int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125 - int32_t color,statusbarmode; - int32_t m_noexits,noexits,automsg; - int32_t team, althud; + int32_t statusbarmode; + int32_t noexits,automsg; + int32_t althud; int32_t statusbarflags, statusbarrange; int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz; int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz; - int32_t entered_name,screen_tilting,fta_on; - int32_t m_coop,coop,screen_size,lockout,crosshair; + int32_t entered_name,screen_tilting; + int32_t coop,screen_size,lockout,crosshair; int32_t playerai,angleinterpolation; int32_t respawn_monsters,respawn_items,respawn_inventory,recstat,monsters_off,brightness; - int32_t m_respawn_items,m_respawn_monsters,m_respawn_inventory,m_recstat,m_monsters_off,detail; - int32_t m_ffire,ffire,m_player_skill,m_level_number,m_volume_number,multimode; - int32_t player_skill,level_number,volume_number,m_marker,marker; + int32_t m_respawn_items,m_respawn_monsters,m_respawn_inventory,m_recstat,m_monsters_off; + int32_t ffire,m_player_skill,m_level_number,m_volume_number,multimode; + int32_t player_skill,level_number,volume_number,marker; int32_t music_episode, music_level; int32_t playerbest; @@ -209,7 +209,7 @@ static inline int G_HaveUserMap(void) static inline int Menu_HaveUserMap(void) { - return (boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0); + return (boardfilename[0] != 0 && m_level_number == 7 && ud.m_volume_number == 0); } extern const char *defaultrtsfilename[GAMECOUNT]; @@ -437,7 +437,7 @@ enum static inline void G_NewGame_EnterLevel(void) { - G_NewGame(ud.m_volume_number, ud.m_level_number, ud.m_player_skill); + G_NewGame(ud.m_volume_number, m_level_number, ud.m_player_skill); if (G_EnterLevel(MODE_GAME)) G_BackToMenu(); diff --git a/source/rr/src/gameexec.cpp b/source/rr/src/gameexec.cpp index 7bb0154f8..500b78f5b 100644 --- a/source/rr/src/gameexec.cpp +++ b/source/rr/src/gameexec.cpp @@ -1632,7 +1632,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop) g_player[playerNum].ps->gm = MODE_EOL; if (++ud.level_number > 6) ud.level_number = 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } continue; diff --git a/source/rr/src/menus.cpp b/source/rr/src/menus.cpp index 6bdb89f71..981c9df1f 100644 --- a/source/rr/src/menus.cpp +++ b/source/rr/src/menus.cpp @@ -375,7 +375,7 @@ static MenuEntry_t ME_GAMESETUP_WEAPSWITCH_PICKUP = MAKE_MENUENTRY( "Equip picku static char const *MEOSN_DemoRec[] = { "Off", "Running", }; static MenuOptionSet_t MEOS_DemoRec = MAKE_MENUOPTIONSET( MEOSN_DemoRec, NULL, 0x3 ); -static MenuOption_t MEO_GAMESETUP_DEMOREC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &ud.m_recstat ); +static MenuOption_t MEO_GAMESETUP_DEMOREC = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &m_recstat.Value ); static MenuEntry_t ME_GAMESETUP_DEMOREC = MAKE_MENUENTRY( "Record demo:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_GAMESETUP_DEMOREC, Option ); static MenuOption_t MEO_ADULTMODE = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &adult_lockout.Value); @@ -479,15 +479,8 @@ static MenuLink_t MEO_DISPLAYSETUP_COLORCORR = { MENU_COLCORR, MA_Advance, }; static MenuEntry_t ME_DISPLAYSETUP_COLORCORR = MAKE_MENUENTRY( "Color Correction", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_COLORCORR, Link ); -static char const *MEOSN_DISPLAYSETUP_UPSCALING[] = { "None", "2x", "4x" }; -static int32_t MEOSV_DISPLAYSETUP_UPSCALING[] = { 1, 2, 4 }; -static MenuOptionSet_t MEOS_DISPLAYSETUP_UPSCALING = MAKE_MENUOPTIONSET( MEOSN_DISPLAYSETUP_UPSCALING, MEOSV_DISPLAYSETUP_UPSCALING, 0x0 ); -static MenuOption_t MEO_DISPLAYSETUP_UPSCALING = MAKE_MENUOPTION( &MF_Redfont, &MEOS_DISPLAYSETUP_UPSCALING, &ud.detail ); -static MenuEntry_t ME_DISPLAYSETUP_UPSCALING = MAKE_MENUENTRY( "Upscaling:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_UPSCALING, Option ); - - #ifndef EDUKE32_ANDROID_MENU -static MenuOption_t MEO_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &r_usenewaspect); +static MenuOption_t MEO_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &r_usenewaspect.Value); static MenuEntry_t ME_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUENTRY( "Widescreen:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ASPECTRATIO, Option ); #endif @@ -537,7 +530,7 @@ static MenuOption_t MEO_SCREENSETUP_LEVELSTATS = MAKE_MENUOPTION(&MF_Redfont, &M static MenuEntry_t ME_SCREENSETUP_LEVELSTATS = MAKE_MENUENTRY( "Level stats:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_LEVELSTATS, Option ); -static MenuOption_t MEO_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &ud.fta_on); +static MenuOption_t MEO_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUOPTION(&MF_Redfont, &MEOS_OffOn, &hud_messages.Value); static MenuEntry_t ME_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUENTRY( "Game messages:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SHOWPICKUPMESSAGES, Option ); @@ -660,7 +653,6 @@ static MenuEntry_t *MEL_DISPLAYSETUP[] = { &ME_DISPLAYSETUP_ASPECTRATIO, &ME_DISPLAYSETUP_FOV, #endif - &ME_DISPLAYSETUP_UPSCALING, }; #ifdef USE_OPENGL @@ -773,7 +765,7 @@ static MenuEntry_t *MEL_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; static MenuLink_t MEO_MOUSESETUP_BTNS = { MENU_MOUSEBTNS, MA_Advance, }; static MenuEntry_t ME_MOUSESETUP_BTNS = MAKE_MENUENTRY( "Button assignment", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_BTNS, Link ); -static MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &CONTROL_MouseSensitivity, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 ); +static MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &in_mousesensitivity.Value, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 ); static MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat ); #ifndef EDUKE32_SIMPLE_MENU @@ -792,9 +784,9 @@ static MenuEntry_t ME_MOUSESETUP_SMOOTH = MAKE_MENUENTRY( "Filter input:", &MF_R static MenuLink_t MEO_MOUSESETUP_ADVANCED = { MENU_MOUSEADVANCED, MA_Advance, }; static MenuEntry_t ME_MOUSESETUP_ADVANCED = MAKE_MENUENTRY( "Advanced setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_ADVANCED, Link ); #endif -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEX = MAKE_MENURANGE(&MouseAnalogueScale[0], &MF_Redfont, -262144, 262144, 65536, 161, 3); +static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEX = MAKE_MENURANGE(&in_mousescalex.Value, &MF_Redfont, -262144, 262144, 65536, 161, 3); static MenuEntry_t ME_MOUSEADVANCED_SCALEX = MAKE_MENUENTRY("X-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEX, RangeInt32); -static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEY = MAKE_MENURANGE(&MouseAnalogueScale[1], &MF_Redfont, -262144, 262144, 65536, 161, 3); +static MenuRangeInt32_t MEO_MOUSEADVANCED_SCALEY = MAKE_MENURANGE(&in_mousescaley.Value, &MF_Redfont, -262144, 262144, 65536, 161, 3); static MenuEntry_t ME_MOUSEADVANCED_SCALEY = MAKE_MENUENTRY("Y-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEY, RangeInt32); static MenuEntry_t *MEL_MOUSESETUP[] = { @@ -938,12 +930,6 @@ static MenuEntry_t *MEL_INTERNAL_JOYSTICKAXIS_DIGITAL[] = { static MenuOption_t MEO_RENDERERSETUP_HIGHTILE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NoYes, &hw_hightile.Value ); static MenuEntry_t ME_RENDERERSETUP_HIGHTILE = MAKE_MENUENTRY( "True color textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_HIGHTILE, Option ); -static char const *MEOSN_RENDERERSETUP_TEXQUALITY [] = { "Full", "Half", "Barf", }; -static MenuOptionSet_t MEOS_RENDERERSETUP_TEXQUALITY = MAKE_MENUOPTIONSET(MEOSN_RENDERERSETUP_TEXQUALITY, NULL, 0x2); -static MenuOption_t MEO_RENDERERSETUP_TEXQUALITY = MAKE_MENUOPTION(&MF_Bluefont, &MEOS_RENDERERSETUP_TEXQUALITY, &r_downsize); -static MenuEntry_t ME_RENDERERSETUP_TEXQUALITY = MAKE_MENUENTRY("GL texture quality:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_TEXQUALITY, Option); - - static MenuOption_t MEO_RENDERERSETUP_PRECACHE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &r_precache.Value ); static MenuEntry_t ME_RENDERERSETUP_PRECACHE = MAKE_MENUENTRY( "Pre-load map textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_PRECACHE, Option ); # ifndef EDUKE32_GLES @@ -964,7 +950,6 @@ static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_B #ifdef USE_OPENGL static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { &ME_RENDERERSETUP_HIGHTILE, - &ME_RENDERERSETUP_TEXQUALITY, &ME_RENDERERSETUP_PRECACHE, # ifdef USE_GLEXT &ME_RENDERERSETUP_DETAILTEX, @@ -977,14 +962,14 @@ static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { #endif #ifdef EDUKE32_ANDROID_MENU -static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &g_videoGamma, &MF_Bluefont, 1.f, 2.5f, 0.f, 39, 1 ); +static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &vid_gamma, &MF_Bluefont, 1.f, 2.5f, 0.f, 39, 1 ); #else -static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &g_videoGamma, &MF_Bluefont, 0.3f, 4.f, 0.f, 38, 1 ); +static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &vid_gamma.Value, &MF_Bluefont, 0.3f, 4.f, 0.f, 38, 1 ); #endif static MenuEntry_t ME_COLCORR_GAMMA = MAKE_MENUENTRY( "Gamma:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_GAMMA, RangeFloat ); -static MenuRangeFloat_t MEO_COLCORR_CONTRAST = MAKE_MENURANGE( &g_videoContrast, &MF_Bluefont, 0.1f, 2.7f, 0.f, 53, 1 ); +static MenuRangeFloat_t MEO_COLCORR_CONTRAST = MAKE_MENURANGE( &vid_contrast.Value, &MF_Bluefont, 0.1f, 2.7f, 0.f, 53, 1 ); static MenuEntry_t ME_COLCORR_CONTRAST = MAKE_MENUENTRY( "Contrast:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_CONTRAST, RangeFloat ); -static MenuRangeFloat_t MEO_COLCORR_BRIGHTNESS = MAKE_MENURANGE( &g_videoBrightness, &MF_Bluefont, -0.8f, 0.8f, 0.f, 33, 1 ); +static MenuRangeFloat_t MEO_COLCORR_BRIGHTNESS = MAKE_MENURANGE( &vid_brightness.Value, &MF_Bluefont, -0.8f, 0.8f, 0.f, 33, 1 ); static MenuEntry_t ME_COLCORR_BRIGHTNESS = MAKE_MENUENTRY( "Brightness:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_BRIGHTNESS, RangeFloat ); static MenuEntry_t ME_COLCORR_RESET = MAKE_MENUENTRY( "Reset To Defaults", &MF_Redfont, &MEF_ColorCorrect, &MEO_NULL, Link ); #ifdef EDUKE32_ANDROID_MENU @@ -1146,11 +1131,11 @@ static MenuEntry_t *MEL_NETWORK[] = { static char const *MEOSN_PLAYER_COLOR[] = { "Auto", "Blue", "Red", "Green", "Gray", "Dark gray", "Dark green", "Brown", "Dark blue", "Bright red", "Yellow", }; static int32_t MEOSV_PLAYER_COLOR[] = { 0, 9, 10, 11, 12, 13, 14, 15, 16, 21, 23, }; static MenuOptionSet_t MEOS_PLAYER_COLOR = MAKE_MENUOPTIONSET( MEOSN_PLAYER_COLOR, MEOSV_PLAYER_COLOR, 0x2 ); -static MenuOption_t MEO_PLAYER_COLOR = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_COLOR, &ud.color ); +static MenuOption_t MEO_PLAYER_COLOR = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_COLOR, &playercolor.Value ); static MenuEntry_t ME_PLAYER_COLOR = MAKE_MENUENTRY( "Color", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_COLOR, Option ); static char const *MEOSN_PLAYER_TEAM[] = { "Blue", "Red", "Green", "Gray", }; static MenuOptionSet_t MEOS_PLAYER_TEAM = MAKE_MENUOPTIONSET( MEOSN_PLAYER_TEAM, NULL, 0x2 ); -static MenuOption_t MEO_PLAYER_TEAM = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_TEAM, &ud.team ); +static MenuOption_t MEO_PLAYER_TEAM = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_PLAYER_TEAM, &playerteam.Value ); static MenuEntry_t ME_PLAYER_TEAM = MAKE_MENUENTRY( "Team", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_TEAM, Option ); #ifndef EDUKE32_SIMPLE_MENU static MenuLink_t MEO_PLAYER_MACROS = { MENU_MACROS, MA_Advance, }; @@ -1199,7 +1184,7 @@ static MenuEntry_t *MEL_NETHOST[] = { }; static MenuOptionSet_t MEOS_NETOPTIONS_GAMETYPE = MAKE_MENUOPTIONSET( MEOSN_NetGametypes, NULL, 0x0 ); -static MenuOption_t MEO_NETOPTIONS_GAMETYPE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_GAMETYPE, &ud.m_coop ); +static MenuOption_t MEO_NETOPTIONS_GAMETYPE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_GAMETYPE, &m_coop.Value ); static MenuEntry_t ME_NETOPTIONS_GAMETYPE = MAKE_MENUENTRY( "Game Type", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_GAMETYPE, Option ); static MenuOptionSet_t MEOS_NETOPTIONS_EPISODE = MAKE_MENUOPTIONSET( MEOSN_NetEpisodes, MEOSV_NetEpisodes, 0x0 ); static int32_t NetEpisode; @@ -1207,18 +1192,18 @@ static MenuOption_t MEO_NETOPTIONS_EPISODE = MAKE_MENUOPTION( &MF_Bluefont, &MEO static MenuEntry_t ME_NETOPTIONS_EPISODE = MAKE_MENUENTRY( "Episode", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_EPISODE, Option ); static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL_TEMPLATE = MAKE_MENUOPTIONSETNULL; static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL[MAXVOLUMES]; -static MenuOption_t MEO_NETOPTIONS_LEVEL = MAKE_MENUOPTION( &MF_Bluefont, NULL, &ud.m_level_number ); +static MenuOption_t MEO_NETOPTIONS_LEVEL = MAKE_MENUOPTION( &MF_Bluefont, NULL, &m_level_number.Value ); static MenuEntry_t ME_NETOPTIONS_LEVEL = MAKE_MENUENTRY( "Level", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_LEVEL, Option ); static MenuLink_t MEO_NETOPTIONS_USERMAP = { MENU_NETUSERMAP, MA_Advance, }; static MenuEntry_t ME_NETOPTIONS_USERMAP = MAKE_MENUENTRY( "User Map", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_USERMAP, Link ); static MenuOptionSet_t MEOS_NETOPTIONS_MONSTERS = MAKE_MENUOPTIONSET( MEOSN_NetSkills, NULL, 0x0 ); static MenuOption_t MEO_NETOPTIONS_MONSTERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_NETOPTIONS_MONSTERS, NULL ); static MenuEntry_t ME_NETOPTIONS_MONSTERS = MAKE_MENUENTRY( "Monsters", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MONSTERS, Option ); -static MenuOption_t MEO_NETOPTIONS_MARKERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &ud.m_marker ); +static MenuOption_t MEO_NETOPTIONS_MARKERS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &m_marker.Value); static MenuEntry_t ME_NETOPTIONS_MARKERS = MAKE_MENUENTRY( "Markers", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MARKERS, Option ); -static MenuOption_t MEO_NETOPTIONS_MAPEXITS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OnOff, &ud.m_noexits ); +static MenuOption_t MEO_NETOPTIONS_MAPEXITS = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OnOff, &m_noexits.Value); static MenuEntry_t ME_NETOPTIONS_MAPEXITS = MAKE_MENUENTRY( "Map Exits", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_MAPEXITS, Option ); -static MenuOption_t MEO_NETOPTIONS_FRFIRE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &ud.m_ffire ); +static MenuOption_t MEO_NETOPTIONS_FRFIRE = MAKE_MENUOPTION( &MF_Bluefont, &MEOS_OffOn, &m_ffire.Value); static MenuEntry_t ME_NETOPTIONS_FRFIRE = MAKE_MENUENTRY( "Fr. Fire", &MF_Redfont, &MEF_NetSetup, &MEO_NETOPTIONS_FRFIRE, Option ); static MenuEntry_t ME_NETOPTIONS_ACCEPT = MAKE_MENUENTRY( "Accept", &MF_Redfont, &MEF_NetSetup_Confirm, &MEO_NETWORK_HOSTGAME, Link ); @@ -1917,7 +1902,7 @@ static void Menu_Pre(MenuID_t cm) case MENU_GAMESETUP: MEO_GAMESETUP_DEMOREC.options = (ps->gm&MODE_GAME) ? &MEOS_DemoRec : &MEOS_OffOn; - MenuEntry_DisableOnCondition(&ME_GAMESETUP_DEMOREC, (ps->gm&MODE_GAME) && ud.m_recstat != 1); + MenuEntry_DisableOnCondition(&ME_GAMESETUP_DEMOREC, (ps->gm&MODE_GAME) && m_recstat != 1); break; #ifdef USE_OPENGL @@ -1964,7 +1949,6 @@ static void Menu_Pre(MenuID_t cm) case MENU_POLYMER: case MENU_POLYMOST: - MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXQUALITY, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile); # ifdef USE_GLEXT MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile); @@ -2021,7 +2005,7 @@ static void Menu_Pre(MenuID_t cm) MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL; MEO_NETOPTIONS_LEVEL.options = &MEOS_NETOPTIONS_LEVEL[MEOSV_NetEpisodes[MEO_NETOPTIONS_EPISODE.currentOption]]; } - if (!(g_gametypeFlags[ud.m_coop] & GAMETYPE_MARKEROPTION)) + if (!(g_gametypeFlags[m_coop] & GAMETYPE_MARKEROPTION)) { ME_NETOPTIONS_MARKERS.type = Dummy; ME_NETOPTIONS_MARKERS.flags |= MEF_Disabled; @@ -2031,7 +2015,7 @@ static void Menu_Pre(MenuID_t cm) ME_NETOPTIONS_MARKERS.type = Option; ME_NETOPTIONS_MARKERS.flags &= ~MEF_Disabled; } - MEL_NETOPTIONS[5] = (g_gametypeFlags[ud.m_coop] & (GAMETYPE_PLAYERSFRIENDLY|GAMETYPE_TDM)) ? &ME_NETOPTIONS_FRFIRE : &ME_NETOPTIONS_MAPEXITS; + MEL_NETOPTIONS[5] = (g_gametypeFlags[m_coop] & (GAMETYPE_PLAYERSFRIENDLY|GAMETYPE_TDM)) ? &ME_NETOPTIONS_FRFIRE : &ME_NETOPTIONS_MAPEXITS; break; case MENU_OPTIONS: @@ -2200,9 +2184,9 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin) case MENU_PLAYER: if (RR) - rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>2))<<16), 24576L,0,3845+36-((((8-((int32_t) totalclock>>4)))&7)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(ud.team) : ud.color,10); + rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>2))<<16), 24576L,0,3845+36-((((8-((int32_t) totalclock>>4)))&7)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10); else - rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(ud.team) : ud.color,10); + rotatesprite_fs(origin.x + (260<<16), origin.y + ((24+(tilesiz[APLAYER].y>>1))<<16), 49152L,0,1441-((((4-((int32_t) totalclock>>4)))&3)*5),0,entry == &ME_PLAYER_TEAM ? G_GetTeamPalette(playerteam) : playercolor,10); break; case MENU_MACROS: @@ -2229,27 +2213,27 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin) mminitext(origin.x + (90<<16), origin.y + ((90+8)<<16), "Episode", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8)<<16), "Level", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8)<<16), ME_NETOPTIONS_MONSTERS.name, MF_Minifont.pal_deselected); - if (ud.m_coop == 0) + if (m_coop == 0) mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8)<<16), "Markers", MF_Minifont.pal_deselected); - else if (ud.m_coop == 1) + else if (m_coop == 1) mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8)<<16), "Friendly Fire", MF_Minifont.pal_deselected); mminitext(origin.x + (90<<16), origin.y + ((90+8+8+8+8+8)<<16), "User Map", MF_Minifont.pal_deselected); - mminitext(origin.x + ((90+60)<<16), origin.y + (90<<16), g_gametypeNames[ud.m_coop], MF_Minifont.pal_deselected_right); + mminitext(origin.x + ((90+60)<<16), origin.y + (90<<16), g_gametypeNames[m_coop], MF_Minifont.pal_deselected_right); mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8)<<16), g_volumeNames[ud.m_volume_number], MF_Minifont.pal_deselected_right); - mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8)<<16), g_mapInfo[MAXLEVELS*ud.m_volume_number+ud.m_level_number].name, MF_Minifont.pal_deselected_right); + mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8)<<16), g_mapInfo[MAXLEVELS*ud.m_volume_number+m_level_number].name, MF_Minifont.pal_deselected_right); if (ud.m_monsters_off == 0 || ud.m_player_skill > 0) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8)<<16), g_skillNames[ud.m_player_skill], MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8)<<16), "None", MF_Minifont.pal_deselected_right); - if (ud.m_coop == 0) + if (m_coop == 0) { - if (ud.m_marker) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); + if (m_marker) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right); } - else if (ud.m_coop == 1) + else if (m_coop == 1) { - if (ud.m_ffire) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); + if (m_ffire) mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "On", MF_Minifont.pal_deselected_right); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right); } break; @@ -3418,7 +3402,7 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry) if (entry != &ME_EPISODE_USERMAP) { ud.m_volume_number = M_EPISODE.currentEntry; - ud.m_level_number = 0; + m_level_number = 0; if (g_skillCnt == 0) Menu_StartGameWithoutSkill(); @@ -3573,10 +3557,10 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry) } else if (entry == &ME_COLCORR_RESET) { - g_videoGamma = DEFAULT_GAMMA; - g_videoContrast = DEFAULT_CONTRAST; - g_videoBrightness = DEFAULT_BRIGHTNESS; - r_ambientlight = 1.f; + vid_gamma = 1.f; + vid_contrast = 1.f; + vid_brightness = 0.f; + r_ambientlight = 1.f; videoSetPalette(0,g_player[myconnectindex].ps->palette,0); } else if (entry == &ME_KEYBOARDSETUP_RESET) @@ -3722,21 +3706,9 @@ static void Menu_EntryOptionDidModify(MenuEntry_t *entry) entry == &ME_PLAYER_COLOR || entry == &ME_PLAYER_TEAM) G_UpdatePlayerFromMenu(); - else if (entry == &ME_DISPLAYSETUP_UPSCALING) - { - if (in3dmode()) - { - videoSetGameMode(fullscreen, xres, yres, bpp, ud.detail); - } - } #ifdef USE_OPENGL else if (entry == &ME_DISPLAYSETUP_ANISOTROPY || entry == &ME_DISPLAYSETUP_TEXFILTER) gltexapplyprops(); - else if (entry == &ME_RENDERERSETUP_TEXQUALITY) - { - r_downsizevar = r_downsize; - domodechange = 1; - } if (domodechange) { @@ -3766,10 +3738,6 @@ static int32_t Menu_EntryRangeInt32Modify(MenuEntry_t *entry, int32_t newValue) FX_SetVolume(newValue); else if (entry == &ME_SOUND_VOLUME_MUSIC) S_MusicVolume(newValue); - else if (entry == &ME_MOUSEADVANCED_SCALEX) - CONTROL_SetAnalogAxisScale(0, newValue, controldevice_mouse); - else if (entry == &ME_MOUSEADVANCED_SCALEY) - CONTROL_SetAnalogAxisScale(1, newValue, controldevice_mouse); else if (entry == &ME_JOYSTICKAXIS_SCALE) CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick); else if (entry == &ME_JOYSTICKAXIS_DEAD) @@ -4186,7 +4154,7 @@ static void Menu_FileSelect(int32_t input) if (input) { ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; if (g_skillCnt > 0) Menu_AnimateChange(MENU_SKILL, MA_Advance); diff --git a/source/rr/src/net.cpp b/source/rr/src/net.cpp index ba24d3af0..7506641c5 100644 --- a/source/rr/src/net.cpp +++ b/source/rr/src/net.cpp @@ -2403,7 +2403,7 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) if (vote_map != -1 || vote_episode != -1 || voting != -1) G_AddUserQuote("VOTE SUCCEEDED"); - ud.m_level_number = ud.level_number = packbuf[1]; + m_level_number = ud.level_number = packbuf[1]; ud.m_volume_number = ud.volume_number = packbuf[2]; ud.m_player_skill = ud.player_skill = packbuf[3]; @@ -2412,10 +2412,10 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) ud.m_respawn_monsters = packbuf[5]; ud.m_respawn_items = packbuf[6]; ud.m_respawn_inventory = packbuf[7]; - ud.m_coop = packbuf[8]; - ud.m_marker = packbuf[9]; - ud.m_ffire = packbuf[10]; - ud.m_noexits = packbuf[11]; + m_coop = packbuf[8]; + m_marker = packbuf[9]; + m_ffire = packbuf[10]; + m_noexits = packbuf[11]; //ud.m_weaponstay = packbuf[12]; for (int TRAVERSE_CONNECT(i)) @@ -2437,7 +2437,7 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) for (i = connectpoint2[connecthead]; i >= 0; i = connectpoint2[i]) if (i != other) Net_SendPacket(i, packbuf, packbufleng); - ud.m_level_number = ud.level_number = packbuf[1]; + m_level_number = ud.level_number = packbuf[1]; ud.m_volume_number = ud.volume_number = packbuf[2]; ud.m_player_skill = ud.player_skill = packbuf[3]; @@ -2446,10 +2446,10 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) ud.m_respawn_monsters = packbuf[5]; ud.m_respawn_items = packbuf[6]; ud.m_respawn_inventory = packbuf[7]; - ud.m_coop = packbuf[8]; - ud.m_marker = packbuf[9]; - ud.m_ffire = packbuf[10]; - ud.m_noexits = packbuf[11]; + m_coop = packbuf[8]; + m_marker = packbuf[9]; + m_ffire = packbuf[10]; + m_noexits = packbuf[11]; //ud.m_weaponstay = packbuf[12]; break; @@ -2518,7 +2518,7 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) g_player[i].ps->gm = MODE_EOL; ud.level_number = packbuf[1]; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.from_bonus = packbuf[2]; break; @@ -2601,8 +2601,8 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng) } } - if (ud.m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) - ud.m_level_number = 0; + if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) + m_level_number = 0; break; @@ -3430,9 +3430,9 @@ void Net_SendClientInfo(void) tempbuf[l++] = g_player[myconnectindex].ps->aim_mode = in_aimmode; tempbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; tempbuf[l++] = g_player[myconnectindex].ps->weaponswitch = cl_weaponswitch; - tempbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = ud.color; + tempbuf[l++] = g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = playercolor; - tempbuf[l++] = g_player[myconnectindex].pteam = ud.team; + tempbuf[l++] = g_player[myconnectindex].pteam = playerteam; for (i=0; i<10; i++) { @@ -3527,8 +3527,8 @@ void Net_ReceiveUserMapName(uint8_t *pbuf, int32_t packbufleng) } } - if (ud.m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) - ud.m_level_number = 0; + if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0) + m_level_number = 0; } void Net_SendMessage(void) @@ -3707,7 +3707,7 @@ void Net_StartNewGame() Net_ExtractNewGame(&pendingnewgame, 0); G_NewGame(ud.volume_number,ud.level_number,ud.player_skill); - ud.coop = ud.m_coop; + ud.coop = m_coop; //g_netMapRevision = 0; @@ -3762,16 +3762,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu) { if (frommenu) { - newgame->level_number = ud.m_level_number; + newgame->level_number = m_level_number; newgame->volume_number = ud.m_volume_number; newgame->player_skill = ud.m_player_skill; newgame->monsters_off = ud.m_monsters_off; newgame->respawn_monsters = ud.m_respawn_monsters; newgame->respawn_items = ud.m_respawn_items; newgame->respawn_inventory = ud.m_respawn_inventory; - newgame->ffire = ud.m_ffire; - newgame->noexits = ud.m_noexits; - newgame->coop = ud.m_coop; + newgame->ffire = m_ffire; + newgame->noexits = m_noexits; + newgame->coop = m_coop; } else { @@ -3790,16 +3790,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu) void Net_ExtractNewGame(newgame_t *newgame, int32_t menuonly) { - ud.m_level_number = newgame->level_number; + m_level_number = newgame->level_number; ud.m_volume_number = newgame->volume_number; ud.m_player_skill = newgame->player_skill; ud.m_monsters_off = newgame->monsters_off; ud.m_respawn_monsters = newgame->respawn_monsters; ud.m_respawn_items = newgame->respawn_items; ud.m_respawn_inventory = newgame->respawn_inventory; - ud.m_ffire = newgame->ffire; - ud.m_noexits = newgame->noexits; - ud.m_coop = newgame->coop; + m_ffire = newgame->ffire; + m_noexits = newgame->noexits; + m_coop = newgame->coop; if (!menuonly) { diff --git a/source/rr/src/osdcmds.cpp b/source/rr/src/osdcmds.cpp index 0f864801a..c42665d92 100644 --- a/source/rr/src/osdcmds.cpp +++ b/source/rr/src/osdcmds.cpp @@ -82,7 +82,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm) else if (voting == -1) { ud.m_volume_number = volume; - ud.m_level_number = level; + m_level_number = level; if (g_player[myconnectindex].ps->i) { @@ -101,12 +101,12 @@ static int osdcmd_changelevel(osdcmdptr_t parm) tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[1] = myconnectindex; tempbuf[2] = ud.m_volume_number; - tempbuf[3] = ud.m_level_number; + tempbuf[3] = m_level_number; enet_peer_send(g_netClientPeer, CHAN_GAMESTATE, enet_packet_create(tempbuf, 4, ENET_PACKET_FLAG_RELIABLE)); } - if ((g_gametypeFlags[ud.m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[ud.m_coop] & GAMETYPE_TDM)) - ud.m_noexits = 0; + if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM)) + m_noexits = 0; M_OpenMenu(myconnectindex); Menu_Change(MENU_NETWAITVOTES); @@ -127,7 +127,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm) osdcmd_cheatsinfo_stat.cheatnum = -1; ud.m_volume_number = volume; - ud.m_level_number = level; + m_level_number = level; ud.m_monsters_off = 0; ud.monsters_off = 0; @@ -174,15 +174,15 @@ static int osdcmd_map(osdcmdptr_t parm) { Net_SendUserMapName(); ud.m_volume_number = 0; - ud.m_level_number = 7; - Net_NewGame(ud.m_volume_number, ud.m_level_number); + m_level_number = 7; + Net_NewGame(ud.m_volume_number, m_level_number); } else if (voting == -1) { Net_SendUserMapName(); ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; if (g_player[myconnectindex].ps->i) { @@ -200,12 +200,12 @@ static int osdcmd_map(osdcmdptr_t parm) tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[1] = myconnectindex; tempbuf[2] = ud.m_volume_number; - tempbuf[3] = ud.m_level_number; + tempbuf[3] = m_level_number; enet_peer_send(g_netClientPeer, CHAN_GAMESTATE, enet_packet_create(tempbuf, 4, ENET_PACKET_FLAG_RELIABLE)); } - if ((g_gametypeFlags[ud.m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[ud.m_coop] & GAMETYPE_TDM)) - ud.m_noexits = 0; + if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM)) + m_noexits = 0; M_OpenMenu(myconnectindex); Menu_Change(MENU_NETWAITVOTES); @@ -216,7 +216,7 @@ static int osdcmd_map(osdcmdptr_t parm) osdcmd_cheatsinfo_stat.cheatnum = -1; ud.m_volume_number = 0; - ud.m_level_number = 7; + m_level_number = 7; ud.m_monsters_off = ud.monsters_off = 0; @@ -227,7 +227,7 @@ static int osdcmd_map(osdcmdptr_t parm) if (g_player[myconnectindex].ps->gm & MODE_GAME) { - G_NewGame(ud.m_volume_number, ud.m_level_number, ud.m_player_skill); + G_NewGame(ud.m_volume_number, m_level_number, ud.m_player_skill); g_player[myconnectindex].ps->gm = MODE_RESTART; } else G_NewGame_EnterLevel(); diff --git a/source/rr/src/player.cpp b/source/rr/src/player.cpp index 5a60bbdc0..6cd9c4fdc 100644 --- a/source/rr/src/player.cpp +++ b/source/rr/src/player.cpp @@ -5874,13 +5874,13 @@ void P_EndLevel(void) if (ud.from_bonus) { ud.level_number = ud.from_bonus; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.from_bonus = 0; } else { ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } } @@ -5909,7 +5909,7 @@ static int P_DoFist(DukePlayer_t *pPlayer) if ((unsigned)ud.secretlevel <= MAXLEVELS) ud.level_number = ud.secretlevel - 1; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } else P_EndLevel(); @@ -6935,13 +6935,13 @@ check_enemy_sprite: if (!RR && ud.from_bonus) { ud.level_number = ud.from_bonus; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.from_bonus = 0; } else { ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } return; } diff --git a/source/rr/src/premap.cpp b/source/rr/src/premap.cpp index 3884b5c8b..558f132e7 100644 --- a/source/rr/src/premap.cpp +++ b/source/rr/src/premap.cpp @@ -1880,7 +1880,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum) ready2send = 0; - if (ud.m_recstat != 2 && ud.last_level >= 0 && + if (m_recstat != 2 && ud.last_level >= 0 && (g_netServer || ud.multimode > 1) && (ud.coop&GAMETYPE_SCORESHEET)) { if (!RRRA || g_mostConcurrentPlayers > 1 || g_netServer || numplayers > 1) @@ -1952,7 +1952,7 @@ end_vol4a: for (bssize_t i=0; i<(MAXVOLUMES*MAXLEVELS); i++) G_FreeMapState(i); - if (ud.m_coop != 1) + if (m_coop != 1) { for (bssize_t weaponNum = 0; weaponNum < MAX_WEAPONS; weaponNum++) { @@ -2304,13 +2304,13 @@ int G_EnterLevel(int gameMode) ud.respawn_items = ud.m_respawn_items; ud.respawn_inventory = ud.m_respawn_inventory; ud.monsters_off = ud.m_monsters_off; - ud.coop = ud.m_coop; - ud.marker = ud.m_marker; - ud.ffire = ud.m_ffire; - ud.noexits = ud.m_noexits; + ud.coop = m_coop; + ud.marker = m_marker; + ud.ffire = m_ffire; + ud.noexits = m_noexits; if ((gameMode & MODE_DEMO) != MODE_DEMO) - ud.recstat = ud.m_recstat; + ud.recstat = m_recstat; if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2) ud.recstat = 0; @@ -2336,7 +2336,7 @@ int G_EnterLevel(int gameMode) levelNum &= MAXLEVELS-1; volumeNum = (volumeNum - levelNum) / MAXLEVELS; - ud.level_number = ud.m_level_number = levelNum; + ud.level_number = m_level_number = levelNum; ud.volume_number = ud.m_volume_number = volumeNum; boardfilename[0] = 0; @@ -2388,7 +2388,7 @@ int G_EnterLevel(int gameMode) } G_LoadMapHack(levelName, "endgame.map"); - G_SetupFilenameBasedMusic(levelName, "endgame.map", ud.m_level_number); + G_SetupFilenameBasedMusic(levelName, "endgame.map", m_level_number); } else if (!VOLUMEONE && Menu_HaveUserMap()) { @@ -2399,7 +2399,7 @@ int G_EnterLevel(int gameMode) } G_LoadMapHack(levelName, boardfilename); - G_SetupFilenameBasedMusic(levelName, boardfilename, ud.m_level_number); + G_SetupFilenameBasedMusic(levelName, boardfilename, m_level_number); } else if (engineLoadBoard(g_mapInfo[mii].filename, VOLUMEONE, &pPlayer->pos, &lbang, &pPlayer->cursectnum) < 0) { diff --git a/source/rr/src/savegame.cpp b/source/rr/src/savegame.cpp index 9d274b2ab..0021b377b 100644 --- a/source/rr/src/savegame.cpp +++ b/source/rr/src/savegame.cpp @@ -382,7 +382,7 @@ int32_t G_LoadPlayer(savebrief_t & sv) // non-"m_" fields will be loaded from svgm_udnetw ud.m_volume_number = h.volnum; - ud.m_level_number = h.levnum; + m_level_number = h.levnum; ud.m_player_skill = h.skill; // NOTE: Bmemcpy needed for SAVEGAME_MUSIC. @@ -1620,17 +1620,17 @@ static void sv_postudload() { // Bmemcpy(&boardfilename[0], ¤tboardfilename[0], BMAX_PATH); // DON'T do this in demos! #if 1 - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.m_volume_number = ud.volume_number; ud.m_player_skill = ud.player_skill; ud.m_respawn_monsters = ud.respawn_monsters; ud.m_respawn_items = ud.respawn_items; ud.m_respawn_inventory = ud.respawn_inventory; ud.m_monsters_off = ud.monsters_off; - ud.m_coop = ud.coop; - ud.m_marker = ud.marker; - ud.m_ffire = ud.ffire; - ud.m_noexits = ud.noexits; + m_coop = ud.coop; + m_marker = ud.marker; + m_ffire = ud.ffire; + m_noexits = ud.noexits; #endif } //static int32_t lockclock_dummy; diff --git a/source/rr/src/screens.cpp b/source/rr/src/screens.cpp index 64a4884aa..ccaf81157 100644 --- a/source/rr/src/screens.cpp +++ b/source/rr/src/screens.cpp @@ -3083,7 +3083,7 @@ void G_BonusScreenRRRA(int32_t bonusonly) { g_RAendEpisode = 0; ud.m_volume_number = ud.volume_number = 1; - ud.m_level_number = ud.level_number = 0; + m_level_number = ud.level_number = 0; ud.eog = 0; } if (g_turdLevel) diff --git a/source/rr/src/screentext.cpp b/source/rr/src/screentext.cpp index 94525016b..a16907825 100644 --- a/source/rr/src/screentext.cpp +++ b/source/rr/src/screentext.cpp @@ -1135,7 +1135,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p) { int32_t cq = 0; - if (ud.fta_on == 0 || q < 0 || !(p->gm & MODE_GAME)) + if (hud_messages == 0 || q < 0 || !(p->gm & MODE_GAME)) return; if (q & MAXQUOTES) diff --git a/source/rr/src/sector.cpp b/source/rr/src/sector.cpp index 013e348cb..162b8268e 100644 --- a/source/rr/src/sector.cpp +++ b/source/rr/src/sector.cpp @@ -4297,7 +4297,7 @@ void P_CheckSectors(int playerNum) if (ud.from_bonus) { ud.level_number = ud.from_bonus; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; ud.from_bonus = 0; } else @@ -4305,7 +4305,7 @@ void P_CheckSectors(int playerNum) if (RRRA && ud.level_number == 6 && ud.volume_number == 0) g_RAendEpisode = 1; ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; - ud.m_level_number = ud.level_number; + m_level_number = ud.level_number; } g_RAendLevel = 1; } diff --git a/source/sw/src/menus.cpp b/source/sw/src/menus.cpp index fa3ba7491..36143261e 100644 --- a/source/sw/src/menus.cpp +++ b/source/sw/src/menus.cpp @@ -3765,8 +3765,8 @@ MNU_DoSlider(short dir, MenuItem_p item, SWBOOL draw) if (slidersettings[item->slider] != offset) { slidersettings[item->slider] = offset; - //MouseAnalogScale[item->slider - sldr_mousescalex] = offset<<13; - CONTROL_SetAnalogAxisScale(item->slider - sldr_mousescalex, offset<<13, controldevice_mouse); + if (item->slider == sldr_mousescalex) in_mousescalex = offset<<13; + else in_mousescaley = offset<13; } sprintf(tmp_text, "%.2f", (float)(slidersettings[item->slider]<<13) / 65535.f); diff --git a/source/thirdparty/imgui/imgui_demo.cpp b/source/thirdparty/imgui/imgui_demo.cpp index 3eedda458..0fb15e611 100644 --- a/source/thirdparty/imgui/imgui_demo.cpp +++ b/source/thirdparty/imgui/imgui_demo.cpp @@ -262,8 +262,8 @@ void ImGui::ShowDemoWindow(bool* p_open) if (no_close) p_open = NULL; // Don't pass our bool* to Begin // We specify a default position/size in case there's no data in the .ini file. Typically this isn't required! We only do it to make the Demo applications a little more welcoming. - ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiCond_FirstUseEver); - ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_FirstUseEver); + ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiCond_Always); + ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_Always); // Main body of the Demo window starts here. if (!ImGui::Begin("Dear ImGui Demo", p_open, window_flags))