- Changed EDuke menu to receive all settings storage locations as CVARs.

With this out of the way the only part that needs a real replacement immediately is the keybinds menu.
This commit is contained in:
Christoph Oelckers 2019-11-09 19:15:03 +01:00
parent 0f74a5c3a4
commit 299f596afc
48 changed files with 479 additions and 722 deletions

View file

@ -773,6 +773,7 @@ set (PCH_SOURCES
common/searchpaths.cpp common/searchpaths.cpp
common/initfs.cpp common/initfs.cpp
common/openaudio.cpp common/openaudio.cpp
common/optionmenu/optionmenu.cpp
common/2d/v_2ddrawer.cpp common/2d/v_2ddrawer.cpp
common/2d/v_draw.cpp common/2d/v_draw.cpp

View file

@ -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); CGameMenuItemChain itemChainParentalLock("PARENTAL LOCK", 3, 0, 170, 320, 1, &menuParentalLock, -1, NULL, 0);
CGameMenuItemTitle itemControlsTitle("CONTROLS", 1, 160, 20, 2038); 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); 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); 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); 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 *); void PreDrawDisplayColor(CGameMenuItem *);
CGameMenuItemTitle itemOptionsDisplayColorTitle("COLOR CORRECTION", 1, 160, 20, -1); 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 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, &g_videoContrast, 0.1f, 2.7f, 0.05f, 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, &g_videoBrightness, -0.8f, 0.8f, 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); 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); 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 itemOptionsDisplayPolymostTextureMode("TEXTURE MODE:", 3, 66, 60, 180, 0, UpdateTextureMode, pzTextureModeStrings, 2, 0);
CGameMenuItemZCycle itemOptionsDisplayPolymostAnisotropy("ANISOTROPY:", 3, 66, 70, 180, 0, UpdateAnisotropy, pzAnisotropyStrings, 6, 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); 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 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 itemOptionsDisplayPolymostDetailTex("DETAIL TEXTURES:", 3, 66, 120, 180, 0, UpdateDetailTex, NULL, NULL);
CGameMenuItemZBool itemOptionsDisplayPolymostGlowTex("GLOW TEXTURES:", 3, 66, 130, 180, 0, UpdateGlowTex, 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); CGameMenuItemTitle itemOptionsControlMouseTitle("MOUSE SETUP", 1, 160, 20, 2038);
CGameMenuItemChain itemOptionsControlMouseButton("BUTTON ASSIGNMENT", 3, 66, 60, 180, 0, &menuOptionsControlMouseButtonAssignment, 0, SetupMouseButtonMenu, 0); 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 itemOptionsControlMouseAimFlipped("INVERT AIMING:", 3, 66, 80, 180, false, SetMouseAimFlipped, NULL, NULL);
CGameMenuItemZBool itemOptionsControlMouseFilterInput("FILTER INPUT:", 3, 66, 90, 180, false, SetMouseFilterInput, 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 itemOptionsControlMouseAimMode("AIMING TYPE:", 3, 66, 100, 180, false, SetMouseAimMode, "HOLD", "TOGGLE");
CGameMenuItemZBool itemOptionsControlMouseVerticalAim("VERTICAL AIMING:", 3, 66, 110, 180, false, SetMouseVerticalAim, NULL, NULL); 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 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*)&MouseAnalogueScale[1], 0, 65536, 1024, SetMouseYScale, -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 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 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); CGameMenuItemZCycle itemOptionsControlMouseDigitalLeft("DIGITAL LEFT", 3, 66, 160, 180, 0, SetMouseDigitalAxis, NULL, 0, 0, true);
@ -748,7 +747,7 @@ void SetupMessagesMenu(void)
void SetupControlsMenu(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); sliderTurnSpeed.nValue = ClipRange(gTurnSpeed, sliderTurnSpeed.nRangeLow, sliderTurnSpeed.nRangeHigh);
boolMouseFlipped.at20 = in_mouseflip; boolMouseFlipped.at20 = in_mouseflip;
menuControls.Add(&itemControlsTitle, false); menuControls.Add(&itemControlsTitle, false);
@ -1230,7 +1229,6 @@ void SetupOptionsMenu(void)
//menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTextureMode, true); //menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTextureMode, true);
//menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostAnisotropy, false); //menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostAnisotropy, false);
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTrueColorTextures, true); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTrueColorTextures, true);
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostTexQuality, false);
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostPreloadCache, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostPreloadCache, false);
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDetailTex, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDetailTex, false);
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostGlowTex, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostGlowTex, false);
@ -1238,7 +1236,6 @@ void SetupOptionsMenu(void)
menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDeliriumBlur, false); menuOptionsDisplayPolymost.Add(&itemOptionsDisplayPolymostDeliriumBlur, false);
menuOptionsDisplayPolymost.Add(&itemBloodQAV, false); menuOptionsDisplayPolymost.Add(&itemBloodQAV, false);
itemOptionsDisplayPolymostTexQuality.pPreDrawCallback = PreDrawDisplayPolymost;
itemOptionsDisplayPolymostPreloadCache.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostPreloadCache.pPreDrawCallback = PreDrawDisplayPolymost;
itemOptionsDisplayPolymostDetailTex.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostDetailTex.pPreDrawCallback = PreDrawDisplayPolymost;
itemOptionsDisplayPolymostGlowTex.pPreDrawCallback = PreDrawDisplayPolymost; itemOptionsDisplayPolymostGlowTex.pPreDrawCallback = PreDrawDisplayPolymost;
@ -1656,9 +1653,9 @@ void PreDrawVideoModeMenu(CGameMenuItem *pItem)
void UpdateVideoColorMenu(CGameMenuItemSliderFloat *pItem) void UpdateVideoColorMenu(CGameMenuItemSliderFloat *pItem)
{ {
UNREFERENCED_PARAMETER(pItem); UNREFERENCED_PARAMETER(pItem);
g_videoGamma = itemOptionsDisplayColorGamma.fValue; vid_gamma = itemOptionsDisplayColorGamma.fValue;
g_videoContrast = itemOptionsDisplayColorContrast.fValue; vid_contrast = itemOptionsDisplayColorContrast.fValue;
g_videoBrightness = itemOptionsDisplayColorBrightness.fValue; vid_brightness = itemOptionsDisplayColorBrightness.fValue;
r_ambientlight = itemOptionsDisplayColorVisibility.fValue; r_ambientlight = itemOptionsDisplayColorVisibility.fValue;
} }
@ -1673,9 +1670,9 @@ void PreDrawDisplayColor(CGameMenuItem *pItem)
void ResetVideoColor(CGameMenuItemChain *pItem) void ResetVideoColor(CGameMenuItemChain *pItem)
{ {
UNREFERENCED_PARAMETER(pItem); UNREFERENCED_PARAMETER(pItem);
g_videoGamma = DEFAULT_GAMMA; vid_gamma = 1.f;
g_videoContrast = DEFAULT_CONTRAST; vid_contrast = 1.f;
g_videoBrightness = DEFAULT_BRIGHTNESS; vid_brightness = 0.f;
r_ambientlight = 1.f; r_ambientlight = 1.f;
} }
@ -1702,7 +1699,6 @@ void SetupVideoPolymostMenu(CGameMenuItemChain *pItem)
} }
} }
itemOptionsDisplayPolymostTrueColorTextures.at20 = hw_hightile; itemOptionsDisplayPolymostTrueColorTextures.at20 = hw_hightile;
itemOptionsDisplayPolymostTexQuality.m_nFocus = r_downsize;
itemOptionsDisplayPolymostPreloadCache.at20 = r_precache; itemOptionsDisplayPolymostPreloadCache.at20 = r_precache;
itemOptionsDisplayPolymostDetailTex.at20 = hw_detailmapping; itemOptionsDisplayPolymostDetailTex.at20 = hw_detailmapping;
itemOptionsDisplayPolymostGlowTex.at20 = hw_glowmapping; itemOptionsDisplayPolymostGlowTex.at20 = hw_glowmapping;
@ -1737,13 +1733,6 @@ void DoModeChange(void)
} }
#ifdef USE_OPENGL #ifdef USE_OPENGL
void UpdateTexQuality(CGameMenuItemZCycle *pItem)
{
r_downsize = pItem->m_nFocus;
r_downsizevar = r_downsize;
DoModeChange();
}
void UpdatePreloadCache(CGameMenuItemZBool *pItem) void UpdatePreloadCache(CGameMenuItemZBool *pItem)
{ {
r_precache = pItem->at20; r_precache = pItem->at20;
@ -1771,9 +1760,7 @@ void UpdateDeliriumBlur(CGameMenuItemZBool *pItem)
void PreDrawDisplayPolymost(CGameMenuItem *pItem) void PreDrawDisplayPolymost(CGameMenuItem *pItem)
{ {
if (pItem == &itemOptionsDisplayPolymostTexQuality) if (pItem == &itemOptionsDisplayPolymostPreloadCache)
pItem->bEnable = hw_hightile;
else if (pItem == &itemOptionsDisplayPolymostPreloadCache)
pItem->bEnable = hw_hightile; pItem->bEnable = hw_hightile;
else if (pItem == &itemOptionsDisplayPolymostDetailTex) else if (pItem == &itemOptionsDisplayPolymostDetailTex)
pItem->bEnable = hw_hightile; pItem->bEnable = hw_hightile;
@ -1912,14 +1899,12 @@ void SetMouseVerticalAim(CGameMenuItemZBool *pItem)
void SetMouseXScale(CGameMenuItemSlider *pItem) void SetMouseXScale(CGameMenuItemSlider *pItem)
{ {
MouseAnalogueScale[0] = pItem->nValue; in_mousescalex = pItem->nValue;
CONTROL_SetAnalogAxisScale(0, pItem->nValue, controldevice_mouse);
} }
void SetMouseYScale(CGameMenuItemSlider *pItem) void SetMouseYScale(CGameMenuItemSlider *pItem)
{ {
MouseAnalogueScale[1] = pItem->nValue; in_mousescaley = pItem->nValue;
CONTROL_SetAnalogAxisScale(1, pItem->nValue, controldevice_mouse);
} }
void SetMouseDigitalAxis(CGameMenuItemZCycle *pItem) void SetMouseDigitalAxis(CGameMenuItemZCycle *pItem)

View file

@ -1077,7 +1077,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p)
{ {
int32_t cq = 0; 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; return;
if (q & MAXQUOTES) if (q & MAXQUOTES)

View file

@ -25,10 +25,12 @@ extern char modechange;
extern char nogl; extern char nogl;
extern int32_t swapcomplete; extern int32_t swapcomplete;
EXTERN_CVAR(Int, r_borderless); EXTERN_CVAR(Int, r_borderless);
EXTERN_CVAR(Bool, r_usenewaspect)
// video // video
extern int32_t r_usenewaspect, newaspect_enable; extern int32_t newaspect_enable;
extern int32_t r_fpgrouscan; extern int32_t r_fpgrouscan;
extern int32_t setaspect_new_use_dimen; extern int32_t setaspect_new_use_dimen;
extern uint32_t r_screenxy; extern uint32_t r_screenxy;
@ -66,13 +68,7 @@ extern int32_t lockcount;
} while(0) } while(0)
#endif #endif
extern float g_videoGamma, g_videoContrast, g_videoBrightness; #define GAMMA_CALC ((int32_t)(min(max((float)((vid_gamma - 1.0f) * 10.0f), 0.f), 15.f)))
#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)))
#ifdef USE_OPENGL #ifdef USE_OPENGL
extern int osdcmd_glinfo(osdcmdptr_t parm); extern int osdcmd_glinfo(osdcmdptr_t parm);

View file

@ -1095,7 +1095,6 @@ EXTERN_CVAR(Bool, r_voxels)
extern int32_t r_parallaxskyclamping; extern int32_t r_parallaxskyclamping;
extern int32_t r_downsize; extern int32_t r_downsize;
extern int32_t r_downsizevar;
extern int32_t mdtims, omdtims; extern int32_t mdtims, omdtims;
extern int32_t glrendmode; extern int32_t glrendmode;

View file

@ -132,16 +132,13 @@ static int32_t beforedrawrooms = 1;
static int32_t oxdimen = -1, oviewingrange = -1, oxyaspect = -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 // 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; uint32_t r_screenxy = 0;
int32_t r_fpgrouscan = 1; int32_t r_fpgrouscan = 1;
int32_t globalflags; int32_t globalflags;
float g_videoGamma = DEFAULT_GAMMA;
float g_videoContrast = DEFAULT_CONTRAST;
float g_videoBrightness = DEFAULT_BRIGHTNESS;
//Textured Map variables //Textured Map variables
static char globalpolytype; static char globalpolytype;
static int16_t **dotp1, **dotp2; static int16_t **dotp1, **dotp2;

View file

@ -138,8 +138,6 @@ int32_t glprojectionhacks = 2;
static FHardwareTexture *polymosttext = 0; static FHardwareTexture *polymosttext = 0;
int32_t glrendmode = REND_POLYMOST; int32_t glrendmode = REND_POLYMOST;
int32_t r_downsize = 0;
int32_t r_downsizevar = -1;
int32_t r_scenebrightness = 0; int32_t r_scenebrightness = 0;
int32_t r_rortexture = 0; int32_t r_rortexture = 0;

View file

@ -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; m_Callback = callback;
Flags = 0; Flags = 0;
VarName = ""; VarName = "";
Description = descr; Description = descr;
FBaseCVar* var = nullptr;
if (var_name) if (var_name)
{ {
var = FindCVar(var_name, NULL);
C_AddTabCommand (var_name); C_AddTabCommand (var_name);
VarName = var_name; VarName = var_name;
m_Next = CVars; m_Next = CVars;

View file

@ -120,6 +120,13 @@ public:
void SetArchiveBit () { Flags |= CVAR_ARCHIVE; } void SetArchiveBit () { Flags |= CVAR_ARCHIVE; }
void MarkUnsafe(); void MarkUnsafe();
int ToInt()
{
ECVarType vt;
auto val = GetFavoriteRep(&vt);
return ToInt(val, vt);
}
virtual ECVarType GetRealType () const = 0; virtual ECVarType GetRealType () const = 0;
virtual const char *GetHumanString(int precision=-1) const; 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) \ #define CVARD_NAMED(type,name,varname,def,flags, descr) \
F##type##CVar varname (#name, def, flags, nullptr, 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; extern FBaseCVar *CVars;
#endif //__C_CVARS_H__ #endif //__C_CVARS_H__

View file

@ -465,7 +465,6 @@ int CONFIG_SetMapBestTime(uint8_t const* const mapmd4, int32_t tm)
int32_t MouseDigitalFunctions[MAXMOUSEAXES][2]; int32_t MouseDigitalFunctions[MAXMOUSEAXES][2];
int32_t MouseAnalogueAxes[MAXMOUSEAXES]; int32_t MouseAnalogueAxes[MAXMOUSEAXES];
int32_t MouseAnalogueScale[MAXMOUSEAXES];
int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2]; int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2];
int32_t JoystickDigitalFunctions[MAXJOYAXES][2]; int32_t JoystickDigitalFunctions[MAXJOYAXES][2];
int32_t JoystickAnalogueAxes[MAXJOYAXES]; int32_t JoystickAnalogueAxes[MAXJOYAXES];
@ -612,41 +611,6 @@ const char* CONFIG_AnalogNumToName(int32_t func)
void CONFIG_SetupMouse(void) 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); CONTROL_MouseEnabled = (in_mouse && CONTROL_MousePresent);
} }
@ -1043,9 +1007,6 @@ void CONFIG_InitMouseAndController()
for (int i = 0; i < MAXMOUSEAXES; i++) 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][0] = buttonMap.FindButtonIndex(mousedigitaldefaults[i * 2]);
MouseDigitalFunctions[i][1] = buttonMap.FindButtonIndex(mousedigitaldefaults[i * 2 + 1]); MouseDigitalFunctions[i][1] = buttonMap.FindButtonIndex(mousedigitaldefaults[i * 2 + 1]);
CONTROL_MapDigitalAxis(i, MouseDigitalFunctions[i][0], 0, controldevice_mouse); CONTROL_MapDigitalAxis(i, MouseDigitalFunctions[i][0], 0, controldevice_mouse);
@ -1071,34 +1032,7 @@ void CONFIG_PutNumber(const char* key, int number)
void CONFIG_WriteControllerSettings() void CONFIG_WriteControllerSettings()
{ {
FString buf; 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) if (in_joystick)
{ {

View file

@ -36,7 +36,6 @@ void CONFIG_SetDefaultKeys(const char *defbinds);
extern int32_t MouseDigitalFunctions[MAXMOUSEAXES][2]; extern int32_t MouseDigitalFunctions[MAXMOUSEAXES][2];
extern int32_t MouseAnalogueAxes[MAXMOUSEAXES]; extern int32_t MouseAnalogueAxes[MAXMOUSEAXES];
extern int32_t MouseAnalogueScale[MAXMOUSEAXES];
extern int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2]; extern int32_t JoystickFunctions[MAXJOYBUTTONSANDHATS][2];
extern int32_t JoystickDigitalFunctions[MAXJOYAXES][2]; extern int32_t JoystickDigitalFunctions[MAXJOYAXES][2];
extern int32_t JoystickAnalogueAxes[MAXJOYAXES]; extern int32_t JoystickAnalogueAxes[MAXJOYAXES];

View file

@ -317,7 +317,18 @@ CUSTOM_CVARD(Float, in_mousesensitivity, DEFAULTMOUSESENSITIVITY, CVAR_ARCHIVE|C
{ {
if (self < 0) self = 0; if (self < 0) self = 0;
else if (self > 25) self = 25; 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. //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) CUSTOM_CVAR(String, rtsname, "", CVAR_ARCHIVE | CVAR_USERINFO)
{ {
RTS_Init(self); RTS_Init(self);
@ -464,6 +500,17 @@ CUSTOM_CVAR(String, rtsname, "", CVAR_ARCHIVE | CVAR_USERINFO)
CVAR(String, usermapfolder, "", CVAR_ARCHIVE); 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 #if 0
// These have to wait until the HUD code is cleaned up (no idea which may survive and which won't.) // 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 // Currently unavailable due to dependency on an obsolete OpenGL feature
{ "deliriumblur", "enable/disable delirium blur effect(polymost)", (void *)&gDeliriumBlur, CVAR_BOOL, 0, 1 }, { "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")) if (!Bstrcasecmp(parm->name, "color"))
{ {
ud.color = G_CheckPlayerColor(ud.color); playercolor = G_CheckPlayerColor(playercolor);
g_player[0].ps->palookup = g_player[0].pcolor = ud.color; 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 // 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 }, { "skill","changes the game skill setting", (void *)&ud.m_player_skill, CVAR_INT|CVAR_FUNCPTR|CVAR_NOSAVE/*|CVAR_NOMULTI*/, 0, 5 },
// requires cleanup first // 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: // 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. /* 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[] = 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", { "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 }, (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 },
}; };
*/ */

View file

@ -52,6 +52,8 @@ extern int MusicDevice;
EXTERN_CVAR(Int, hud_layout) EXTERN_CVAR(Int, hud_layout)
EXTERN_CVAR(Int, hud_scale) EXTERN_CVAR(Int, hud_scale)
EXTERN_CVAR(Int, hud_size)
EXTERN_CVAR(Int, hud_custom) EXTERN_CVAR(Int, hud_custom)
EXTERN_CVAR(Bool, hud_stats) EXTERN_CVAR(Bool, hud_stats)
EXTERN_CVAR(Bool, hud_showmapname) EXTERN_CVAR(Bool, hud_showmapname)
@ -79,6 +81,11 @@ EXTERN_CVAR(Bool, r_shadows)
EXTERN_CVAR(Bool, r_rotatespritenowidescreen) EXTERN_CVAR(Bool, r_rotatespritenowidescreen)
EXTERN_CVAR(Bool, r_precache) EXTERN_CVAR(Bool, r_precache)
EXTERN_CVAR(Bool, r_voxels) 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) EXTERN_CVAR(Bool, in_joystick)
@ -90,6 +97,8 @@ EXTERN_CVAR(Bool, in_mouseflip)
EXTERN_CVAR(Bool, in_mousemode) EXTERN_CVAR(Bool, in_mousemode)
EXTERN_CVAR(Bool, in_mousesmoothing) EXTERN_CVAR(Bool, in_mousesmoothing)
EXTERN_CVAR(Float, in_mousesensitivity) EXTERN_CVAR(Float, in_mousesensitivity)
EXTERN_CVAR(Int, in_mousescalex)
EXTERN_CVAR(Int, in_mousescaley)
extern int32_t g_MyAimMode; extern int32_t g_MyAimMode;
EXTERN_CVAR(Bool, in_mousemode) EXTERN_CVAR(Bool, in_mousemode)
EXTERN_CVAR(String, wchoice) EXTERN_CVAR(String, wchoice)
@ -107,6 +116,16 @@ EXTERN_CVAR(String, playername)
EXTERN_CVAR(String, rtsname) EXTERN_CVAR(String, rtsname)
EXTERN_CVAR(String, usermapfolder) 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 bool gNoAutoLoad;
extern float r_ambientlightrecip; extern float r_ambientlightrecip;
extern int hud_statusbarrange; // will be set by the game's configuration setup. extern int hud_statusbarrange; // will be set by the game's configuration setup.

View file

@ -368,13 +368,13 @@ void G_DoCheats(void)
levnume--; levnume--;
ud.m_volume_number = volnume; ud.m_volume_number = volnume;
ud.m_level_number = levnume; m_level_number = levnume;
} }
else else
{ {
// JBF 20030914 // JBF 20030914
ud.m_volume_number = osdcmd_cheatsinfo_stat.volume; 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) else if (cheatNum == CHEAT_SKILL)
@ -399,7 +399,7 @@ void G_DoCheats(void)
if (originalCheatNum == CHEAT_SCOTTY) if (originalCheatNum == CHEAT_SCOTTY)
{ {
ud.m_volume_number = ud.volume_number; 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) else if (originalCheatNum == CHEAT_SKILL)
{ {
@ -555,7 +555,7 @@ void G_DoCheats(void)
case CHEAT_SCOTTY: 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 && if ((!VOLUMEONE || volnume == 0) && (unsigned)volnume < (unsigned)g_volumeCnt &&
(unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL) (unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL)
@ -580,7 +580,7 @@ void G_DoCheats(void)
#if 0 #if 0
if (numplayers > 1 && g_netServer) 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 else
#endif #endif
pPlayer->gm |= MODE_RESTART; pPlayer->gm |= MODE_RESTART;

View file

@ -73,14 +73,11 @@ void CONFIG_SetDefaults(void)
ud.althud = 1; ud.althud = 1;
ud.angleinterpolation = 0; ud.angleinterpolation = 0;
ud.camerasprite = -1; ud.camerasprite = -1;
ud.color = 0;
ud.config.ShowWeapons = 0; ud.config.ShowWeapons = 0;
ud.default_skill = 1; ud.default_skill = 1;
ud.detail = 0;
ud.display_bonus_screen = 1; ud.display_bonus_screen = 1;
hud_position = 0; hud_position = 0;
ud.m_marker = 1;
ud.menu_scrollbartilenum = -1; ud.menu_scrollbartilenum = -1;
ud.menu_scrollbarz = 65536; ud.menu_scrollbarz = 65536;
ud.menu_scrollcursorz = 65536; ud.menu_scrollcursorz = 65536;
@ -98,16 +95,14 @@ void CONFIG_SetDefaults(void)
ud.statusbarflags = 0;//STATUSBAR_NOSHRINK; ud.statusbarflags = 0;//STATUSBAR_NOSHRINK;
ud.statusbarmode = 1; ud.statusbarmode = 1;
ud.statusbarscale = 100; ud.statusbarscale = 100;
ud.team = 0;
ud.fta_on = 1;
ud.god = 0; ud.god = 0;
ud.m_respawn_items = 0; ud.m_respawn_items = 0;
ud.m_respawn_monsters = 0; ud.m_respawn_monsters = 0;
ud.m_respawn_inventory = 0; ud.m_respawn_inventory = 0;
ud.warp_on = 0; ud.warp_on = 0;
ud.cashman = 0; ud.cashman = 0;
ud.m_ffire = 1; m_ffire = 1;
ud.m_player_skill = ud.player_skill = 2; ud.m_player_skill = ud.player_skill = 2;
memcpy(g_player[0].wchoice, "\3\4\5\7\0x8\6\0\2\0x9\1", 10); memcpy(g_player[0].wchoice, "\3\4\5\7\0x8\6\0\2\0x9\1", 10);
wchoice.Callback(); wchoice.Callback();

View file

@ -144,7 +144,7 @@ void G_OpenDemoWrite(void)
{ {
Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!"); Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!");
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.recstat = ud.m_recstat = 0; ud.recstat = m_recstat = 0;
return; return;
} }
do do
@ -181,7 +181,7 @@ void G_OpenDemoWrite(void)
error_wopen_demo: error_wopen_demo:
Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS."); Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS.");
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.recstat = ud.m_recstat = 0; ud.recstat = m_recstat = 0;
return; return;
} }
@ -193,7 +193,7 @@ error_wopen_demo:
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.reccnt = 0; ud.reccnt = 0;
ud.recstat = ud.m_recstat = 1; // ud.recstat = m_recstat = 1; //
# if KRANDDEBUG # if KRANDDEBUG
krd_enable(1); 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 // 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)); 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; delete g_demo_filePtr;
g_demo_filePtr = nullptr; g_demo_filePtr = nullptr;

View file

@ -188,11 +188,11 @@ void G_HandleSpecialKeys(void)
if (g_networkMode != NET_DEDICATED_SERVER && ALT_IS_PRESSED && inputState.GetKeyStatus(sc_Enter)) 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"); 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"); G_GameExit("Fatal error: unable to recover from failure setting video mode!\n");
} }
else 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_mostConcurrentPlayers > 1 && g_player[myconnectindex].ps->gm & MODE_GAME && GTFLAGS(GAMETYPE_SCORESHEET) && *msg == ' ')
{ {
G_BonusScreen(1); G_BonusScreen(1);
videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, ud.detail); videoSetGameMode(ScreenMode, ScreenWidth, ScreenHeight, ScreenBPP, 1);
} }
// shareware and TEN screens // shareware and TEN screens
@ -4466,7 +4466,7 @@ void GameInterface::set_hud_layout(int layout)
void GameInterface::set_hud_scale(int scale) void GameInterface::set_hud_scale(int scale)
{ {
G_UpdateScreenArea(); G_SetStatusBarScale(scale);
} }
void G_HandleLocalKeys(void) void G_HandleLocalKeys(void)
@ -4862,10 +4862,10 @@ FAKE_F3:
{ {
inputState.ClearKeyStatus(sc_F8); inputState.ClearKeyStatus(sc_F8);
int const fta = !ud.fta_on; int const fta = !hud_messages;
ud.fta_on = 1; hud_messages = 1;
P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, &myplayer); 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)) 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) static inline void G_CheckGametype(void)
{ {
ud.m_coop = clamp(ud.m_coop, 0, g_gametypeCnt-1); m_coop = clamp(*m_coop, 0, g_gametypeCnt-1);
initprintf("%s\n",g_gametypeNames[ud.m_coop]); initprintf("%s\n",g_gametypeNames[m_coop]);
if (g_gametypeFlags[ud.m_coop] & GAMETYPE_ITEMRESPAWN) if (g_gametypeFlags[m_coop] & GAMETYPE_ITEMRESPAWN)
ud.m_respawn_items = ud.m_respawn_inventory = 1; ud.m_respawn_items = ud.m_respawn_inventory = 1;
} }
@ -5991,9 +5991,9 @@ void G_UpdatePlayerFromMenu(void)
/*int32_t j = p.team;*/ /*int32_t j = p.team;*/
P_SetupMiscInputSettings(); 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) if (sprite[p.i].picnum == APLAYER && sprite[p.i].pal != 1)
sprite[p.i].pal = g_player[myconnectindex].pcolor; sprite[p.i].pal = g_player[myconnectindex].pcolor;
@ -6055,7 +6055,7 @@ static int G_EndOfLevel(void)
} }
else else
{ {
ud.m_level_number = 0; m_level_number = 0;
ud.level_number = 0; ud.level_number = 0;
} }
} }
@ -6208,7 +6208,7 @@ int GameInterface::app_main()
if (numplayers == 1 && boardfilename[0] != 0) if (numplayers == 1 && boardfilename[0] != 0)
{ {
ud.m_level_number = 7; m_level_number = 7;
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.warp_on = 1; ud.warp_on = 1;
} }
@ -6252,7 +6252,7 @@ int GameInterface::app_main()
if (g_networkMode != NET_DEDICATED_SERVER && validmodecnt > 0) 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, initprintf("Failure setting video mode %dx%dx%d %s! Trying next mode...\n", *ScreenWidth, *ScreenHeight,
*ScreenBPP, *ScreenMode ? "fullscreen" : "windowed"); *ScreenBPP, *ScreenMode ? "fullscreen" : "windowed");
@ -6271,7 +6271,7 @@ int GameInterface::app_main()
int const savedIdx = resIdx; int const savedIdx = resIdx;
int bpp = ScreenBPP; 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", initprintf("Failure setting video mode %dx%dx%d windowed! Trying next mode...\n",
validmode[resIdx].xdim, validmode[resIdx].ydim, bpp); validmode[resIdx].xdim, validmode[resIdx].ydim, bpp);
@ -6360,7 +6360,7 @@ MAIN_LOOP_RESTART:
{ {
if ((g_netServer || ud.multimode > 1) && boardfilename[0] != 0) 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_volume_number = 0;
ud.m_respawn_monsters = !!(ud.m_player_skill == 4); ud.m_respawn_monsters = !!(ud.m_player_skill == 4);
@ -6393,13 +6393,13 @@ MAIN_LOOP_RESTART:
ud.showweapons = ud.config.ShowWeapons; ud.showweapons = ud.config.ShowWeapons;
P_SetupMiscInputSettings(); P_SetupMiscInputSettings();
g_player[myconnectindex].pteam = ud.team; g_player[myconnectindex].pteam = playerteam;
if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM) if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM)
myplayer.palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam); myplayer.palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam);
else 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; else myplayer.palookup = g_player[myconnectindex].pcolor;
} }

View file

@ -163,21 +163,21 @@ typedef struct {
int32_t reccnt; int32_t reccnt;
int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125 int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125
int32_t color,statusbarmode; int32_t statusbarmode;
int32_t m_noexits,noexits; int32_t noexits;
int32_t team, althud; int32_t althud;
int32_t statusbarflags, statusbarrange; int32_t statusbarflags, statusbarrange;
int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz; int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz;
int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz; int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz;
int32_t entered_name,screen_tilting,fta_on; int32_t entered_name,screen_tilting;
int32_t m_coop,coop,screen_size; int32_t coop,screen_size;
int32_t playerai,angleinterpolation; int32_t playerai,angleinterpolation;
int32_t respawn_monsters,respawn_items,respawn_inventory,recstat,monsters_off,brightness; 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_respawn_items,m_respawn_monsters,m_respawn_inventory,m_monsters_off;
int32_t m_ffire,ffire,m_player_skill,m_level_number,m_volume_number,multimode; int32_t ffire,m_player_skill,m_level_number,m_volume_number,multimode;
int32_t player_skill,level_number,volume_number,m_marker,marker; int32_t player_skill,level_number,volume_number,marker;
int32_t music_episode, music_level, skill_voice; int32_t music_episode, music_level, skill_voice;
int32_t playerbest; int32_t playerbest;
@ -236,7 +236,7 @@ static inline int G_HaveUserMap(void)
static inline int Menu_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); extern const char *G_DefaultRtsFile(void);
@ -461,7 +461,7 @@ enum
static inline void G_NewGame_EnterLevel(void) 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)) if (G_EnterLevel(MODE_GAME))
G_BackToMenu(); 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) EXTERN_INLINE void G_SetStatusBarScale(int32_t sc)
{ {
ud.statusbarscale = clamp(sc, 50, 100); ud.statusbarscale = clamp(sc, 36, 100);
G_UpdateScreenArea(); G_UpdateScreenArea();
} }

View file

@ -3936,7 +3936,7 @@ badindex:
} }
ud.m_volume_number = ud.volume_number = volumeNum; 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) // if (numplayers > 1 && g_netServer)
// Net_NewGame(volnume,levnume); // Net_NewGame(volnume,levnume);
//else //else

View file

@ -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_ENTERED_NAME: labelNum = ud.entered_name; break;
case USERDEFS_SCREEN_TILTING: labelNum = ud.screen_tilting; break; case USERDEFS_SCREEN_TILTING: labelNum = ud.screen_tilting; break;
case USERDEFS_SHADOWS: labelNum = r_shadows; 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_EXECUTIONS: labelNum = 1; break;
case USERDEFS_AUTO_RUN: labelNum = cl_autorun; break; case USERDEFS_AUTO_RUN: labelNum = cl_autorun; break;
case USERDEFS_COORDS: labelNum = cl_showcoords; break; case USERDEFS_COORDS: labelNum = cl_showcoords; break;
case USERDEFS_TICKRATE: labelNum = r_showfps; 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_COOP: labelNum = ud.coop; break;
case USERDEFS_SCREEN_SIZE: labelNum = ud.screen_size; break; case USERDEFS_SCREEN_SIZE: labelNum = ud.screen_size; break;
case USERDEFS_LOCKOUT: labelNum = adult_lockout; 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_ITEMS: labelNum = ud.m_respawn_items; break;
case USERDEFS_M_RESPAWN_MONSTERS: labelNum = ud.m_respawn_monsters; 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_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_M_MONSTERS_OFF: labelNum = ud.m_monsters_off; break;
case USERDEFS_DETAIL: labelNum = ud.detail; break; case USERDEFS_DETAIL: labelNum = 1; break;
case USERDEFS_M_FFIRE: labelNum = ud.m_ffire; break; case USERDEFS_M_FFIRE: labelNum = m_ffire; break;
case USERDEFS_FFIRE: labelNum = ud.ffire; break; case USERDEFS_FFIRE: labelNum = ud.ffire; break;
case USERDEFS_M_PLAYER_SKILL: labelNum = ud.m_player_skill; 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_VOLUME_NUMBER: labelNum = ud.m_volume_number; break;
case USERDEFS_M_USER_MAP: labelNum = Menu_HaveUserMap(); break; case USERDEFS_M_USER_MAP: labelNum = Menu_HaveUserMap(); break;
case USERDEFS_MULTIMODE: labelNum = ud.multimode; 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_LEVEL_NUMBER: labelNum = ud.level_number; break;
case USERDEFS_VOLUME_NUMBER: labelNum = ud.volume_number; break; case USERDEFS_VOLUME_NUMBER: labelNum = ud.volume_number; break;
case USERDEFS_USER_MAP: labelNum = G_HaveUserMap(); 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_MARKER: labelNum = ud.marker; break;
case USERDEFS_MOUSEFLIP: labelNum = !in_mouseflip; break; case USERDEFS_MOUSEFLIP: labelNum = !in_mouseflip; break;
case USERDEFS_STATUSBARSCALE: labelNum = ud.statusbarscale; 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_MOUSEAIMING: labelNum = in_aimmode; break;
case USERDEFS_WEAPONSWITCH: labelNum = cl_weaponswitch; break; case USERDEFS_WEAPONSWITCH: labelNum = cl_weaponswitch; break;
case USERDEFS_DEMOCAMS: labelNum = cl_democams; 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_MSGDISPTIME: labelNum = hud_messagetime; break;
case USERDEFS_STATUSBARMODE: labelNum = ud.statusbarmode; 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_NOEXITS: labelNum = ud.noexits; break;
case USERDEFS_AUTOVOTE: labelNum = cl_autovote; break; case USERDEFS_AUTOVOTE: labelNum = cl_autovote; break;
case USERDEFS_AUTOMSG: labelNum = cl_automsg; break; case USERDEFS_AUTOMSG: labelNum = cl_automsg; break;
case USERDEFS_IDPLAYERS: labelNum = cl_idplayers; 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_VIEWBOB: labelNum = cl_viewbob; break;
case USERDEFS_WEAPONSWAY: labelNum = cl_weaponsway; break; case USERDEFS_WEAPONSWAY: labelNum = cl_weaponsway; break;
case USERDEFS_ANGLEINTERPOLATION: labelNum = ud.angleinterpolation; 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_USEHIGHTILE: labelNum = hw_hightile; break;
case USERDEFS_USEMODELS: labelNum = hw_models; break; case USERDEFS_USEMODELS: labelNum = hw_models; break;
case USERDEFS_GAMETYPEFLAGS: labelNum = g_gametypeFlags[ud.coop]; 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_GLOBALFLAGS: labelNum = globalflags; break;
case USERDEFS_GLOBALGAMEFLAGS: labelNum = duke3d_globalflags; break; case USERDEFS_GLOBALGAMEFLAGS: labelNum = duke3d_globalflags; break;
case USERDEFS_VM_PLAYER: labelNum = vm.playerNum; 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_ENTERED_NAME: ud.entered_name = iSet; break;
case USERDEFS_SCREEN_TILTING: ud.screen_tilting = iSet; break; case USERDEFS_SCREEN_TILTING: ud.screen_tilting = iSet; break;
case USERDEFS_SHADOWS: r_shadows.SetGenericRepDefault(iSet, CVAR_Int); 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_EXECUTIONS: break; // what was this supposed to accomplish?
case USERDEFS_AUTO_RUN: cl_autorun.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_AUTO_RUN: cl_autorun.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_COORDS: cl_showcoords.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_COORDS: cl_showcoords.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_TICKRATE: r_showfps = iSet; 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_COOP: ud.coop = iSet; break;
case USERDEFS_SCREEN_SIZE: case USERDEFS_SCREEN_SIZE:
if (ud.screen_size != iSet) 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_ITEMS: ud.m_respawn_items = iSet; break;
case USERDEFS_M_RESPAWN_MONSTERS: ud.m_respawn_monsters = 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_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; case USERDEFS_M_MONSTERS_OFF: ud.m_monsters_off = iSet; break;
// REMINDER: must implement "boolean" setters like "!!iSet" in Lunatic, too. // REMINDER: must implement "boolean" setters like "!!iSet" in Lunatic, too.
case USERDEFS_DETAIL: ud.detail = clamp(iSet, 1, 16); break; case USERDEFS_DETAIL: /*ud.detail = clamp(iSet, 1, 16); obsolete*/ break;
case USERDEFS_M_FFIRE: ud.m_ffire = iSet; break; case USERDEFS_M_FFIRE: m_ffire = iSet; break;
case USERDEFS_FFIRE: ud.ffire = iSet; break; case USERDEFS_FFIRE: ud.ffire = iSet; break;
case USERDEFS_M_PLAYER_SKILL: ud.m_player_skill = 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_M_VOLUME_NUMBER: ud.m_volume_number = iSet; break;
case USERDEFS_MULTIMODE: ud.multimode = iSet; break; case USERDEFS_MULTIMODE: ud.multimode = iSet; break;
case USERDEFS_PLAYER_SKILL: ud.player_skill = iSet; break; case USERDEFS_PLAYER_SKILL: ud.player_skill = iSet; break;
case USERDEFS_LEVEL_NUMBER: ud.level_number = iSet; break; case USERDEFS_LEVEL_NUMBER: ud.level_number = iSet; break;
case USERDEFS_VOLUME_NUMBER: ud.volume_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_MARKER: ud.marker = iSet; break;
case USERDEFS_MOUSEFLIP: in_mouseflip.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_MOUSEFLIP: in_mouseflip.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_STATUSBARSCALE: ud.statusbarscale = iSet; 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_MOUSEAIMING: in_aimmode.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_WEAPONSWITCH: cl_weaponswitch.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_WEAPONSWITCH: cl_weaponswitch.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_DEMOCAMS: cl_democams = iSet; 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_MSGDISPTIME: hud_messagetime.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_STATUSBARMODE: ud.statusbarmode = iSet; 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_NOEXITS: ud.noexits = iSet; break;
case USERDEFS_AUTOVOTE: cl_autovote.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_AUTOVOTE: cl_autovote.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_AUTOMSG: cl_automsg.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_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_VIEWBOB: cl_viewbob.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_WEAPONSWAY: cl_weaponsway.SetGenericRepDefault(iSet, CVAR_Int); break; case USERDEFS_WEAPONSWAY: cl_weaponsway.SetGenericRepDefault(iSet, CVAR_Int); break;
case USERDEFS_ANGLEINTERPOLATION: ud.angleinterpolation = iSet; break; case USERDEFS_ANGLEINTERPOLATION: ud.angleinterpolation = iSet; break;

View file

@ -36,6 +36,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "c_bind.h" #include "c_bind.h"
#include "../../glbackend/glbackend.h" #include "../../glbackend/glbackend.h"
bool ShowOptionMenu();
namespace ImGui
{
void ShowDemoWindow(bool*);
}
BEGIN_DUKE_NS 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 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 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 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",*/ }; 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 char const *MEOSN_DemoRec[] = { "Off", "Running", };
static MenuOptionSet_t MEOS_DemoRec = MAKE_MENUOPTIONSET( MEOSN_DemoRec, NULL, 0x3 ); 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 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 ); 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) #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); MAKE_MENU_TOP_ENTRYLINK("Cheats", MEF_OptionsMenu, OPTIONS_CHEATS, MENU_CHEATS);
#endif #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 { enum resflags_t {
RES_FS = 0x1, 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 ); static MenuEntry_t ME_VIDEOSETUP_RESOLUTION = MAKE_MENUENTRY( "Resolution:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_VIDEOSETUP_RESOLUTION, Option );
#ifdef USE_OPENGL #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 char const *MEOSN_VIDEOSETUP_RENDERER[] = { "Classic", "OpenGL", };
static int32_t MEOSV_VIDEOSETUP_RENDERER[] = { REND_CLASSIC, REND_POLYMOST, }; 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 ); 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 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 #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);
static MenuEntry_t ME_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUENTRY( "Widescreen:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ASPECTRATIO, Option ); static MenuEntry_t ME_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUENTRY( "Widescreen:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ASPECTRATIO, Option );
#endif #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 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 ); static MenuEntry_t ME_DISPLAYSETUP_FOV = MAKE_MENUENTRY( "FOV:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_FOV, RangeInt32 );
#ifdef USE_OPENGL #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 char const *MEOSN_DISPLAYSETUP_TEXFILTER[] = { "Classic", "Filtered" };
static int32_t MEOSV_DISPLAYSETUP_TEXFILTER[] = { TEXFILTER_OFF, TEXFILTER_ON }; 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 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 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 char const *MEOSN_DISPLAYSETUP_ANISOTROPY[] = { "Max", "None", "2x", "4x", "8x", "16x", };
static int32_t MEOSV_DISPLAYSETUP_ANISOTROPY[] = { 0, 1, 2, 4, 8, 16, }; 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 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 ); 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 #endif
static char const s_Scale[] = "Scale:"; 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 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 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( &hud_size, &MF_Redfont, 0, 11, 0, 1, EnforceIntervals );
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, &hud_size );
static MenuOption_t MEO_SCREENSETUP_SCREENSIZE_TWO = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &vpsize );
static MenuEntry_t ME_SCREENSETUP_SCREENSIZE = MAKE_MENUENTRY( "Status bar:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SCREENSIZE, RangeInt32 ); 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 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 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 ); static MenuEntry_t ME_SCREENSETUP_SHOWPICKUPMESSAGES = MAKE_MENUENTRY( "Game messages:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SCREENSETUP_SHOWPICKUPMESSAGES, Option );
static MenuRangeInt32_t MEO_SCREENSETUP_SBARSIZE = MAKE_MENURANGE( &hud_scale, &MF_Redfont, 50, 100, 0, 10, 2 );
#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 MenuEntry_t ME_SCREENSETUP_SBARSIZE = MAKE_MENUENTRY( s_Scale, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SCREENSETUP_SBARSIZE, RangeInt32 ); 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 ); 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 #ifdef USE_OPENGL
static MenuLink_t MEO_DISPLAYSETUP_ADVANCED_GL_POLYMOST = { MENU_POLYMOST, MA_Advance, }; 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 ); 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 #endif
#ifndef EDUKE32_ANDROID_MENU #ifndef EDUKE32_ANDROID_MENU
@ -710,60 +680,22 @@ static MenuEntry_t *MEL_DISPLAYSETUP[] = {
&ME_DISPLAYSETUP_VOXELS, &ME_DISPLAYSETUP_VOXELS,
&ME_DISPLAYSETUP_FOV, &ME_DISPLAYSETUP_FOV,
#endif #endif
&ME_DISPLAYSETUP_UPSCALING,
}; };
#ifdef USE_OPENGL #ifdef USE_OPENGL
static MenuEntry_t *MEL_DISPLAYSETUP_GL[] = { static MenuEntry_t *MEL_DISPLAYSETUP_GL[] = {
&ME_DISPLAYSETUP_SCREENSETUP, &ME_DISPLAYSETUP_SCREENSETUP,
&ME_DISPLAYSETUP_COLORCORR, &ME_DISPLAYSETUP_COLORCORR,
#ifndef EDUKE32_ANDROID_MENU
&ME_DISPLAYSETUP_VIDEOSETUP, &ME_DISPLAYSETUP_VIDEOSETUP,
&ME_DISPLAYSETUP_ASPECTRATIO, &ME_DISPLAYSETUP_ASPECTRATIO,
&ME_DISPLAYSETUP_VOXELS, &ME_DISPLAYSETUP_VOXELS,
&ME_DISPLAYSETUP_FOV, &ME_DISPLAYSETUP_FOV,
#endif
#ifndef EDUKE32_STANDALONE
# ifdef TEXFILTER_MENU_OPTIONS
&ME_DISPLAYSETUP_TEXFILTER, &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, &ME_DISPLAYSETUP_ANISOTROPY,
# endif
# endif
# ifndef EDUKE32_SIMPLE_MENU
&ME_DISPLAYSETUP_ADVANCED_GL_POLYMOST, &ME_DISPLAYSETUP_ADVANCED_GL_POLYMOST,
# endif
#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 = " -"; 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_MOUSEJOYSETUPBTNS_TEMPLATE = MAKE_MENUOPTION( &MF_Minifont, &MEOS_Gamefuncs, NULL );
static MenuOption_t MEO_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS]; 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_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 MenuRangeFloat_t MEO_MOUSESETUP_SENSITIVITY = MAKE_MENURANGE( &in_mousesensitivity, &MF_Redfont, .5f, 16.f, 0.f, 32, 1 );
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 MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat ); static MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat );
#ifndef EDUKE32_SIMPLE_MENU #ifndef EDUKE32_SIMPLE_MENU
static char const *MEOSN_MOUSESETUP_AIM_TYPE [] = { "Toggle", "Hold" }; 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 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 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 ); static MenuEntry_t ME_MOUSESETUP_MOUSEAIMING = MAKE_MENUENTRY( "Vertical aiming:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_MOUSEAIMING, Option );
#endif #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 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 ); static MenuEntry_t ME_MOUSESETUP_SMOOTH = MAKE_MENUENTRY( "Filter input:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SMOOTH, Option );
#ifndef EDUKE32_SIMPLE_MENU #ifndef EDUKE32_SIMPLE_MENU
static MenuLink_t MEO_MOUSESETUP_ADVANCED = { MENU_MOUSEADVANCED, MA_Advance, }; 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 ); static MenuEntry_t ME_MOUSESETUP_ADVANCED = MAKE_MENUENTRY( "Advanced setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_ADVANCED, Link );
#endif #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 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 ME_MOUSEADVANCED_SCALEY = MAKE_MENUENTRY("Y-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEY, RangeInt32);
static MenuEntry_t *MEL_MOUSESETUP[] = { static MenuEntry_t *MEL_MOUSESETUP[] = {
&ME_MOUSESETUP_BTNS,
&ME_MOUSESETUP_SENSITIVITY, &ME_MOUSESETUP_SENSITIVITY,
#ifdef EDUKE32_SIMPLE_MENU #ifdef EDUKE32_SIMPLE_MENU
&ME_MOUSEADVANCED_SCALEX, &ME_MOUSEADVANCED_SCALEX,
@ -910,7 +837,7 @@ static MenuEntry_t *MEL_TOUCHSENS [] = {
}; };
#endif #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 ); 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 ); 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 #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 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 );
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 ); static MenuEntry_t ME_RENDERERSETUP_PRECACHE = MAKE_MENUENTRY( "Pre-load map textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_PRECACHE, Option );
# ifndef EDUKE32_GLES # ifndef EDUKE32_GLES
static char const *MEOSN_RENDERERSETUP_TEXCACHE[] = { "Off", "On", "Compr.", }; static char const *MEOSN_RENDERERSETUP_TEXCACHE[] = { "Off", "On", "Compr.", };
static MenuOptionSet_t MEOS_RENDERERSETUP_TEXCACHE = MAKE_MENUOPTIONSET( MEOSN_RENDERERSETUP_TEXCACHE, NULL, 0x2 ); static MenuOptionSet_t MEOS_RENDERERSETUP_TEXCACHE = MAKE_MENUOPTIONSET( MEOSN_RENDERERSETUP_TEXCACHE, NULL, 0x2 );
# endif # endif
# ifdef USE_GLEXT # 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 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); static MenuEntry_t ME_RENDERERSETUP_GLOWTEX = MAKE_MENUENTRY("Glow textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_GLOWTEX, Option);
# endif # 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 ); static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_MODELS, Option );
#endif #endif
@ -1021,7 +943,6 @@ static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_B
#ifdef USE_OPENGL #ifdef USE_OPENGL
static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = {
&ME_RENDERERSETUP_HIGHTILE, &ME_RENDERERSETUP_HIGHTILE,
&ME_RENDERERSETUP_TEXQUALITY,
&ME_RENDERERSETUP_PRECACHE, &ME_RENDERERSETUP_PRECACHE,
# ifdef USE_GLEXT # ifdef USE_GLEXT
&ME_RENDERERSETUP_DETAILTEX, &ME_RENDERERSETUP_DETAILTEX,
@ -1033,15 +954,11 @@ static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = {
#endif #endif
#ifdef EDUKE32_ANDROID_MENU static MenuRangeFloat_t MEO_COLCORR_GAMMA = MAKE_MENURANGE( &vid_gamma, &MF_Bluefont, 0.3f, 4.f, 0.f, 75, 1 );
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 MenuEntry_t ME_COLCORR_GAMMA = MAKE_MENUENTRY( "Gamma:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_GAMMA, RangeFloat ); 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 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 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 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 ); 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 #define MINVIS 0.125f
#endif #endif
#ifndef EDUKE32_SIMPLE_MENU #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 ); static MenuEntry_t ME_COLCORR_AMBIENT = MAKE_MENUENTRY( "Visibility:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_AMBIENT, RangeFloat );
#endif #endif
static MenuEntry_t *MEL_COLCORR[] = { 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 *ME_SAVE;
static MenuEntry_t **MEL_SAVE; static MenuEntry_t **MEL_SAVE;
static int32_t soundrate, soundvoices, musicdevice; CVAR_UNAMED(Int, soundrate)
static MenuOption_t MEO_SOUND = MAKE_MENUOPTION( &MF_Redfont, &MEOS_OffOn, &snd_enabled.Value ); 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 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 MenuEntry_t ME_SOUND_MUSIC = MAKE_MENUENTRY( "Music:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_SOUND_MUSIC, Option );
static char const s_Volume[] = "Volume:"; 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 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 ); static MenuEntry_t ME_SOUND_VOLUME_MUSIC = MAKE_MENUENTRY( s_Volume, &MF_Redfont, &MEF_BigOptions_Apply, &MEO_SOUND_VOLUME_MUSIC, RangeInt32 );
#ifndef EDUKE32_STANDALONE #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 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 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_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 ); 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 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 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 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 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 char const *MEOSN_PLAYER_TEAM[] = { "Blue", "Red", "Green", "Gray", };
static MenuOptionSet_t MEOS_PLAYER_TEAM = MAKE_MENUOPTIONSET( MEOSN_PLAYER_TEAM, NULL, 0x2 ); 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 ); static MenuEntry_t ME_PLAYER_TEAM = MAKE_MENUENTRY( "Team", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_TEAM, Option );
#ifndef EDUKE32_SIMPLE_MENU #ifndef EDUKE32_SIMPLE_MENU
static MenuLink_t MEO_PLAYER_MACROS = { MENU_MACROS, MA_Advance, }; 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 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 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 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 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 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_TEMPLATE = MAKE_MENUOPTIONSETNULL;
static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL[MAXVOLUMES]; 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 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 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 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 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 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 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 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 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_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 ); 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, }; static MenuPanel_t M_TOUCHBUTTONS = { "Button Setup", MENU_TOUCHSETUP, MA_Return, MENU_TOUCHSETUP, MA_Advance, };
#endif #endif
static MenuMenu_t M_JOYSTICKSETUP = MAKE_MENUMENU( "Gamepad Setup", &MMF_BigOptions, MEL_JOYSTICKSETUP ); 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_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_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_MOUSEADVANCED = MAKE_MENUMENU( "Advanced Mouse", &MMF_BigSliders, MEL_MOUSEADVANCED );
static MenuMenu_t M_JOYSTICKAXIS = MAKE_MENUMENU( NULL, &MMF_BigSliders, MEL_JOYSTICKAXIS ); static MenuMenu_t M_JOYSTICKAXIS = MAKE_MENUMENU( NULL, &MMF_BigSliders, MEL_JOYSTICKAXIS );
#ifdef USE_OPENGL #ifdef USE_OPENGL
@ -1432,17 +1349,10 @@ static Menu_t Menus[] = {
{ &M_KEYBOARDSETUP, MENU_KEYBOARDSETUP, MENU_CONTROLS, MA_Return, Menu }, { &M_KEYBOARDSETUP, MENU_KEYBOARDSETUP, MENU_CONTROLS, MA_Return, Menu },
{ &M_MOUSESETUP, MENU_MOUSESETUP, MENU_CONTROLS, MA_Return, Menu }, { &M_MOUSESETUP, MENU_MOUSESETUP, MENU_CONTROLS, MA_Return, Menu },
{ &M_JOYSTICKSETUP, MENU_JOYSTICKSETUP, 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_JOYSTICKAXES, MENU_JOYSTICKAXES, MENU_JOYSTICKSETUP, MA_Return, Menu },
{ &M_KEYBOARDKEYS, MENU_KEYBOARDKEYS, MENU_KEYBOARDSETUP, 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_MOUSEADVANCED, MENU_MOUSEADVANCED, MENU_MOUSESETUP, MA_Return, Menu },
{ &M_JOYSTICKAXIS, MENU_JOYSTICKAXIS, MENU_JOYSTICKAXES, 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 }, { &M_CONTROLS, MENU_CONTROLS, MENU_OPTIONS, MA_Return, Menu },
#ifdef USE_OPENGL #ifdef USE_OPENGL
{ &M_RENDERERSETUP_POLYMOST, MENU_POLYMOST, MENU_DISPLAYSETUP, MA_Return, Menu }, { &M_RENDERERSETUP_POLYMOST, MENU_POLYMOST, MENU_DISPLAYSETUP, MA_Return, Menu },
@ -1829,16 +1739,6 @@ void Menu_Init(void)
MEO_KEYBOARDSETUPFUNCS[i] = MEO_KEYBOARDSETUPFUNCS_TEMPLATE; MEO_KEYBOARDSETUPFUNCS[i] = MEO_KEYBOARDSETUPFUNCS_TEMPLATE;
} }
M_KEYBOARDKEYS.numEntries = NUMGAMEFUNCTIONS; 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) for (i = 0; i < 2*joystick.numButtons + 8*joystick.numHats; ++i)
{ {
if (i < 2*joystick.numButtons) 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]); 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) for (i = 0; i < joystick.numAxes; ++i)
{ {
ME_JOYSTICKAXES[i] = ME_JOYSTICKAXES_TEMPLATE; ME_JOYSTICKAXES[i] = ME_JOYSTICKAXES_TEMPLATE;
@ -1967,7 +1859,7 @@ static void Menu_Pre(MenuID_t cm)
case MENU_GAMESETUP: case MENU_GAMESETUP:
MEO_GAMESETUP_DEMOREC.options = (ps->gm&MODE_GAME) ? &MEOS_DemoRec : &MEOS_OffOn; 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; break;
case MENU_DISPLAYSETUP: case MENU_DISPLAYSETUP:
@ -1975,10 +1867,6 @@ static void Menu_Pre(MenuID_t cm)
#ifdef USE_OPENGL #ifdef USE_OPENGL
if (videoGetRenderMode() == REND_CLASSIC) if (videoGetRenderMode() == REND_CLASSIC)
MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP); MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP);
#ifdef POLYMER
else if (videoGetRenderMode() == REND_POLYMER)
MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP_GL_POLYMER);
#endif
else else
MenuMenu_ChangeEntryList(M_DISPLAYSETUP, MEL_DISPLAYSETUP_GL); 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)); 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; break;
case MENU_POLYMER: case MENU_POLYMER:
case MENU_POLYMOST: case MENU_POLYMOST:
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXQUALITY, !hw_hightile);
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile);
# ifdef USE_GLEXT
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile);
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_GLOWTEX, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_GLOWTEX, !hw_hightile);
# endif
#endif #endif
break; break;
@ -2123,7 +1987,7 @@ static void Menu_Pre(MenuID_t cm)
MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL; MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL;
MEO_NETOPTIONS_LEVEL.options = &MEOS_NETOPTIONS_LEVEL[MEOSV_NetEpisodes[MEO_NETOPTIONS_EPISODE.currentOption]]; 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.type = Dummy;
ME_NETOPTIONS_MARKERS.flags |= MEF_Disabled; 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.type = Option;
ME_NETOPTIONS_MARKERS.flags &= ~MEF_Disabled; 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; break;
case MENU_OPTIONS: case MENU_OPTIONS:
@ -2281,7 +2145,7 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin)
break; break;
case MENU_PLAYER: 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; break;
case MENU_MACROS: 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)<<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)<<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); 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); 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)<<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<<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)<<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) 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); 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); 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 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); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right);
} }
break; break;
@ -3055,7 +2919,7 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry)
if (entry != &ME_EPISODE_USERMAP) if (entry != &ME_EPISODE_USERMAP)
{ {
ud.m_volume_number = M_EPISODE.currentEntry; ud.m_volume_number = M_EPISODE.currentEntry;
ud.m_level_number = 0; m_level_number = 0;
if (g_skillCnt == 0) if (g_skillCnt == 0)
Menu_StartGameWithoutSkill(); Menu_StartGameWithoutSkill();
@ -3113,13 +2977,13 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry)
case MENU_JOYSTICKAXES: case MENU_JOYSTICKAXES:
M_JOYSTICKAXIS.title = joyGetName(0, M_JOYSTICKAXES.currentEntry); M_JOYSTICKAXIS.title = joyGetName(0, M_JOYSTICKAXES.currentEntry);
#if 0
MEO_JOYSTICKAXIS_ANALOG.data = &JoystickAnalogueAxes[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_ANALOG.data = &JoystickAnalogueAxes[M_JOYSTICKAXES.currentEntry];
MEO_JOYSTICKAXIS_SCALE.variable = &JoystickAnalogueScale[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_SCALE.variable = &JoystickAnalogueScale[M_JOYSTICKAXES.currentEntry];
MEO_JOYSTICKAXIS_INVERT.data = &JoystickAnalogueInvert[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_INVERT.data = &JoystickAnalogueInvert[M_JOYSTICKAXES.currentEntry];
MEO_JOYSTICKAXIS_DEAD.variable = &JoystickAnalogueDead[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_DEAD.variable = &JoystickAnalogueDead[M_JOYSTICKAXES.currentEntry];
MEO_JOYSTICKAXIS_SATU.variable = &JoystickAnalogueSaturate[M_JOYSTICKAXES.currentEntry]; MEO_JOYSTICKAXIS_SATU.variable = &JoystickAnalogueSaturate[M_JOYSTICKAXES.currentEntry];
MEO_JOYSTICKAXIS_DIGITALNEGATIVE.data = &JoystickDigitalFunctions[M_JOYSTICKAXES.currentEntry][0]; #endif
MEO_JOYSTICKAXIS_DIGITALPOSITIVE.data = &JoystickDigitalFunctions[M_JOYSTICKAXES.currentEntry][1];
break; break;
case MENU_CHEATS: case MENU_CHEATS:
@ -3349,26 +3213,7 @@ static void Menu_EntryOptionDidModify(MenuEntry_t *entry)
entry == &ME_PLAYER_COLOR || entry == &ME_PLAYER_COLOR ||
entry == &ME_PLAYER_TEAM) entry == &ME_PLAYER_TEAM)
G_UpdatePlayerFromMenu(); G_UpdatePlayerFromMenu();
else if (entry == &ME_DISPLAYSETUP_UPSCALING)
{
if (in3dmode())
{
videoSetGameMode(fullscreen, xres, yres, bpp, ud.detail);
}
}
#ifdef USE_OPENGL #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) if (domodechange)
{ {
videoResetMode(); videoResetMode();
@ -3397,16 +3242,12 @@ static int32_t Menu_EntryRangeInt32Modify(MenuEntry_t *entry, int32_t newValue)
FX_SetVolume(newValue); FX_SetVolume(newValue);
else if (entry == &ME_SOUND_VOLUME_MUSIC) else if (entry == &ME_SOUND_VOLUME_MUSIC)
S_MusicVolume(newValue); 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) else if (entry == &ME_JOYSTICKAXIS_SCALE)
CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick); CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick);
else if (entry == &ME_JOYSTICKAXIS_DEAD) 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) 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; return 0;
} }
@ -3634,9 +3475,9 @@ static void Menu_Verify(int32_t input)
case MENU_COLCORRRESETVERIFY: case MENU_COLCORRRESETVERIFY:
if (input) if (input)
{ {
g_videoGamma = DEFAULT_GAMMA; vid_gamma = 1.f;
g_videoContrast = DEFAULT_CONTRAST; vid_contrast = 1.f;
g_videoBrightness = DEFAULT_BRIGHTNESS; vid_brightness = 0.f;
r_ambientlight = 1.f; r_ambientlight = 1.f;
videoSetPalette(0,g_player[myconnectindex].ps->palette,0); videoSetPalette(0,g_player[myconnectindex].ps->palette,0);
} }
@ -3861,7 +3702,7 @@ static void Menu_FileSelect(int32_t input)
if (input) if (input)
{ {
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
if (g_skillCnt > 0) if (g_skillCnt > 0)
Menu_AnimateChange(MENU_SKILL, MA_Advance); Menu_AnimateChange(MENU_SKILL, MA_Advance);
@ -3943,8 +3784,8 @@ void Menu_AnimateChange(int32_t cm, MenuAnimationType_t animtype)
{ {
if (cm == MENU_OPTIONS) if (cm == MENU_OPTIONS)
{ {
GUICapture |= 2; //GUICapture |= 2;
return; //return;
} }
if (FURY) if (FURY)
@ -4841,7 +4682,7 @@ static int32_t M_RunMenu_Menu(Menu_t *cm, MenuMenu_t *menu, MenuEntry_t *current
case Option: case Option:
{ {
auto object = (MenuOption_t*)entry->entry; 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) if (currentOption >= 0)
object->currentOption = currentOption; 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); 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 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); 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); 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) switch (object->flags & DisplayTypeMask)
{ {
case DisplayTypeInteger: case DisplayTypeInteger:
Bsprintf(tempbuf, "%d", *object->variable); Bsprintf(tempbuf, "%d", **object->cVar);
break; break;
case DisplayTypePercent: case DisplayTypePercent:
Bsprintf(tempbuf, "%d%%", roundscale(*object->variable, 100, onehundredpercent)); Bsprintf(tempbuf, "%d%%", roundscale(*object->cVar, 100, onehundredpercent));
break; break;
case DisplayTypeNormalizedDecimal: case DisplayTypeNormalizedDecimal:
Bsprintf(tempbuf, "%.2f", (double) *object->variable / (double) onehundredpercent); Bsprintf(tempbuf, "%.2f", (double) *object->cVar / (double) onehundredpercent);
break; 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); 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 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); 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); 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) switch (object->flags & DisplayTypeMask)
{ {
case DisplayTypeInteger: case DisplayTypeInteger:
Bsprintf(tempbuf, "%.2f", *object->variable); Bsprintf(tempbuf, "%.2f", **object->cVar);
break; break;
case DisplayTypePercent: case DisplayTypePercent:
Bsprintf(tempbuf, "%ld%%", lrintf(*object->variable * 100.f / onehundredpercent)); Bsprintf(tempbuf, "%ld%%", lrintf(*object->cVar * 100.f / onehundredpercent));
break; break;
case DisplayTypeNormalizedDecimal: case DisplayTypeNormalizedDecimal:
Bsprintf(tempbuf, "%.2f", *object->variable / onehundredpercent); Bsprintf(tempbuf, "%.2f", *object->cVar / onehundredpercent);
break; break;
} }
@ -5937,9 +5778,12 @@ static int32_t Menu_RunInput_EntryOption_Modify(MenuEntry_t *entry, MenuOption_t
{ {
object->currentOption = newValueIndex; object->currentOption = newValueIndex;
if ((int32_t*)object->data != NULL) // NULL implies the functions will handle it if (object->cVar != NULL) // NULL implies the functions will handle it
*((int32_t*)object->data) = newValue; {
UCVarValue v;
v.Int = newValue;
object->cVar->ForceSet(v, CVAR_Int, false);
}
Menu_EntryOptionDidModify(entry); Menu_EntryOptionDidModify(entry);
return 0; 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) static void Menu_RunInput_EntryRangeInt32_MovementVerify(MenuEntry_t *entry, MenuRangeInt32_t *object, int32_t newValue)
{ {
if (!Menu_EntryRangeInt32Modify(entry, 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) 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) 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 range = object->max - object->min;
int32_t const maxInterval = object->steps - 1; int32_t const maxInterval = object->steps - 1;
int32_t const oldValueIndex = roundscale(oldValue - object->min, maxInterval, range); 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)) if (!Menu_EntryRangeFloatModify(entry, newValue))
{ {
*object->variable = newValue; *object->cVar = newValue;
Menu_EntryRangeFloatDidModify(entry); 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) 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 range = object->max - object->min;
float const maxInterval = (float)(object->steps - 1); float const maxInterval = (float)(object->steps - 1);
float const oldValueIndexUnrounded = (oldValue - object->min) * maxInterval / range; 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) void M_DisplayMenus(void)
{ {
vec2_t origin = { 0, 0 }, previousOrigin = { 0, 0 }; vec2_t origin = { 0, 0 }, previousOrigin = { 0, 0 };
@ -7070,8 +6903,13 @@ void M_DisplayMenus(void)
{ {
ImGui_Begin_Frame(); ImGui_Begin_Frame();
bool b = true; bool b = true;
videoFadeToBlack(1);
#if 0
ImGui::ShowDemoWindow(&b); ImGui::ShowDemoWindow(&b);
if (!b) if (!b)
#else
if (!ShowOptionMenu())
#endif
{ {
GUICapture &= ~2; GUICapture &= ~2;
GUICapture |= 4; GUICapture |= 4;

View file

@ -207,7 +207,7 @@ typedef struct MenuOption_t
MenuOptionSet_t *options; // so that common sets such as Yes/No, On/Off can be reused MenuOptionSet_t *options; // so that common sets such as Yes/No, On/Off can be reused
// effect // effect
int32_t *data; FBaseCVar *cVar;
// state // state
int32_t currentOption; int32_t currentOption;
@ -241,7 +241,7 @@ enum MenuRangeFlags_t
typedef struct MenuRangeInt32_t typedef struct MenuRangeInt32_t
{ {
// effect // effect
int32_t *variable; FIntCVar *cVar;
// appearance // appearance
MenuFont_t *font; MenuFont_t *font;
@ -257,7 +257,7 @@ typedef struct MenuRangeInt32_t
typedef struct MenuRangeFloat_t typedef struct MenuRangeFloat_t
{ {
// effect // effect
float *variable; FFloatCVar *cVar;
// appearance // appearance
MenuFont_t *font; MenuFont_t *font;

View file

@ -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) if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0)
ud.m_level_number = 0; m_level_number = 0;
} }
static void Net_ExtractNewGame(newgame_t *newgame, int32_t menuonly) 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_volume_number = newgame->volume_number;
ud.m_player_skill = newgame->player_skill; ud.m_player_skill = newgame->player_skill;
ud.m_monsters_off = newgame->monsters_off; ud.m_monsters_off = newgame->monsters_off;
ud.m_respawn_monsters = newgame->respawn_monsters; ud.m_respawn_monsters = newgame->respawn_monsters;
ud.m_respawn_items = newgame->respawn_items; ud.m_respawn_items = newgame->respawn_items;
ud.m_respawn_inventory = newgame->respawn_inventory; ud.m_respawn_inventory = newgame->respawn_inventory;
ud.m_ffire = newgame->ffire; m_ffire = newgame->ffire;
ud.m_noexits = newgame->noexits; m_noexits = newgame->noexits;
ud.m_coop = newgame->coop; m_coop = newgame->coop;
if (!menuonly) if (!menuonly)
{ {
@ -4536,16 +4536,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu)
{ {
if (frommenu) if (frommenu)
{ {
newgame->level_number = ud.m_level_number; newgame->level_number = m_level_number;
newgame->volume_number = ud.m_volume_number; newgame->volume_number = ud.m_volume_number;
newgame->player_skill = ud.m_player_skill; newgame->player_skill = ud.m_player_skill;
newgame->monsters_off = ud.m_monsters_off; newgame->monsters_off = ud.m_monsters_off;
newgame->respawn_monsters = ud.m_respawn_monsters; newgame->respawn_monsters = ud.m_respawn_monsters;
newgame->respawn_items = ud.m_respawn_items; newgame->respawn_items = ud.m_respawn_items;
newgame->respawn_inventory = ud.m_respawn_inventory; newgame->respawn_inventory = ud.m_respawn_inventory;
newgame->ffire = ud.m_ffire; newgame->ffire = m_ffire;
newgame->noexits = ud.m_noexits; newgame->noexits = m_noexits;
newgame->coop = ud.m_coop; newgame->coop = m_coop;
} }
else 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->aim_mode = in_aimmode;
tempnetbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; 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->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++) for (i = 0; i < 10; i++)
{ {
@ -5176,7 +5176,7 @@ void Net_StartNewGame()
Net_ExtractNewGame(&pendingnewgame, 0); Net_ExtractNewGame(&pendingnewgame, 0);
G_NewGame(ud.volume_number, ud.level_number, ud.player_skill); 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)) if (G_EnterLevel(MODE_GAME))
{ {

View file

@ -85,7 +85,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
else if (voting == -1) else if (voting == -1)
{ {
ud.m_volume_number = volume; ud.m_volume_number = volume;
ud.m_level_number = level; m_level_number = level;
if (g_player[myconnectindex].ps->i) if (g_player[myconnectindex].ps->i)
{ {
@ -104,12 +104,12 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[0] = PACKET_MAP_VOTE_INITIATE;
tempbuf[1] = myconnectindex; tempbuf[1] = myconnectindex;
tempbuf[2] = ud.m_volume_number; 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)); 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)) if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM))
ud.m_noexits = 0; m_noexits = 0;
M_OpenMenu(myconnectindex); M_OpenMenu(myconnectindex);
Menu_Change(MENU_NETWAITVOTES); Menu_Change(MENU_NETWAITVOTES);
@ -130,7 +130,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
osdcmd_cheatsinfo_stat.cheatnum = -1; osdcmd_cheatsinfo_stat.cheatnum = -1;
ud.m_volume_number = volume; ud.m_volume_number = volume;
ud.m_level_number = level; m_level_number = level;
ud.m_monsters_off = 0; ud.m_monsters_off = 0;
ud.monsters_off = 0; ud.monsters_off = 0;
@ -177,15 +177,15 @@ static int osdcmd_map(osdcmdptr_t parm)
{ {
Net_SendUserMapName(); Net_SendUserMapName();
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
Net_NewGame(ud.m_volume_number, ud.m_level_number); Net_NewGame(ud.m_volume_number, m_level_number);
} }
else if (voting == -1) else if (voting == -1)
{ {
Net_SendUserMapName(); Net_SendUserMapName();
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
if (g_player[myconnectindex].ps->i) if (g_player[myconnectindex].ps->i)
{ {
@ -203,12 +203,12 @@ static int osdcmd_map(osdcmdptr_t parm)
tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[0] = PACKET_MAP_VOTE_INITIATE;
tempbuf[1] = myconnectindex; tempbuf[1] = myconnectindex;
tempbuf[2] = ud.m_volume_number; 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)); 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)) if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM))
ud.m_noexits = 0; m_noexits = 0;
M_OpenMenu(myconnectindex); M_OpenMenu(myconnectindex);
Menu_Change(MENU_NETWAITVOTES); Menu_Change(MENU_NETWAITVOTES);
@ -219,7 +219,7 @@ static int osdcmd_map(osdcmdptr_t parm)
osdcmd_cheatsinfo_stat.cheatnum = -1; osdcmd_cheatsinfo_stat.cheatnum = -1;
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
ud.m_monsters_off = ud.monsters_off = 0; 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) 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; g_player[myconnectindex].ps->gm = MODE_RESTART;
} }
else G_NewGame_EnterLevel(); else G_NewGame_EnterLevel();

View file

@ -4374,13 +4374,13 @@ void P_EndLevel(void)
if (ud.from_bonus) if (ud.from_bonus)
{ {
ud.level_number = 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; ud.from_bonus = 0;
} }
else else
{ {
ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; 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) if ((unsigned)ud.secretlevel <= MAXLEVELS)
ud.level_number = ud.secretlevel - 1; ud.level_number = ud.secretlevel - 1;
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
} }
else else
P_EndLevel(); P_EndLevel();

View file

@ -1324,7 +1324,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
ready2send = 0; 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_netServer || ud.multimode > 1) && (ud.coop & GAMETYPE_SCORESHEET))
G_BonusScreen(1); G_BonusScreen(1);
@ -1368,7 +1368,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++) for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
G_FreeMapState(i); G_FreeMapState(i);
if (ud.m_coop != 1) if (m_coop != 1)
{ {
for (int weaponNum = 0; weaponNum < MAX_WEAPONS; weaponNum++) 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_items = ud.m_respawn_items;
ud.respawn_inventory = ud.m_respawn_inventory; ud.respawn_inventory = ud.m_respawn_inventory;
ud.monsters_off = ud.m_monsters_off; ud.monsters_off = ud.m_monsters_off;
ud.coop = ud.m_coop; ud.coop = m_coop;
ud.marker = ud.m_marker; ud.marker = m_marker;
ud.ffire = ud.m_ffire; ud.ffire = m_ffire;
ud.noexits = ud.m_noexits; ud.noexits = m_noexits;
if ((gameMode & MODE_DEMO) != MODE_DEMO) if ((gameMode & MODE_DEMO) != MODE_DEMO)
ud.recstat = ud.m_recstat; ud.recstat = m_recstat;
if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2) if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2)
ud.recstat = 0; ud.recstat = 0;
@ -1807,7 +1807,7 @@ int G_EnterLevel(int gameMode)
levelNum &= MAXLEVELS-1; levelNum &= MAXLEVELS-1;
volumeNum = (volumeNum - levelNum) / MAXLEVELS; 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; ud.volume_number = ud.m_volume_number = volumeNum;
boardfilename[0] = 0; boardfilename[0] = 0;

View file

@ -437,7 +437,7 @@ int32_t G_LoadPlayer(savebrief_t & sv)
S_ClearSoundLocks(); S_ClearSoundLocks();
ud.m_volume_number = volume; ud.m_volume_number = volume;
ud.m_level_number = level; m_level_number = level;
ud.m_player_skill = skill; ud.m_player_skill = skill;
boardfilename[0] = '\0'; boardfilename[0] = '\0';
@ -501,7 +501,7 @@ int32_t G_LoadPlayer(savebrief_t & sv)
for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++) for (int i=0; i < (MAXVOLUMES*MAXLEVELS); i++)
G_FreeMapState(i); G_FreeMapState(i);
if (ud.m_coop != 1) if (m_coop != 1)
p0.last_weapon = -1; p0.last_weapon = -1;
display_mirror = 0; display_mirror = 0;
@ -634,7 +634,7 @@ int32_t G_LoadPlayer(savebrief_t & sv)
// non-"m_" fields will be loaded from svgm_udnetw // non-"m_" fields will be loaded from svgm_udnetw
ud.m_volume_number = h.volnum; ud.m_volume_number = h.volnum;
ud.m_level_number = h.levnum; m_level_number = h.levnum;
ud.m_player_skill = h.skill; ud.m_player_skill = h.skill;
// NOTE: Bmemcpy needed for SAVEGAME_MUSIC. // NOTE: Bmemcpy needed for SAVEGAME_MUSIC.
@ -1945,17 +1945,17 @@ static void sv_postudload()
{ {
// Bmemcpy(&boardfilename[0], &currentboardfilename[0], BMAX_PATH); // DON'T do this in demos! // Bmemcpy(&boardfilename[0], &currentboardfilename[0], BMAX_PATH); // DON'T do this in demos!
#if 1 #if 1
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
ud.m_volume_number = ud.volume_number; ud.m_volume_number = ud.volume_number;
ud.m_player_skill = ud.player_skill; ud.m_player_skill = ud.player_skill;
ud.m_respawn_monsters = ud.respawn_monsters; ud.m_respawn_monsters = ud.respawn_monsters;
ud.m_respawn_items = ud.respawn_items; ud.m_respawn_items = ud.respawn_items;
ud.m_respawn_inventory = ud.respawn_inventory; ud.m_respawn_inventory = ud.respawn_inventory;
ud.m_monsters_off = ud.monsters_off; ud.m_monsters_off = ud.monsters_off;
ud.m_coop = ud.coop; m_coop = ud.coop;
ud.m_marker = ud.marker; m_marker = ud.marker;
ud.m_ffire = ud.ffire; m_ffire = ud.ffire;
ud.m_noexits = ud.noexits; m_noexits = ud.noexits;
#endif #endif
} }
//static int32_t lockclock_dummy; //static int32_t lockclock_dummy;

View file

@ -1133,7 +1133,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p)
{ {
int32_t cq = 0; 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; return;
if (q & MAXQUOTES) if (q & MAXQUOTES)

View file

@ -162,7 +162,7 @@ int CONTROL_FlagActive( int which );
void CONTROL_ClearAssignments( void ); void CONTROL_ClearAssignments( void );
// void CONTROL_GetFunctionInput( void ); // void CONTROL_GetFunctionInput( void );
void CONTROL_GetInput( ControlInfo *info ); void CONTROL_GetInput( ControlInfo *info );
extern float CONTROL_MouseSensitivity;
bool CONTROL_Startup(controltype which, int32_t ( *TimeFunction )( void ), int32_t ticspersecond); bool CONTROL_Startup(controltype which, int32_t ( *TimeFunction )( void ), int32_t ticspersecond);
void CONTROL_Shutdown( void ); void CONTROL_Shutdown( void );

View file

@ -14,6 +14,7 @@
#include "keyboard.h" #include "keyboard.h"
#include "mouse.h" #include "mouse.h"
#include "osd.h" #include "osd.h"
#include "gamecvars.h"
#include "pragmas.h" #include "pragmas.h"
bool CONTROL_Started = false; bool CONTROL_Started = false;
@ -24,15 +25,12 @@ bool CONTROL_JoystickEnabled = false;
LastSeenInput CONTROL_LastSeenInput; LastSeenInput CONTROL_LastSeenInput;
float CONTROL_MouseSensitivity = DEFAULTMOUSESENSITIVITY;
static int32_t CONTROL_NumMouseButtons = 0; static int32_t CONTROL_NumMouseButtons = 0;
static int32_t CONTROL_NumJoyButtons = 0; static int32_t CONTROL_NumJoyButtons = 0;
static int32_t CONTROL_NumJoyAxes = 0; static int32_t CONTROL_NumJoyAxes = 0;
// static controlkeymaptype CONTROL_KeyMapping[CONTROL_NUM_FLAGS]; // static controlkeymaptype CONTROL_KeyMapping[CONTROL_NUM_FLAGS];
static int32_t CONTROL_MouseAxesScale[2];
static controlaxismaptype CONTROL_JoyAxesMap[MAXJOYAXES]; static controlaxismaptype CONTROL_JoyAxesMap[MAXJOYAXES];
static controlaxistype CONTROL_JoyAxes[MAXJOYAXES]; static controlaxistype CONTROL_JoyAxes[MAXJOYAXES];
static controlaxistype CONTROL_LastJoyAxes[MAXJOYAXES]; static controlaxistype CONTROL_LastJoyAxes[MAXJOYAXES];
@ -89,8 +87,8 @@ static void CONTROL_GetMouseDelta(ControlInfo * info)
last = input; last = input;
} }
info->mousex = mulscale16(Blrintf(finput.x * 4.f * CONTROL_MouseSensitivity), CONTROL_MouseAxesScale[0]); info->mousex = mulscale16(Blrintf(finput.x * 4.f * in_mousesensitivity), in_mousescalex);
info->mousey = mulscale16(Blrintf(finput.y * 4.f * CONTROL_MouseSensitivity), CONTROL_MouseAxesScale[1]); info->mousey = mulscale16(Blrintf(finput.y * 4.f * in_mousesensitivity), in_mousescaley);
} }
static int32_t CONTROL_GetTime(void) static int32_t CONTROL_GetTime(void)
@ -167,17 +165,6 @@ void CONTROL_SetAnalogAxisScale(int32_t whichaxis, int32_t axisscale, controldev
switch (device) 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: case controldevice_joystick:
if ((unsigned) whichaxis >= (unsigned) MAXJOYAXES) if ((unsigned) whichaxis >= (unsigned) MAXJOYAXES)
{ {
@ -270,12 +257,6 @@ void CONTROL_ClearAssignments(void)
// memset(CONTROL_KeyMapping, KEYUNDEFINED, sizeof(CONTROL_KeyMapping)); // memset(CONTROL_KeyMapping, KEYUNDEFINED, sizeof(CONTROL_KeyMapping));
memset(CONTROL_LastJoyAxes, 0, sizeof(CONTROL_LastJoyAxes)); memset(CONTROL_LastJoyAxes, 0, sizeof(CONTROL_LastJoyAxes));
memset(CONTROL_MouseButtonMapping, BUTTONUNDEFINED, sizeof(CONTROL_MouseButtonMapping)); memset(CONTROL_MouseButtonMapping, BUTTONUNDEFINED, sizeof(CONTROL_MouseButtonMapping));
for (int & i : CONTROL_MouseAxesScale)
i = NORMALAXISSCALE;
for (int & i : CONTROL_JoyAxesScale)
i = NORMALAXISSCALE;
} }
static int DoGetDeviceButtons( static int DoGetDeviceButtons(

View file

@ -3986,7 +3986,7 @@ ACTOR_STATIC void G_MoveActors(void)
ud.level_number++; ud.level_number++;
if (ud.level_number > 6) if (ud.level_number > 6)
ud.level_number = 0; ud.level_number = 0;
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
} }
} }

View file

@ -361,13 +361,13 @@ void G_DoCheats(void)
levnume--; levnume--;
ud.m_volume_number = volnume; ud.m_volume_number = volnume;
ud.m_level_number = levnume; m_level_number = levnume;
} }
else else
{ {
// JBF 20030914 // JBF 20030914
ud.m_volume_number = osdcmd_cheatsinfo_stat.volume; 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) else if (cheatNum == CHEAT_SKILL)
@ -554,7 +554,7 @@ void G_DoCheats(void)
{ {
if (RR) if (RR)
g_lastLevel = 0; 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 && if ((!VOLUMEONE || volnume == 0) && (unsigned)volnume < (unsigned)g_volumeCnt &&
(unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL) (unsigned)levnume < MAXLEVELS && g_mapInfo[volnume*MAXLEVELS + levnume].filename != NULL)
@ -581,7 +581,7 @@ void G_DoCheats(void)
#if 0 #if 0
if (numplayers > 1 && g_netServer) 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 else
#endif #endif
pPlayer->gm |= MODE_RESTART; pPlayer->gm |= MODE_RESTART;

View file

@ -68,10 +68,6 @@ void CONFIG_SetDefaults(void)
ud.camera_time = 0;//4; 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_slidebarz = 65536;
ud.menu_slidebarmargin = RR ? 6 * 65536 : 65536; ud.menu_slidebarmargin = RR ? 6 * 65536 : 65536;
ud.menu_slidecursorz = RR ? 32768 : 65536; ud.menu_slidecursorz = RR ? 32768 : 65536;
@ -81,7 +77,7 @@ void CONFIG_SetDefaults(void)
ud.statusbarflags = STATUSBAR_NOSHRINK; ud.statusbarflags = STATUSBAR_NOSHRINK;
ud.statusbarmode = 1; ud.statusbarmode = 1;
ud.statusbarscale = 100; ud.statusbarscale = 100;
ud.team = 0; playerteam = 0;
ud.angleinterpolation = 0; ud.angleinterpolation = 0;
ScreenMode = 1; ScreenMode = 1;

View file

@ -145,7 +145,7 @@ void G_OpenDemoWrite(void)
{ {
Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!"); Bstrcpy(apStrings[QUOTE_RESERVED4], "CANNOT START DEMO RECORDING WHEN DEAD!");
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.recstat = ud.m_recstat = 0; ud.recstat = m_recstat = 0;
return; return;
} }
do do
@ -182,7 +182,7 @@ void G_OpenDemoWrite(void)
error_wopen_demo: error_wopen_demo:
Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS."); Bstrcpy(apStrings[QUOTE_RESERVED4], "FAILED STARTING DEMO RECORDING. SEE CONSOLE FOR DETAILS.");
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.recstat = ud.m_recstat = 0; ud.recstat = m_recstat = 0;
return; return;
} }
@ -194,7 +194,7 @@ error_wopen_demo:
P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps); P_DoQuote(QUOTE_RESERVED4, g_player[myconnectindex].ps);
ud.reccnt = 0; ud.reccnt = 0;
ud.recstat = ud.m_recstat = 1; // ud.recstat = m_recstat = 1; //
# if KRANDDEBUG # if KRANDDEBUG
krd_enable(1); 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 // 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)); 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; delete g_demo_filePtr;
g_demo_filePtr = nullptr; g_demo_filePtr = nullptr;

View file

@ -170,10 +170,10 @@ void G_HandleSpecialKeys(void)
if (/*g_networkMode != NET_DEDICATED_SERVER && */ALT_IS_PRESSED && inputState.GetKeyStatus(sc_Enter)) 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"); 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"); G_GameExit("Failed to recover from failure to set fullscreen video mode.\n");
} }
else ScreenMode = !ScreenMode; 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 == ' ') if (g_mostConcurrentPlayers > 1 && g_player[myconnectindex].ps->gm&MODE_GAME && GTFLAGS(GAMETYPE_SCORESHEET) && *msg == ' ')
{ {
G_BonusScreen(1); G_BonusScreen(1);
videoSetGameMode(ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,ud.detail); videoSetGameMode(ScreenMode,ScreenWidth,ScreenHeight,ScreenBPP,1);
} }
// shareware and TEN screens // shareware and TEN screens
@ -6014,7 +6014,7 @@ void GameInterface::set_hud_layout(int layout)
void GameInterface::set_hud_scale(int scale) void GameInterface::set_hud_scale(int scale)
{ {
G_UpdateScreenArea(); G_SetStatusBarScale(scale);
} }
void G_HandleLocalKeys(void) void G_HandleLocalKeys(void)
@ -6408,10 +6408,10 @@ FAKE_F3:
{ {
inputState.ClearKeyStatus(sc_F8); inputState.ClearKeyStatus(sc_F8);
int const fta = !ud.fta_on; int const fta = !hud_messages;
ud.fta_on = 1; hud_messages = 1;
P_DoQuote(fta ? QUOTE_MESSAGES_ON : QUOTE_MESSAGES_OFF, g_player[myconnectindex].ps); 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)) 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) static inline void G_CheckGametype(void)
{ {
ud.m_coop = clamp(ud.m_coop, 0, g_gametypeCnt-1); m_coop = clamp(*m_coop, 0, g_gametypeCnt-1);
initprintf("%s\n",g_gametypeNames[ud.m_coop]); initprintf("%s\n",g_gametypeNames[m_coop]);
if (g_gametypeFlags[ud.m_coop] & GAMETYPE_ITEMRESPAWN) if (g_gametypeFlags[m_coop] & GAMETYPE_ITEMRESPAWN)
ud.m_respawn_items = ud.m_respawn_inventory = 1; 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;*/ /*int32_t j = g_player[myconnectindex].ps->team;*/
P_SetupMiscInputSettings(); 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) 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; sprite[g_player[myconnectindex].ps->i].pal = g_player[myconnectindex].pcolor;
@ -7478,7 +7478,7 @@ static int G_EndOfLevel(void)
} }
else else
{ {
ud.m_level_number = 0; m_level_number = 0;
ud.level_number = 0; ud.level_number = 0;
} }
} }
@ -7650,7 +7650,7 @@ int GameInterface::app_main()
if (numplayers == 1 && boardfilename[0] != 0) if (numplayers == 1 && boardfilename[0] != 0)
{ {
ud.m_level_number = 7; m_level_number = 7;
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.warp_on = 1; ud.warp_on = 1;
} }
@ -7689,7 +7689,7 @@ int GameInterface::app_main()
//if (g_networkMode != NET_DEDICATED_SERVER) //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, initprintf("Failure setting video mode %dx%dx%d %s! Trying next mode...\n", *ScreenWidth, *ScreenHeight,
*ScreenBPP, *ScreenMode ? "fullscreen" : "windowed"); *ScreenBPP, *ScreenMode ? "fullscreen" : "windowed");
@ -7708,7 +7708,7 @@ int GameInterface::app_main()
int const savedIdx = resIdx; int const savedIdx = resIdx;
int bpp = ScreenBPP; 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", initprintf("Failure setting video mode %dx%dx%d windowed! Trying next mode...\n",
validmode[resIdx].xdim, validmode[resIdx].ydim, bpp); validmode[resIdx].xdim, validmode[resIdx].ydim, bpp);
@ -7784,7 +7784,7 @@ MAIN_LOOP_RESTART:
{ {
if ((g_netServer || ud.multimode > 1) && boardfilename[0] != 0) 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_volume_number = 0;
if (ud.m_player_skill == 4) if (ud.m_player_skill == 4)
@ -7820,13 +7820,13 @@ MAIN_LOOP_RESTART:
ud.showweapons = ud.config.ShowOpponentWeapons; ud.showweapons = ud.config.ShowOpponentWeapons;
P_SetupMiscInputSettings(); P_SetupMiscInputSettings();
g_player[myconnectindex].pteam = ud.team; g_player[myconnectindex].pteam = playerteam;
if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM) if (g_gametypeFlags[ud.coop] & GAMETYPE_TDM)
g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam); g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor = G_GetTeamPalette(g_player[myconnectindex].pteam);
else 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; else g_player[myconnectindex].ps->palookup = g_player[myconnectindex].pcolor;
} }

