mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-22 02:00:11 +00:00
Merge branch 'challenge-kindnesses' into 'master'
Challenge Kindnesses See merge request KartKrew/Kart!2328
This commit is contained in:
commit
0582a00040
5 changed files with 51 additions and 34 deletions
|
|
@ -493,7 +493,12 @@ void srb2::load_ng_gamedata()
|
|||
gamedata->tutorialdone = js.milestones.tutorialdone;
|
||||
gamedata->gonerlevel = js.milestones.gonerlevel;
|
||||
gamedata->thisprisoneggpickup = js.prisons.thisprisoneggpickup;
|
||||
|
||||
gamedata->prisoneggstothispickup = js.prisons.prisoneggstothispickup;
|
||||
if (gamedata->prisoneggstothispickup > GDINIT_PRISONSTOPRIZE)
|
||||
{
|
||||
gamedata->prisoneggstothispickup = GDINIT_PRISONSTOPRIZE;
|
||||
}
|
||||
|
||||
size_t emblems_size = js.emblems.size();
|
||||
for (size_t i = 0; i < std::min((size_t)MAXEMBLEMS, emblems_size); i++)
|
||||
|
|
|
|||
50
src/m_cond.c
50
src/m_cond.c
|
|
@ -398,6 +398,20 @@ badgrid:
|
|||
gamedata->challengegridwidth = 0;
|
||||
}
|
||||
|
||||
static void M_ChallengeGridExtraDataAdjacencyRules(challengegridextradata_t *extradata, UINT16 adjacent)
|
||||
{
|
||||
// Adjacent unlocked tile, permit hint/general key skip.
|
||||
if (gamedata->unlocked[adjacent] == true)
|
||||
{
|
||||
extradata->flags |= CHE_HINT;
|
||||
}
|
||||
// Adjacent locked small tile, prevent 10x key skip.
|
||||
else if (unlockables[adjacent].majorunlock == false)
|
||||
{
|
||||
extradata->flags &= ~CHE_ALLCLEAR;
|
||||
}
|
||||
}
|
||||
|
||||
void M_UpdateChallengeGridExtraData(challengegridextradata_t *extradata)
|
||||
{
|
||||
UINT16 i, j, num, id, tempid, work;
|
||||
|
|
@ -489,14 +503,7 @@ void M_UpdateChallengeGridExtraData(challengegridextradata_t *extradata)
|
|||
}
|
||||
else if (work < MAXUNLOCKABLES)
|
||||
{
|
||||
if (gamedata->unlocked[work] == true)
|
||||
{
|
||||
extradata[id].flags |= CHE_HINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
extradata[id].flags &= ~CHE_ALLCLEAR;
|
||||
}
|
||||
M_ChallengeGridExtraDataAdjacencyRules(extradata+id, work);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -534,14 +541,7 @@ void M_UpdateChallengeGridExtraData(challengegridextradata_t *extradata)
|
|||
}
|
||||
else if (work < MAXUNLOCKABLES)
|
||||
{
|
||||
if (gamedata->unlocked[work] == true)
|
||||
{
|
||||
extradata[id].flags |= CHE_HINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
extradata[id].flags &= ~CHE_ALLCLEAR;
|
||||
}
|
||||
M_ChallengeGridExtraDataAdjacencyRules(extradata+id, work);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -566,14 +566,7 @@ void M_UpdateChallengeGridExtraData(challengegridextradata_t *extradata)
|
|||
}
|
||||
else if (work < MAXUNLOCKABLES)
|
||||
{
|
||||
if (gamedata->unlocked[work] == true)
|
||||
{
|
||||
extradata[id].flags |= CHE_HINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
extradata[id].flags &= ~CHE_ALLCLEAR;
|
||||
}
|
||||
M_ChallengeGridExtraDataAdjacencyRules(extradata+id, work);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -595,14 +588,7 @@ void M_UpdateChallengeGridExtraData(challengegridextradata_t *extradata)
|
|||
}
|
||||
else if (work < MAXUNLOCKABLES)
|
||||
{
|
||||
if (gamedata->unlocked[work] == true)
|
||||
{
|
||||
extradata[id].flags |= CHE_HINT;
|
||||
}
|
||||
else
|
||||
{
|
||||
extradata[id].flags &= ~CHE_ALLCLEAR;
|
||||
}
|
||||
M_ChallengeGridExtraDataAdjacencyRules(extradata+id, work);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ typedef enum {
|
|||
#define GDCONVERT_ROUNDSTOKEY 5
|
||||
|
||||
#define GDINIT_CHAOKEYS 10 // Start with 10 Chao Keys !!
|
||||
#define GDINIT_PRISONSTOPRIZE 30 // 30 Prison Eggs to your [Wild Prize] !!
|
||||
#define GDINIT_PRISONSTOPRIZE 15 // 15 Prison Eggs to your [Wild Prize] !!
|
||||
|
||||
typedef enum {
|
||||
GDGONER_INIT = 0,
|
||||
|
|
|
|||
26
src/m_pw.cpp
26
src/m_pw.cpp
|
|
@ -535,6 +535,31 @@ void f_difficulty()
|
|||
}
|
||||
}
|
||||
|
||||
void f_keys()
|
||||
{
|
||||
INT32 givekeys = 25;
|
||||
|
||||
if (gamedata->chaokeys > (GDMAX_CHAOKEYS - givekeys))
|
||||
{
|
||||
givekeys = GDMAX_CHAOKEYS - gamedata->chaokeys;
|
||||
}
|
||||
|
||||
if (givekeys > 0)
|
||||
{
|
||||
S_StartSound(0, sfx_keygen);
|
||||
|
||||
gamedata->chaokeys += givekeys;
|
||||
gamedata->chaokeytutorial = true;
|
||||
|
||||
M_StartMessage("Dr. Robotnik's Ring Racers - Deluxe Edition", va("Claimed %d Chao Keys!", givekeys), NULL, MM_NOTHING, NULL, NULL);
|
||||
G_SaveGameData();
|
||||
}
|
||||
else
|
||||
{
|
||||
M_StartMessage("Dr. Robotnik's Ring Racers - Deluxe Edition", "You have the maximum number of Chao Keys!", NULL, MM_NOTHING, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void f_devmode()
|
||||
{
|
||||
INT32 i;
|
||||
|
|
@ -737,4 +762,5 @@ void M_PasswordInit(void)
|
|||
passwords.emplace_back(f_timeattack, "mFu5OB9d6jnc2kth7HE66wJ42F/GHDzSvuciK1Qw++6iGnpBccxcKjpoxgOvD3eIoqR606ruBINuXi23proXHQ==");
|
||||
passwords.emplace_back(f_encore, "i5u5sIsMs5eITy+LzAXvKm6D9OzOVKhUqSy1mTTV/oUxJX6RPsk8OcyLbNaey9Vc6wXOhz+2+mTXILkIRzvXqA==");
|
||||
passwords.emplace_back(f_difficulty, "MKjOtEFLkgXf21uiECdBTU6XtbkuFWaGh7i8znKo7JrXXEDrCBJmGwINvPg0T3TLn0zlscLvmC5nve7I+NTrnA==");
|
||||
passwords.emplace_back(f_keys, "jgsD6UJ2Xa10QcS2ZDJwcvpd4iia3AXIG8wDDSsHX7kFH5jEXnym45yaNZG9hIKEvBMpVONKR0YTA6JBAQRCvg==");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -507,7 +507,7 @@ static void M_ChallengesTutorial(UINT8 option)
|
|||
"to break open Big Challenge tiles.\n"
|
||||
"\n"
|
||||
"You'll also need to unlock\n"
|
||||
"the surrounding tiles first.\n"
|
||||
"any surrounding small tiles first.\n"
|
||||
), NULL, MM_NOTHING, NULL, NULL);
|
||||
gamedata->majorkeyskipattempted = true;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue