For fun, let the bots vote

This commit is contained in:
James R 2020-04-02 00:03:20 -07:00
parent 425220a109
commit 2e963a46f5
3 changed files with 22 additions and 8 deletions

View file

@ -2801,11 +2801,10 @@ void D_SetupVote(void)
SendNetXCmd(XD_SETUPVOTE, buf, p - buf); 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 buf[2];
char *p = buf; char *p = buf;
UINT8 player = consoleplayer;
if (splitplayer > 0) if (splitplayer > 0)
player = g_localplayers[splitplayer]; player = g_localplayers[splitplayer];

View file

@ -246,7 +246,7 @@ void Command_Retry_f(void);
void D_GameTypeChanged(INT32 lastgametype); // not a real _OnChange function anymore 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_MapChange(INT32 pmapnum, INT32 pgametype, boolean pencoremode, boolean presetplayers, INT32 pdelay, boolean pskipprecutscene, boolean pfromlevelselect);
void D_SetupVote(void); 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 D_PickVote(void);
void ObjectPlace_OnChange(void); void ObjectPlace_OnChange(void);
boolean IsPlayerAdmin(INT32 playernum); boolean IsPlayerAdmin(INT32 playernum);

View file

@ -1507,6 +1507,7 @@ static void Y_VoteStops(SINT8 pick, SINT8 level)
void Y_VoteTicker(void) void Y_VoteTicker(void)
{ {
INT32 i; INT32 i;
boolean everyone_voted;
if (paused || P_AutoPause() || !voteclient.loaded) if (paused || P_AutoPause() || !voteclient.loaded)
return; return;
@ -1655,7 +1656,7 @@ void Y_VoteTicker(void)
if ((InputDown(gc_accelerate, i+1) || JoyAxis(AXISMOVE, i+1) > 0) && !pressed) 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; pressed = true;
} }
} }
@ -1669,6 +1670,8 @@ void Y_VoteTicker(void)
if (server) if (server)
{ {
everyone_voted = true;/* the default condition */
if (timer == 0) if (timer == 0)
{ {
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
@ -1682,13 +1685,25 @@ void Y_VoteTicker(void)
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
{ {
if ((playeringame[i] && !players[i].spectator) && votes[i] == -1) 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 (everyone_voted)
if (voteendtic == -1) {
D_PickVote(); timer = 0;
if (voteendtic == -1)
D_PickVote();
}
} }
} }
} }