View file

@ -144,21 +144,21 @@ typedef struct {
int32_t reccnt; int32_t reccnt;
int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125 int32_t runkey_mode,statusbarscale,weaponswitch; // JBF 20031125
int32_t color,statusbarmode; int32_t statusbarmode;
int32_t m_noexits,noexits,automsg; int32_t noexits,automsg;
int32_t team, althud; int32_t althud;
int32_t statusbarflags, statusbarrange; int32_t statusbarflags, statusbarrange;
int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz; int32_t menu_slidebarz, menu_slidebarmargin, menu_slidecursorz;
int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz; int32_t menu_scrollbartilenum, menu_scrollbarz, menu_scrollcursorz;
int32_t entered_name,screen_tilting,fta_on; int32_t entered_name,screen_tilting;
int32_t m_coop,coop,screen_size,lockout,crosshair; int32_t coop,screen_size,lockout,crosshair;
int32_t playerai,angleinterpolation; int32_t playerai,angleinterpolation;
int32_t respawn_monsters,respawn_items,respawn_inventory,recstat,monsters_off,brightness; 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_respawn_items,m_respawn_monsters,m_respawn_inventory,m_recstat,m_monsters_off;
int32_t m_ffire,ffire,m_player_skill,m_level_number,m_volume_number,multimode; int32_t ffire,m_player_skill,m_level_number,m_volume_number,multimode;
int32_t player_skill,level_number,volume_number,m_marker,marker; int32_t player_skill,level_number,volume_number,marker;
int32_t music_episode, music_level; int32_t music_episode, music_level;
int32_t playerbest; int32_t playerbest;
@ -209,7 +209,7 @@ static inline int G_HaveUserMap(void)
static inline int Menu_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]; extern const char *defaultrtsfilename[GAMECOUNT];
@ -437,7 +437,7 @@ enum
static inline void G_NewGame_EnterLevel(void) 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)) if (G_EnterLevel(MODE_GAME))
G_BackToMenu(); G_BackToMenu();

View file

@ -1632,7 +1632,7 @@ GAMEEXEC_STATIC void VM_Execute(native_t loop)
g_player[playerNum].ps->gm = MODE_EOL; g_player[playerNum].ps->gm = MODE_EOL;
if (++ud.level_number > 6) if (++ud.level_number > 6)
ud.level_number = 0; ud.level_number = 0;
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
} }
continue; continue;

View file

@ -375,7 +375,7 @@ static MenuEntry_t ME_GAMESETUP_WEAPSWITCH_PICKUP = MAKE_MENUENTRY( "Equip picku
static char const *MEOSN_DemoRec[] = { "Off", "Running", }; static char const *MEOSN_DemoRec[] = { "Off", "Running", };
static MenuOptionSet_t MEOS_DemoRec = MAKE_MENUOPTIONSET( MEOSN_DemoRec, NULL, 0x3 ); 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 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.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 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 #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 ); static MenuEntry_t ME_DISPLAYSETUP_ASPECTRATIO = MAKE_MENUENTRY( "Widescreen:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_DISPLAYSETUP_ASPECTRATIO, Option );
#endif #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 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 ); 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_ASPECTRATIO,
&ME_DISPLAYSETUP_FOV, &ME_DISPLAYSETUP_FOV,
#endif #endif
&ME_DISPLAYSETUP_UPSCALING,
}; };
#ifdef USE_OPENGL #ifdef USE_OPENGL
@ -773,7 +765,7 @@ static MenuEntry_t *MEL_MOUSESETUPBTNS[MENUMOUSEFUNCTIONS];
static MenuLink_t MEO_MOUSESETUP_BTNS = { MENU_MOUSEBTNS, MA_Advance, }; 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 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 ); static MenuEntry_t ME_MOUSESETUP_SENSITIVITY = MAKE_MENUENTRY( "Sensitivity:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_SENSITIVITY, RangeFloat );
#ifndef EDUKE32_SIMPLE_MENU #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 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 ); static MenuEntry_t ME_MOUSESETUP_ADVANCED = MAKE_MENUENTRY( "Advanced setup", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSESETUP_ADVANCED, Link );
#endif #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 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 ME_MOUSEADVANCED_SCALEY = MAKE_MENUENTRY("Y-Scale:", &MF_Redfont, &MEF_BigOptionsRt, &MEO_MOUSEADVANCED_SCALEY, RangeInt32);
static MenuEntry_t *MEL_MOUSESETUP[] = { 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 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 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.Value );
static MenuEntry_t ME_RENDERERSETUP_PRECACHE = MAKE_MENUENTRY( "Pre-load map textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_PRECACHE, Option ); static MenuEntry_t ME_RENDERERSETUP_PRECACHE = MAKE_MENUENTRY( "Pre-load map textures:", &MF_Bluefont, &MEF_SmallOptions, &MEO_RENDERERSETUP_PRECACHE, Option );
# ifndef EDUKE32_GLES # ifndef EDUKE32_GLES
@ -964,7 +950,6 @@ static MenuEntry_t ME_RENDERERSETUP_MODELS = MAKE_MENUENTRY( "3D models:", &MF_B
#ifdef USE_OPENGL #ifdef USE_OPENGL
static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = { static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = {
&ME_RENDERERSETUP_HIGHTILE, &ME_RENDERERSETUP_HIGHTILE,
&ME_RENDERERSETUP_TEXQUALITY,
&ME_RENDERERSETUP_PRECACHE, &ME_RENDERERSETUP_PRECACHE,
# ifdef USE_GLEXT # ifdef USE_GLEXT
&ME_RENDERERSETUP_DETAILTEX, &ME_RENDERERSETUP_DETAILTEX,
@ -977,14 +962,14 @@ static MenuEntry_t *MEL_RENDERERSETUP_POLYMOST[] = {
#endif #endif
#ifdef EDUKE32_ANDROID_MENU #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 #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 #endif
static MenuEntry_t ME_COLCORR_GAMMA = MAKE_MENUENTRY( "Gamma:", &MF_Redfont, &MEF_ColorCorrect, &MEO_COLCORR_GAMMA, RangeFloat ); 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 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_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 ); static MenuEntry_t ME_COLCORR_RESET = MAKE_MENUENTRY( "Reset To Defaults", &MF_Redfont, &MEF_ColorCorrect, &MEO_NULL, Link );
#ifdef EDUKE32_ANDROID_MENU #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 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 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 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 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 char const *MEOSN_PLAYER_TEAM[] = { "Blue", "Red", "Green", "Gray", };
static MenuOptionSet_t MEOS_PLAYER_TEAM = MAKE_MENUOPTIONSET( MEOSN_PLAYER_TEAM, NULL, 0x2 ); 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 ); static MenuEntry_t ME_PLAYER_TEAM = MAKE_MENUENTRY( "Team", &MF_Bluefont, &MEF_PlayerNarrow, &MEO_PLAYER_TEAM, Option );
#ifndef EDUKE32_SIMPLE_MENU #ifndef EDUKE32_SIMPLE_MENU
static MenuLink_t MEO_PLAYER_MACROS = { MENU_MACROS, MA_Advance, }; 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 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 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 MenuOptionSet_t MEOS_NETOPTIONS_EPISODE = MAKE_MENUOPTIONSET( MEOSN_NetEpisodes, MEOSV_NetEpisodes, 0x0 );
static int32_t NetEpisode; 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 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_TEMPLATE = MAKE_MENUOPTIONSETNULL;
static MenuOptionSet_t MEOS_NETOPTIONS_LEVEL[MAXVOLUMES]; 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 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 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 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 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 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 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 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 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_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 ); 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: case MENU_GAMESETUP:
MEO_GAMESETUP_DEMOREC.options = (ps->gm&MODE_GAME) ? &MEOS_DemoRec : &MEOS_OffOn; 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; break;
#ifdef USE_OPENGL #ifdef USE_OPENGL
@ -1964,7 +1949,6 @@ static void Menu_Pre(MenuID_t cm)
case MENU_POLYMER: case MENU_POLYMER:
case MENU_POLYMOST: case MENU_POLYMOST:
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_TEXQUALITY, !hw_hightile);
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_PRECACHE, !hw_hightile);
# ifdef USE_GLEXT # ifdef USE_GLEXT
MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile); MenuEntry_DisableOnCondition(&ME_RENDERERSETUP_DETAILTEX, !hw_hightile);
@ -2021,7 +2005,7 @@ static void Menu_Pre(MenuID_t cm)
MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL; MEL_NETOPTIONS[2] = &ME_NETOPTIONS_LEVEL;
MEO_NETOPTIONS_LEVEL.options = &MEOS_NETOPTIONS_LEVEL[MEOSV_NetEpisodes[MEO_NETOPTIONS_EPISODE.currentOption]]; 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.type = Dummy;
ME_NETOPTIONS_MARKERS.flags |= MEF_Disabled; 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.type = Option;
ME_NETOPTIONS_MARKERS.flags &= ~MEF_Disabled; 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; break;
case MENU_OPTIONS: case MENU_OPTIONS:
@ -2200,9 +2184,9 @@ static void Menu_PreDraw(MenuID_t cm, MenuEntry_t *entry, const vec2_t origin)
case MENU_PLAYER: case MENU_PLAYER:
if (RR) 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 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; break;
case MENU_MACROS: 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)<<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)<<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); 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); 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)<<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<<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)<<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) 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); 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); 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 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); else mminitext(origin.x + ((90+60)<<16), origin.y + ((90+8+8+8+8)<<16), "Off", MF_Minifont.pal_deselected_right);
} }
break; break;
@ -3418,7 +3402,7 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry)
if (entry != &ME_EPISODE_USERMAP) if (entry != &ME_EPISODE_USERMAP)
{ {
ud.m_volume_number = M_EPISODE.currentEntry; ud.m_volume_number = M_EPISODE.currentEntry;
ud.m_level_number = 0; m_level_number = 0;
if (g_skillCnt == 0) if (g_skillCnt == 0)
Menu_StartGameWithoutSkill(); Menu_StartGameWithoutSkill();
@ -3573,9 +3557,9 @@ static void Menu_EntryLinkActivate(MenuEntry_t *entry)
} }
else if (entry == &ME_COLCORR_RESET) else if (entry == &ME_COLCORR_RESET)
{ {
g_videoGamma = DEFAULT_GAMMA; vid_gamma = 1.f;
g_videoContrast = DEFAULT_CONTRAST; vid_contrast = 1.f;
g_videoBrightness = DEFAULT_BRIGHTNESS; vid_brightness = 0.f;
r_ambientlight = 1.f; r_ambientlight = 1.f;
videoSetPalette(0,g_player[myconnectindex].ps->palette,0); videoSetPalette(0,g_player[myconnectindex].ps->palette,0);
} }
@ -3722,21 +3706,9 @@ static void Menu_EntryOptionDidModify(MenuEntry_t *entry)
entry == &ME_PLAYER_COLOR || entry == &ME_PLAYER_COLOR ||
entry == &ME_PLAYER_TEAM) entry == &ME_PLAYER_TEAM)
G_UpdatePlayerFromMenu(); G_UpdatePlayerFromMenu();
else if (entry == &ME_DISPLAYSETUP_UPSCALING)
{
if (in3dmode())
{
videoSetGameMode(fullscreen, xres, yres, bpp, ud.detail);
}
}
#ifdef USE_OPENGL #ifdef USE_OPENGL
else if (entry == &ME_DISPLAYSETUP_ANISOTROPY || entry == &ME_DISPLAYSETUP_TEXFILTER) else if (entry == &ME_DISPLAYSETUP_ANISOTROPY || entry == &ME_DISPLAYSETUP_TEXFILTER)
gltexapplyprops(); gltexapplyprops();
else if (entry == &ME_RENDERERSETUP_TEXQUALITY)
{
r_downsizevar = r_downsize;
domodechange = 1;
}
if (domodechange) if (domodechange)
{ {
@ -3766,10 +3738,6 @@ static int32_t Menu_EntryRangeInt32Modify(MenuEntry_t *entry, int32_t newValue)
FX_SetVolume(newValue); FX_SetVolume(newValue);
else if (entry == &ME_SOUND_VOLUME_MUSIC) else if (entry == &ME_SOUND_VOLUME_MUSIC)
S_MusicVolume(newValue); 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) else if (entry == &ME_JOYSTICKAXIS_SCALE)
CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick); CONTROL_SetAnalogAxisScale(M_JOYSTICKAXES.currentEntry, newValue, controldevice_joystick);
else if (entry == &ME_JOYSTICKAXIS_DEAD) else if (entry == &ME_JOYSTICKAXIS_DEAD)
@ -4186,7 +4154,7 @@ static void Menu_FileSelect(int32_t input)
if (input) if (input)
{ {
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
if (g_skillCnt > 0) if (g_skillCnt > 0)
Menu_AnimateChange(MENU_SKILL, MA_Advance); Menu_AnimateChange(MENU_SKILL, MA_Advance);

View file

@ -2403,7 +2403,7 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng)
if (vote_map != -1 || vote_episode != -1 || voting != -1) if (vote_map != -1 || vote_episode != -1 || voting != -1)
G_AddUserQuote("VOTE SUCCEEDED"); 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_volume_number = ud.volume_number = packbuf[2];
ud.m_player_skill = ud.player_skill = packbuf[3]; 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_monsters = packbuf[5];
ud.m_respawn_items = packbuf[6]; ud.m_respawn_items = packbuf[6];
ud.m_respawn_inventory = packbuf[7]; ud.m_respawn_inventory = packbuf[7];
ud.m_coop = packbuf[8]; m_coop = packbuf[8];
ud.m_marker = packbuf[9]; m_marker = packbuf[9];
ud.m_ffire = packbuf[10]; m_ffire = packbuf[10];
ud.m_noexits = packbuf[11]; m_noexits = packbuf[11];
//ud.m_weaponstay = packbuf[12]; //ud.m_weaponstay = packbuf[12];
for (int TRAVERSE_CONNECT(i)) 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]) for (i = connectpoint2[connecthead]; i >= 0; i = connectpoint2[i])
if (i != other) Net_SendPacket(i, packbuf, packbufleng); 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_volume_number = ud.volume_number = packbuf[2];
ud.m_player_skill = ud.player_skill = packbuf[3]; 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_monsters = packbuf[5];
ud.m_respawn_items = packbuf[6]; ud.m_respawn_items = packbuf[6];
ud.m_respawn_inventory = packbuf[7]; ud.m_respawn_inventory = packbuf[7];
ud.m_coop = packbuf[8]; m_coop = packbuf[8];
ud.m_marker = packbuf[9]; m_marker = packbuf[9];
ud.m_ffire = packbuf[10]; m_ffire = packbuf[10];
ud.m_noexits = packbuf[11]; m_noexits = packbuf[11];
//ud.m_weaponstay = packbuf[12]; //ud.m_weaponstay = packbuf[12];
break; break;
@ -2518,7 +2518,7 @@ void Net_ParsePacket(uint8_t *packbuf, int packbufleng)
g_player[i].ps->gm = MODE_EOL; g_player[i].ps->gm = MODE_EOL;
ud.level_number = packbuf[1]; ud.level_number = packbuf[1];
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
ud.from_bonus = packbuf[2]; ud.from_bonus = packbuf[2];
break; 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) if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0)
ud.m_level_number = 0; m_level_number = 0;
break; 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->aim_mode = in_aimmode;
tempbuf[l++] = g_player[myconnectindex].ps->auto_aim = cl_autoaim; 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->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++) 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) if (m_level_number == 7 && ud.m_volume_number == 0 && boardfilename[0] == 0)
ud.m_level_number = 0; m_level_number = 0;
} }
void Net_SendMessage(void) void Net_SendMessage(void)
@ -3707,7 +3707,7 @@ void Net_StartNewGame()
Net_ExtractNewGame(&pendingnewgame, 0); Net_ExtractNewGame(&pendingnewgame, 0);
G_NewGame(ud.volume_number,ud.level_number,ud.player_skill); G_NewGame(ud.volume_number,ud.level_number,ud.player_skill);
ud.coop = ud.m_coop; ud.coop = m_coop;
//g_netMapRevision = 0; //g_netMapRevision = 0;
@ -3762,16 +3762,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu)
{ {
if (frommenu) if (frommenu)
{ {
newgame->level_number = ud.m_level_number; newgame->level_number = m_level_number;
newgame->volume_number = ud.m_volume_number; newgame->volume_number = ud.m_volume_number;
newgame->player_skill = ud.m_player_skill; newgame->player_skill = ud.m_player_skill;
newgame->monsters_off = ud.m_monsters_off; newgame->monsters_off = ud.m_monsters_off;
newgame->respawn_monsters = ud.m_respawn_monsters; newgame->respawn_monsters = ud.m_respawn_monsters;
newgame->respawn_items = ud.m_respawn_items; newgame->respawn_items = ud.m_respawn_items;
newgame->respawn_inventory = ud.m_respawn_inventory; newgame->respawn_inventory = ud.m_respawn_inventory;
newgame->ffire = ud.m_ffire; newgame->ffire = m_ffire;
newgame->noexits = ud.m_noexits; newgame->noexits = m_noexits;
newgame->coop = ud.m_coop; newgame->coop = m_coop;
} }
else else
{ {
@ -3790,16 +3790,16 @@ void Net_FillNewGame(newgame_t *newgame, int32_t frommenu)
void Net_ExtractNewGame(newgame_t *newgame, int32_t menuonly) 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_volume_number = newgame->volume_number;
ud.m_player_skill = newgame->player_skill; ud.m_player_skill = newgame->player_skill;
ud.m_monsters_off = newgame->monsters_off; ud.m_monsters_off = newgame->monsters_off;
ud.m_respawn_monsters = newgame->respawn_monsters; ud.m_respawn_monsters = newgame->respawn_monsters;
ud.m_respawn_items = newgame->respawn_items; ud.m_respawn_items = newgame->respawn_items;
ud.m_respawn_inventory = newgame->respawn_inventory; ud.m_respawn_inventory = newgame->respawn_inventory;
ud.m_ffire = newgame->ffire; m_ffire = newgame->ffire;
ud.m_noexits = newgame->noexits; m_noexits = newgame->noexits;
ud.m_coop = newgame->coop; m_coop = newgame->coop;
if (!menuonly) if (!menuonly)
{ {

View file

@ -82,7 +82,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
else if (voting == -1) else if (voting == -1)
{ {
ud.m_volume_number = volume; ud.m_volume_number = volume;
ud.m_level_number = level; m_level_number = level;
if (g_player[myconnectindex].ps->i) if (g_player[myconnectindex].ps->i)
{ {
@ -101,12 +101,12 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[0] = PACKET_MAP_VOTE_INITIATE;
tempbuf[1] = myconnectindex; tempbuf[1] = myconnectindex;
tempbuf[2] = ud.m_volume_number; 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)); 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)) if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM))
ud.m_noexits = 0; m_noexits = 0;
M_OpenMenu(myconnectindex); M_OpenMenu(myconnectindex);
Menu_Change(MENU_NETWAITVOTES); Menu_Change(MENU_NETWAITVOTES);
@ -127,7 +127,7 @@ static int osdcmd_changelevel(osdcmdptr_t parm)
osdcmd_cheatsinfo_stat.cheatnum = -1; osdcmd_cheatsinfo_stat.cheatnum = -1;
ud.m_volume_number = volume; ud.m_volume_number = volume;
ud.m_level_number = level; m_level_number = level;
ud.m_monsters_off = 0; ud.m_monsters_off = 0;
ud.monsters_off = 0; ud.monsters_off = 0;
@ -174,15 +174,15 @@ static int osdcmd_map(osdcmdptr_t parm)
{ {
Net_SendUserMapName(); Net_SendUserMapName();
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
Net_NewGame(ud.m_volume_number, ud.m_level_number); Net_NewGame(ud.m_volume_number, m_level_number);
} }
else if (voting == -1) else if (voting == -1)
{ {
Net_SendUserMapName(); Net_SendUserMapName();
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
if (g_player[myconnectindex].ps->i) if (g_player[myconnectindex].ps->i)
{ {
@ -200,12 +200,12 @@ static int osdcmd_map(osdcmdptr_t parm)
tempbuf[0] = PACKET_MAP_VOTE_INITIATE; tempbuf[0] = PACKET_MAP_VOTE_INITIATE;
tempbuf[1] = myconnectindex; tempbuf[1] = myconnectindex;
tempbuf[2] = ud.m_volume_number; 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)); 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)) if ((g_gametypeFlags[m_coop] & GAMETYPE_PLAYERSFRIENDLY) && !(g_gametypeFlags[m_coop] & GAMETYPE_TDM))
ud.m_noexits = 0; m_noexits = 0;
M_OpenMenu(myconnectindex); M_OpenMenu(myconnectindex);
Menu_Change(MENU_NETWAITVOTES); Menu_Change(MENU_NETWAITVOTES);
@ -216,7 +216,7 @@ static int osdcmd_map(osdcmdptr_t parm)
osdcmd_cheatsinfo_stat.cheatnum = -1; osdcmd_cheatsinfo_stat.cheatnum = -1;
ud.m_volume_number = 0; ud.m_volume_number = 0;
ud.m_level_number = 7; m_level_number = 7;
ud.m_monsters_off = ud.monsters_off = 0; 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) 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; g_player[myconnectindex].ps->gm = MODE_RESTART;
} }
else G_NewGame_EnterLevel(); else G_NewGame_EnterLevel();

View file

@ -5874,13 +5874,13 @@ void P_EndLevel(void)
if (ud.from_bonus) if (ud.from_bonus)
{ {
ud.level_number = 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; ud.from_bonus = 0;
} }
else else
{ {
ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; 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) if ((unsigned)ud.secretlevel <= MAXLEVELS)
ud.level_number = ud.secretlevel - 1; ud.level_number = ud.secretlevel - 1;
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
} }
else else
P_EndLevel(); P_EndLevel();
@ -6935,13 +6935,13 @@ check_enemy_sprite:
if (!RR && ud.from_bonus) if (!RR && ud.from_bonus)
{ {
ud.level_number = 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; ud.from_bonus = 0;
} }
else else
{ {
ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; 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; return;
} }

