diff --git a/src/k_kart.c b/src/k_kart.c index ed4736411..e7c30d2f6 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10095,9 +10095,10 @@ static void K_drawKartNameTags(void) { bary += (vid.height - (BASEVIDHEIGHT * vid.dupy)) / 2; } - - V_DrawFill(barx, bary, barw, (3 * vid.dupy), colormap[31]|V_NOSCALESTART); - V_DrawFill(barx, bary + vid.dupy, barw, vid.dupy, colormap[0]|V_NOSCALESTART); + + // Lat: 10/06/2020: colormap can be NULL on the frame you join a game, just arbitrarily use palette indexes 31 and 0 instead of whatever the colormap would give us instead to avoid crashes. + V_DrawFill(barx, bary, barw, (3 * vid.dupy), (colormap ? colormap[31] : 31)|V_NOSCALESTART); + V_DrawFill(barx, bary + vid.dupy, barw, vid.dupy, (colormap ? colormap[0] : 0)|V_NOSCALESTART); // END DRAWFILL DUMBNESS // Draw the stem diff --git a/src/m_menu.c b/src/m_menu.c index 16cef2eb9..9fdd70b12 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -5487,7 +5487,11 @@ static void DrawReplayHutReplayInfo(void) } // Character face! - if (W_CheckNumForName(skins[demolist[dir_on[menudepthleft]].standings[0].skin].facewant) != LUMPERROR) + + // Lat: 08/06/2020: For some reason missing skins have their value set to 255 (don't even ask me why I didn't write this) + // and for an even STRANGER reason this passes the first check below, so we're going to make sure that the skin here ISN'T 255 before we do anything stupid. + + if (demolist[dir_on[menudepthleft]].standings[0].skin != 0xFF && W_CheckNumForName(skins[demolist[dir_on[menudepthleft]].standings[0].skin].facewant) != LUMPERROR) { patch = facewantprefix[demolist[dir_on[menudepthleft]].standings[0].skin]; colormap = R_GetTranslationColormap( @@ -5685,7 +5689,11 @@ static void M_DrawReplayStartMenu(void) V_DrawString(BASEVIDWIDTH-92, STARTY + i*20 + 9, V_SNAPTOTOP, va("%d", demolist[dir_on[menudepthleft]].standings[i].timeorscore)); // Character face! - if (W_CheckNumForName(skins[demolist[dir_on[menudepthleft]].standings[i].skin].facerank) != LUMPERROR) + + // Lat: 08/06/2020: For some reason missing skins have their value set to 255 (don't even ask me why I didn't write this) + // and for an even STRANGER reason this passes the first check below, so we're going to make sure that the skin here ISN'T 255 before we do anything stupid. + + if (demolist[dir_on[menudepthleft]].standings[0].skin != 0xFF && W_CheckNumForName(skins[demolist[dir_on[menudepthleft]].standings[i].skin].facerank) != LUMPERROR) { patch = facerankprefix[demolist[dir_on[menudepthleft]].standings[i].skin]; colormap = R_GetTranslationColormap( @@ -7632,7 +7640,7 @@ static void M_StartGrandPrix(INT32 choice) grandprixinfo.gamespeed = KARTSPEED_HARD; grandprixinfo.masterbots = true; break; - + } grandprixinfo.encore = (boolean)(cv_dummygpencore.value); diff --git a/src/v_video.c b/src/v_video.c index 20931291f..0f6479205 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -1909,7 +1909,6 @@ void V_DrawStringScaled( if (!( flags & V_SNAPTOLEFT )) { left = ( right - BASEVIDWIDTH )/ 2;/* left edge of drawable area */ - x = ( left << FRACBITS )+ x; right -= left; } }