diff --git a/src/acs/call-funcs.cpp b/src/acs/call-funcs.cpp index 6b51cfba4..417346faf 100644 --- a/src/acs/call-funcs.cpp +++ b/src/acs/call-funcs.cpp @@ -1624,7 +1624,7 @@ bool CallFunc_PlayerSkin(ACSVM::Thread *thread, const ACSVM::Word *argV, ACSVM:: && (info->mo != NULL && P_MobjWasRemoved(info->mo) == false) && (info->mo->player != NULL)) { - UINT8 skin = info->mo->player->skin; + UINT16 skin = info->mo->player->skin; thread->dataStk.push(~env->getString( skins[skin].name )->idx); return false; } diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 8ae37a308..f916f11de 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1080,7 +1080,7 @@ static void SV_SendPlayerInfo(INT32 node) netbuffer->u.playerinfo[i].score = LONG(players[i].score); netbuffer->u.playerinfo[i].timeinserver = SHORT((UINT16)(players[i].jointime / TICRATE)); - netbuffer->u.playerinfo[i].skin = (UINT8)(players[i].skin + netbuffer->u.playerinfo[i].skin = (UINT16)(players[i].skin #ifdef DEVELOP // it's safe to do this only because PLAYERINFO isn't read by the game itself % 3 #endif @@ -3712,7 +3712,7 @@ static void Got_RemovePlayer(UINT8 **p, INT32 playernum) static void Got_AddBot(UINT8 **p, INT32 playernum) { INT16 newplayernum; - UINT8 skinnum = 0; + UINT16 skinnum = 0; UINT8 difficulty = DIFFICULTBOT; botStyle_e style = BOT_STYLE_NORMAL; @@ -3728,7 +3728,7 @@ static void Got_AddBot(UINT8 **p, INT32 playernum) } newplayernum = READUINT8(*p); - skinnum = READUINT8(*p); + skinnum = READUINT16(*p); difficulty = READUINT8(*p); style = READUINT8(*p); @@ -3832,11 +3832,11 @@ static boolean SV_AddWaitingPlayers(SINT8 node, const char *name, const char *na } /*-------------------------------------------------- - boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) + boolean K_AddBotFromServer(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) See header file for description. --------------------------------------------------*/ -boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) +boolean K_AddBotFromServer(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) { UINT8 newplayernum = *p; @@ -3877,7 +3877,7 @@ boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 if (server) { - UINT8 buf[4]; + UINT8 buf[5]; UINT8 *buf_p = buf; WRITEUINT8(buf_p, newplayernum); @@ -3887,7 +3887,7 @@ boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 skin = numskins; } - WRITEUINT8(buf_p, skin); + WRITEUINT16(buf_p, skin); if (difficulty < 1) { diff --git a/src/d_clisrv.h b/src/d_clisrv.h index 558d02cfa..0234beab5 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -317,7 +317,7 @@ struct plrinfo char name[MAXPLAYERNAME+1]; UINT8 address[4]; // sending another string would run us up against MAXPACKETLENGTH UINT8 team; - UINT8 skin; + UINT16 skin; UINT8 data; // Color is first four bits, hasflag, isit and issuper have one bit each, the last is unused. UINT32 score; UINT16 timeinserver; // In seconds. @@ -327,7 +327,7 @@ struct plrinfo struct plrconfig { char name[MAXPLAYERNAME+1]; - UINT8 skin; + UINT16 skin; UINT16 color; UINT32 pflags; UINT32 score; @@ -481,7 +481,7 @@ void SV_StopServer(void); void SV_ResetServer(void); /*-------------------------------------------------- - boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *newplayernum); + boolean K_AddBotFromServer(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *newplayernum); Adds a new bot, using a server-sided packet sent to all clients. Using regular K_AddBot wherever possible is better, but this is kept @@ -498,7 +498,7 @@ void SV_ResetServer(void); true if a bot can be added via a packet later, otherwise false. --------------------------------------------------*/ -boolean K_AddBotFromServer(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); +boolean K_AddBotFromServer(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); void CL_AddSplitscreenPlayer(void); void CL_RemoveSplitscreenPlayer(UINT8 p); diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 32e074609..eaaf44033 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -1726,7 +1726,7 @@ static void SendNameAndColor(UINT8 n) WRITESTRINGN(p, cv_playername[n].zstring, MAXPLAYERNAME); WRITEUINT32(p, (UINT32)player->availabilities); WRITEUINT16(p, (UINT16)cv_playercolor[n].value); - WRITEUINT8(p, (UINT8)cv_skin[n].value); + WRITEUINT16(p, (UINT16)cv_skin[n].value); WRITESINT8(p, (SINT8)cv_follower[n].value); WRITEUINT16(p, (UINT16)cv_followercolor[n].value); @@ -1738,10 +1738,10 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) player_t *p = &players[playernum]; char name[MAXPLAYERNAME+1]; UINT16 color, followercolor; - UINT8 skin; + UINT16 skin; SINT8 follower; SINT8 localplayer = -1; - UINT8 i; + UINT16 i; #ifdef PARANOIA if (playernum < 0 || playernum > MAXPLAYERS) @@ -1767,7 +1767,7 @@ static void Got_NameAndColor(UINT8 **cp, INT32 playernum) READSTRINGN(*cp, name, MAXPLAYERNAME); p->availabilities = READUINT32(*cp); color = READUINT16(*cp); - skin = READUINT8(*cp); + skin = READUINT16(*cp); follower = READSINT8(*cp); followercolor = READUINT16(*cp); diff --git a/src/doomdef.h b/src/doomdef.h index c69a3e0e7..f6776387f 100644 --- a/src/doomdef.h +++ b/src/doomdef.h @@ -103,7 +103,7 @@ extern "C" { // Special Hashing. //#define NOMD5 -//#define NOFILEHASH +#define NOFILEHASH // Uncheck this to compile debugging code //#define RANGECHECK @@ -207,7 +207,7 @@ extern char logfilename[1024]; #define MAXSPLITSCREENPLAYERS 4 // Max number of players on a single computer #define MAXGAMEPADS (MAXSPLITSCREENPLAYERS * 2) // Number of gamepads we'll be allowing -#define MAXSKINS UINT8_MAX +#define MAXSKINS 4096 #define MAXFOLLOWERS UINT16_MAX #define COLORRAMPSIZE 16 diff --git a/src/g_demo.c b/src/g_demo.c index ffc746131..b045ed0e5 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -973,7 +973,7 @@ void G_WriteGhostTic(mobj_t *ghost, INT32 playernum) if (ghost->player->followmobj->colorized) followtic |= FZT_COLORIZED; if (followtic & FZT_SKIN) - WRITEUINT8(demobuf.p,(UINT8)(((skin_t *)(ghost->player->followmobj->skin))-skins)); + WRITEUINT16(demobuf.p,(UINT16)(((skin_t *)(ghost->player->followmobj->skin))-skins)); oldghost[playernum].flags2 |= MF2_AMBUSH; } @@ -1134,14 +1134,14 @@ void G_ConsGhostTic(INT32 playernum) { demobuf.p += sizeof(INT16); if (followtic & FZT_SKIN) - demobuf.p++; + demobuf.p += sizeof(UINT16); } if (followtic & FZT_SCALE) demobuf.p += sizeof(fixed_t); // momx, momy and momz demobuf.p += sizeof(fixed_t) * 3; if (followtic & FZT_SKIN) - demobuf.p++; + demobuf.p += sizeof(UINT16); demobuf.p += sizeof(UINT16); demobuf.p++; demobuf.p += sizeof(UINT16); @@ -1432,7 +1432,7 @@ void G_GhostTicker(void) follow->colorized = true; if (followtic & FZT_SKIN) - follow->skin = &skins[READUINT8(g->p)]; + follow->skin = &skins[READUINT16(g->p)]; } if (follow) { @@ -1452,7 +1452,7 @@ void G_GhostTicker(void) follow->z = g->mo->z + temp; P_SetThingPosition(follow); if (followtic & FZT_SKIN) - follow->sprite2 = READUINT8(g->p); + follow->sprite2 = READUINT16(g->p); else follow->sprite2 = 0; follow->sprite = READUINT16(g->p); diff --git a/src/g_demo.h b/src/g_demo.h index 60fe5c5b1..7a6fa6e6d 100644 --- a/src/g_demo.h +++ b/src/g_demo.h @@ -85,7 +85,7 @@ struct menudemo_t { struct { UINT8 ranking; char name[17]; - UINT8 skin, color; + UINT16 skin, color; UINT32 timeorscore; } standings[MAXPLAYERS]; }; diff --git a/src/k_bot.cpp b/src/k_bot.cpp index 109eacb74..376258b8b 100644 --- a/src/k_bot.cpp +++ b/src/k_bot.cpp @@ -47,7 +47,7 @@ consvar_t cv_forcebots = CVAR_INIT ("kartforcebots", "Off", CV_NETVAR|CV_CHEAT, consvar_t cv_botcontrol = CVAR_INIT ("kartbotcontrol", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL); /*-------------------------------------------------- - void K_SetNameForBot(UINT8 playerNum, UINT8 skinnum) + void K_SetNameForBot(UINT8 playerNum, const char *realname) See header file for description. --------------------------------------------------*/ @@ -100,11 +100,11 @@ void K_SetNameForBot(UINT8 newplayernum, const char *realname) } /*-------------------------------------------------- - void K_SetBot(UINT8 playerNum, UINT8 skinnum, UINT8 difficulty, botStyle_e style) + void K_SetBot(UINT8 playerNum, UINT16 skinnum, UINT8 difficulty, botStyle_e style) See header file for description. --------------------------------------------------*/ -void K_SetBot(UINT8 newplayernum, UINT8 skinnum, UINT8 difficulty, botStyle_e style) +void K_SetBot(UINT8 newplayernum, UINT16 skinnum, UINT8 difficulty, botStyle_e style) { CONS_Debug(DBG_NETPLAY, "addbot: %d\n", newplayernum); @@ -146,11 +146,11 @@ void K_SetBot(UINT8 newplayernum, UINT8 skinnum, UINT8 difficulty, botStyle_e st } /*-------------------------------------------------- - boolean K_AddBot(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) + boolean K_AddBot(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) See header file for description. --------------------------------------------------*/ -boolean K_AddBot(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) +boolean K_AddBot(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) { UINT8 newplayernum = *p; @@ -186,16 +186,16 @@ boolean K_AddBot(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p) --------------------------------------------------*/ void K_UpdateMatchRaceBots(void) { - const UINT8 defaultbotskin = K_BotDefaultSkin(); + const UINT16 defaultbotskin = K_BotDefaultSkin(); UINT8 difficulty; UINT8 pmax = (dedicated ? MAXPLAYERS-1 : MAXPLAYERS); UINT8 numplayers = 0; UINT8 numbots = 0; UINT8 numwaiting = 0; SINT8 wantedbots = 0; - UINT8 usableskins = 0, skincount = numskins; - UINT8 grabskins[MAXSKINS+1]; - UINT8 i; + UINT16 usableskins = 0, skincount = numskins; + UINT16 grabskins[MAXSKINS+1]; + UINT16 i; // Init usable bot skins list for (i = 0; i < skincount; i++) @@ -318,11 +318,11 @@ void K_UpdateMatchRaceBots(void) while (numbots < wantedbots) { - UINT8 skinnum = defaultbotskin; + UINT16 skinnum = defaultbotskin; if (usableskins > 0) { - UINT8 index = P_RandomKey(usableskins); + UINT16 index = P_RandomKey(usableskins); skinnum = grabskins[index]; if (((cv_ingamecap.value > 0) && (usableskins+1 >= cv_ingamecap.value)) || (usableskins+1 >= cv_maxplayers.value)) { diff --git a/src/k_bot.h b/src/k_bot.h index e01c87380..139b0d46e 100644 --- a/src/k_bot.h +++ b/src/k_bot.h @@ -175,7 +175,7 @@ fixed_t K_DistanceOfLineFromPoint(fixed_t v1x, fixed_t v1y, fixed_t v2x, fixed_t /*-------------------------------------------------- - boolean K_AddBot(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); + boolean K_AddBot(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); Adds a new bot, using code intended to run on all clients. @@ -190,7 +190,7 @@ fixed_t K_DistanceOfLineFromPoint(fixed_t v1x, fixed_t v1y, fixed_t v2x, fixed_t true if a bot was added, otherwise false. --------------------------------------------------*/ -boolean K_AddBot(UINT8 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); +boolean K_AddBot(UINT16 skin, UINT8 difficulty, botStyle_e style, UINT8 *p); // NOT AVAILABLE FOR LUA @@ -215,7 +215,7 @@ void K_SetNameForBot(UINT8 newplayernum, const char *realname); /*-------------------------------------------------- - void K_SetBot(UINT8 newplayernum, UINT8 skinnum, UINT8 difficulty, botStyle_e style); + void K_SetBot(UINT8 newplayernum, UINT16 skinnum, UINT8 difficulty, botStyle_e style); Sets a player ID to be a new bot directly. Invoked directly by K_AddBot, and indirectly by K_AddBotFromServer by sending @@ -231,7 +231,7 @@ void K_SetNameForBot(UINT8 newplayernum, const char *realname); None --------------------------------------------------*/ -void K_SetBot(UINT8 newplayernum, UINT8 skinnum, UINT8 difficulty, botStyle_e style); +void K_SetBot(UINT8 newplayernum, UINT16 skinnum, UINT8 difficulty, botStyle_e style); /*-------------------------------------------------- diff --git a/src/k_grandprix.c b/src/k_grandprix.c index 507556c82..1ec7a98b8 100644 --- a/src/k_grandprix.c +++ b/src/k_grandprix.c @@ -96,11 +96,11 @@ INT16 K_CalculateGPRankPoints(UINT8 position, UINT8 numplayers) } /*-------------------------------------------------- - UINT8 K_BotDefaultSkin(void) + UINT16 K_BotDefaultSkin(void) See header file for description. --------------------------------------------------*/ -UINT8 K_BotDefaultSkin(void) +UINT16 K_BotDefaultSkin(void) { const char *defaultbotskinname = "tails"; INT32 defaultbotskin = R_SkinAvailable(defaultbotskinname); @@ -111,7 +111,7 @@ UINT8 K_BotDefaultSkin(void) defaultbotskin = 0; } - return (UINT8)defaultbotskin; + return (UINT16)defaultbotskin; } /*-------------------------------------------------- @@ -136,7 +136,7 @@ UINT8 K_GetGPPlayerCount(UINT8 humans) --------------------------------------------------*/ void K_InitGrandPrixBots(void) { - const UINT8 defaultbotskin = K_BotDefaultSkin(); + const UINT16 defaultbotskin = K_BotDefaultSkin(); const UINT8 startingdifficulty = K_BotStartingDifficulty(grandprixinfo.gamespeed); UINT8 difficultylevels[MAXPLAYERS]; @@ -147,14 +147,14 @@ void K_InitGrandPrixBots(void) UINT8 numplayers = 0; UINT8 competitors[MAXSPLITSCREENPLAYERS]; - UINT8 usableskins, skincount = numskins; - UINT8 grabskins[MAXSKINS+1]; + UINT16 usableskins, skincount = numskins; + UINT16 grabskins[MAXSKINS+1]; - UINT8 botskinlist[MAXPLAYERS]; - UINT8 botskinlistpos = 0; + UINT16 botskinlist[MAXPLAYERS]; + UINT16 botskinlistpos = 0; UINT8 newplayernum = 0; - UINT8 i, j; + UINT16 i, j; memset(competitors, MAXPLAYERS, sizeof (competitors)); memset(botskinlist, defaultbotskin, sizeof (botskinlist)); @@ -237,10 +237,10 @@ void K_InitGrandPrixBots(void) rivalnum = R_SkinAvailable(rivalname); // Intentionally referenced before (currently dummied out) unlock check. Such a tease! - if (rivalnum != -1 && grabskins[(UINT8)rivalnum] != MAXSKINS) + if (rivalnum != -1 && grabskins[(UINT16)rivalnum] != MAXSKINS) { - botskinlist[botskinlistpos++] = (UINT8)rivalnum; - grabskins[(UINT8)rivalnum] = MAXSKINS; + botskinlist[botskinlistpos++] = (UINT16)rivalnum; + grabskins[(UINT16)rivalnum] = MAXSKINS; } } } @@ -268,11 +268,11 @@ void K_InitGrandPrixBots(void) { while (botskinlistpos < wantedbots) { - UINT8 skinnum = defaultbotskin; + UINT16 skinnum = defaultbotskin; if (usableskins > 0) { - UINT8 index = P_RandomKey(usableskins); + UINT16 index = P_RandomKey(usableskins); skinnum = grabskins[index]; if (usableskins >= K_GetGPPlayerCount(1)) { @@ -545,13 +545,13 @@ void K_IncreaseBotDifficulty(player_t *bot) --------------------------------------------------*/ void K_RetireBots(void) { - const UINT8 defaultbotskin = K_BotDefaultSkin(); + const UINT16 defaultbotskin = K_BotDefaultSkin(); SINT8 newDifficulty; - UINT8 usableskins = 0, skincount = numskins; - UINT8 grabskins[MAXSKINS+1]; + UINT16 usableskins = 0, skincount = numskins; + UINT16 grabskins[MAXSKINS+1]; - UINT8 i; + UINT16 i; if (grandprixinfo.gp == true && (((grandprixinfo.cup != NULL) && (grandprixinfo.roundnum >= grandprixinfo.cup->numlevels)) @@ -643,11 +643,11 @@ void K_RetireBots(void) if (bot->pflags & PF_NOCONTEST) { - UINT8 skinnum = defaultbotskin; + UINT16 skinnum = defaultbotskin; if (usableskins > 0) { - UINT8 index = P_RandomKey(usableskins); + UINT16 index = P_RandomKey(usableskins); skinnum = grabskins[index]; if (usableskins+1 >= K_GetGPPlayerCount(1)) { diff --git a/src/k_grandprix.h b/src/k_grandprix.h index 59481d3d0..bb0998cd6 100644 --- a/src/k_grandprix.h +++ b/src/k_grandprix.h @@ -72,13 +72,13 @@ INT16 K_CalculateGPRankPoints(UINT8 position, UINT8 numplayers); /*-------------------------------------------------- - UINT8 K_BotDefaultSkin(void); + UINT16 K_BotDefaultSkin(void); Returns the skin number of the skin the game uses as a fallback option. --------------------------------------------------*/ -UINT8 K_BotDefaultSkin(void); +UINT16 K_BotDefaultSkin(void); /*-------------------------------------------------- UINT8 K_GetGPPlayerCount(UINT8 humans) diff --git a/src/k_hud.c b/src/k_hud.c index 29c214624..13e51fde8 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -3342,7 +3342,7 @@ static void K_drawKartMinimapNametag(fixed_t objx, fixed_t objy, INT32 hudx, INT fixed_t amnumxpos, amnumypos; INT32 amxpos, amypos; - UINT8 skin = 0; + UINT16 skin = 0; UINT16 chatcolor = skincolors[player->mo->color].chatcolor; amnumxpos = (FixedMul(objx, minimapinfo.zoom) - minimapinfo.offs_x); @@ -3457,7 +3457,7 @@ static void K_drawKartMinimap(void) INT32 x, y; INT32 minimaptrans = cv_kartminimap.value; INT32 splitflags = 0; - UINT8 skin = 0; + UINT16 skin = 0; UINT8 *colormap = NULL; SINT8 localplayers[MAXSPLITSCREENPLAYERS]; SINT8 numlocalplayers = 0; diff --git a/src/m_menu.c b/src/m_menu.c index 1b6cb89b8..a667010d1 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1891,7 +1891,7 @@ void M_Init(void) void M_InitCharacterTables(void) { - UINT8 i; + UINT16 i; // Setup description table for (i = 0; i < MAXSKINS; i++) @@ -6930,7 +6930,7 @@ Update the maxplayers label... #define iconwidth 32 #define spacingwidth 32 #define incrwidth (iconwidth + spacingwidth) - UINT8 i = 0, pskin, pcol; + UINT16 i = 0, pskin, pcol; // player arrangement width, but there's also a chance i'm a furry, shhhhhh const INT32 paw = iconwidth + 3*incrwidth; INT32 trans = 0; diff --git a/src/m_menu.h b/src/m_menu.h index 740d977b6..82a058ed3 100644 --- a/src/m_menu.h +++ b/src/m_menu.h @@ -457,7 +457,7 @@ struct modedesc_t typedef struct { char levelname[32]; - UINT8 skinnum; + UINT16 skinnum; UINT8 numemeralds; UINT8 numgameovers; INT32 lives; diff --git a/src/p_saveg.c b/src/p_saveg.c index e054ef45d..6ccef8670 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2492,7 +2492,7 @@ static void SaveMobjThinker(savebuffer_t *save, const thinker_t *th, const UINT8 if (diff2 & MD2_CVMEM) WRITEINT32(save->p, mobj->cvmem); if (diff2 & MD2_SKIN) - WRITEUINT8(save->p, (UINT8)((skin_t *)mobj->skin - skins)); + WRITEUINT16(save->p, (UINT16)((skin_t *)mobj->skin - skins)); if (diff2 & MD2_COLOR) WRITEUINT16(save->p, mobj->color); if (diff2 & MD2_EXTVAL1) @@ -3726,7 +3726,7 @@ static thinker_t* LoadMobjThinker(savebuffer_t *save, actionf_p1 thinker) if (diff2 & MD2_CVMEM) mobj->cvmem = READINT32(save->p); if (diff2 & MD2_SKIN) - mobj->skin = &skins[READUINT8(save->p)]; + mobj->skin = &skins[READUINT16(save->p)]; if (diff2 & MD2_COLOR) mobj->color = READUINT16(save->p); if (diff2 & MD2_EXTVAL1) diff --git a/src/p_saveg.h b/src/p_saveg.h index a85916f69..64e37554d 100644 --- a/src/p_saveg.h +++ b/src/p_saveg.h @@ -36,7 +36,7 @@ mobj_t *P_FindNewPosition(UINT32 oldposition); struct savedata_t { - UINT8 skin; + UINT16 skin; INT32 score; INT32 lives; UINT16 emeralds;