mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-29 20:50:38 +00:00
Merge branch 'lap-anim-update' into 'master'
Lap start animation update See merge request KartKrew/Kart!75
This commit is contained in:
commit
840d964800
4 changed files with 72 additions and 27 deletions
|
@ -280,6 +280,7 @@ typedef enum
|
||||||
|
|
||||||
k_throwdir, // Held dir of controls; 1 = forward, 0 = none, -1 = backward (was "player->heldDir")
|
k_throwdir, // Held dir of controls; 1 = forward, 0 = none, -1 = backward (was "player->heldDir")
|
||||||
k_lapanimation, // Used to show the lap start wing logo animation
|
k_lapanimation, // Used to show the lap start wing logo animation
|
||||||
|
k_laphand, // Lap hand gfx to use; 0 = none, 1 = :ok_hand:, 2 = :thumbs_up:, 3 = :thumps_down:
|
||||||
k_cardanimation, // Used to determine the position of some full-screen Battle Mode graphics
|
k_cardanimation, // Used to determine the position of some full-screen Battle Mode graphics
|
||||||
k_voices, // Used to stop the player saying more voices than it should
|
k_voices, // Used to stop the player saying more voices than it should
|
||||||
k_tauntvoices, // Used to specifically stop taunt voice spam
|
k_tauntvoices, // Used to specifically stop taunt voice spam
|
||||||
|
|
|
@ -7867,6 +7867,7 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
|
|
||||||
"THROWDIR",
|
"THROWDIR",
|
||||||
"LAPANIMATION",
|
"LAPANIMATION",
|
||||||
|
"LAPHAND",
|
||||||
"CARDANIMATION",
|
"CARDANIMATION",
|
||||||
"VOICES",
|
"VOICES",
|
||||||
"TAUNTVOICES",
|
"TAUNTVOICES",
|
||||||
|
|
60
src/k_kart.c
60
src/k_kart.c
|
@ -5577,6 +5577,7 @@ static patch_t *kp_lapanim_lap[7];
|
||||||
static patch_t *kp_lapanim_final[11];
|
static patch_t *kp_lapanim_final[11];
|
||||||
static patch_t *kp_lapanim_number[10][3];
|
static patch_t *kp_lapanim_number[10][3];
|
||||||
static patch_t *kp_lapanim_emblem;
|
static patch_t *kp_lapanim_emblem;
|
||||||
|
static patch_t *kp_lapanim_hand[3];
|
||||||
|
|
||||||
void K_LoadKartHUDGraphics(void)
|
void K_LoadKartHUDGraphics(void)
|
||||||
{
|
{
|
||||||
|
@ -5796,6 +5797,13 @@ void K_LoadKartHUDGraphics(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
kp_lapanim_emblem = (patch_t *) W_CachePatchName("K_LAPE00", PU_HUDGFX);
|
kp_lapanim_emblem = (patch_t *) W_CachePatchName("K_LAPE00", PU_HUDGFX);
|
||||||
|
|
||||||
|
sprintf(buffer, "K_LAPH0x");
|
||||||
|
for (i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
buffer[7] = '0'+(i+1);
|
||||||
|
kp_lapanim_hand[i] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// For the item toggle menu
|
// For the item toggle menu
|
||||||
|
@ -7376,41 +7384,57 @@ static void K_drawLapStartAnim(void)
|
||||||
{
|
{
|
||||||
// This is an EVEN MORE insanely complicated animation.
|
// This is an EVEN MORE insanely complicated animation.
|
||||||
const UINT8 progress = 80-stplyr->kartstuff[k_lapanimation];
|
const UINT8 progress = 80-stplyr->kartstuff[k_lapanimation];
|
||||||
|
UINT8 *colormap = R_GetTranslationColormap(TC_DEFAULT, stplyr->skincolor, 0);
|
||||||
|
|
||||||
V_DrawScaledPatch(BASEVIDWIDTH/2 + (32*max(0, stplyr->kartstuff[k_lapanimation]-76)),
|
V_DrawFixedPatch((BASEVIDWIDTH/2 + (32*max(0, stplyr->kartstuff[k_lapanimation]-76)))*FRACUNIT,
|
||||||
56 - (32*max(0, progress-76)),
|
(48 - (32*max(0, progress-76)))*FRACUNIT,
|
||||||
0, kp_lapanim_emblem);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_emblem, colormap);
|
||||||
|
|
||||||
|
if (stplyr->kartstuff[k_laphand] >= 1 && stplyr->kartstuff[k_laphand] <= 3)
|
||||||
|
{
|
||||||
|
V_DrawFixedPatch((BASEVIDWIDTH/2 + (32*max(0, stplyr->kartstuff[k_lapanimation]-76)))*FRACUNIT,
|
||||||
|
(48 - (32*max(0, progress-76))
|
||||||
|
+ 4 - abs((leveltime % 8) - 4))*FRACUNIT,
|
||||||
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_hand[stplyr->kartstuff[k_laphand]-1], NULL);
|
||||||
|
}
|
||||||
|
|
||||||
if (stplyr->laps == (UINT8)(cv_numlaps.value - 1))
|
if (stplyr->laps == (UINT8)(cv_numlaps.value - 1))
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(27 - (32*max(0, progress-76)),
|
V_DrawFixedPatch((62 - (32*max(0, progress-76)))*FRACUNIT, // 27
|
||||||
32,
|
(-6)*FRACUNIT, // 24
|
||||||
0, kp_lapanim_final[min(progress/2, 10)]);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_final[min(progress/2, 10)], NULL);
|
||||||
|
|
||||||
if (progress/2-12 >= 0)
|
if (progress/2-12 >= 0)
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(194 + (32*max(0, progress-76)),
|
V_DrawFixedPatch((188 + (32*max(0, progress-76)))*FRACUNIT, // 194
|
||||||
32,
|
(-6)*FRACUNIT, // 24
|
||||||
0, kp_lapanim_lap[min(progress/2-12, 6)]);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_lap[min(progress/2-12, 6)], NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(61 - (32*max(0, progress-76)),
|
V_DrawFixedPatch((82 - (32*max(0, progress-76)))*FRACUNIT, // 61
|
||||||
32,
|
(-6)*FRACUNIT, // 24
|
||||||
0, kp_lapanim_lap[min(progress/2, 6)]);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_lap[min(progress/2, 6)], NULL);
|
||||||
|
|
||||||
if (progress/2-8 >= 0)
|
if (progress/2-8 >= 0)
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(194 + (32*max(0, progress-76)),
|
V_DrawFixedPatch((188 + (32*max(0, progress-76)))*FRACUNIT, // 194
|
||||||
32,
|
(-6)*FRACUNIT, // 24
|
||||||
0, kp_lapanim_number[(((UINT32)stplyr->laps+1) / 10)][min(progress/2-8, 2)]);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_number[(((UINT32)stplyr->laps+1) / 10)][min(progress/2-8, 2)], NULL);
|
||||||
|
|
||||||
if (progress/2-10 >= 0)
|
if (progress/2-10 >= 0)
|
||||||
{
|
{
|
||||||
V_DrawScaledPatch(221 + (32*max(0, progress-76)),
|
V_DrawFixedPatch((208 + (32*max(0, progress-76)))*FRACUNIT, // 221
|
||||||
32,
|
(-6)*FRACUNIT, // 24
|
||||||
0, kp_lapanim_number[(((UINT32)stplyr->laps+1) % 10)][min(progress/2-10, 2)]);
|
FRACUNIT, V_HUDTRANS,
|
||||||
|
kp_lapanim_number[(((UINT32)stplyr->laps+1) % 10)][min(progress/2-10, 2)], NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
37
src/p_spec.c
37
src/p_spec.c
|
@ -4196,7 +4196,34 @@ DoneSection2:
|
||||||
{
|
{
|
||||||
if (player->starpostcount >= numstarposts/2) // srb2kart: must have touched *enough* starposts (was originally "(player->starpostnum == numstarposts)")
|
if (player->starpostcount >= numstarposts/2) // srb2kart: must have touched *enough* starposts (was originally "(player->starpostnum == numstarposts)")
|
||||||
{
|
{
|
||||||
|
UINT8 i;
|
||||||
|
UINT8 nump = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
|
{
|
||||||
|
if (!playeringame[i] || players[i].spectator)
|
||||||
|
continue;
|
||||||
|
nump++;
|
||||||
|
}
|
||||||
|
|
||||||
player->laps++;
|
player->laps++;
|
||||||
|
|
||||||
|
// Set up lap animation vars
|
||||||
|
if (nump > 1)
|
||||||
|
{
|
||||||
|
if (K_IsPlayerLosing(player))
|
||||||
|
player->kartstuff[k_laphand] = 3;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (nump > 2 && player->kartstuff[k_position] == 1) // 1st place in 1v1 uses thumbs up
|
||||||
|
player->kartstuff[k_laphand] = 1;
|
||||||
|
else
|
||||||
|
player->kartstuff[k_laphand] = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
player->kartstuff[k_laphand] = 0; // No hands in FREE PLAY
|
||||||
|
|
||||||
player->kartstuff[k_lapanimation] = 80;
|
player->kartstuff[k_lapanimation] = 80;
|
||||||
|
|
||||||
if (player->pflags & PF_NIGHTSMODE)
|
if (player->pflags & PF_NIGHTSMODE)
|
||||||
|
@ -4237,15 +4264,7 @@ DoneSection2:
|
||||||
|
|
||||||
// Figure out how many are playing on the last lap, to prevent spectate griefing
|
// Figure out how many are playing on the last lap, to prevent spectate griefing
|
||||||
if (!nospectategrief && player->laps >= (UINT8)(cv_numlaps.value - 1))
|
if (!nospectategrief && player->laps >= (UINT8)(cv_numlaps.value - 1))
|
||||||
{
|
nospectategrief = nump;
|
||||||
UINT8 i;
|
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
|
||||||
{
|
|
||||||
if (!playeringame[i] || players[i].spectator)
|
|
||||||
continue;
|
|
||||||
nospectategrief++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (player->starpostnum)
|
else if (player->starpostnum)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue