From ddce2e9a2da7ccb8e9136d7e38b2012c55d27856 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 27 Jun 2023 14:24:45 +0100 Subject: [PATCH] zvote_call runitback - "Redo Level?" - Functionally `restartlevel` but votable --- src/k_zvote.c | 23 +++++++++++++++++++++++ src/k_zvote.h | 1 + 2 files changed, 24 insertions(+) diff --git a/src/k_zvote.c b/src/k_zvote.c index 9c933d734..b0d1991b6 100644 --- a/src/k_zvote.c +++ b/src/k_zvote.c @@ -74,6 +74,22 @@ static void K_MidVoteRockTheVote(void) SendNetXCmd(XD_EXITLEVEL, NULL, 0); } + +/*-------------------------------------------------- + static void K_MidVoteRunItBack(void) + + MVT_RUNITBACK's success function. +--------------------------------------------------*/ +static void K_MidVoteRunItBack(void) +{ + boolean newencore = false; + + if (cv_kartencore.value != 0) + { + newencore = (cv_kartencore.value == 1) || encoremode; + } + + D_MapChange(gamemap, gametype, newencore, false, 0, false, false); } static midVoteTypeDef_t g_midVoteTypeDefs[MVT__MAX] = @@ -91,6 +107,13 @@ static midVoteTypeDef_t g_midVoteTypeDefs[MVT__MAX] = CVAR_INIT ("zvote_rtv_allowed", "No", CV_SAVE|CV_NETVAR, CV_YesNo, NULL), K_MidVoteRockTheVote }, + + { // MVT_RUNITBACK + "RUNITBACK", + "Redo Level?", + CVAR_INIT ("zvote_runitback_allowed", "No", CV_SAVE|CV_NETVAR, CV_YesNo, NULL), + K_MidVoteRunItBack + }, }; /*-------------------------------------------------- diff --git a/src/k_zvote.h b/src/k_zvote.h index 7296770aa..f1d57a546 100644 --- a/src/k_zvote.h +++ b/src/k_zvote.h @@ -28,6 +28,7 @@ typedef enum { MVT_KICK, // Kick another player in the server MVT_RTV, // Exit level early + MVT_RUNITBACK, // Restart level fresh MVT__MAX, // Total number of vote types } midVoteType_e;