View file

@ -1880,7 +1880,7 @@ void G_NewGame(int volumeNum, int levelNum, int skillNum)
ready2send = 0; 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)) (g_netServer || ud.multimode > 1) && (ud.coop&GAMETYPE_SCORESHEET))
{ {
if (!RRRA || g_mostConcurrentPlayers > 1 || g_netServer || numplayers > 1) if (!RRRA || g_mostConcurrentPlayers > 1 || g_netServer || numplayers > 1)
@ -1952,7 +1952,7 @@ end_vol4a:
for (bssize_t i=0; i<(MAXVOLUMES*MAXLEVELS); i++) for (bssize_t i=0; i<(MAXVOLUMES*MAXLEVELS); i++)
G_FreeMapState(i); G_FreeMapState(i);
if (ud.m_coop != 1) if (m_coop != 1)
{ {
for (bssize_t weaponNum = 0; weaponNum < MAX_WEAPONS; weaponNum++) 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_items = ud.m_respawn_items;
ud.respawn_inventory = ud.m_respawn_inventory; ud.respawn_inventory = ud.m_respawn_inventory;
ud.monsters_off = ud.m_monsters_off; ud.monsters_off = ud.m_monsters_off;
ud.coop = ud.m_coop; ud.coop = m_coop;
ud.marker = ud.m_marker; ud.marker = m_marker;
ud.ffire = ud.m_ffire; ud.ffire = m_ffire;
ud.noexits = ud.m_noexits; ud.noexits = m_noexits;
if ((gameMode & MODE_DEMO) != MODE_DEMO) if ((gameMode & MODE_DEMO) != MODE_DEMO)
ud.recstat = ud.m_recstat; ud.recstat = m_recstat;
if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2) if ((gameMode & MODE_DEMO) == 0 && ud.recstat == 2)
ud.recstat = 0; ud.recstat = 0;
@ -2336,7 +2336,7 @@ int G_EnterLevel(int gameMode)
levelNum &= MAXLEVELS-1; levelNum &= MAXLEVELS-1;
volumeNum = (volumeNum - levelNum) / MAXLEVELS; 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; ud.volume_number = ud.m_volume_number = volumeNum;
boardfilename[0] = 0; boardfilename[0] = 0;
@ -2388,7 +2388,7 @@ int G_EnterLevel(int gameMode)
} }
G_LoadMapHack(levelName, "endgame.map"); 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()) else if (!VOLUMEONE && Menu_HaveUserMap())
{ {
@ -2399,7 +2399,7 @@ int G_EnterLevel(int gameMode)
} }
G_LoadMapHack(levelName, boardfilename); 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) else if (engineLoadBoard(g_mapInfo[mii].filename, VOLUMEONE, &pPlayer->pos, &lbang, &pPlayer->cursectnum) < 0)
{ {

View file

@ -382,7 +382,7 @@ int32_t G_LoadPlayer(savebrief_t & sv)
// non-"m_" fields will be loaded from svgm_udnetw // non-"m_" fields will be loaded from svgm_udnetw
ud.m_volume_number = h.volnum; ud.m_volume_number = h.volnum;
ud.m_level_number = h.levnum; m_level_number = h.levnum;
ud.m_player_skill = h.skill; ud.m_player_skill = h.skill;
// NOTE: Bmemcpy needed for SAVEGAME_MUSIC. // NOTE: Bmemcpy needed for SAVEGAME_MUSIC.
@ -1620,17 +1620,17 @@ static void sv_postudload()
{ {
// Bmemcpy(&boardfilename[0], &currentboardfilename[0], BMAX_PATH); // DON'T do this in demos! // Bmemcpy(&boardfilename[0], &currentboardfilename[0], BMAX_PATH); // DON'T do this in demos!
#if 1 #if 1
ud.m_level_number = ud.level_number; m_level_number = ud.level_number;
ud.m_volume_number = ud.volume_number; ud.m_volume_number = ud.volume_number;
ud.m_player_skill = ud.player_skill; ud.m_player_skill = ud.player_skill;
ud.m_respawn_monsters = ud.respawn_monsters; ud.m_respawn_monsters = ud.respawn_monsters;
ud.m_respawn_items = ud.respawn_items; ud.m_respawn_items = ud.respawn_items;
ud.m_respawn_inventory = ud.respawn_inventory; ud.m_respawn_inventory = ud.respawn_inventory;
ud.m_monsters_off = ud.monsters_off; ud.m_monsters_off = ud.monsters_off;
ud.m_coop = ud.coop; m_coop = ud.coop;
ud.m_marker = ud.marker; m_marker = ud.marker;
ud.m_ffire = ud.ffire; m_ffire = ud.ffire;
ud.m_noexits = ud.noexits; m_noexits = ud.noexits;
#endif #endif
} }
//static int32_t lockclock_dummy; //static int32_t lockclock_dummy;

View file

@ -3083,7 +3083,7 @@ void G_BonusScreenRRRA(int32_t bonusonly)
{ {
g_RAendEpisode = 0; g_RAendEpisode = 0;
ud.m_volume_number = ud.volume_number = 1; 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; ud.eog = 0;
} }
if (g_turdLevel) if (g_turdLevel)

View file

@ -1135,7 +1135,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p)
{ {
int32_t cq = 0; 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; return;
if (q & MAXQUOTES) if (q & MAXQUOTES)

View file

@ -4297,7 +4297,7 @@ void P_CheckSectors(int playerNum)
if (ud.from_bonus) if (ud.from_bonus)
{ {
ud.level_number = 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; ud.from_bonus = 0;
} }
else else
@ -4305,7 +4305,7 @@ void P_CheckSectors(int playerNum)
if (RRRA && ud.level_number == 6 && ud.volume_number == 0) if (RRRA && ud.level_number == 6 && ud.volume_number == 0)
g_RAendEpisode = 1; g_RAendEpisode = 1;
ud.level_number = (++ud.level_number < MAXLEVELS) ? ud.level_number : 0; 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; g_RAendLevel = 1;
} }

View file

@ -3765,8 +3765,8 @@ MNU_DoSlider(short dir, MenuItem_p item, SWBOOL draw)
if (slidersettings[item->slider] != offset) if (slidersettings[item->slider] != offset)
{ {
slidersettings[item->slider] = offset; slidersettings[item->slider] = offset;
//MouseAnalogScale[item->slider - sldr_mousescalex] = offset<<13; if (item->slider == sldr_mousescalex) in_mousescalex = offset<<13;
CONTROL_SetAnalogAxisScale(item->slider - sldr_mousescalex, offset<<13, controldevice_mouse); else in_mousescaley = offset<13;
} }
sprintf(tmp_text, "%.2f", (float)(slidersettings[item->slider]<<13) / 65535.f); sprintf(tmp_text, "%.2f", (float)(slidersettings[item->slider]<<13) / 65535.f);

View file

@ -262,8 +262,8 @@ void ImGui::ShowDemoWindow(bool* p_open)
if (no_close) p_open = NULL; // Don't pass our bool* to Begin 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. // 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::SetNextWindowPos(ImVec2(650, 20), ImGuiCond_Always);
ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_FirstUseEver); ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_Always);
// Main body of the Demo window starts here. // Main body of the Demo window starts here.
if (!ImGui::Begin("Dear ImGui Demo", p_open, window_flags)) if (!ImGui::Begin("Dear ImGui Demo", p_open, window_flags))