mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-05-04 07:52:22 +00:00
Try some things for roulette sync
- PU_STATIC instead of PU_LEVEL, since player_t is always kept around anyway. - Don't alloc itemList when cap is 0 - Read/write 0 when itemList is NULL
This commit is contained in:
parent
7713ce0ebb
commit
59ee8177d7
2 changed files with 35 additions and 21 deletions
|
|
@ -729,7 +729,7 @@ static void K_InitRoulette(itemroulette_t *const roulette)
|
||||||
roulette->itemListCap = 8;
|
roulette->itemListCap = 8;
|
||||||
roulette->itemList = Z_Calloc(
|
roulette->itemList = Z_Calloc(
|
||||||
sizeof(SINT8) * roulette->itemListCap,
|
sizeof(SINT8) * roulette->itemListCap,
|
||||||
PU_LEVEL,
|
PU_STATIC,
|
||||||
&roulette->itemList
|
&roulette->itemList
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -755,7 +755,7 @@ static void K_PushToRouletteItemList(itemroulette_t *const roulette, kartitems_t
|
||||||
roulette->itemList = Z_Realloc(
|
roulette->itemList = Z_Realloc(
|
||||||
roulette->itemList,
|
roulette->itemList,
|
||||||
sizeof(SINT8) * roulette->itemListCap,
|
sizeof(SINT8) * roulette->itemListCap,
|
||||||
PU_LEVEL,
|
PU_STATIC,
|
||||||
&roulette->itemList
|
&roulette->itemList
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -412,9 +412,16 @@ static void P_NetArchivePlayers(void)
|
||||||
WRITEUINT8(save_p, players[i].itemRoulette.active);
|
WRITEUINT8(save_p, players[i].itemRoulette.active);
|
||||||
WRITEUINT32(save_p, players[i].itemRoulette.itemListCap);
|
WRITEUINT32(save_p, players[i].itemRoulette.itemListCap);
|
||||||
WRITEUINT32(save_p, players[i].itemRoulette.itemListLen);
|
WRITEUINT32(save_p, players[i].itemRoulette.itemListLen);
|
||||||
for (j = 0; (unsigned)j < players[i].itemRoulette.itemListLen; j++)
|
for (j = 0; j < (signed)players[i].itemRoulette.itemListLen; j++)
|
||||||
{
|
{
|
||||||
WRITESINT8(save_p, players[i].itemRoulette.itemList[j]);
|
if (players[i].itemRoulette.itemList == NULL)
|
||||||
|
{
|
||||||
|
WRITESINT8(save_p, KITEM_NONE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WRITESINT8(save_p, players[i].itemRoulette.itemList[j]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
WRITEUINT8(save_p, players[i].itemRoulette.useOdds);
|
WRITEUINT8(save_p, players[i].itemRoulette.useOdds);
|
||||||
WRITEUINT32(save_p, players[i].itemRoulette.index);
|
WRITEUINT32(save_p, players[i].itemRoulette.index);
|
||||||
|
|
@ -728,27 +735,34 @@ static void P_NetUnArchivePlayers(void)
|
||||||
players[i].itemRoulette.itemListCap = (size_t)READUINT32(save_p);
|
players[i].itemRoulette.itemListCap = (size_t)READUINT32(save_p);
|
||||||
players[i].itemRoulette.itemListLen = (size_t)READUINT32(save_p);
|
players[i].itemRoulette.itemListLen = (size_t)READUINT32(save_p);
|
||||||
|
|
||||||
if (players[i].itemRoulette.itemList == NULL)
|
if (players[i].itemRoulette.itemListCap > 0)
|
||||||
{
|
{
|
||||||
players[i].itemRoulette.itemList = Z_Calloc(
|
if (players[i].itemRoulette.itemList == NULL)
|
||||||
sizeof(SINT8) * players[i].itemRoulette.itemListCap,
|
{
|
||||||
PU_LEVEL,
|
players[i].itemRoulette.itemList = Z_Calloc(
|
||||||
&players[i].itemRoulette.itemList
|
sizeof(SINT8) * players[i].itemRoulette.itemListCap,
|
||||||
);
|
PU_STATIC,
|
||||||
}
|
&players[i].itemRoulette.itemList
|
||||||
else
|
);
|
||||||
{
|
}
|
||||||
players[i].itemRoulette.itemList = Z_Realloc(
|
else
|
||||||
players[i].itemRoulette.itemList,
|
{
|
||||||
sizeof(SINT8) * players[i].itemRoulette.itemListCap,
|
players[i].itemRoulette.itemList = Z_Realloc(
|
||||||
PU_LEVEL,
|
players[i].itemRoulette.itemList,
|
||||||
&players[i].itemRoulette.itemList
|
sizeof(SINT8) * players[i].itemRoulette.itemListCap,
|
||||||
);
|
PU_STATIC,
|
||||||
|
&players[i].itemRoulette.itemList
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; (unsigned)j < players[i].itemRoulette.itemListLen; j++)
|
for (j = 0; j < (signed)players[i].itemRoulette.itemListLen; j++)
|
||||||
{
|
{
|
||||||
players[i].itemRoulette.itemList[j] = READSINT8(save_p);
|
SINT8 item = READSINT8(save_p);
|
||||||
|
if (players[i].itemRoulette.itemList != NULL)
|
||||||
|
{
|
||||||
|
players[i].itemRoulette.itemList[j] = item;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
players[i].itemRoulette.useOdds = READUINT8(save_p);
|
players[i].itemRoulette.useOdds = READUINT8(save_p);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue