Skip to content

Commit cf978f3

Browse files
committed
Better updating of episode, expansion and skilllevel CVARs in menu
1 parent 9f0824b commit cf978f3

File tree

3 files changed

+92
-7
lines changed

3 files changed

+92
-7
lines changed

src/c_cmds.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -5844,7 +5844,7 @@ static void play_func2(char *cmd, char *parms)
58445844
static skill_t favoriteskilllevel(void)
58455845
{
58465846
uint64_t skilllevelstat = 0;
5847-
skill_t favorite = skilllevel - 1;
5847+
skill_t favorite = gameskill;
58485848

58495849
if (skilllevelstat < stat_skilllevel_imtooyoungtodie)
58505850
{
@@ -6079,7 +6079,7 @@ static void C_PlayerStats_Game(void)
60796079

60806080
if (favoriteskilllevel1 == sk_none)
60816081
{
6082-
temp1 = titlecase(*skilllevels[skilllevel - 1]);
6082+
temp1 = titlecase(*skilllevels[gameskill]);
60836083

60846084
if (temp1[strlen(temp1) - 1] == '.')
60856085
temp1[strlen(temp1) - 1] = '\0';
@@ -6089,7 +6089,7 @@ static void C_PlayerStats_Game(void)
60896089
}
60906090
else
60916091
{
6092-
temp1 = titlecase(*skilllevels[skilllevel - 1]);
6092+
temp1 = titlecase(*skilllevels[gameskill]);
60936093
temp2 = titlecase(*skilllevels[favoriteskilllevel1]);
60946094

60956095
if (temp1[strlen(temp1) - 1] == '.')

src/c_console.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ void C_IntegerCVAROutputNoRepeat(const char *cvar, const int value)
219219

220220
M_snprintf(buffer, sizeof(buffer), "%s %s", cvar, temp);
221221

222-
if (numconsolestrings && M_StringCompare(console[numconsolestrings - 1].string, buffer))
222+
if (numconsolestrings && M_StringStartsWith(console[numconsolestrings - 1].string, cvar))
223223
return;
224224

225225
C_Input(buffer);

src/m_menu.c

+88-3
Original file line numberDiff line numberDiff line change
@@ -2996,6 +2996,26 @@ bool M_Responder(event_t *ev)
29962996

29972997
itemon = i;
29982998
usinggamecontroller = false;
2999+
3000+
if (currentmenu == &EpiDef)
3001+
{
3002+
episode = itemon + 1;
3003+
M_SaveCVARs();
3004+
C_IntegerCVAROutputNoRepeat(stringize(episode), episode);
3005+
}
3006+
else if (currentmenu == &ExpDef)
3007+
{
3008+
expansion = itemon + 1;
3009+
M_SaveCVARs();
3010+
C_IntegerCVAROutputNoRepeat(stringize(expansion), expansion);
3011+
}
3012+
else if (currentmenu == &NewDef)
3013+
{
3014+
skilllevel = itemon + 1;
3015+
M_SaveCVARs();
3016+
C_IntegerCVAROutputNoRepeat(stringize(skilllevel), skilllevel);
3017+
}
3018+
29993019
break;
30003020
}
30013021
}
@@ -3657,8 +3677,25 @@ bool M_Responder(event_t *ev)
36573677
{
36583678
if (itemon == ep5 && !sigil && sigil2)
36593679
itemon++;
3680+
3681+
episode = itemon + 1;
3682+
M_SaveCVARs();
3683+
C_IntegerCVAROutputNoRepeat(stringize(episode), episode);
3684+
}
3685+
else if (currentmenu == &ExpDef)
3686+
{
3687+
expansion = itemon + 1;
3688+
M_SaveCVARs();
3689+
C_IntegerCVAROutputNoRepeat(stringize(expansion), expansion);
36603690
}
3661-
else if (currentmenu == &OptionsDef && itemon == endgame && gamestate != GS_LEVEL)
3691+
else if (currentmenu == &NewDef)
3692+
{
3693+
skilllevel = itemon + 1;
3694+
M_SaveCVARs();
3695+
C_IntegerCVAROutputNoRepeat(stringize(skilllevel), skilllevel);
3696+
}
3697+
else if (currentmenu == &OptionsDef && itemon == endgame
3698+
&& gamestate != GS_LEVEL && gamestate != GS_INTERMISSION)
36623699
itemon++;
36633700

36643701
if (currentmenu->menuitems[itemon].status != -1)
@@ -3716,6 +3753,22 @@ bool M_Responder(event_t *ev)
37163753
{
37173754
if (itemon == ep5 && !sigil && sigil2)
37183755
itemon--;
3756+
3757+
episode = itemon + 1;
3758+
M_SaveCVARs();
3759+
C_IntegerCVAROutputNoRepeat(stringize(episode), episode);
3760+
}
3761+
else if (currentmenu == &ExpDef)
3762+
{
3763+
expansion = itemon + 1;
3764+
M_SaveCVARs();
3765+
C_IntegerCVAROutputNoRepeat(stringize(expansion), expansion);
3766+
}
3767+
else if (currentmenu == &NewDef)
3768+
{
3769+
skilllevel = itemon + 1;
3770+
M_SaveCVARs();
3771+
C_IntegerCVAROutputNoRepeat(stringize(skilllevel), skilllevel);
37193772
}
37203773
else if (currentmenu == &OptionsDef && itemon == endgame
37213774
&& gamestate != GS_LEVEL && gamestate != GS_INTERMISSION)
@@ -3928,10 +3981,26 @@ bool M_Responder(event_t *ev)
39283981
itemon = i;
39293982
currentmenu->change = true;
39303983

3931-
if (currentmenu == &ExpDef)
3984+
if (currentmenu == &EpiDef)
3985+
{
3986+
episode = itemon + 1;
3987+
M_SaveCVARs();
3988+
C_IntegerCVAROutputNoRepeat(stringize(episode), episode);
3989+
}
3990+
else if (currentmenu == &ExpDef)
39323991
{
39333992
if (gamestate != GS_LEVEL)
39343993
gamemission = (expansion == 2 && nerve ? pack_nerve : doom2);
3994+
3995+
expansion = itemon + 1;
3996+
M_SaveCVARs();
3997+
C_IntegerCVAROutputNoRepeat(stringize(expansion), expansion);
3998+
}
3999+
else if (currentmenu == &NewDef)
4000+
{
4001+
skilllevel = itemon + 1;
4002+
M_SaveCVARs();
4003+
C_IntegerCVAROutputNoRepeat(stringize(skilllevel), skilllevel);
39354004
}
39364005
else if (currentmenu == &SaveDef)
39374006
LoadDef.laston = itemon;
@@ -3969,10 +4038,26 @@ bool M_Responder(event_t *ev)
39694038
itemon = i;
39704039
currentmenu->change = true;
39714040

3972-
if (currentmenu == &ExpDef)
4041+
if (currentmenu == &EpiDef)
4042+
{
4043+
episode = itemon + 1;
4044+
M_SaveCVARs();
4045+
C_IntegerCVAROutputNoRepeat(stringize(episode), episode);
4046+
}
4047+
else if (currentmenu == &ExpDef)
39734048
{
39744049
if (gamestate != GS_LEVEL)
39754050
gamemission = (expansion == 2 && nerve ? pack_nerve : doom2);
4051+
4052+
expansion = itemon + 1;
4053+
M_SaveCVARs();
4054+
C_IntegerCVAROutputNoRepeat(stringize(expansion), expansion);
4055+
}
4056+
else if (currentmenu == &NewDef)
4057+
{
4058+
skilllevel = itemon + 1;
4059+
M_SaveCVARs();
4060+
C_IntegerCVAROutputNoRepeat(stringize(skilllevel), skilllevel);
39764061
}
39774062
else if (currentmenu == &SaveDef)
39784063
LoadDef.laston = itemon;

0 commit comments

Comments
 (0)