MONITORS IS UNFUCKED

A less memetic message: On permission of Mystic, rejiggered a few things such that Race uses cv_competitionboxes, allowing the menu to be nicer.

Also:
* disabled the doomednum for ? boxes
* made A_MixUp play sfx_lose if you're in a gametype that can't use it
* Removed the all-teleporters option from cv_competitionboxes. It could just be done by tweaking the random monitor toggles, anyways.
This commit is contained in:
toasterbabe 2017-04-28 22:45:17 +01:00
parent 8ae91de9db
commit 2d9c37d800
5 changed files with 39 additions and 33 deletions

View file

@ -189,7 +189,7 @@ static CV_PossibleValue_t teamscramble_cons_t[] = {{0, "Off"}, {1, "Random"}, {2
static CV_PossibleValue_t startingliveslimit_cons_t[] = {{1, "MIN"}, {99, "MAX"}, {0, NULL}}; static CV_PossibleValue_t startingliveslimit_cons_t[] = {{1, "MIN"}, {99, "MAX"}, {0, NULL}};
static CV_PossibleValue_t sleeping_cons_t[] = {{-1, "MIN"}, {1000/TICRATE, "MAX"}, {0, NULL}}; static CV_PossibleValue_t sleeping_cons_t[] = {{-1, "MIN"}, {1000/TICRATE, "MAX"}, {0, NULL}};
static CV_PossibleValue_t competitionboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Teleports"}, static CV_PossibleValue_t competitionboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, //{2, "Teleports"},
{3, "None"}, {0, NULL}}; {3, "None"}, {0, NULL}};
static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Non-Random"}, static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Non-Random"},

View file

@ -6453,7 +6453,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
}, },
{ // MT_MYSTERY_BOX { // MT_MYSTERY_BOX
412, // doomednum -1, //412, // doomednum
S_MYSTERY_BOX, // spawnstate S_MYSTERY_BOX, // spawnstate
1, // spawnhealth 1, // spawnhealth
S_NULL, // seestate S_NULL, // seestate

View file

@ -1377,39 +1377,42 @@ static menuitem_t OP_ServerOptionsMenu[] =
{IT_STRING | IT_CVAR, NULL, "Allow players to join", &cv_allownewplayer, 31}, {IT_STRING | IT_CVAR, NULL, "Allow players to join", &cv_allownewplayer, 31},
#endif #endif
{IT_STRING | IT_CVAR, NULL, "Force character", &cv_forceskin, 41}, {IT_STRING | IT_CVAR, NULL, "Map progression", &cv_advancemap, 41},
{IT_STRING | IT_CVAR, NULL, "Restrict character changes", &cv_restrictskinchange, 46}, {IT_STRING | IT_CVAR, NULL, "Intermission Timer", &cv_inttime, 46},
{IT_STRING | IT_CVAR, NULL, "Map progression", &cv_advancemap, 51},
{IT_STRING | IT_CVAR, NULL, "Intermission Timer", &cv_inttime, 56},
{IT_HEADER, NULL, "Platform (Coop, Race, Competition)", NULL, 65}, {IT_HEADER, NULL, "Characters", NULL, 55},
{IT_STRING | IT_CVAR, NULL, "Players required for exit", &cv_playersforexit, 71}, {IT_STRING | IT_CVAR, NULL, "Force a character", &cv_forceskin, 61},
{IT_STRING | IT_CVAR, NULL, "Level completion countdown", &cv_countdowntime, 76}, {IT_STRING | IT_CVAR, NULL, "Restrict character changes", &cv_restrictskinchange, 66},
{IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_competitionboxes, 81},
{IT_HEADER, NULL, "Ringslinger (Match, CTF, Tag, H&S)", NULL, 90}, {IT_HEADER, NULL, "Items", NULL, 75},
{IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 96}, {IT_STRING | IT_CVAR, NULL, "Item respawn delay", &cv_itemrespawntime, 81},
{IT_STRING | IT_CVAR, NULL, "Score Limit", &cv_pointlimit, 101}, {IT_STRING | IT_SUBMENU, NULL, "Random Item Box Toggles...", &OP_MonitorToggleDef, 86},
{IT_STRING | IT_CVAR, NULL, "Overtime on Tie", &cv_overtime, 106},
{IT_STRING | IT_CVAR, NULL, "Player respawn delay", &cv_respawntime, 111},
{IT_STRING | IT_CVAR, NULL, "Weapon Rings", &cv_specialrings, 121}, {IT_HEADER, NULL, "Platform (Coop, Race, Competition)", NULL, 95},
{IT_STRING | IT_CVAR, NULL, "Power Stones", &cv_powerstones, 126}, {IT_STRING | IT_CVAR, NULL, "Players required for exit", &cv_playersforexit, 101},
{IT_STRING | IT_CVAR, NULL, "Level completion countdown", &cv_countdowntime, 106},
{IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_competitionboxes, 111},
{IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_matchboxes, 136}, {IT_HEADER, NULL, "Ringslinger (Match, CTF, Tag, H&S)", NULL, 120},
{IT_STRING | IT_CVAR, NULL, "Item respawn delay", &cv_itemrespawntime, 141}, {IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 126},
{IT_STRING | IT_SUBMENU, NULL, "Random Item Box Toggles...", &OP_MonitorToggleDef, 146}, {IT_STRING | IT_CVAR, NULL, "Score Limit", &cv_pointlimit, 131},
{IT_STRING | IT_CVAR, NULL, "Overtime on Tie", &cv_overtime, 136},
{IT_STRING | IT_CVAR, NULL, "Player respawn delay", &cv_respawntime, 141},
{IT_STRING | IT_CVAR, NULL, "Flag respawn delay", &cv_flagtime, 156}, {IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_matchboxes, 151},
{IT_STRING | IT_CVAR, NULL, "Hiding time", &cv_hidetime, 161}, {IT_STRING | IT_CVAR, NULL, "Weapon Rings", &cv_specialrings, 156},
{IT_STRING | IT_CVAR, NULL, "Power Stones", &cv_powerstones, 161},
{IT_STRING | IT_CVAR, NULL, "Autobalance Teams", &cv_autobalance, 171}, {IT_STRING | IT_CVAR, NULL, "Flag respawn delay", &cv_flagtime, 171},
{IT_STRING | IT_CVAR, NULL, "Scramble Teams on Map Change", &cv_scrambleonchange, 176}, {IT_STRING | IT_CVAR, NULL, "Hiding time", &cv_hidetime, 176},
{IT_STRING | IT_CVAR, NULL, "Autobalance Teams", &cv_autobalance, 186},
{IT_STRING | IT_CVAR, NULL, "Scramble Teams on Map Change", &cv_scrambleonchange, 191},
#ifndef NONET #ifndef NONET
{IT_HEADER, NULL, "Advanced", NULL, 185}, {IT_HEADER, NULL, "Advanced", NULL, 200},
{IT_STRING | IT_CVAR | IT_CV_STRING, NULL, "Master server", &cv_masterserver, 191}, {IT_STRING | IT_CVAR | IT_CV_STRING, NULL, "Master server", &cv_masterserver, 206},
{IT_STRING | IT_CVAR, NULL, "Attempts to resynchronise", &cv_resynchattempts, 205}, {IT_STRING | IT_CVAR, NULL, "Attempts to resynchronise", &cv_resynchattempts, 220},
#endif #endif
}; };
@ -7434,8 +7437,8 @@ static void M_ServerOptions(INT32 choice)
OP_ServerOptionsMenu[ 2].status = IT_GRAYEDOUT; // Max players OP_ServerOptionsMenu[ 2].status = IT_GRAYEDOUT; // Max players
OP_ServerOptionsMenu[ 3].status = IT_GRAYEDOUT; // Allow WAD downloading OP_ServerOptionsMenu[ 3].status = IT_GRAYEDOUT; // Allow WAD downloading
OP_ServerOptionsMenu[ 4].status = IT_GRAYEDOUT; // Allow players to join OP_ServerOptionsMenu[ 4].status = IT_GRAYEDOUT; // Allow players to join
OP_ServerOptionsMenu[28].status = IT_GRAYEDOUT; // Master server OP_ServerOptionsMenu[30].status = IT_GRAYEDOUT; // Master server
OP_ServerOptionsMenu[29].status = IT_GRAYEDOUT; // Attempts to resynchronise OP_ServerOptionsMenu[31].status = IT_GRAYEDOUT; // Attempts to resynchronise
} }
else else
{ {
@ -7444,10 +7447,10 @@ static void M_ServerOptions(INT32 choice)
OP_ServerOptionsMenu[ 3].status = IT_STRING | IT_CVAR; OP_ServerOptionsMenu[ 3].status = IT_STRING | IT_CVAR;
OP_ServerOptionsMenu[ 4].status = IT_STRING | IT_CVAR; OP_ServerOptionsMenu[ 4].status = IT_STRING | IT_CVAR;
if (netgame) if (netgame)
OP_ServerOptionsMenu[28].status = IT_GRAYEDOUT; OP_ServerOptionsMenu[30].status = IT_GRAYEDOUT;
else else
OP_ServerOptionsMenu[28].status = IT_STRING | IT_CVAR | IT_CV_STRING; OP_ServerOptionsMenu[30].status = IT_STRING | IT_CVAR | IT_CV_STRING;
OP_ServerOptionsMenu[29].status = IT_STRING | IT_CVAR; OP_ServerOptionsMenu[31].status = IT_STRING | IT_CVAR;
} }
#endif #endif

View file

@ -5602,7 +5602,10 @@ void A_MixUp(mobj_t *actor)
// No mix-up monitors in hide and seek or time only race. // No mix-up monitors in hide and seek or time only race.
// The random factor is okay for other game modes, but in these, it is cripplingly unfair. // The random factor is okay for other game modes, but in these, it is cripplingly unfair.
if (gametype == GT_HIDEANDSEEK || gametype == GT_RACE) if (gametype == GT_HIDEANDSEEK || gametype == GT_RACE)
{
S_StartSound(actor, sfx_lose);
return; return;
}
numplayers = 0; numplayers = 0;
memset(teleported, 0, sizeof (teleported)); memset(teleported, 0, sizeof (teleported));

View file

@ -9509,7 +9509,7 @@ void P_SpawnMapThing(mapthing_t *mthing)
// Yeah, this is a dirty hack. // Yeah, this is a dirty hack.
if ((mobjinfo[i].flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR) if ((mobjinfo[i].flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR)
{ {
if (gametype == GT_COMPETITION) if (gametype == GT_COMPETITION || gametype == GT_RACE)
{ {
// Set powerup boxes to user settings for competition. // Set powerup boxes to user settings for competition.
if (cv_competitionboxes.value == 1) // Random if (cv_competitionboxes.value == 1) // Random