From 86b5b21c623aacbc82643ef80e640262ed8db0ad Mon Sep 17 00:00:00 2001
From: TehRealSalt <tehrealsalt@gmail.com>
Date: Tue, 16 Jan 2018 00:36:44 -0500
Subject: [PATCH] Preliminary unlockables

Most of the time emblems are just set to 5 minutes so that its possible
to actually unlock everything :V
---
 src/m_cheat.c |   6 +-
 src/m_cond.c  | 183 ++++++++++++++++++++++++--------------------------
 2 files changed, 89 insertions(+), 100 deletions(-)

diff --git a/src/m_cheat.c b/src/m_cheat.c
index cd08264d..bb7b4a5e 100644
--- a/src/m_cheat.c
+++ b/src/m_cheat.c
@@ -84,9 +84,9 @@ static UINT8 cheatf_warp(void)
 
 	// Temporarily unlock stuff.
 	G_SetGameModified(false);
-	unlockables[2].unlocked = true; // credits
-	unlockables[3].unlocked = true; // sound test
-	unlockables[16].unlocked = true; // level select
+	unlockables[1].unlocked = true; // credits
+	unlockables[2].unlocked = true; // sound test
+	//unlockables[16].unlocked = true; // level select
 
 	// Refresh secrets menu existing.
 	M_ClearMenus(true);
diff --git a/src/m_cond.c b/src/m_cond.c
index d936c3fe..bde84431 100644
--- a/src/m_cond.c
+++ b/src/m_cond.c
@@ -32,125 +32,114 @@ conditionset_t conditionSets[MAXCONDITIONSETS];
 // Default Emblem locations
 emblem_t emblemlocations[MAXEMBLEMS] =
 {
-	// GREEN HILLS
-	// 1:30.00
-	{ET_TIME,  0,0,0,  1, 'T', SKINCOLOR_GREY,   90*TICRATE, "", 0},
+	// -- GREEN HILLS --
+	// Time: 1:30.00
+	{ET_TIME, 0,0,0,  1, 'T', SKINCOLOR_GREY,  90*TICRATE, "", 0},
+	// -- NORTHERN DISTRICT --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0,  2, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- SUNBEAM PARADISE --
+	// Time: 2:00.00
+	{ET_TIME, 0,0,0,  3, 'T', SKINCOLOR_GREY, 120*TICRATE, "", 0},
+	// -- PIPE SPEEDWAY --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0,  4, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- DARKVILE GARDEN --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0,  5, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- MEGABLOCK CASTLE --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0,  6, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- MIDNIGHT MEADOW --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0,  7, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- HILL TOP --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 11, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- SAPPHIRE COAST --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 13, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- BLUE MOUNTAIN --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 15, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- CASINO RESORT --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 19, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- SILVERCLOUD ISLAND --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 21, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- CANYON RUSH --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 25, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- CLOUD CRADLE K --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 26, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- TOXIC PALACE --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 27, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- ANCIENT TOMB --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 30, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- SUB-ZERO PEAK --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 31, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- VIRTUAL HIGHWAY --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 32, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- EGGMAN'S NIGHTCLUB --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 37, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- GBA RAINBOW ROAD --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 61, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- SONIC SPEEDWAY --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 70, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- AURORA ATOLL --
+	// Time: x:xx.xx
+	{ET_TIME, 0,0,0, 72, 'T', SKINCOLOR_GREY, 300*TICRATE, "", 0},
+	// -- BARREN BADLANDS --
+	// Time: 2:30.00
+	{ET_TIME, 0,0,0, 79, 'T', SKINCOLOR_GREY, 150*TICRATE, "", 0},
 };
 
 // Default Extra Emblems
 extraemblem_t extraemblems[MAXEXTRAEMBLEMS] =
 {
-	{"Game Complete",  "Complete 1P Mode",                    10, 'X', SKINCOLOR_BLUE, 0},
-	{"All Emeralds",   "Complete 1P Mode with all Emeralds",  11, 'V', SKINCOLOR_GREY, 0},
-	{"Perfect Bonus",  "Perfect Bonus on a non-secret stage", 30, 'P', SKINCOLOR_GOLD, 0},
-	{"SRB1 Remake",    "Complete SRB1 Remake",                21, 'O', SKINCOLOR_ROSEWOOD, 0},
-	{"NiGHTS Mastery", "Show your mastery of NiGHTS!",        22, 'W', SKINCOLOR_TEAL, 0},
+	{"Experienced Driver", "Play 100 Matches", 10, 'X', SKINCOLOR_BLUE, 0},
 };
 
 // Default Unlockables
 unlockable_t unlockables[MAXUNLOCKABLES] =
 {
 	// Name, Objective, Menu Height, ConditionSet, Unlock Type, Variable, NoCecho, NoChecklist
-	/* 01 */ {"Record Attack",     "", 0, -1, SECRET_RECORDATTACK,  0,  true,  true, 0},
-	/* 02 */ {"NiGHTS Mode",       "", 0, -1, SECRET_NIGHTSMODE,    0,  true,  true, 0},
+	/* 01 */ {"Record Attack", "",  0, -1, SECRET_RECORDATTACK,  0,  true,  true, 0},
+	/* 02 */ {"Play Credits",  "", 10, -1, SECRET_CREDITS,       0,  true,  true, 0},
+	/* 03 */ {"Sound Test",    "", 20, -1, SECRET_SOUNDTEST,     0,  true,  true, 0},
 
-	/* 03 */ {"Play Credits",      "Complete 1P Mode", 30, 10, SECRET_CREDITS,   0,  true,  true, 0},
-	/* 04 */ {"Sound Test",        "Complete 1P Mode", 40, 10, SECRET_SOUNDTEST, 0, false, false, 0},
-
-	/* 05 */ {"EXTRA LEVELS", "", 60, 0, SECRET_HEADER, 0, true, true, 0},
-
-	/* 06 */ {"Aerial Garden Zone", "Complete 1P Mode w/ all emeralds", 70, 11, SECRET_WARP, 40, false, false, 0},
-	/* 07 */ {"Azure Temple Zone",  "Complete Aerial Garden Zone",      80, 20, SECRET_WARP, 41, false, false, 0},
-
-	/* 08 */ {"BONUS LEVELS", "", 100, 0, SECRET_HEADER, 0, true, true, 0},
-
-	/* 09 */ {"SRB1 Remake",       "Collect 20 Emblems",   130, 40, SECRET_WARP,        101, false, false, 0},
-	/* 10 */ {"Mario Koopa Blast", "Collect 60 Emblems",   110, 42, SECRET_WARP,         30, false, false, 0},
-	/* 11 */ {"SRB1 Level Select", "Complete SRB1 Remake", 140, 21, SECRET_LEVELSELECT,   2, false,  true, 0},
-
-	/* 12 */ {"Spring Hill Zone", "Collect 100 Emblems",          0, 44, SECRET_NONE, 0, false, false, 0},
-	/* 13 */ {"Black Hole",       "A Rank in all Special Stages", 0, 50, SECRET_NONE, 0, false, true, 0},
-
-	/* 14 */ {"Emblem Hints", "Collect 40 Emblems", 0, 41, SECRET_EMBLEMHINTS, 0, false,  true, 0},
-	/* 15 */ {"Emblem Radar", "Collect 80 Emblems", 0, 43, SECRET_ITEMFINDER,  0, false,  true, 0},
-
-	/* 16 */ {"Pandora's Box", "Collect All Emblems",  0, 45, SECRET_PANDORA,     0, false, false, 0},
-	/* 17 */ {"Level Select",  "Collect All Emblems", 20, 45, SECRET_LEVELSELECT, 1, false,  true, 0},
+	/* 04 */ {"SNES Cup",         "Collect 5 Emblems",  0, 1, SECRET_NONE, 0, false, false, 0},
+	/* 05 */ {"Chaotic Kart Cup", "Collect 15 Emblems", 0, 2, SECRET_NONE, 0, false, false, 0},
 };
 
 // Default number of emblems and extra emblems
-INT32 numemblems = 1;
-INT32 numextraemblems = 5;
+INT32 numemblems = 23;
+INT32 numextraemblems = 1;
 
-// DEFAULT CONDITION SETS FOR SRB2 2.1:
+// DEFAULT CONDITION SETS FOR SRB2KART:
 void M_SetupDefaultConditionSets(void)
 {
 	memset(conditionSets, 0, sizeof(conditionSets));
 
-	// --   1: Complete GFZ1
-	M_AddRawCondition(1, 1, UC_MAPBEATEN, 1, 0, 0);
+	// -- 1: Collect 5 emblems OR play 25 matches
+	M_AddRawCondition(1, 1, UC_TOTALEMBLEMS, 5, 0, 0);
+	M_AddRawCondition(1, 2, UC_MATCHESPLAYED, 25, 0, 0);
 
-	// --   2: Complete SS1
-	M_AddRawCondition(2, 1, UC_MAPBEATEN, 50, 0, 0);
+	// -- 2: Collect 15 emblems OR play 50 matches
+	M_AddRawCondition(2, 1, UC_TOTALEMBLEMS, 15, 0, 0);
+	M_AddRawCondition(2, 2, UC_MATCHESPLAYED, 50, 0, 0);
 
-	// --  10: Complete the game
-	M_AddRawCondition(10, 1, UC_GAMECLEAR, 1, 0, 0);
-
-	// --  11: Complete the game with all emeralds
-	M_AddRawCondition(11, 1, UC_ALLEMERALDS, 1, 0, 0);
-
-	// --  20: Beat AGZ
-	M_AddRawCondition(20, 1, UC_MAPBEATEN, 40, 0, 0);
-
-	// --  21: Beat SRB1 Remake
-	M_AddRawCondition(21, 1, UC_MAPBEATEN, 132, 0, 0);
-
-	// --  22: Beat Black Hole
-	M_AddRawCondition(22, 1, UC_MAPBEATEN, 57, 0, 0);
-
-	// --  30: Perfect Bonus
-	M_AddRawCondition(30, 1,  UC_MAPPERFECT,  1, 0, 0);
-	M_AddRawCondition(30, 2,  UC_MAPPERFECT,  2, 0, 0);
-	M_AddRawCondition(30, 3,  UC_MAPPERFECT,  4, 0, 0);
-	M_AddRawCondition(30, 4,  UC_MAPPERFECT,  5, 0, 0);
-	M_AddRawCondition(30, 5,  UC_MAPPERFECT,  7, 0, 0);
-	M_AddRawCondition(30, 6,  UC_MAPPERFECT,  8, 0, 0);
-	M_AddRawCondition(30, 7,  UC_MAPPERFECT, 10, 0, 0);
-	M_AddRawCondition(30, 8,  UC_MAPPERFECT, 11, 0, 0);
-	M_AddRawCondition(30, 9,  UC_MAPPERFECT, 13, 0, 0);
-	M_AddRawCondition(30, 10, UC_MAPPERFECT, 16, 0, 0);
-	M_AddRawCondition(30, 11, UC_MAPPERFECT, 22, 0, 0);
-	M_AddRawCondition(30, 12, UC_MAPPERFECT, 23, 0, 0);
-	M_AddRawCondition(30, 13, UC_MAPPERFECT, 24, 0, 0);
-	M_AddRawCondition(30, 14, UC_MAPPERFECT, 40, 0, 0);
-	M_AddRawCondition(30, 15, UC_MAPPERFECT, 41, 0, 0);
-
-	// --  40: Find 20 emblems
-	M_AddRawCondition(40, 1, UC_TOTALEMBLEMS, 20, 0, 0);
-
-	// --  41: Find 40 emblems
-	M_AddRawCondition(41, 1, UC_TOTALEMBLEMS, 40, 0, 0);
-
-	// --  42: Find 60 emblems
-	M_AddRawCondition(42, 1, UC_TOTALEMBLEMS, 60, 0, 0);
-
-	// --  43: Find 80 emblems
-	M_AddRawCondition(43, 1, UC_TOTALEMBLEMS, 80, 0, 0);
-
-	// --  44: Find 100 emblems
-	M_AddRawCondition(44, 1, UC_TOTALEMBLEMS, 100, 0, 0);
-
-	// --  45: Find 160 (all) emblems
-	M_AddRawCondition(45, 1, UC_TOTALEMBLEMS, 160, 0, 0);
-
-	// --  50: A rank all NiGHTS special stages
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 50, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 51, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 52, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 53, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 54, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 55, 0);
-	M_AddRawCondition(50, 1, UC_NIGHTSGRADE, GRADE_A, 56, 0);
+	// -- 10: Play 100 matches
+	M_AddRawCondition(10, 1, UC_TOTALEMBLEMS, 20, 0, 0);
 }
 
 void M_AddRawCondition(UINT8 set, UINT8 id, conditiontype_t c, INT32 r, INT16 x1, INT16 x2)