From 2d9c37d800e1a921b31193c868094329cb49cfe1 Mon Sep 17 00:00:00 2001 From: toasterbabe Date: Fri, 28 Apr 2017 22:45:17 +0100 Subject: [PATCH] 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. --- src/d_netcmd.c | 2 +- src/info.c | 2 +- src/m_menu.c | 63 ++++++++++++++++++++++++++------------------------ src/p_enemy.c | 3 +++ src/p_mobj.c | 2 +- 5 files changed, 39 insertions(+), 33 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 3a80519ef..c95c9d599 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -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 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}}; static CV_PossibleValue_t matchboxes_cons_t[] = {{0, "Normal"}, {1, "Random"}, {2, "Non-Random"}, diff --git a/src/info.c b/src/info.c index 440024458..ed2693bdf 100644 --- a/src/info.c +++ b/src/info.c @@ -6453,7 +6453,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, { // MT_MYSTERY_BOX - 412, // doomednum + -1, //412, // doomednum S_MYSTERY_BOX, // spawnstate 1, // spawnhealth S_NULL, // seestate diff --git a/src/m_menu.c b/src/m_menu.c index b6d2af422..b465adf55 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1377,39 +1377,42 @@ static menuitem_t OP_ServerOptionsMenu[] = {IT_STRING | IT_CVAR, NULL, "Allow players to join", &cv_allownewplayer, 31}, #endif - {IT_STRING | IT_CVAR, NULL, "Force character", &cv_forceskin, 41}, - {IT_STRING | IT_CVAR, NULL, "Restrict character changes", &cv_restrictskinchange, 46}, - {IT_STRING | IT_CVAR, NULL, "Map progression", &cv_advancemap, 51}, - {IT_STRING | IT_CVAR, NULL, "Intermission Timer", &cv_inttime, 56}, + {IT_STRING | IT_CVAR, NULL, "Map progression", &cv_advancemap, 41}, + {IT_STRING | IT_CVAR, NULL, "Intermission Timer", &cv_inttime, 46}, - {IT_HEADER, NULL, "Platform (Coop, Race, Competition)", NULL, 65}, - {IT_STRING | IT_CVAR, NULL, "Players required for exit", &cv_playersforexit, 71}, - {IT_STRING | IT_CVAR, NULL, "Level completion countdown", &cv_countdowntime, 76}, - {IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_competitionboxes, 81}, + {IT_HEADER, NULL, "Characters", NULL, 55}, + {IT_STRING | IT_CVAR, NULL, "Force a character", &cv_forceskin, 61}, + {IT_STRING | IT_CVAR, NULL, "Restrict character changes", &cv_restrictskinchange, 66}, - {IT_HEADER, NULL, "Ringslinger (Match, CTF, Tag, H&S)", NULL, 90}, - {IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 96}, - {IT_STRING | IT_CVAR, NULL, "Score Limit", &cv_pointlimit, 101}, - {IT_STRING | IT_CVAR, NULL, "Overtime on Tie", &cv_overtime, 106}, - {IT_STRING | IT_CVAR, NULL, "Player respawn delay", &cv_respawntime, 111}, + {IT_HEADER, NULL, "Items", NULL, 75}, + {IT_STRING | IT_CVAR, NULL, "Item respawn delay", &cv_itemrespawntime, 81}, + {IT_STRING | IT_SUBMENU, NULL, "Random Item Box Toggles...", &OP_MonitorToggleDef, 86}, - {IT_STRING | IT_CVAR, NULL, "Weapon Rings", &cv_specialrings, 121}, - {IT_STRING | IT_CVAR, NULL, "Power Stones", &cv_powerstones, 126}, + {IT_HEADER, NULL, "Platform (Coop, Race, Competition)", NULL, 95}, + {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_STRING | IT_CVAR, NULL, "Item respawn delay", &cv_itemrespawntime, 141}, - {IT_STRING | IT_SUBMENU, NULL, "Random Item Box Toggles...", &OP_MonitorToggleDef, 146}, + {IT_HEADER, NULL, "Ringslinger (Match, CTF, Tag, H&S)", NULL, 120}, + {IT_STRING | IT_CVAR, NULL, "Time Limit", &cv_timelimit, 126}, + {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, "Hiding time", &cv_hidetime, 161}, + {IT_STRING | IT_CVAR, NULL, "Item Boxes", &cv_matchboxes, 151}, + {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, "Scramble Teams on Map Change", &cv_scrambleonchange, 176}, + {IT_STRING | IT_CVAR, NULL, "Flag respawn delay", &cv_flagtime, 171}, + {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 - {IT_HEADER, NULL, "Advanced", NULL, 185}, - {IT_STRING | IT_CVAR | IT_CV_STRING, NULL, "Master server", &cv_masterserver, 191}, - {IT_STRING | IT_CVAR, NULL, "Attempts to resynchronise", &cv_resynchattempts, 205}, + {IT_HEADER, NULL, "Advanced", NULL, 200}, + {IT_STRING | IT_CVAR | IT_CV_STRING, NULL, "Master server", &cv_masterserver, 206}, + {IT_STRING | IT_CVAR, NULL, "Attempts to resynchronise", &cv_resynchattempts, 220}, #endif }; @@ -7434,8 +7437,8 @@ static void M_ServerOptions(INT32 choice) OP_ServerOptionsMenu[ 2].status = IT_GRAYEDOUT; // Max players OP_ServerOptionsMenu[ 3].status = IT_GRAYEDOUT; // Allow WAD downloading OP_ServerOptionsMenu[ 4].status = IT_GRAYEDOUT; // Allow players to join - OP_ServerOptionsMenu[28].status = IT_GRAYEDOUT; // Master server - OP_ServerOptionsMenu[29].status = IT_GRAYEDOUT; // Attempts to resynchronise + OP_ServerOptionsMenu[30].status = IT_GRAYEDOUT; // Master server + OP_ServerOptionsMenu[31].status = IT_GRAYEDOUT; // Attempts to resynchronise } else { @@ -7444,10 +7447,10 @@ static void M_ServerOptions(INT32 choice) OP_ServerOptionsMenu[ 3].status = IT_STRING | IT_CVAR; OP_ServerOptionsMenu[ 4].status = IT_STRING | IT_CVAR; if (netgame) - OP_ServerOptionsMenu[28].status = IT_GRAYEDOUT; + OP_ServerOptionsMenu[30].status = IT_GRAYEDOUT; else - OP_ServerOptionsMenu[28].status = IT_STRING | IT_CVAR | IT_CV_STRING; - OP_ServerOptionsMenu[29].status = IT_STRING | IT_CVAR; + OP_ServerOptionsMenu[30].status = IT_STRING | IT_CVAR | IT_CV_STRING; + OP_ServerOptionsMenu[31].status = IT_STRING | IT_CVAR; } #endif diff --git a/src/p_enemy.c b/src/p_enemy.c index c1c6c5ebb..88e00e95b 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -5602,7 +5602,10 @@ void A_MixUp(mobj_t *actor) // 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. if (gametype == GT_HIDEANDSEEK || gametype == GT_RACE) + { + S_StartSound(actor, sfx_lose); return; + } numplayers = 0; memset(teleported, 0, sizeof (teleported)); diff --git a/src/p_mobj.c b/src/p_mobj.c index 58f0c2087..4ebc33034 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -9509,7 +9509,7 @@ void P_SpawnMapThing(mapthing_t *mthing) // Yeah, this is a dirty hack. 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. if (cv_competitionboxes.value == 1) // Random