mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Handle_MapQueueSend
All XD_MAPQUEUE/XD_REQMAPQUEUE packets are now handled in one function, to guarantee requests are made consistently.
This commit is contained in:
parent
47ecc6370b
commit
4f271aec24
1 changed files with 33 additions and 44 deletions
|
|
@ -3279,6 +3279,37 @@ static void Command_RestartLevel(void)
|
||||||
D_MapChange(gamemap, gametype, newencore, false, 0, false, false);
|
D_MapChange(gamemap, gametype, newencore, false, 0, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void Handle_MapQueueSend(UINT16 newmapnum, UINT8 newgametype, boolean newencoremode)
|
||||||
|
{
|
||||||
|
static char buf[1+1+2];
|
||||||
|
static char *buf_p = buf;
|
||||||
|
|
||||||
|
UINT8 flags = 0;
|
||||||
|
|
||||||
|
CONS_Debug(DBG_GAMELOGIC, "Map queue: mapnum=%d newgametype=%d newencoremode=%d\n",
|
||||||
|
newmapnum, newgametype, newencoremode);
|
||||||
|
|
||||||
|
buf_p = buf;
|
||||||
|
|
||||||
|
if (newencoremode)
|
||||||
|
flags |= 1;
|
||||||
|
|
||||||
|
WRITEUINT8(buf_p, flags);
|
||||||
|
WRITEUINT8(buf_p, newgametype);
|
||||||
|
|
||||||
|
if (client)
|
||||||
|
{
|
||||||
|
WRITEUINT16(buf_p, newmapnum);
|
||||||
|
SendNetXCmd(XD_REQMAPQUEUE, buf, buf_p - buf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITEUINT8(buf_p, roundqueue.size);
|
||||||
|
SendNetXCmd(XD_MAPQUEUE, buf, buf_p - buf);
|
||||||
|
|
||||||
|
G_MapIntoRoundQueue(newmapnum, newgametype, newencoremode, false);
|
||||||
|
}
|
||||||
|
|
||||||
static void Command_QueueMap_f(void)
|
static void Command_QueueMap_f(void)
|
||||||
{
|
{
|
||||||
size_t first_option;
|
size_t first_option;
|
||||||
|
|
@ -3404,36 +3435,7 @@ static void Command_QueueMap_f(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
Handle_MapQueueSend(newmapnum-1, newgametype, newencoremode);
|
||||||
static char buf[1+1+2];
|
|
||||||
static char *buf_p = buf;
|
|
||||||
|
|
||||||
UINT8 flags = 0;
|
|
||||||
|
|
||||||
CONS_Debug(DBG_GAMELOGIC, "Map queue: mapnum=%d newgametype=%d newencoremode=%d\n",
|
|
||||||
newmapnum-1, newgametype, newencoremode);
|
|
||||||
|
|
||||||
buf_p = buf;
|
|
||||||
|
|
||||||
if (newencoremode)
|
|
||||||
flags |= 1;
|
|
||||||
|
|
||||||
WRITEUINT8(buf_p, flags);
|
|
||||||
WRITEUINT8(buf_p, newgametype);
|
|
||||||
|
|
||||||
if (client)
|
|
||||||
{
|
|
||||||
WRITEUINT16(buf_p, (newmapnum-1));
|
|
||||||
SendNetXCmd(XD_REQMAPQUEUE, buf, buf_p - buf);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
WRITEUINT8(buf_p, roundqueue.size);
|
|
||||||
SendNetXCmd(XD_MAPQUEUE, buf, buf_p - buf);
|
|
||||||
|
|
||||||
G_MapIntoRoundQueue(newmapnum-1, newgametype, newencoremode, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Z_Free(realmapname);
|
Z_Free(realmapname);
|
||||||
Z_Free(mapname);
|
Z_Free(mapname);
|
||||||
|
|
@ -3470,20 +3472,7 @@ static void Got_RequestMapQueuecmd(UINT8 **cp, INT32 playernum)
|
||||||
if (client)
|
if (client)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
{
|
Handle_MapQueueSend(mapnumber, setgametype, setencore);
|
||||||
static char buf[1+1+1];
|
|
||||||
static char *buf_p = buf;
|
|
||||||
|
|
||||||
buf_p = buf;
|
|
||||||
|
|
||||||
WRITEUINT8(buf_p, flags);
|
|
||||||
WRITEUINT8(buf_p, setgametype);
|
|
||||||
WRITEUINT8(buf_p, roundqueue.size);
|
|
||||||
|
|
||||||
SendNetXCmd(XD_MAPQUEUE, buf, buf_p - buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
G_MapIntoRoundQueue(mapnumber, setgametype, setencore, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Got_MapQueuecmd(UINT8 **cp, INT32 playernum)
|
static void Got_MapQueuecmd(UINT8 **cp, INT32 playernum)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue