mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
This commit is contained in:
parent
0b71b2f71f
commit
241475155b
22 changed files with 66 additions and 66 deletions
|
|
@ -2286,8 +2286,8 @@ void readunlockable(MYFILE *f, INT32 num)
|
||||||
unlockables[num].type = SECRET_ENCORE;
|
unlockables[num].type = SECRET_ENCORE;
|
||||||
else if (fastcmp(word2, "TIMEATTACK"))
|
else if (fastcmp(word2, "TIMEATTACK"))
|
||||||
unlockables[num].type = SECRET_TIMEATTACK;
|
unlockables[num].type = SECRET_TIMEATTACK;
|
||||||
else if (fastcmp(word2, "BREAKTHECAPSULES"))
|
else if (fastcmp(word2, "PRISONBREAK"))
|
||||||
unlockables[num].type = SECRET_BREAKTHECAPSULES;
|
unlockables[num].type = SECRET_PRISONBREAK;
|
||||||
else if (fastcmp(word2, "SPECIALATTACK"))
|
else if (fastcmp(word2, "SPECIALATTACK"))
|
||||||
unlockables[num].type = SECRET_SPECIALATTACK;
|
unlockables[num].type = SECRET_SPECIALATTACK;
|
||||||
else if (fastcmp(word2, "SPBATTACK"))
|
else if (fastcmp(word2, "SPBATTACK"))
|
||||||
|
|
@ -2394,8 +2394,8 @@ static void readcondition(UINT8 set, UINT32 id, char *word2)
|
||||||
x1 = GDGT_RACE;
|
x1 = GDGT_RACE;
|
||||||
else if (fastcmp(params[2], "BATTLE"))
|
else if (fastcmp(params[2], "BATTLE"))
|
||||||
x1 = GDGT_BATTLE;
|
x1 = GDGT_BATTLE;
|
||||||
else if (fastcmp(params[2], "CAPSULE"))
|
else if (fastcmp(params[2], "PRISONS"))
|
||||||
x1 = GDGT_CAPSULES;
|
x1 = GDGT_PRISONS;
|
||||||
else if (fastcmp(params[2], "SPECIAL"))
|
else if (fastcmp(params[2], "SPECIAL"))
|
||||||
x1 = GDGT_SPECIAL;
|
x1 = GDGT_SPECIAL;
|
||||||
else if (fastcmp(params[2], "CUSTOM"))
|
else if (fastcmp(params[2], "CUSTOM"))
|
||||||
|
|
@ -2557,7 +2557,7 @@ static void readcondition(UINT8 set, UINT32 id, char *word2)
|
||||||
else if ((offset=0) || fastcmp(params[0], "PREFIX_GRANDPRIX")
|
else if ((offset=0) || fastcmp(params[0], "PREFIX_GRANDPRIX")
|
||||||
|| (++offset && fastcmp(params[0], "PREFIX_BONUSROUND"))
|
|| (++offset && fastcmp(params[0], "PREFIX_BONUSROUND"))
|
||||||
|| (++offset && fastcmp(params[0], "PREFIX_TIMEATTACK"))
|
|| (++offset && fastcmp(params[0], "PREFIX_TIMEATTACK"))
|
||||||
|| (++offset && fastcmp(params[0], "PREFIX_BREAKTHECAPSULES"))
|
|| (++offset && fastcmp(params[0], "PREFIX_PRISONBREAK"))
|
||||||
|| (++offset && fastcmp(params[0], "PREFIX_SEALEDSTAR")))
|
|| (++offset && fastcmp(params[0], "PREFIX_SEALEDSTAR")))
|
||||||
{
|
{
|
||||||
//PARAMCHECK(1);
|
//PARAMCHECK(1);
|
||||||
|
|
|
||||||
|
|
@ -5836,7 +5836,7 @@ const char *const GAMETYPERULE_LIST[] = {
|
||||||
"KARMA",
|
"KARMA",
|
||||||
"ITEMARROWS",
|
"ITEMARROWS",
|
||||||
|
|
||||||
"CAPSULES",
|
"PRISONS",
|
||||||
"CATCHER",
|
"CATCHER",
|
||||||
"ROLLINGSTART",
|
"ROLLINGSTART",
|
||||||
"SPECIALSTART",
|
"SPECIALSTART",
|
||||||
|
|
|
||||||
|
|
@ -552,7 +552,7 @@ enum GameTypeRules
|
||||||
GTR_ITEMARROWS = 1<<9, // Show item box arrows above players
|
GTR_ITEMARROWS = 1<<9, // Show item box arrows above players
|
||||||
|
|
||||||
// Bonus gametype rules
|
// Bonus gametype rules
|
||||||
GTR_CAPSULES = 1<<10, // Can enter Break The Capsules mode
|
GTR_PRISONS = 1<<10, // Can enter Prison Break mode
|
||||||
GTR_CATCHER = 1<<11, // UFO Catcher (only works with GTR_CIRCUIT)
|
GTR_CATCHER = 1<<11, // UFO Catcher (only works with GTR_CIRCUIT)
|
||||||
GTR_ROLLINGSTART = 1<<12, // Rolling start (only works with GTR_CIRCUIT)
|
GTR_ROLLINGSTART = 1<<12, // Rolling start (only works with GTR_CIRCUIT)
|
||||||
GTR_SPECIALSTART = 1<<13, // White fade instant start
|
GTR_SPECIALSTART = 1<<13, // White fade instant start
|
||||||
|
|
|
||||||
|
|
@ -3274,7 +3274,7 @@ static gametype_t defaultgametypes[] =
|
||||||
{
|
{
|
||||||
"Battle",
|
"Battle",
|
||||||
"GT_BATTLE",
|
"GT_BATTLE",
|
||||||
GTR_SPHERES|GTR_BUMPERS|GTR_PAPERITEMS|GTR_POWERSTONES|GTR_KARMA|GTR_ITEMARROWS|GTR_CAPSULES|GTR_BATTLESTARTS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_CLOSERPLAYERS,
|
GTR_SPHERES|GTR_BUMPERS|GTR_PAPERITEMS|GTR_POWERSTONES|GTR_KARMA|GTR_ITEMARROWS|GTR_PRISONS|GTR_BATTLESTARTS|GTR_POINTLIMIT|GTR_TIMELIMIT|GTR_OVERTIME|GTR_CLOSERPLAYERS,
|
||||||
TOL_BATTLE,
|
TOL_BATTLE,
|
||||||
int_scoreortimeattack,
|
int_scoreortimeattack,
|
||||||
0,
|
0,
|
||||||
|
|
@ -4150,7 +4150,7 @@ static void G_DoCompleted(void)
|
||||||
if (gametype == GT_RACE)
|
if (gametype == GT_RACE)
|
||||||
roundtype = GDGT_RACE;
|
roundtype = GDGT_RACE;
|
||||||
else if (gametype == GT_BATTLE)
|
else if (gametype == GT_BATTLE)
|
||||||
roundtype = (battlecapsules ? GDGT_CAPSULES : GDGT_BATTLE);
|
roundtype = (battleprisons ? GDGT_PRISONS : GDGT_BATTLE);
|
||||||
else if (gametype == GT_SPECIAL || gametype == GT_VERSUS)
|
else if (gametype == GT_SPECIAL || gametype == GT_VERSUS)
|
||||||
roundtype = GDGT_SPECIAL;
|
roundtype = GDGT_SPECIAL;
|
||||||
|
|
||||||
|
|
@ -4177,7 +4177,7 @@ static void G_DoCompleted(void)
|
||||||
G_SetGamestate(GS_NULL);
|
G_SetGamestate(GS_NULL);
|
||||||
wipegamestate = GS_NULL;
|
wipegamestate = GS_NULL;
|
||||||
|
|
||||||
grandprixinfo.rank.capsules += numtargets;
|
grandprixinfo.rank.prisons += numtargets;
|
||||||
grandprixinfo.rank.position = MAXPLAYERS;
|
grandprixinfo.rank.position = MAXPLAYERS;
|
||||||
|
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
|
|
|
||||||
|
|
@ -2474,8 +2474,8 @@ static void HU_DrawRankings(void)
|
||||||
// draw the current gametype in the lower right
|
// draw the current gametype in the lower right
|
||||||
if (grandprixinfo.gp == true)
|
if (grandprixinfo.gp == true)
|
||||||
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, "Grand Prix");
|
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, "Grand Prix");
|
||||||
else if (battlecapsules)
|
else if (battleprisons)
|
||||||
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, "Capsules");
|
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, "Prisons");
|
||||||
else if (gametype >= 0 && gametype < numgametypes)
|
else if (gametype >= 0 && gametype < numgametypes)
|
||||||
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, gametypes[gametype]->name);
|
V_DrawString(4, 188, hilicol|V_SNAPTOBOTTOM|V_SNAPTOLEFT, gametypes[gametype]->name);
|
||||||
|
|
||||||
|
|
@ -2533,11 +2533,11 @@ static void HU_DrawRankings(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Right hand side
|
// Right hand side
|
||||||
if (battlecapsules == true)
|
if (battleprisons == true)
|
||||||
{
|
{
|
||||||
if (numtargets < maptargets)
|
if (numtargets < maptargets)
|
||||||
{
|
{
|
||||||
V_DrawCenteredString(256, 8, 0, "CAPSULES");
|
V_DrawCenteredString(256, 8, 0, "PRISONS");
|
||||||
V_DrawCenteredString(256, 16, hilicol, va("%d", maptargets - numtargets));
|
V_DrawCenteredString(256, 16, hilicol, va("%d", maptargets - numtargets));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
struct battleovertime battleovertime;
|
struct battleovertime battleovertime;
|
||||||
|
|
||||||
// Capsules mode enabled for this map?
|
// Capsules mode enabled for this map?
|
||||||
boolean battlecapsules = false;
|
boolean battleprisons = false;
|
||||||
|
|
||||||
// box respawning in battle mode
|
// box respawning in battle mode
|
||||||
INT32 nummapboxes = 0;
|
INT32 nummapboxes = 0;
|
||||||
|
|
@ -38,7 +38,7 @@ UINT8 numtargets = 0; // Capsules busted
|
||||||
|
|
||||||
INT32 K_StartingBumperCount(void)
|
INT32 K_StartingBumperCount(void)
|
||||||
{
|
{
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
return 1; // always 1 hit in Break the Capsules
|
return 1; // always 1 hit in Break the Capsules
|
||||||
|
|
||||||
return cv_kartbumpers.value;
|
return cv_kartbumpers.value;
|
||||||
|
|
@ -95,7 +95,7 @@ void K_CheckBumpers(void)
|
||||||
UINT8 nobumpers = 0;
|
UINT8 nobumpers = 0;
|
||||||
UINT8 eliminated = 0;
|
UINT8 eliminated = 0;
|
||||||
|
|
||||||
const boolean singleplayer = (battlecapsules || bossinfo.valid);
|
const boolean singleplayer = (battleprisons || bossinfo.valid);
|
||||||
|
|
||||||
if (!(gametyperules & GTR_BUMPERS))
|
if (!(gametyperules & GTR_BUMPERS))
|
||||||
return;
|
return;
|
||||||
|
|
@ -145,7 +145,7 @@ void K_CheckBumpers(void)
|
||||||
|
|
||||||
if (numingame <= 1)
|
if (numingame <= 1)
|
||||||
{
|
{
|
||||||
if ((gametyperules & GTR_CAPSULES) && (K_CanChangeRules(true) == true))
|
if ((gametyperules & GTR_PRISONS) && (K_CanChangeRules(true) == true))
|
||||||
{
|
{
|
||||||
// Reset map to turn on battle capsules
|
// Reset map to turn on battle capsules
|
||||||
if (server)
|
if (server)
|
||||||
|
|
@ -335,7 +335,7 @@ void K_RunPaperItemSpawners(void)
|
||||||
UINT8 pcount = 0;
|
UINT8 pcount = 0;
|
||||||
INT16 i;
|
INT16 i;
|
||||||
|
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
{
|
{
|
||||||
// Gametype uses paper items, but this specific expression doesn't
|
// Gametype uses paper items, but this specific expression doesn't
|
||||||
return;
|
return;
|
||||||
|
|
@ -770,7 +770,7 @@ void K_BattleInit(boolean singleplayercontext)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
if ((gametyperules & GTR_CAPSULES) && singleplayercontext && !battlecapsules)
|
if ((gametyperules & GTR_PRISONS) && singleplayercontext && !battleprisons)
|
||||||
{
|
{
|
||||||
mapthing_t *mt = mapthings;
|
mapthing_t *mt = mapthings;
|
||||||
for (i = 0; i < nummapthings; i++, mt++)
|
for (i = 0; i < nummapthings; i++, mt++)
|
||||||
|
|
@ -779,7 +779,7 @@ void K_BattleInit(boolean singleplayercontext)
|
||||||
P_SpawnMapThing(mt);
|
P_SpawnMapThing(mt);
|
||||||
}
|
}
|
||||||
|
|
||||||
battlecapsules = true;
|
battleprisons = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gametyperules & GTR_BUMPERS)
|
if (gametyperules & GTR_BUMPERS)
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ extern struct battleovertime
|
||||||
fixed_t x, y, z; ///< Position to center on
|
fixed_t x, y, z; ///< Position to center on
|
||||||
} battleovertime;
|
} battleovertime;
|
||||||
|
|
||||||
extern boolean battlecapsules;
|
extern boolean battleprisons;
|
||||||
extern INT32 nummapboxes, numgotboxes; // keep track of spawned battle mode items
|
extern INT32 nummapboxes, numgotboxes; // keep track of spawned battle mode items
|
||||||
extern UINT8 maptargets, numtargets;
|
extern UINT8 maptargets, numtargets;
|
||||||
|
|
||||||
|
|
|
||||||
10
src/k_hud.c
10
src/k_hud.c
|
|
@ -2839,7 +2839,7 @@ static void K_drawKartBumpersOrKarma(void)
|
||||||
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[1]->width) - 3) : 0), fy, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[0]);
|
V_DrawScaledPatch(fx-2 + (flipflag ? (SHORT(kp_ringstickersplit[1]->width) - 3) : 0), fy, V_HUDTRANS|V_SLIDEIN|splitflags|flipflag, kp_ringstickersplit[0]);
|
||||||
V_DrawScaledPatch(fx+22, fy, V_HUDTRANS|V_SLIDEIN|splitflags, frameslash);
|
V_DrawScaledPatch(fx+22, fy, V_HUDTRANS|V_SLIDEIN|splitflags, frameslash);
|
||||||
|
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
{
|
{
|
||||||
V_DrawMappedPatch(fx+1, fy-2, V_HUDTRANS|V_SLIDEIN|splitflags, kp_rankcapsule, NULL);
|
V_DrawMappedPatch(fx+1, fy-2, V_HUDTRANS|V_SLIDEIN|splitflags, kp_rankcapsule, NULL);
|
||||||
|
|
||||||
|
|
@ -2893,7 +2893,7 @@ static void K_drawKartBumpersOrKarma(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
{
|
{
|
||||||
if (numtargets > 9 && maptargets > 9)
|
if (numtargets > 9 && maptargets > 9)
|
||||||
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_capsulestickerwide, NULL);
|
V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_capsulestickerwide, NULL);
|
||||||
|
|
@ -4152,7 +4152,7 @@ static void K_drawBattleFullscreen(void)
|
||||||
|
|
||||||
if (K_IsPlayerLosing(stplyr))
|
if (K_IsPlayerLosing(stplyr))
|
||||||
p = kp_battlelose;
|
p = kp_battlelose;
|
||||||
else if (stplyr->position == 1 && (!battlecapsules || numtargets >= maptargets))
|
else if (stplyr->position == 1 && (!battleprisons || numtargets >= maptargets))
|
||||||
p = kp_battlewin;
|
p = kp_battlewin;
|
||||||
|
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, p, NULL);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, splitflags, p, NULL);
|
||||||
|
|
@ -4848,7 +4848,7 @@ static void K_DrawGPRankDebugger(void)
|
||||||
V_DrawThinString(0, 30, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
V_DrawThinString(0, 30, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||||
va("CONTINUES: %d", grandprixinfo.rank.continuesUsed));
|
va("CONTINUES: %d", grandprixinfo.rank.continuesUsed));
|
||||||
V_DrawThinString(0, 40, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
V_DrawThinString(0, 40, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||||
va("CAPSULES: %d / %d", grandprixinfo.rank.capsules, grandprixinfo.rank.totalCapsules));
|
va("PRISONS: %d / %d", grandprixinfo.rank.prisons, grandprixinfo.rank.totalPrisons));
|
||||||
V_DrawThinString(0, 50, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
V_DrawThinString(0, 50, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||||
va("RINGS: %d / %d", grandprixinfo.rank.rings, grandprixinfo.rank.totalRings));
|
va("RINGS: %d / %d", grandprixinfo.rank.rings, grandprixinfo.rank.totalRings));
|
||||||
V_DrawThinString(0, 60, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
V_DrawThinString(0, 60, V_SNAPTOTOP|V_SNAPTOLEFT|V_6WIDTHSPACE|V_ALLOWLOWERCASE,
|
||||||
|
|
@ -4999,7 +4999,7 @@ void K_drawKartHUD(void)
|
||||||
;
|
;
|
||||||
else if ((gametyperules & GTR_POWERSTONES))
|
else if ((gametyperules & GTR_POWERSTONES))
|
||||||
{
|
{
|
||||||
if (!battlecapsules)
|
if (!battleprisons)
|
||||||
K_drawKartEmeralds();
|
K_drawKartEmeralds();
|
||||||
}
|
}
|
||||||
else if (!islonesome)
|
else if (!islonesome)
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ bool is_player_tracking_target(player_t *player = stplyr)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (battlecapsules || bossinfo.valid)
|
if (battleprisons || bossinfo.valid)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
14
src/k_kart.c
14
src/k_kart.c
|
|
@ -371,10 +371,10 @@ boolean K_IsPlayerLosing(player_t *player)
|
||||||
if (player->pflags & PF_NOCONTEST)
|
if (player->pflags & PF_NOCONTEST)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (battlecapsules && numtargets == 0)
|
if (battleprisons && numtargets == 0)
|
||||||
return true; // Didn't even TRY?
|
return true; // Didn't even TRY?
|
||||||
|
|
||||||
if (battlecapsules || (gametyperules & GTR_BOSS))
|
if (battleprisons || (gametyperules & GTR_BOSS))
|
||||||
return (player->bumpers <= 0); // anything short of DNF is COOL
|
return (player->bumpers <= 0); // anything short of DNF is COOL
|
||||||
|
|
||||||
if (player->position == 1)
|
if (player->position == 1)
|
||||||
|
|
@ -561,7 +561,7 @@ boolean K_TimeAttackRules(void)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (battlecapsules == true)
|
if (battleprisons == true)
|
||||||
{
|
{
|
||||||
// Break the Capsules always uses Time Attack
|
// Break the Capsules always uses Time Attack
|
||||||
// rules, since you can bring 2-4 players in
|
// rules, since you can bring 2-4 players in
|
||||||
|
|
@ -4362,7 +4362,7 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers)
|
||||||
}
|
}
|
||||||
else if (player->bumpers == 0 && prevBumpers > 0)
|
else if (player->bumpers == 0 && prevBumpers > 0)
|
||||||
{
|
{
|
||||||
if (battlecapsules || bossinfo.valid)
|
if (battleprisons || bossinfo.valid)
|
||||||
{
|
{
|
||||||
player->pflags |= (PF_NOCONTEST|PF_ELIMINATED);
|
player->pflags |= (PF_NOCONTEST|PF_ELIMINATED);
|
||||||
}
|
}
|
||||||
|
|
@ -11681,7 +11681,7 @@ tic_t K_TimeLimitForGametype(void)
|
||||||
// Grand Prix
|
// Grand Prix
|
||||||
if (!K_CanChangeRules(true))
|
if (!K_CanChangeRules(true))
|
||||||
{
|
{
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
{
|
{
|
||||||
return 20*TICRATE;
|
return 20*TICRATE;
|
||||||
}
|
}
|
||||||
|
|
@ -11695,7 +11695,7 @@ tic_t K_TimeLimitForGametype(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// No time limit for Break the Capsules FREE PLAY
|
// No time limit for Break the Capsules FREE PLAY
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -11720,7 +11720,7 @@ UINT32 K_PointLimitForGametype(void)
|
||||||
return cv_pointlimit.value;
|
return cv_pointlimit.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (battlecapsules || bossinfo.valid)
|
if (battleprisons || bossinfo.valid)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4836,7 +4836,7 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili
|
||||||
categoryid = '6';
|
categoryid = '6';
|
||||||
break;
|
break;
|
||||||
case SECRET_TIMEATTACK:
|
case SECRET_TIMEATTACK:
|
||||||
case SECRET_BREAKTHECAPSULES:
|
case SECRET_PRISONBREAK:
|
||||||
case SECRET_SPECIALATTACK:
|
case SECRET_SPECIALATTACK:
|
||||||
case SECRET_SPBATTACK:
|
case SECRET_SPBATTACK:
|
||||||
categoryid = '7';
|
categoryid = '7';
|
||||||
|
|
@ -4918,7 +4918,7 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili
|
||||||
case SECRET_TIMEATTACK:
|
case SECRET_TIMEATTACK:
|
||||||
iconid = 7;
|
iconid = 7;
|
||||||
break;
|
break;
|
||||||
case SECRET_BREAKTHECAPSULES:
|
case SECRET_PRISONBREAK:
|
||||||
iconid = 8;
|
iconid = 8;
|
||||||
break;
|
break;
|
||||||
case SECRET_SPECIALATTACK:
|
case SECRET_SPECIALATTACK:
|
||||||
|
|
@ -5221,7 +5221,7 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
specialmap = tamapcache;
|
specialmap = tamapcache;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SECRET_BREAKTHECAPSULES:
|
case SECRET_PRISONBREAK:
|
||||||
{
|
{
|
||||||
static UINT16 btcmapcache = NEXTMAP_INVALID;
|
static UINT16 btcmapcache = NEXTMAP_INVALID;
|
||||||
if (btcmapcache > nummapheaders)
|
if (btcmapcache > nummapheaders)
|
||||||
|
|
@ -5769,9 +5769,9 @@ void M_DrawStatistics(void)
|
||||||
|
|
||||||
strcat(beststr, va("%u Race", gamedata->roundsplayed[GDGT_RACE]));
|
strcat(beststr, va("%u Race", gamedata->roundsplayed[GDGT_RACE]));
|
||||||
|
|
||||||
if (gamedata->roundsplayed[GDGT_CAPSULES] > 0)
|
if (gamedata->roundsplayed[GDGT_PRISONS] > 0)
|
||||||
{
|
{
|
||||||
strcat(beststr, va(", %u Capsule", gamedata->roundsplayed[GDGT_CAPSULES]));
|
strcat(beststr, va(", %u Prisons", gamedata->roundsplayed[GDGT_PRISONS]));
|
||||||
}
|
}
|
||||||
|
|
||||||
strcat(beststr, va(", %u Battle", gamedata->roundsplayed[GDGT_BATTLE]));
|
strcat(beststr, va(", %u Battle", gamedata->roundsplayed[GDGT_BATTLE]));
|
||||||
|
|
|
||||||
|
|
@ -516,7 +516,7 @@ void K_CeremonyDrawer(void)
|
||||||
case 5:
|
case 5:
|
||||||
{
|
{
|
||||||
V_DrawString(x, y, V_ALLOWLOWERCASE,
|
V_DrawString(x, y, V_ALLOWLOWERCASE,
|
||||||
va("CAPSULES: %d / %d", podiumData.rank.capsules, podiumData.rank.totalCapsules)
|
va("PRISONS: %d / %d", podiumData.rank.prisons, podiumData.rank.totalPrisons)
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
10
src/k_rank.c
10
src/k_rank.c
|
|
@ -338,7 +338,7 @@ void K_InitGrandPrixRank(gpRank_t *rankData)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
rankData->totalCapsules += RankCapsules_CountFromMap(virt);
|
rankData->totalPrisons += RankCapsules_CountFromMap(virt);
|
||||||
vres_Free(virt);
|
vres_Free(virt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -363,9 +363,9 @@ gp_rank_e K_CalculateGPGrade(gpRank_t *rankData)
|
||||||
const INT32 positionWeight = 150;
|
const INT32 positionWeight = 150;
|
||||||
const INT32 pointsWeight = 100;
|
const INT32 pointsWeight = 100;
|
||||||
const INT32 lapsWeight = 100;
|
const INT32 lapsWeight = 100;
|
||||||
const INT32 capsulesWeight = 100;
|
const INT32 prisonsWeight = 100;
|
||||||
const INT32 ringsWeight = 50;
|
const INT32 ringsWeight = 50;
|
||||||
const INT32 total = positionWeight + pointsWeight + lapsWeight + capsulesWeight + ringsWeight;
|
const INT32 total = positionWeight + pointsWeight + lapsWeight + prisonsWeight + ringsWeight;
|
||||||
const INT32 continuesPenalty = 20;
|
const INT32 continuesPenalty = 20;
|
||||||
|
|
||||||
INT32 ours = 0;
|
INT32 ours = 0;
|
||||||
|
|
@ -388,9 +388,9 @@ gp_rank_e K_CalculateGPGrade(gpRank_t *rankData)
|
||||||
ours += (rankData->laps * lapsWeight) / rankData->totalLaps;
|
ours += (rankData->laps * lapsWeight) / rankData->totalLaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rankData->totalCapsules > 0)
|
if (rankData->totalPrisons > 0)
|
||||||
{
|
{
|
||||||
ours += (rankData->capsules * capsulesWeight) / rankData->totalCapsules;
|
ours += (rankData->prisons * prisonsWeight) / rankData->totalPrisons;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rankData->totalRings > 0)
|
if (rankData->totalRings > 0)
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,8 @@ struct gpRank_t
|
||||||
|
|
||||||
UINT32 continuesUsed;
|
UINT32 continuesUsed;
|
||||||
|
|
||||||
UINT32 capsules;
|
UINT32 prisons;
|
||||||
UINT32 totalCapsules;
|
UINT32 totalPrisons;
|
||||||
|
|
||||||
UINT32 rings;
|
UINT32 rings;
|
||||||
UINT32 totalRings;
|
UINT32 totalRings;
|
||||||
|
|
|
||||||
|
|
@ -1240,7 +1240,7 @@ void K_FillItemRouletteData(const player_t *player, itemroulette_t *const roulet
|
||||||
kartitems_t *presetlist = K_KartItemReelTimeAttack;
|
kartitems_t *presetlist = K_KartItemReelTimeAttack;
|
||||||
|
|
||||||
// If the objective is not to go fast, it's to cause serious damage.
|
// If the objective is not to go fast, it's to cause serious damage.
|
||||||
if (gametyperules & GTR_CAPSULES)
|
if (gametyperules & GTR_PRISONS)
|
||||||
{
|
{
|
||||||
presetlist = K_KartItemReelBreakTheCapsules;
|
presetlist = K_KartItemReelBreakTheCapsules;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
14
src/m_cond.c
14
src/m_cond.c
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "k_kart.h" // K_IsPLayerLosing
|
#include "k_kart.h" // K_IsPLayerLosing
|
||||||
#include "k_grandprix.h" // grandprixinfo
|
#include "k_grandprix.h" // grandprixinfo
|
||||||
#include "k_battle.h" // battlecapsules
|
#include "k_battle.h" // battleprisons
|
||||||
#include "k_specialstage.h" // specialstageinfo
|
#include "k_specialstage.h" // specialstageinfo
|
||||||
#include "k_podium.h"
|
#include "k_podium.h"
|
||||||
#include "k_pwrlv.h"
|
#include "k_pwrlv.h"
|
||||||
|
|
@ -786,8 +786,8 @@ boolean M_CheckCondition(condition_t *cn, player_t *player)
|
||||||
return ((grandprixinfo.gp == true) && (grandprixinfo.eventmode == GPEVENT_BONUS));
|
return ((grandprixinfo.gp == true) && (grandprixinfo.eventmode == GPEVENT_BONUS));
|
||||||
case UCRP_PREFIX_TIMEATTACK:
|
case UCRP_PREFIX_TIMEATTACK:
|
||||||
return (modeattacking != ATTACKING_NONE);
|
return (modeattacking != ATTACKING_NONE);
|
||||||
case UCRP_PREFIX_BREAKTHECAPSULES:
|
case UCRP_PREFIX_PRISONBREAK:
|
||||||
return ((gametyperules & GTR_CAPSULES) && battlecapsules);
|
return ((gametyperules & GTR_PRISONS) && battleprisons);
|
||||||
case UCRP_PREFIX_SEALEDSTAR:
|
case UCRP_PREFIX_SEALEDSTAR:
|
||||||
return (specialstageinfo.valid == true);
|
return (specialstageinfo.valid == true);
|
||||||
|
|
||||||
|
|
@ -833,7 +833,7 @@ boolean M_CheckCondition(condition_t *cn, player_t *player)
|
||||||
&& M_NotFreePlay(player)
|
&& M_NotFreePlay(player)
|
||||||
&& !K_IsPlayerLosing(player));
|
&& !K_IsPlayerLosing(player));
|
||||||
case UCRP_FINISHALLCAPSULES:
|
case UCRP_FINISHALLCAPSULES:
|
||||||
return (battlecapsules
|
return (battleprisons
|
||||||
&& !(player->pflags & PF_NOCONTEST)
|
&& !(player->pflags & PF_NOCONTEST)
|
||||||
//&& M_NotFreePlay(player)
|
//&& M_NotFreePlay(player)
|
||||||
&& numtargets >= maptargets);
|
&& numtargets >= maptargets);
|
||||||
|
|
@ -1004,7 +1004,7 @@ static const char *M_GetConditionString(condition_t *cn)
|
||||||
case GDGT_RACE:
|
case GDGT_RACE:
|
||||||
work = " Race";
|
work = " Race";
|
||||||
break;
|
break;
|
||||||
case GDGT_CAPSULES:
|
case GDGT_PRISONS:
|
||||||
work = " Capsule";
|
work = " Capsule";
|
||||||
break;
|
break;
|
||||||
case GDGT_BATTLE:
|
case GDGT_BATTLE:
|
||||||
|
|
@ -1245,8 +1245,8 @@ static const char *M_GetConditionString(condition_t *cn)
|
||||||
if (!M_SecretUnlocked(SECRET_TIMEATTACK, true))
|
if (!M_SecretUnlocked(SECRET_TIMEATTACK, true))
|
||||||
return NULL;
|
return NULL;
|
||||||
return "TIME ATTACK:";
|
return "TIME ATTACK:";
|
||||||
case UCRP_PREFIX_BREAKTHECAPSULES:
|
case UCRP_PREFIX_PRISONBREAK:
|
||||||
return "BREAK THE CAPSULES:";
|
return "PRISON BREAK:";
|
||||||
case UCRP_PREFIX_SEALEDSTAR:
|
case UCRP_PREFIX_SEALEDSTAR:
|
||||||
if (!gamedata->everseenspecial)
|
if (!gamedata->everseenspecial)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ typedef enum
|
||||||
UCRP_PREFIX_GRANDPRIX = UCRP_REQUIRESPLAYING, // GRAND PRIX:
|
UCRP_PREFIX_GRANDPRIX = UCRP_REQUIRESPLAYING, // GRAND PRIX:
|
||||||
UCRP_PREFIX_BONUSROUND, // BONUS ROUND:
|
UCRP_PREFIX_BONUSROUND, // BONUS ROUND:
|
||||||
UCRP_PREFIX_TIMEATTACK, // TIME ATTACK:
|
UCRP_PREFIX_TIMEATTACK, // TIME ATTACK:
|
||||||
UCRP_PREFIX_BREAKTHECAPSULES, // BREAK THE CAPSULES:
|
UCRP_PREFIX_PRISONBREAK, // PRISON BREAK:
|
||||||
UCRP_PREFIX_SEALEDSTAR, // SEALED STAR:
|
UCRP_PREFIX_SEALEDSTAR, // SEALED STAR:
|
||||||
|
|
||||||
UCRP_PREFIX_ISMAP, // name of [map]:
|
UCRP_PREFIX_ISMAP, // name of [map]:
|
||||||
|
|
@ -188,7 +188,7 @@ typedef enum
|
||||||
|
|
||||||
// Menu restrictions
|
// Menu restrictions
|
||||||
SECRET_TIMEATTACK, // Permit Time attack
|
SECRET_TIMEATTACK, // Permit Time attack
|
||||||
SECRET_BREAKTHECAPSULES, // Permit SP Capsule attack
|
SECRET_PRISONBREAK, // Permit SP Prison attack
|
||||||
SECRET_SPECIALATTACK, // Permit Special attack (You're blue now!)
|
SECRET_SPECIALATTACK, // Permit Special attack (You're blue now!)
|
||||||
SECRET_SPBATTACK, // Permit SPB mode of Time attack
|
SECRET_SPBATTACK, // Permit SPB mode of Time attack
|
||||||
|
|
||||||
|
|
@ -234,7 +234,7 @@ typedef enum
|
||||||
typedef enum {
|
typedef enum {
|
||||||
GDGT_RACE,
|
GDGT_RACE,
|
||||||
GDGT_BATTLE,
|
GDGT_BATTLE,
|
||||||
GDGT_CAPSULES,
|
GDGT_PRISONS,
|
||||||
GDGT_SPECIAL,
|
GDGT_SPECIAL,
|
||||||
GDGT_CUSTOM,
|
GDGT_CUSTOM,
|
||||||
GDGT_MAX
|
GDGT_MAX
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ menuitem_t PLAY_GamemodesMenu[] =
|
||||||
{IT_STRING | IT_CALL, "Battle", "It's last kart standing in this free-for-all!",
|
{IT_STRING | IT_CALL, "Battle", "It's last kart standing in this free-for-all!",
|
||||||
"MENIMG00", {.routine = M_LevelSelectInit}, 0, GT_BATTLE},
|
"MENIMG00", {.routine = M_LevelSelectInit}, 0, GT_BATTLE},
|
||||||
|
|
||||||
{IT_STRING | IT_CALL, "Capsules", "Bust up all of the capsules in record time!",
|
{IT_STRING | IT_CALL, "Prisons", "Bust up all of the Prison Eggs in record time!",
|
||||||
NULL, {.routine = M_LevelSelectInit}, 1, GT_BATTLE},
|
NULL, {.routine = M_LevelSelectInit}, 1, GT_BATTLE},
|
||||||
|
|
||||||
{IT_STRING | IT_CALL, "Special", "Strike your target and secure the prize!",
|
{IT_STRING | IT_CALL, "Special", "Strike your target and secure the prize!",
|
||||||
|
|
@ -42,7 +42,7 @@ void M_SetupGametypeMenu(INT32 choice)
|
||||||
{
|
{
|
||||||
boolean anyunlocked = false;
|
boolean anyunlocked = false;
|
||||||
|
|
||||||
if (M_SecretUnlocked(SECRET_BREAKTHECAPSULES, true))
|
if (M_SecretUnlocked(SECRET_PRISONBREAK, true))
|
||||||
{
|
{
|
||||||
// Re-add Capsules
|
// Re-add Capsules
|
||||||
PLAY_GamemodesMenu[2].status = IT_STRING | IT_CALL;
|
PLAY_GamemodesMenu[2].status = IT_STRING | IT_CALL;
|
||||||
|
|
|
||||||
|
|
@ -808,7 +808,7 @@ void P_CheckPointLimit(void)
|
||||||
if (!(gametyperules & GTR_POINTLIMIT))
|
if (!(gametyperules & GTR_POINTLIMIT))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (battlecapsules)
|
if (battleprisons)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// pointlimit is nonzero, check if it's been reached by this player
|
// pointlimit is nonzero, check if it's been reached by this player
|
||||||
|
|
|
||||||
|
|
@ -9446,7 +9446,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
if (gametyperules & GTR_PAPERITEMS)
|
if (gametyperules & GTR_PAPERITEMS)
|
||||||
{
|
{
|
||||||
if (battlecapsules == true)
|
if (battleprisons == true)
|
||||||
{
|
{
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4999,7 +4999,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
WRITEINT32(save->p, numgotboxes);
|
WRITEINT32(save->p, numgotboxes);
|
||||||
WRITEUINT8(save->p, numtargets);
|
WRITEUINT8(save->p, numtargets);
|
||||||
WRITEUINT8(save->p, battlecapsules);
|
WRITEUINT8(save->p, battleprisons);
|
||||||
|
|
||||||
WRITEUINT8(save->p, gamespeed);
|
WRITEUINT8(save->p, gamespeed);
|
||||||
WRITEUINT8(save->p, numlaps);
|
WRITEUINT8(save->p, numlaps);
|
||||||
|
|
@ -5168,7 +5168,7 @@ static inline boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
numgotboxes = READINT32(save->p);
|
numgotboxes = READINT32(save->p);
|
||||||
numtargets = READUINT8(save->p);
|
numtargets = READUINT8(save->p);
|
||||||
battlecapsules = (boolean)READUINT8(save->p);
|
battleprisons = (boolean)READUINT8(save->p);
|
||||||
|
|
||||||
gamespeed = READUINT8(save->p);
|
gamespeed = READUINT8(save->p);
|
||||||
numlaps = READUINT8(save->p);
|
numlaps = READUINT8(save->p);
|
||||||
|
|
|
||||||
|
|
@ -7040,7 +7040,7 @@ static void P_InitLevelSettings(void)
|
||||||
nummaprings = 0;
|
nummaprings = 0;
|
||||||
nummapboxes = numgotboxes = 0;
|
nummapboxes = numgotboxes = 0;
|
||||||
maptargets = numtargets = 0;
|
maptargets = numtargets = 0;
|
||||||
battlecapsules = false;
|
battleprisons = false;
|
||||||
|
|
||||||
// emerald hunt
|
// emerald hunt
|
||||||
hunt1 = hunt2 = hunt3 = NULL;
|
hunt1 = hunt2 = hunt3 = NULL;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue