diff --git a/src/g_game.c b/src/g_game.c index e483d8c77..b6509688a 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -567,12 +567,16 @@ bademblem: void G_TickTimeStickerMedals(void) { + if (stickermedalinfo.jitter) + stickermedalinfo.jitter--; + if (players[consoleplayer].realtime > stickermedalinfo.timetoreach) { if (stickermedalinfo.norecord == false) { S_StartSound(NULL, sfx_s3k72); //sfx_s26d); -- you STOLE fizzy lifting drinks stickermedalinfo.norecord = true; + stickermedalinfo.jitter = 4; } } else @@ -622,11 +626,14 @@ void G_UpdateRecords(void) if ((earnedEmblems = M_CheckLevelEmblems())) { CONS_Printf(M_GetText("\x82" "Earned %hu medal%s for Record Attack records.\n"), (UINT16)earnedEmblems, earnedEmblems > 1 ? "s" : ""); + if (stickermedalinfo.regenemblem != NULL && gamedata->collected[(stickermedalinfo.regenemblem-emblemlocations)]) { G_UpdateTimeStickerMedals(gamemap-1); } + + stickermedalinfo.jitter = 4*earnedEmblems; } M_UpdateUnlockablesAndExtraEmblems(true); diff --git a/src/g_game.h b/src/g_game.h index 648aab278..df8f0833a 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -205,6 +205,7 @@ void G_EndGame(void); // moved from y_inter.c/h and renamed extern struct stickermedalinfo { UINT8 visiblecount; + UINT8 jitter; boolean norecord; tic_t timetoreach; emblem_t *emblems[MAXMEDALVISIBLECOUNT]; diff --git a/src/k_hud.c b/src/k_hud.c index 3c7272725..86aee3c3e 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1562,6 +1562,15 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, UINT8 mode) { if (!mode) { + if (stickermedalinfo.jitter) + { + jitter = stickermedalinfo.jitter+3; + if (jitter & 2) + workx += jitter/4; + else + workx -= jitter/4; + } + if (stickermedalinfo.norecord == true) { splitflags = (splitflags &~ V_HUDTRANS)|V_HUDTRANSHALF;