mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-18 15:32:10 +00:00
One last thing: don't add whatever the game rolls for the random option
Makes it even more of a wild-card option, also makes sure that you actually *see* all of the maps before it empties
This commit is contained in:
parent
bc99e0963e
commit
2af4f0451a
3 changed files with 11 additions and 6 deletions
|
@ -1962,7 +1962,12 @@ void D_SetupVote(void)
|
||||||
p = buf;
|
p = buf;
|
||||||
|
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
WRITEUINT16(p, G_RandMap(G_TOLFlag(gametype), prevmap, false));
|
{
|
||||||
|
if (i == 3)
|
||||||
|
WRITEUINT16(p, G_RandMap(G_TOLFlag(gametype), prevmap, true, false));
|
||||||
|
else
|
||||||
|
WRITEUINT16(p, G_RandMap(G_TOLFlag(gametype), prevmap, false, false));
|
||||||
|
}
|
||||||
|
|
||||||
SendNetXCmd(XD_SETUPVOTE, buf, p - buf);
|
SendNetXCmd(XD_SETUPVOTE, buf, p - buf);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3110,7 +3110,7 @@ static INT32 TOLMaps(INT16 tolflags)
|
||||||
* has those flags.
|
* has those flags.
|
||||||
* \author Graue <graue@oceanbase.org>
|
* \author Graue <graue@oceanbase.org>
|
||||||
*/
|
*/
|
||||||
INT16 G_RandMap(INT16 tolflags, INT16 pprevmap, boolean ignorebuffer)
|
INT16 G_RandMap(INT16 tolflags, INT16 pprevmap, boolean dontadd, boolean ignorebuffer)
|
||||||
{
|
{
|
||||||
INT16 *okmaps = Z_Malloc(NUMMAPS * sizeof(INT16), PU_STATIC, NULL);
|
INT16 *okmaps = Z_Malloc(NUMMAPS * sizeof(INT16), PU_STATIC, NULL);
|
||||||
INT32 numokmaps = 0;
|
INT32 numokmaps = 0;
|
||||||
|
@ -3150,7 +3150,7 @@ INT16 G_RandMap(INT16 tolflags, INT16 pprevmap, boolean ignorebuffer)
|
||||||
if (numokmaps == 0)
|
if (numokmaps == 0)
|
||||||
{
|
{
|
||||||
if (!ignorebuffer)
|
if (!ignorebuffer)
|
||||||
return G_RandMap(tolflags, pprevmap, true); // If there's no matches, (An incredibly silly function chain, buuut... :V)
|
return G_RandMap(tolflags, pprevmap, dontadd, true); // If there's no matches, (An incredibly silly function chain, buuut... :V)
|
||||||
|
|
||||||
ix = 0; // Sorry, none match. You get MAP01.
|
ix = 0; // Sorry, none match. You get MAP01.
|
||||||
for (bufx = 0; bufx < NUMMAPS; bufx++)
|
for (bufx = 0; bufx < NUMMAPS; bufx++)
|
||||||
|
@ -3289,7 +3289,7 @@ static void G_DoCompleted(void)
|
||||||
|
|
||||||
automapactive = false;
|
automapactive = false;
|
||||||
|
|
||||||
if (randmapbuffer[TOLMaps(G_TOLFlag(gametype))-5] != -1) // we're getting pretty full, so lets clear it
|
if (randmapbuffer[TOLMaps(G_TOLFlag(gametype))-4] != -1) // we're getting pretty full, so lets clear it
|
||||||
{
|
{
|
||||||
for (i = 0; i < NUMMAPS; i++)
|
for (i = 0; i < NUMMAPS; i++)
|
||||||
randmapbuffer[i] = -1;
|
randmapbuffer[i] = -1;
|
||||||
|
@ -3300,7 +3300,7 @@ static void G_DoCompleted(void)
|
||||||
if (cv_advancemap.value == 0) // Stay on same map.
|
if (cv_advancemap.value == 0) // Stay on same map.
|
||||||
nextmap = prevmap;
|
nextmap = prevmap;
|
||||||
else if (cv_advancemap.value == 2) // Go to random map.
|
else if (cv_advancemap.value == 2) // Go to random map.
|
||||||
nextmap = G_RandMap(G_TOLFlag(gametype), prevmap, false);
|
nextmap = G_RandMap(G_TOLFlag(gametype), prevmap, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We are committed to this map now.
|
// We are committed to this map now.
|
||||||
|
|
|
@ -235,6 +235,6 @@ FUNCMATH INT32 G_TicsToMilliseconds(tic_t tics);
|
||||||
// Don't split up TOL handling
|
// Don't split up TOL handling
|
||||||
INT16 G_TOLFlag(INT32 pgametype);
|
INT16 G_TOLFlag(INT32 pgametype);
|
||||||
|
|
||||||
INT16 G_RandMap(INT16 tolflags, INT16 pprevmap, boolean ignorebuffer);
|
INT16 G_RandMap(INT16 tolflags, INT16 pprevmap, boolean dontadd, boolean ignorebuffer);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue