Funny magician stat block rave for Engine Class drawer

This commit is contained in:
toaster 2024-04-15 01:37:25 +01:00
parent d4877c298f
commit a2f57032ae
2 changed files with 43 additions and 10 deletions

View file

@ -1485,7 +1485,7 @@ void M_Statistics(INT32 choice);
void M_DrawStatistics(void); void M_DrawStatistics(void);
boolean M_StatisticsInputs(INT32 ch); boolean M_StatisticsInputs(INT32 ch);
void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap, boolean dot); void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap, UINT8 baseskin);
fixed_t M_DrawCupWinData(INT32 rankx, INT32 ranky, cupheader_t *cup, UINT8 difficulty, boolean flash, boolean statsmode); fixed_t M_DrawCupWinData(INT32 rankx, INT32 ranky, cupheader_t *cup, UINT8 difficulty, boolean flash, boolean statsmode);
#define MAXWRONGPLAYER MAXSPLITSCREENPLAYERS #define MAXWRONGPLAYER MAXSPLITSCREENPLAYERS

View file

@ -6825,14 +6825,14 @@ drawborder:
#define challengetransparentstrength 8 #define challengetransparentstrength 8
void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap, boolean dot) void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap, UINT8 baseskin)
{ {
V_DrawFixedPatch(x*FRACUNIT, y*FRACUNIT, V_DrawFixedPatch(x*FRACUNIT, y*FRACUNIT,
FRACUNIT, FRACUNIT,
0, faceprefix[skin][FACE_RANK], 0, faceprefix[skin][FACE_RANK],
colormap); colormap);
if (dot) if (skin != baseskin)
{ {
V_DrawScaledPatch(x, y + 11, 0, W_CachePatchName("ALTSDOT", PU_CACHE)); V_DrawScaledPatch(x, y + 11, 0, W_CachePatchName("ALTSDOT", PU_CACHE));
} }
@ -6844,10 +6844,43 @@ void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap,
V_DrawFill(x+16+1, y+5, 14, 1, 0); V_DrawFill(x+16+1, y+5, 14, 1, 0);
V_DrawFill(x+16+1, y+5+5, 14, 1, 0); V_DrawFill(x+16+1, y+5+5, 14, 1, 0);
// The following is a partial duplication of R_GetEngineClass INT32 s, w;
if (skins[baseskin].flags & SF_IRONMAN)
{ {
INT32 s = (skins[skin].kartspeed - 1)/3; // this is the last thing i will do for rr pre-launhc ~toast 150424
INT32 w = (skins[skin].kartweight - 1)/3; // quoth tyron: "stat block rave holy shit"
UINT32 funnywomantimer = (gamedata->totalmenutime/4);
funnywomantimer %= (8*2);
if (funnywomantimer <= 8)
{
s = funnywomantimer % 3;
w = (funnywomantimer/3) % 3;
// snake!
if (w == 1)
s = 2 - s;
}
else
{
funnywomantimer -= 8;
s = 2 - ((funnywomantimer/3) % 3);
w = 2 - (funnywomantimer % 3);
// snake other way!
if (s == 1)
w = 2 - w;
}
}
else
{
// The following is a partial duplication of R_GetEngineClass
s = (skins[skin].kartspeed - 1)/3;
w = (skins[skin].kartweight - 1)/3;
#define LOCKSTAT(stat) \ #define LOCKSTAT(stat) \
if (stat < 0) { stat = 0; } \ if (stat < 0) { stat = 0; } \
@ -6855,9 +6888,9 @@ void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap,
LOCKSTAT(s); LOCKSTAT(s);
LOCKSTAT(w); LOCKSTAT(w);
#undef LOCKSTAT #undef LOCKSTAT
V_DrawFill(x+16 + (s*5), y + (w*5), 6, 6, 0);
} }
V_DrawFill(x+16 + (s*5), y + (w*5), 6, 6, 0);
} }
static void M_DrawChallengePreview(INT32 x, INT32 y) static void M_DrawChallengePreview(INT32 x, INT32 y)
@ -6926,7 +6959,7 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
break; break;
} }
M_DrawCharacterIconAndEngine(4, BASEVIDHEIGHT-(4+16), i, colormap, (i != skin)); M_DrawCharacterIconAndEngine(4, BASEVIDHEIGHT-(4+16), i, colormap, skin);
} }
break; break;
} }
@ -8324,7 +8357,7 @@ static void M_DrawStatsChars(void)
{ {
UINT8 *colormap = R_GetTranslationColormap(skin, skins[skin].prefcolor, GTC_MENUCACHE); UINT8 *colormap = R_GetTranslationColormap(skin, skins[skin].prefcolor, GTC_MENUCACHE);
M_DrawCharacterIconAndEngine(24, y, skin, colormap, false); M_DrawCharacterIconAndEngine(24, y, skin, colormap, skin);
} }
V_DrawThinString(24+32+2, y+3, 0, skins[skin].realname); V_DrawThinString(24+32+2, y+3, 0, skins[skin].realname);