mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-20 21:52:33 +00:00
Merge branch 'goner-final' into 'master'
Goner Final Closes #1182 See merge request KartKrew/Kart!2144
This commit is contained in:
commit
55d71d7674
8 changed files with 128 additions and 23 deletions
106
src/f_finale.c
106
src/f_finale.c
|
|
@ -1422,6 +1422,8 @@ static void F_CacheTitleScreen(void)
|
|||
{
|
||||
UINT16 i;
|
||||
|
||||
kts_copyright = W_CachePatchName("KTSCR", PU_PATCH_LOWPRIORITY);
|
||||
|
||||
switch (curttmode)
|
||||
{
|
||||
case TTMODE_NONE:
|
||||
|
|
@ -1439,7 +1441,6 @@ static void F_CacheTitleScreen(void)
|
|||
{
|
||||
kts_electricity[i] = W_CachePatchName(va("KTSELCT%.1d", i+1), PU_PATCH_LOWPRIORITY);
|
||||
}
|
||||
kts_copyright = W_CachePatchName("KTSCR", PU_PATCH_LOWPRIORITY);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1547,10 +1548,23 @@ void F_StartTitleScreen(void)
|
|||
void F_VersionDrawer(void)
|
||||
{
|
||||
// An adapted thing from old menus - most games have version info on the title screen now...
|
||||
|
||||
INT32 texty = vid.height - 10*vid.dupy;
|
||||
INT32 trans = 5;
|
||||
|
||||
if (gamestate == GS_TITLESCREEN)
|
||||
{
|
||||
trans = 10 - (finalecount - (3*TICRATE)/2)/3;
|
||||
if (trans >= 10)
|
||||
return;
|
||||
if (trans < 5)
|
||||
trans = 5;
|
||||
}
|
||||
|
||||
trans = (trans<<V_ALPHASHIFT)|V_NOSCALESTART;
|
||||
|
||||
#define addtext(f, str) {\
|
||||
V_DrawThinString(vid.dupx, texty, V_NOSCALESTART|f, str);\
|
||||
V_DrawThinString(vid.dupx, texty, trans|f, str);\
|
||||
texty -= 10*vid.dupy;\
|
||||
}
|
||||
if (customversionstring[0] != '\0')
|
||||
|
|
@ -1563,22 +1577,24 @@ void F_VersionDrawer(void)
|
|||
// Development -- show revision / branch info
|
||||
#if defined(TESTERS)
|
||||
addtext(V_SKYMAP, "Tester client");
|
||||
addtext(V_TRANSLUCENT, va("%s", compdate));
|
||||
addtext(0, va("%s", compdate));
|
||||
#elif defined(DEVELOP)
|
||||
addtext(V_TRANSLUCENT, va("%s %s", comprevision, compnote));
|
||||
addtext(V_TRANSLUCENT, D_GetFancyBranchName());
|
||||
#else // Regular build
|
||||
addtext(V_TRANSLUCENT, va("%s", VERSIONSTRING));
|
||||
#endif
|
||||
addtext(0, va("%s %s", comprevision, compnote));
|
||||
addtext(0, D_GetFancyBranchName());
|
||||
|
||||
if (compoptimized)
|
||||
{
|
||||
addtext(V_TRANSLUCENT, va("%s build", comptype));
|
||||
addtext(0, va("%s build", comptype));
|
||||
}
|
||||
else
|
||||
{
|
||||
addtext(V_ORANGEMAP, va("%s build (no optimizations)", comptype));
|
||||
}
|
||||
|
||||
#else // Regular build
|
||||
addtext(trans, va("%s", VERSIONSTRING));
|
||||
#endif
|
||||
|
||||
if (compuncommitted)
|
||||
{
|
||||
addtext(V_REDMAP|V_STRINGDANCE, "! UNCOMMITTED CHANGES !");
|
||||
|
|
@ -1587,6 +1603,9 @@ void F_VersionDrawer(void)
|
|||
#undef addtext
|
||||
}
|
||||
|
||||
#define GONERTYPEWRITERDURATION (5)
|
||||
#define GONERTYPEWRITERWAIT (TICRATE/2)
|
||||
|
||||
// (no longer) De-Demo'd Title Screen
|
||||
void F_TitleScreenDrawer(void)
|
||||
{
|
||||
|
|
@ -1617,7 +1636,41 @@ void F_TitleScreenDrawer(void)
|
|||
goto luahook;
|
||||
}
|
||||
|
||||
switch (curttmode)
|
||||
if (cache_gametrulystarted == false)
|
||||
{
|
||||
INT32 trans;
|
||||
|
||||
if (finalecount >= GONERTYPEWRITERWAIT)
|
||||
{
|
||||
INT32 checkcount = finalecount - GONERTYPEWRITERWAIT;
|
||||
const char *typetext = "RING RACERS";
|
||||
INT32 bx = V_TitleCardStringWidth(typetext, false);
|
||||
|
||||
V_DrawTitleCardString((BASEVIDWIDTH - bx)/2, 80, typetext, V_TRANSLUCENT, true, (checkcount/GONERTYPEWRITERDURATION), 0, false);
|
||||
|
||||
if (checkcount > 2*TICRATE)
|
||||
{
|
||||
trans = 10 - (checkcount - 2*TICRATE)/4;
|
||||
if (trans < 10)
|
||||
{
|
||||
if (trans < 0)
|
||||
trans = 0;
|
||||
trans <<= V_ALPHASHIFT;
|
||||
V_DrawCenteredThinString(BASEVIDWIDTH/2, 80 + 32, V_AQUAMAP|trans, "Press any input to proceed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
trans = 10 - finalecount/5;
|
||||
if (trans < 10)
|
||||
{
|
||||
if (trans < 0)
|
||||
trans = 0;
|
||||
trans <<= V_ALPHASHIFT;
|
||||
V_DrawCenteredMenuString(BASEVIDWIDTH/2, (BASEVIDHEIGHT/2) - 7, trans, "Dr. Robotnik's");
|
||||
}
|
||||
}
|
||||
else switch (curttmode)
|
||||
{
|
||||
case TTMODE_NONE:
|
||||
{
|
||||
|
|
@ -1626,7 +1679,7 @@ void F_TitleScreenDrawer(void)
|
|||
|
||||
case TTMODE_RINGRACERS:
|
||||
{
|
||||
if (cache_gametrulystarted == true)
|
||||
//if (cache_gametrulystarted == true)
|
||||
{
|
||||
const char *eggName = "eggman";
|
||||
INT32 eggSkin = R_SkinAvailableEx(eggName, false);
|
||||
|
|
@ -1658,12 +1711,7 @@ void F_TitleScreenDrawer(void)
|
|||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_bumper, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, (BASEVIDHEIGHT/2) - 4, 0, "Press any button/key to continue");
|
||||
}
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_copyright, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1689,6 +1737,8 @@ void F_TitleScreenDrawer(void)
|
|||
}
|
||||
}
|
||||
|
||||
V_DrawFixedPatch(0, 0, FRACUNIT, 0, kts_copyright, NULL);
|
||||
|
||||
luahook:
|
||||
// The title drawer is sometimes called without first being started
|
||||
// In order to avoid use-before-initialization crashes, let's check and
|
||||
|
|
@ -1721,7 +1771,11 @@ void F_TitleScreenTicker(boolean run)
|
|||
{
|
||||
if (finalecount == 0)
|
||||
{
|
||||
if (cache_gametrulystarted && !Music_Playing("title"))
|
||||
if (!cache_gametrulystarted)
|
||||
{
|
||||
S_StartSound(NULL, sfx_s3k93);
|
||||
}
|
||||
else if (!Music_Playing("title"))
|
||||
{
|
||||
// Now start the music
|
||||
Music_Loop("title", looptitle);
|
||||
|
|
@ -1734,6 +1788,22 @@ void F_TitleScreenTicker(boolean run)
|
|||
}
|
||||
|
||||
finalecount++;
|
||||
|
||||
if (!cache_gametrulystarted && finalecount > GONERTYPEWRITERWAIT)
|
||||
{
|
||||
if (finalecount == GONERTYPEWRITERWAIT + 2*TICRATE + TICRATE/3)
|
||||
{
|
||||
S_StartSound(NULL, sfx_s3k61);
|
||||
}
|
||||
|
||||
if (((finalecount - GONERTYPEWRITERWAIT) % GONERTYPEWRITERDURATION) == 0)
|
||||
{
|
||||
// hardcoded for RING RACERS string
|
||||
INT32 lettercount = (finalecount - GONERTYPEWRITERWAIT)/GONERTYPEWRITERDURATION;
|
||||
if (lettercount != 5 && lettercount <= 11)
|
||||
S_StartSound(NULL, sfx_typri1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// don't trigger if doing anything besides idling on title
|
||||
|
|
@ -1906,6 +1976,8 @@ loadreplay:
|
|||
}
|
||||
}
|
||||
|
||||
#undef GONERTYPEWRITERDURATION
|
||||
|
||||
void F_AttractDemoTicker(void)
|
||||
{
|
||||
keypressed = false;
|
||||
|
|
|
|||
|
|
@ -197,22 +197,24 @@ void K_TimerInit(void)
|
|||
return;
|
||||
}
|
||||
|
||||
const boolean bossintro = K_CheckBossIntro();
|
||||
|
||||
// Rooooooolllling staaaaaaart
|
||||
if ((gametyperules & (GTR_ROLLINGSTART|GTR_CIRCUIT)) == (GTR_ROLLINGSTART|GTR_CIRCUIT))
|
||||
{
|
||||
S_StartSound(NULL, sfx_s25f);
|
||||
// The actual push occours in P_InitPlayers
|
||||
}
|
||||
else if (skipstats != 0)
|
||||
else if (skipstats != 0 && bossintro == false)
|
||||
{
|
||||
S_StartSound(NULL, sfx_endwrp);
|
||||
S_StartSound(NULL, sfx_s26c); //sfx_endwrp
|
||||
}
|
||||
|
||||
if ((gametyperules & (GTR_CATCHER|GTR_CIRCUIT)) == (GTR_CATCHER|GTR_CIRCUIT))
|
||||
{
|
||||
K_InitSpecialStage();
|
||||
}
|
||||
else if (K_CheckBossIntro() == true)
|
||||
else if (bossintro == true)
|
||||
;
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2547,7 +2547,7 @@ void M_DrawCharacterSelect(void)
|
|||
}
|
||||
|
||||
// Explosions when you've made your final selection
|
||||
M_DrawCharSelectExplosions(true, 82, 22);
|
||||
M_DrawCharSelectExplosions(true, basex + 82, 22);
|
||||
|
||||
for (i = 0; i < MAXSPLITSCREENPLAYERS; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -697,8 +697,15 @@ void M_StartControlPanel(void)
|
|||
{
|
||||
// No instantly skipping the titlescreen.
|
||||
// (We can change this timer later when extra animation is added.)
|
||||
if (finalecount < 1)
|
||||
if (finalecount < (
|
||||
M_GameTrulyStarted()
|
||||
? 1
|
||||
: 3*TICRATE
|
||||
)
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (menumessage.active)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "../i_time.h"
|
||||
#include "../k_menu.h"
|
||||
#include "../s_sound.h"
|
||||
#include "../m_cond.h"
|
||||
|
||||
// profile select
|
||||
menuitem_t OPTIONS_Profiles[] = {
|
||||
|
|
@ -118,6 +119,13 @@ void M_StartEditProfile(INT32 c)
|
|||
OPTIONS_EditProfile[popt_char].status |= IT_TRANSTEXT;
|
||||
}
|
||||
|
||||
// Setup variable tooltips.
|
||||
OPTIONS_EditProfile[popt_char].tooltip = (
|
||||
(gamedata && gamedata->numspraycans != 0 && gamedata->gotspraycans != 0)
|
||||
? "Default character and color."
|
||||
: "Default character."
|
||||
);
|
||||
|
||||
OPTIONS_EditProfileDef.prevMenu = currentMenu;
|
||||
M_SetupNextMenu(&OPTIONS_EditProfileDef, false);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ menuitem_t OPTIONS_EditProfile[] = {
|
|||
{IT_STRING | IT_SUBMENU, "Accessibility", "Acccessibility and quality of life options.",
|
||||
NULL, {.submenu = &OPTIONS_ProfileAccessibilityDef}, 0, 91},
|
||||
|
||||
{IT_STRING | IT_CALL, "Character", "Default character and color.",
|
||||
{IT_STRING | IT_CALL, "Character", NULL, // tooltip set in M_StartEditProfile
|
||||
NULL, {.routine = M_CharacterSelect}, 0, 111},
|
||||
|
||||
{IT_STRING | IT_CVAR | IT_CV_STRING, "Player Tag", "Name displayed online and in replays.",
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "k_battle.h"
|
||||
#include "k_specialstage.h"
|
||||
#include "k_pwrlv.h"
|
||||
#include "k_profiles.h"
|
||||
#include "k_grandprix.h"
|
||||
#include "k_respawn.h"
|
||||
#include "p_spec.h"
|
||||
|
|
@ -784,6 +785,19 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
gamedata->spraycans[can_id].map = gamemap-1;
|
||||
mapheaderinfo[gamemap-1]->cache_spraycan = can_id;
|
||||
|
||||
if (gamedata->gotspraycans == 0
|
||||
&& gametype == GT_TUTORIAL
|
||||
&& cv_ttlprofilen.value > 0
|
||||
&& cv_ttlprofilen.value < PR_GetNumProfiles())
|
||||
{
|
||||
profile_t *p = PR_GetProfile(cv_ttlprofilen.value);
|
||||
if (p->color == SKINCOLOR_NONE)
|
||||
{
|
||||
// Apply your favourite colour to the profile!
|
||||
p->color = gamedata->spraycans[can_id].col;
|
||||
}
|
||||
}
|
||||
|
||||
gamedata->gotspraycans++;
|
||||
|
||||
if (!M_UpdateUnlockablesAndExtraEmblems(true, true))
|
||||
|
|
|
|||
|
|
@ -719,6 +719,8 @@ void Y_PlayerStandingsDrawer(y_data_t *standings, INT32 xoffset)
|
|||
);
|
||||
}
|
||||
}
|
||||
else if (gamestate == GS_LEVEL)
|
||||
;
|
||||
else if (standings->rankingsmode != 0)
|
||||
{
|
||||
char *increasenum = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue