From f3f4ac16de9cc6dbf05abcbe07ed1df16536b0a1 Mon Sep 17 00:00:00 2001 From: AJ Martinez Date: Wed, 1 Mar 2023 05:18:01 -0700 Subject: [PATCH] SPB Attack: medals, emblems, and fixes --- src/console.c | 2 ++ src/g_game.c | 5 ++++- src/k_hud.c | 1 - src/menus/play-local-race-time-attack.c | 7 ++++++- src/p_spec.c | 6 +++--- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/console.c b/src/console.c index 04a9fdce4..a86db72f2 100644 --- a/src/console.c +++ b/src/console.c @@ -923,8 +923,10 @@ boolean CON_Responder(event_t *ev) // check for console toggle key if (ev->type != ev_console) { + #ifndef DEVELOP // I have driven this course 45 times and I just want to give myself rocketsneakers if (modeattacking || metalrecording || marathonmode) return false; + #endif if (ev->data1 >= NUMKEYS) // See also: HUD_Responder { diff --git a/src/g_game.c b/src/g_game.c index 59ce1c743..8b4af1536 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -514,7 +514,7 @@ void G_UpdateTimeStickerMedals(UINT16 map, boolean showownrecord) } case ET_MAP: { - if (emblem->flags & ME_SPBATTACK) + if (emblem->flags & ME_SPBATTACK && cv_dummyspbattack.value) break; goto bademblem; } @@ -522,6 +522,9 @@ void G_UpdateTimeStickerMedals(UINT16 map, boolean showownrecord) goto bademblem; } + if (cv_dummyspbattack.value && !(emblem->flags & ME_SPBATTACK)) + return; + if (!gamedata->collected[(emblem-emblemlocations)] && gonnadrawtime) break; diff --git a/src/k_hud.c b/src/k_hud.c index a3accce03..45037d1d0 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1669,7 +1669,6 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT32 splitflags, U bombxoff = sqrt(bombxoff) - 5; bombxoff = max(0, min(bombxoff, widthbar)); V_DrawScaledPatch(160 + widthbar/2 - bombxoff, ybar - 7, FRACUNIT, W_CachePatchName("SPBMMAP", PU_CACHE)); - } } diff --git a/src/menus/play-local-race-time-attack.c b/src/menus/play-local-race-time-attack.c index 687c282a6..406e4aef8 100644 --- a/src/menus/play-local-race-time-attack.c +++ b/src/menus/play-local-race-time-attack.c @@ -10,7 +10,12 @@ #include "../m_misc.h" // M_MkdirEach #include "../z_zone.h" // Z_StrDup/Z_Free -consvar_t cv_dummyspbattack = CVAR_INIT ("dummyspbattack", "Off", CV_HIDDEN, CV_OnOff, NULL); +static void CV_SPBAttackChanged(void) +{ + G_UpdateTimeStickerMedals(levellist.choosemap, false); +} + +consvar_t cv_dummyspbattack = CVAR_INIT ("dummyspbattack", "Off", CV_HIDDEN|CV_CALL, CV_OnOff, CV_SPBAttackChanged); // see ta_e menuitem_t PLAY_TimeAttack[] = diff --git a/src/p_spec.c b/src/p_spec.c index 4044cca8a..aa480024e 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1973,10 +1973,10 @@ static void K_HandleLapIncrement(player_t *player) rainbowstartavailable = false; } - if (player->laps == 1 && modeattacking & ATTACKING_SPB && false) + if (player->laps == 1 && modeattacking & ATTACKING_SPB) { - P_SpawnMobj(player->mo->x - FixedMul(8000*mapobjectscale, cos(player->mo->angle)), - player->mo->y - FixedMul(8000*mapobjectscale, sin(player->mo->angle)), + P_SpawnMobj(player->mo->x - FixedMul(1000*mapobjectscale, FINECOSINE(player->mo->angle >> ANGLETOFINESHIFT)), + player->mo->y - FixedMul(1000*mapobjectscale, FINESINE(player->mo->angle >> ANGLETOFINESHIFT)), player->mo->z, MT_SPB); }