mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-03-22 02:41:56 +00:00
CHECK indicator
Turn it off with the kartcheck console var
This commit is contained in:
parent
cc01d2c3f0
commit
9522e1b95e
3 changed files with 113 additions and 0 deletions
|
@ -315,6 +315,7 @@ consvar_t cv_tripleredshell = {"tripleredshells", "On", CV_NETVAR|CV_CHEAT, CV
|
|||
consvar_t cv_lightning = {"lightning", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
||||
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_kartcheck = {"kartcheck", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_kartcc = {"kartcc", "100cc", CV_NETVAR, kartcc_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
static CV_PossibleValue_t kartballoons_cons_t[] = {{1, "MIN"}, {99, "MAX"}, {0, NULL}};
|
||||
consvar_t cv_kartballoons = {"kartballoons", "3", CV_NETVAR, kartballoons_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
|
|
@ -105,6 +105,7 @@ extern consvar_t cv_greenshell, cv_redshell, cv_laserwisp, cv_triplegreenshell,
|
|||
extern consvar_t cv_blueshell, cv_jaws, cv_fireflower, cv_tripleredshell, cv_lightning;
|
||||
|
||||
extern consvar_t cv_karthud;
|
||||
extern consvar_t cv_kartcheck;
|
||||
extern consvar_t cv_kartcc;
|
||||
extern consvar_t cv_kartballoons;
|
||||
extern consvar_t cv_kartfrantic;
|
||||
|
|
111
src/k_kart.c
111
src/k_kart.c
|
@ -301,6 +301,7 @@ void K_RegisterKartStuff(void)
|
|||
CV_RegisterVar(&cv_tripleredshell);
|
||||
CV_RegisterVar(&cv_lightning);
|
||||
|
||||
CV_RegisterVar(&cv_kartcheck);
|
||||
CV_RegisterVar(&cv_kartcc);
|
||||
CV_RegisterVar(&cv_kartballoons);
|
||||
CV_RegisterVar(&cv_kartfrantic);
|
||||
|
@ -3431,6 +3432,12 @@ static patch_t *kp_triplegreenshellicon;
|
|||
static patch_t *kp_singleredshellicon;
|
||||
static patch_t *kp_doubleredshellicon;
|
||||
static patch_t *kp_tripleredshellicon;
|
||||
static patch_t *kp_check;
|
||||
static patch_t *kp_checkw;
|
||||
static patch_t *kp_checkstar;
|
||||
static patch_t *kp_checkstarw;
|
||||
static patch_t *kp_checkmega;
|
||||
static patch_t *kp_checkmegaw;
|
||||
/*
|
||||
static patch_t *kp_neonoitem;
|
||||
static patch_t *kp_electroshield;
|
||||
|
@ -3567,6 +3574,14 @@ void K_LoadKartHUDGraphics(void)
|
|||
kp_doubleredshellicon = W_CachePatchName("K_TRRED2", PU_HUDGFX);
|
||||
kp_tripleredshellicon = W_CachePatchName("K_TRRED3", PU_HUDGFX);
|
||||
|
||||
// CHECK indicators
|
||||
kp_check = W_CachePatchName("K_CHECK1", PU_HUDGFX);
|
||||
kp_checkw = W_CachePatchName("K_CHECK2", PU_HUDGFX);
|
||||
kp_checkstar = W_CachePatchName("K_CHECK3", PU_HUDGFX);
|
||||
kp_checkstarw = W_CachePatchName("K_CHECK4", PU_HUDGFX);
|
||||
kp_checkmega = W_CachePatchName("K_CHECK5", PU_HUDGFX);
|
||||
kp_checkmegaw = W_CachePatchName("K_CHECK6", PU_HUDGFX);
|
||||
|
||||
/*
|
||||
// Neo-Kart item windows
|
||||
kp_electroshield = W_CachePatchName("KNITELEC", PU_HUDGFX);
|
||||
|
@ -4176,6 +4191,98 @@ static void K_drawKartSpeedometer(void)
|
|||
}
|
||||
}
|
||||
|
||||
fixed_t K_FindCheckX(INT32 p, fixed_t mx, fixed_t my)
|
||||
{
|
||||
fixed_t camx, camy, dist, x;
|
||||
angle_t camangle;
|
||||
camera_t *c = &camera;
|
||||
|
||||
if (players[p].awayviewtics)
|
||||
{
|
||||
camx = players[p].awayviewmobj->x;
|
||||
camy = players[p].awayviewmobj->y;
|
||||
camangle = players[p].awayviewmobj->angle;
|
||||
}
|
||||
else if (c->chase)
|
||||
{
|
||||
camx = c->x;
|
||||
camy = c->y;
|
||||
camangle = c->angle;
|
||||
}
|
||||
else
|
||||
{
|
||||
camx = players[p].mo->x;
|
||||
camy = players[p].mo->y;
|
||||
camangle = players[p].mo->angle;
|
||||
}
|
||||
|
||||
dist = abs(R_PointToDist2(camx, camy, mx, my));
|
||||
if (dist > RING_DIST)
|
||||
return -320;
|
||||
|
||||
camangle = camangle+ANGLE_180;
|
||||
x = camangle-R_PointToAngle2(camx, camy, mx, my);
|
||||
|
||||
if (x > ANGLE_90 || x < ANGLE_270)
|
||||
return -320;
|
||||
else
|
||||
x = FixedMul(FINETANGENT(((x+ANGLE_90)>>ANGLETOFINESHIFT) & FINEMASK), 160<<FRACBITS)+(160<<FRACBITS);
|
||||
|
||||
return 160-(x>>FRACBITS);
|
||||
}
|
||||
|
||||
static void K_drawKartPlayerCheck(void)
|
||||
{
|
||||
INT32 i;
|
||||
UINT8 *colormap;
|
||||
fixed_t x;
|
||||
patch_t *localpatch;
|
||||
|
||||
if (splitscreen)
|
||||
return;
|
||||
|
||||
if (players[displayplayer].mo == NULL)
|
||||
return;
|
||||
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
if (i == displayplayer)
|
||||
continue;
|
||||
if (players[i].mo == NULL)
|
||||
continue;
|
||||
|
||||
if ((players[i].kartstuff[k_startimer] <= 0) && (leveltime & 2))
|
||||
{
|
||||
if (players[i].kartstuff[k_megashroom] || players[i].kartstuff[k_growshrinktimer] > 0)
|
||||
localpatch = kp_checkmegaw;
|
||||
else if (players[i].kartstuff[k_star] || players[i].kartstuff[k_startimer])
|
||||
localpatch = kp_checkstarw;
|
||||
else
|
||||
localpatch = kp_checkw;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (players[i].kartstuff[k_megashroom] || players[i].kartstuff[k_growshrinktimer] > 0)
|
||||
localpatch = kp_checkmega;
|
||||
else if (players[i].kartstuff[k_star] || players[i].kartstuff[k_startimer])
|
||||
localpatch = kp_checkstar;
|
||||
else
|
||||
localpatch = kp_check;
|
||||
}
|
||||
|
||||
x = K_FindCheckX(displayplayer, players[i].mo->x, players[i].mo->y);
|
||||
if (x <= 320 && x >= 0)
|
||||
{
|
||||
if (x < 14)
|
||||
x = 14;
|
||||
else if (x > 306)
|
||||
x = 306;
|
||||
colormap = R_GetTranslationColormap(-1, players[i].mo->color, 0);
|
||||
V_DrawMappedPatch(x, 200, 0, localpatch, colormap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void K_drawStartLakitu(void)
|
||||
{
|
||||
patch_t *localpatch = kp_nodraw;
|
||||
|
@ -4287,6 +4394,10 @@ void K_drawKartHUD(void)
|
|||
// This is handled by console/menu values
|
||||
K_initKartHUD();
|
||||
|
||||
// Draw the CHECK indicator first, so it's overlapped by everything else
|
||||
if (cv_kartcheck.value)
|
||||
K_drawKartPlayerCheck();
|
||||
|
||||
// Draw Lakitu
|
||||
// This is done first so that regardless of HUD layers,
|
||||
// he'll appear to be in the 'real world'
|
||||
|
|
Loading…
Reference in a new issue