mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Camera height affects hud transparency of HUD elements like new lap, position bulb...
Not the most pretty code written as ideally there would be a common codepath, but it's functional.
This commit is contained in:
parent
3d5e60241c
commit
9c6031c986
4 changed files with 21 additions and 9 deletions
|
|
@ -6741,7 +6741,9 @@ static void K_drawKartStartBulbs(void)
|
|||
}
|
||||
}
|
||||
|
||||
V_DrawFixedPatch(x, y, FRACUNIT, V_SNAPTOTOP|V_SPLITSCREEN,
|
||||
INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : 0;
|
||||
|
||||
V_DrawFixedPatch(x, y, FRACUNIT, V_SNAPTOTOP|V_SPLITSCREEN|hudtransflags,
|
||||
(r_splitscreen ? kp_prestartbulb_split[patchnum] : kp_prestartbulb[patchnum]), NULL);
|
||||
x += spacing;
|
||||
}
|
||||
|
|
@ -6794,6 +6796,7 @@ static void K_drawKartStartBulbs(void)
|
|||
static void K_drawKartStartCountdown(void)
|
||||
{
|
||||
INT32 pnum = 0;
|
||||
INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : 0;
|
||||
|
||||
if (leveltime >= introtime && leveltime < starttime-(3*TICRATE))
|
||||
{
|
||||
|
|
@ -6835,7 +6838,7 @@ static void K_drawKartStartCountdown(void)
|
|||
if (r_splitscreen) // splitscreen
|
||||
pnum += 10;
|
||||
|
||||
V_DrawScaledPatch(STCD_X - (SHORT(kp_startcountdown[pnum]->width)/2), STCD_Y - (SHORT(kp_startcountdown[pnum]->height)/2), V_SPLITSCREEN, kp_startcountdown[pnum]);
|
||||
V_DrawScaledPatch(STCD_X - (SHORT(kp_startcountdown[pnum]->width)/2), STCD_Y - (SHORT(kp_startcountdown[pnum]->height)/2), V_SPLITSCREEN|hudtransflags, kp_startcountdown[pnum]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -7107,9 +7110,11 @@ static void K_drawLapStartAnim(void)
|
|||
oldval = (48 - (32 * std::max(0, progressOld - 76))) * FRACUNIT;
|
||||
interpy = R_InterpolateFixed(oldval, newval);
|
||||
|
||||
INT32 hudtransflags = (camera[R_GetViewNumber()].chaseheight > HUDTRANS_CAMHEIGHT_MAX) ? V_30TRANS : V_HUDTRANS;
|
||||
|
||||
V_DrawFixedPatch(
|
||||
interpx, interpy,
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
(modeattacking ? kp_lapanim_emblem[1] : kp_lapanim_emblem[0]), colormap);
|
||||
|
||||
if (stplyr->karthud[khud_laphand] >= 1 && stplyr->karthud[khud_laphand] <= 3)
|
||||
|
|
@ -7120,7 +7125,7 @@ static void K_drawLapStartAnim(void)
|
|||
|
||||
V_DrawFixedPatch(
|
||||
interpx, interpy,
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_hand[stplyr->karthud[khud_laphand]-1], NULL);
|
||||
}
|
||||
|
||||
|
|
@ -7133,7 +7138,7 @@ static void K_drawLapStartAnim(void)
|
|||
V_DrawFixedPatch(
|
||||
interpx, // 27
|
||||
30*FRACUNIT, // 24
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_final[std::min(progress/2, 10)], NULL);
|
||||
|
||||
if (progress/2-12 >= 0)
|
||||
|
|
@ -7145,7 +7150,7 @@ static void K_drawLapStartAnim(void)
|
|||
V_DrawFixedPatch(
|
||||
interpx, // 194
|
||||
30*FRACUNIT, // 24
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_lap[std::min(progress/2-12, 6)], NULL);
|
||||
}
|
||||
}
|
||||
|
|
@ -7158,7 +7163,7 @@ static void K_drawLapStartAnim(void)
|
|||
V_DrawFixedPatch(
|
||||
interpx, // 61
|
||||
30*FRACUNIT, // 24
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_lap[std::min(progress/2, 6)], NULL);
|
||||
|
||||
if (progress/2-8 >= 0)
|
||||
|
|
@ -7170,7 +7175,7 @@ static void K_drawLapStartAnim(void)
|
|||
V_DrawFixedPatch(
|
||||
interpx, // 194
|
||||
30*FRACUNIT, // 24
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_number[(((UINT32)stplyr->latestlap) / 10)][std::min(progress/2-8, 2)], NULL);
|
||||
|
||||
if (progress/2-10 >= 0)
|
||||
|
|
@ -7182,7 +7187,7 @@ static void K_drawLapStartAnim(void)
|
|||
V_DrawFixedPatch(
|
||||
interpx, // 221
|
||||
30*FRACUNIT, // 24
|
||||
FRACUNIT, V_SNAPTOTOP|V_HUDTRANS,
|
||||
FRACUNIT, V_SNAPTOTOP|hudtransflags,
|
||||
kp_lapanim_number[(((UINT32)stplyr->latestlap) % 10)][std::min(progress/2-10, 2)], NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ extern "C" {
|
|||
|
||||
#define MARGINLEVELS 24
|
||||
|
||||
#define HUDTRANS_CAMHEIGHT_MAX (120*FRACUNIT) // The camera height past this point where hud transparency should take affect
|
||||
|
||||
extern INT32 MINI_X, MINI_Y;
|
||||
|
||||
struct trackingResult_t
|
||||
|
|
|
|||
|
|
@ -97,6 +97,8 @@ struct camera_t
|
|||
|
||||
angle_t aiming;
|
||||
|
||||
fixed_t chaseheight; // Effective chasecam height, unscaled
|
||||
|
||||
// Things used by FS cameras.
|
||||
fixed_t viewheight;
|
||||
angle_t startangle;
|
||||
|
|
|
|||
|
|
@ -3439,6 +3439,9 @@ boolean P_MoveChaseCamera(player_t *player, camera_t *thiscam, boolean resetcall
|
|||
}
|
||||
}
|
||||
|
||||
thiscam->chaseheight = FixedDiv(camheight, cameraScale);
|
||||
// CONS_Printf("thiscam camheight %d\n", thiscam->chaseheight/FRACUNIT);
|
||||
|
||||
if (loop_in < loop->zoom_in_speed)
|
||||
{
|
||||
fixed_t f = loop_out < loop->zoom_out_speed
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue