mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Challenges: Add "New Tutorial Data" popup alongside map unlock
Doesn't appear for Playground as it's explicitly not part of Tails' Way
This commit is contained in:
parent
08d8bc7f58
commit
b97e8a581e
2 changed files with 48 additions and 0 deletions
|
|
@ -1458,6 +1458,8 @@ extern struct challengesmenu_s {
|
||||||
boolean chaokeyadd, keywasadded;
|
boolean chaokeyadd, keywasadded;
|
||||||
UINT8 chaokeyhold;
|
UINT8 chaokeyhold;
|
||||||
|
|
||||||
|
UINT16 tutorialfound;
|
||||||
|
|
||||||
boolean requestflip;
|
boolean requestflip;
|
||||||
|
|
||||||
UINT16 unlockcount[CMC_MAX];
|
UINT16 unlockcount[CMC_MAX];
|
||||||
|
|
|
||||||
|
|
@ -376,6 +376,7 @@ menu_t *M_InterruptMenuWithChallenges(menu_t *desiredmenu)
|
||||||
challengesmenu.requestnew = false;
|
challengesmenu.requestnew = false;
|
||||||
challengesmenu.chaokeyadd = false;
|
challengesmenu.chaokeyadd = false;
|
||||||
challengesmenu.keywasadded = false;
|
challengesmenu.keywasadded = false;
|
||||||
|
challengesmenu.tutorialfound = NEXTMAP_INVALID;
|
||||||
challengesmenu.chaokeyhold = 0;
|
challengesmenu.chaokeyhold = 0;
|
||||||
challengesmenu.unlockcondition = NULL;
|
challengesmenu.unlockcondition = NULL;
|
||||||
|
|
||||||
|
|
@ -479,6 +480,7 @@ boolean M_CanKeyHiliTile(void)
|
||||||
enum {
|
enum {
|
||||||
CCTUTORIAL_KEYGEN = 0,
|
CCTUTORIAL_KEYGEN = 0,
|
||||||
CCTUTORIAL_MAJORSKIP,
|
CCTUTORIAL_MAJORSKIP,
|
||||||
|
CCTUTORIAL_TUTORIAL, // I heard you like tutorials, so I...
|
||||||
} cctutorial_e;
|
} cctutorial_e;
|
||||||
|
|
||||||
static void M_ChallengesTutorial(UINT8 option)
|
static void M_ChallengesTutorial(UINT8 option)
|
||||||
|
|
@ -512,6 +514,23 @@ static void M_ChallengesTutorial(UINT8 option)
|
||||||
gamedata->majorkeyskipattempted = true;
|
gamedata->majorkeyskipattempted = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case CCTUTORIAL_TUTORIAL:
|
||||||
|
{
|
||||||
|
M_StartMessage("New Tutorial Data",
|
||||||
|
va(M_GetText(
|
||||||
|
"A new piece of Eggman and Tails'\n"
|
||||||
|
"short adventure has been decrypted.\n"
|
||||||
|
"\n"
|
||||||
|
"You can find \"""\x87""%s""\x80""\" on\n"
|
||||||
|
"the Tutorials menu under Extras!\n"
|
||||||
|
), (challengesmenu.tutorialfound < nummapheaders
|
||||||
|
&& mapheaderinfo[challengesmenu.tutorialfound]
|
||||||
|
? mapheaderinfo[challengesmenu.tutorialfound]->menuttl
|
||||||
|
: "ERROR!?"
|
||||||
|
)), NULL, MM_NOTHING, NULL, "Got it!");
|
||||||
|
challengesmenu.tutorialfound = NEXTMAP_INVALID;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
M_StartMessage("M_ChallengesTutorial ERROR",
|
M_StartMessage("M_ChallengesTutorial ERROR",
|
||||||
|
|
@ -725,6 +744,28 @@ void M_ChallengesTick(void)
|
||||||
gamedata->unlocked[challengesmenu.currentunlock] = true;
|
gamedata->unlocked[challengesmenu.currentunlock] = true;
|
||||||
M_UpdateUnlockablesAndExtraEmblems(true, true);
|
M_UpdateUnlockablesAndExtraEmblems(true, true);
|
||||||
|
|
||||||
|
if (challengesmenu.tutorialfound == NEXTMAP_INVALID
|
||||||
|
&& ref->type == SECRET_MAP)
|
||||||
|
{
|
||||||
|
// Map exists...
|
||||||
|
UINT16 mapnum = M_UnlockableMapNum(ref);
|
||||||
|
if (mapnum < nummapheaders && mapheaderinfo[mapnum])
|
||||||
|
{
|
||||||
|
// is tutorial...
|
||||||
|
INT32 guessgt = G_GuessGametypeByTOL(mapheaderinfo[mapnum]->typeoflevel);
|
||||||
|
if (guessgt == GT_TUTORIAL)
|
||||||
|
{
|
||||||
|
// and isn't the playground?
|
||||||
|
if (!tutorialplaygroundmap
|
||||||
|
|| strcmp(tutorialplaygroundmap, mapheaderinfo[mapnum]->lumpname))
|
||||||
|
{
|
||||||
|
// Pop an alert up!
|
||||||
|
challengesmenu.tutorialfound = mapnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Update shown description just in case..?
|
// Update shown description just in case..?
|
||||||
if (challengesmenu.unlockcondition)
|
if (challengesmenu.unlockcondition)
|
||||||
Z_Free(challengesmenu.unlockcondition);
|
Z_Free(challengesmenu.unlockcondition);
|
||||||
|
|
@ -801,6 +842,11 @@ void M_ChallengesTick(void)
|
||||||
// not ideal but at least unlikely to
|
// not ideal but at least unlikely to
|
||||||
// get at same time?? :V
|
// get at same time?? :V
|
||||||
}
|
}
|
||||||
|
else if (challengesmenu.tutorialfound != NEXTMAP_INVALID)
|
||||||
|
{
|
||||||
|
M_ChallengesTutorial(CCTUTORIAL_TUTORIAL);
|
||||||
|
// Also no keygen, but that can come later.
|
||||||
|
}
|
||||||
else if (gamedata->chaokeytutorial == false
|
else if (gamedata->chaokeytutorial == false
|
||||||
&& challengesmenu.keywasadded == true)
|
&& challengesmenu.keywasadded == true)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue