From 2e963a46f5e07ac514e3fdc0215aec6495a9c054 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 2 Apr 2020 00:03:20 -0700 Subject: [PATCH] For fun, let the bots vote --- src/d_netcmd.c | 3 +-- src/d_netcmd.h | 2 +- src/y_inter.c | 25 ++++++++++++++++++++----- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 7b314e9b3..b3ad2f16f 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -2801,11 +2801,10 @@ void D_SetupVote(void) SendNetXCmd(XD_SETUPVOTE, buf, p - buf); } -void D_ModifyClientVote(SINT8 voted, UINT8 splitplayer) +void D_ModifyClientVote(UINT8 player, SINT8 voted, UINT8 splitplayer) { char buf[2]; char *p = buf; - UINT8 player = consoleplayer; if (splitplayer > 0) player = g_localplayers[splitplayer]; diff --git a/src/d_netcmd.h b/src/d_netcmd.h index ef3548183..d765031d6 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -246,7 +246,7 @@ void Command_Retry_f(void); void D_GameTypeChanged(INT32 lastgametype); // not a real _OnChange function anymore void D_MapChange(INT32 pmapnum, INT32 pgametype, boolean pencoremode, boolean presetplayers, INT32 pdelay, boolean pskipprecutscene, boolean pfromlevelselect); void D_SetupVote(void); -void D_ModifyClientVote(SINT8 voted, UINT8 splitplayer); +void D_ModifyClientVote(UINT8 player, SINT8 voted, UINT8 splitplayer); void D_PickVote(void); void ObjectPlace_OnChange(void); boolean IsPlayerAdmin(INT32 playernum); diff --git a/src/y_inter.c b/src/y_inter.c index e9e243b04..c908f2143 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -1507,6 +1507,7 @@ static void Y_VoteStops(SINT8 pick, SINT8 level) void Y_VoteTicker(void) { INT32 i; + boolean everyone_voted; if (paused || P_AutoPause() || !voteclient.loaded) return; @@ -1655,7 +1656,7 @@ void Y_VoteTicker(void) if ((InputDown(gc_accelerate, i+1) || JoyAxis(AXISMOVE, i+1) > 0) && !pressed) { - D_ModifyClientVote(voteclient.playerinfo[i].selection, i); + D_ModifyClientVote(consoleplayer, voteclient.playerinfo[i].selection, i); pressed = true; } } @@ -1669,6 +1670,8 @@ void Y_VoteTicker(void) if (server) { + everyone_voted = true;/* the default condition */ + if (timer == 0) { for (i = 0; i < MAXPLAYERS; i++) @@ -1682,13 +1685,25 @@ void Y_VoteTicker(void) for (i = 0; i < MAXPLAYERS; i++) { if ((playeringame[i] && !players[i].spectator) && votes[i] == -1) - return; + { + if (players[i].bot) + { + if (( M_RandomFixed() % 100 ) == 0) + D_ModifyClientVote(i, M_RandomKey(4), 0); + } + + if (votes[i] == -1) + everyone_voted = false; + } } } - timer = 0; - if (voteendtic == -1) - D_PickVote(); + if (everyone_voted) + { + timer = 0; + if (voteendtic == -1) + D_PickVote(); + } } } }