Merge branch 'funny-magician' into 'master'

Funny magician stat block rave for Engine Class drawer

See merge request KartKrew/Kart!2292
This commit is contained in:
toaster 2024-04-15 00:58:57 +00:00
commit 0a80cb826d
2 changed files with 43 additions and 10 deletions

View file

@ -1485,7 +1485,7 @@ void M_Statistics(INT32 choice);
void M_DrawStatistics(void);
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);
#define MAXWRONGPLAYER MAXSPLITSCREENPLAYERS

View file

@ -6825,14 +6825,14 @@ drawborder:
#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,
FRACUNIT,
0, faceprefix[skin][FACE_RANK],
colormap);
if (dot)
if (skin != baseskin)
{
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+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;
INT32 w = (skins[skin].kartweight - 1)/3;
// this is the last thing i will do for rr pre-launhc ~toast 150424
// 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) \
if (stat < 0) { stat = 0; } \
@ -6855,9 +6888,9 @@ void M_DrawCharacterIconAndEngine(INT32 x, INT32 y, UINT8 skin, UINT8 *colormap,
LOCKSTAT(s);
LOCKSTAT(w);
#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)
@ -6926,7 +6959,7 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
break;
}
M_DrawCharacterIconAndEngine(4, BASEVIDHEIGHT-(4+16), i, colormap, (i != skin));
M_DrawCharacterIconAndEngine(4, BASEVIDHEIGHT-(4+16), i, colormap, skin);
}
break;
}
@ -8324,7 +8357,7 @@ static void M_DrawStatsChars(void)
{
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);