mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge m_cond.c/h
This commit is contained in:
parent
7e9efd4e29
commit
c7d4be30f0
2 changed files with 27 additions and 286 deletions
239
src/m_cond.c
239
src/m_cond.c
|
|
@ -18,15 +18,10 @@
|
|||
#include "v_video.h" // video flags
|
||||
|
||||
#include "g_game.h" // record info
|
||||
<<<<<<< HEAD
|
||||
#include "r_things.h" // numskins
|
||||
//#include "r_draw.h" // R_GetColorByName
|
||||
#include "k_color.h" // K_GetKartColorByName
|
||||
#include "k_pwrlv.h"
|
||||
=======
|
||||
#include "r_skins.h" // numskins
|
||||
#include "r_draw.h" // R_GetColorByName
|
||||
>>>>>>> srb2/next
|
||||
#include "k_color.h" // K_GetKartColorByName
|
||||
#include "k_pwrlv.h"
|
||||
|
||||
// Map triggers for linedef executors
|
||||
// 32 triggers, one bit each
|
||||
|
|
@ -35,203 +30,6 @@ UINT32 unlocktriggers;
|
|||
// The meat of this system lies in condition sets
|
||||
conditionset_t conditionSets[MAXCONDITIONSETS];
|
||||
|
||||
<<<<<<< HEAD
|
||||
// Default Emblem locations
|
||||
emblem_t emblemlocations[MAXEMBLEMS] =
|
||||
{
|
||||
// GOLD DEV MEDALS
|
||||
// These values are directly lifted from the Champion ghost, through the power of hex editing!
|
||||
{ET_TIME, 0,0,0, 1, 'A', SKINCOLOR_GOLD, 3021, "", 0}, // Green Hills Zone - 1'26"31
|
||||
{ET_TIME, 0,0,0, 2, 'A', SKINCOLOR_GOLD, 4466, "", 0}, // Dark Race - 2'07"60
|
||||
{ET_TIME, 0,0,0, 3, 'A', SKINCOLOR_GOLD, 4337, "", 0}, // Northern District Zone - 2'03"91
|
||||
{ET_TIME, 0,0,0, 4, 'A', SKINCOLOR_GOLD, 3452, "", 0}, // Darkvile Garden Zone - 1'38"62
|
||||
{ET_TIME, 0,0,0, 5, 'A', SKINCOLOR_GOLD, 3525, "", 0}, // Daytona Speedway Zone - 1'40"71
|
||||
{ET_TIME, 0,0,0, 6, 'A', SKINCOLOR_GOLD, 4047, "", 0}, // Egg Zeppelin Zone - 1'55"62
|
||||
{ET_TIME, 0,0,0, 7, 'A', SKINCOLOR_GOLD, 4041, "", 0}, // Sonic Speedway Zone - 1'55"45
|
||||
{ET_TIME, 0,0,0, 8, 'A', SKINCOLOR_GOLD, 3281, "", 0}, // Hill Top Zone - 1'33"74
|
||||
{ET_TIME, 0,0,0, 9, 'A', SKINCOLOR_GOLD, 4764, "", 0}, // Misty Maze Zone - 2'16"11
|
||||
{ET_TIME, 0,0,0, 10, 'A', SKINCOLOR_GOLD, 4378, "", 0}, // Grand Metropolis - 2'05"08
|
||||
{ET_TIME, 0,0,0, 11, 'A', SKINCOLOR_GOLD, 3678, "", 0}, // Sunbeam Paradise Zone - 1'45"08
|
||||
{ET_TIME, 0,0,0, 12, 'A', SKINCOLOR_GOLD, 3928, "", 0}, // Diamond Square Zone - 1'52"22
|
||||
{ET_TIME, 0,0,0, 13, 'A', SKINCOLOR_GOLD, 3846, "", 0}, // Midnight Meadow Zone - 1'49"88
|
||||
{ET_TIME, 0,0,0, 14, 'A', SKINCOLOR_GOLD, 3278, "", 0}, // Twinkle Cart - 1'33"65
|
||||
{ET_TIME, 0,0,0, 15, 'A', SKINCOLOR_GOLD, 3591, "", 0}, // Pleasure Castle - 1'42"60
|
||||
{ET_TIME, 0,0,0, 16, 'A', SKINCOLOR_GOLD, 5187, "", 0}, // Paradise Hill Zone - 2'28"20
|
||||
{ET_TIME, 0,0,0, 17, 'A', SKINCOLOR_GOLD, 4976, "", 0}, // Sub-Zero Peak Zone - 2'22"17
|
||||
{ET_TIME, 0,0,0, 18, 'A', SKINCOLOR_GOLD, 3696, "", 0}, // Sapphire Coast Zone - 1'45"60
|
||||
{ET_TIME, 0,0,0, 19, 'A', SKINCOLOR_GOLD, 4931, "", 0}, // Sand Valley Zone - 2'20"88
|
||||
{ET_TIME, 0,0,0, 20, 'A', SKINCOLOR_GOLD, 4220, "", 0}, // Megablock Castle Zone - 2'00"57
|
||||
{ET_TIME, 0,0,0, 21, 'A', SKINCOLOR_GOLD, 4053, "", 0}, // Canyon Rush Zone - 1'55"80
|
||||
{ET_TIME, 0,0,0, 22, 'A', SKINCOLOR_GOLD, 3613, "", 0}, // Casino Resort Zone - 1'43"22
|
||||
{ET_TIME, 0,0,0, 23, 'A', SKINCOLOR_GOLD, 4385, "", 0}, // Silvercloud Island Zone - 2'05"28
|
||||
{ET_TIME, 0,0,0, 24, 'A', SKINCOLOR_GOLD, 5321, "", 0}, // Blue Mountain Zone - 2'32"02
|
||||
{ET_TIME, 0,0,0, 25, 'A', SKINCOLOR_GOLD, 4476, "", 0}, // Petroleum Refinery Zone - 2'07"88
|
||||
{ET_TIME, 0,0,0, 26, 'A', SKINCOLOR_GOLD, 3295, "", 0}, // Desert Palace Zone - 1'34"14
|
||||
{ET_TIME, 0,0,0, 27, 'A', SKINCOLOR_GOLD, 4765, "", 0}, // Aurora Atoll Zone - 2'16"14
|
||||
{ET_TIME, 0,0,0, 28, 'A', SKINCOLOR_GOLD, 4670, "", 0}, // Barren Badlands Zone - 2'13"42
|
||||
{ET_TIME, 0,0,0, 29, 'A', SKINCOLOR_GOLD, 5888, "", 0}, // Red Barrage Area - 2'48"22
|
||||
{ET_TIME, 0,0,0, 30, 'A', SKINCOLOR_GOLD, 4047, "", 0}, // Midnight Channel - 1'55"62
|
||||
{ET_TIME, 0,0,0, 31, 'A', SKINCOLOR_GOLD, 4944, "", 0}, // Vanilla Hotel Zone - 2'21"25
|
||||
{ET_TIME, 0,0,0, 32, 'A', SKINCOLOR_GOLD, 4638, "", 0}, // Toxic Palace Zone - 2'12"51
|
||||
{ET_TIME, 0,0,0, 33, 'A', SKINCOLOR_GOLD, 4036, "", 0}, // Ancient Tomb Zone - 1'55"31
|
||||
{ET_TIME, 0,0,0, 34, 'A', SKINCOLOR_GOLD, 3595, "", 0}, // Cloud Cradle Zone K - 1'42"71
|
||||
{ET_TIME, 0,0,0, 35, 'A', SKINCOLOR_GOLD, 4705, "", 0}, // Volcanic Valley Zone - 2'14"42
|
||||
{ET_TIME, 0,0,0, 36, 'A', SKINCOLOR_GOLD, 3314, "", 0}, // Kodachrome Void Zone - 1'34"68
|
||||
{ET_TIME, 0,0,0, 37, 'A', SKINCOLOR_GOLD, 3501, "", 0}, // Boiling Bedrock Zone - 1'40"02
|
||||
{ET_TIME, 0,0,0, 38, 'A', SKINCOLOR_GOLD, 4920, "", 0}, // Egg Quarters - 2'20"57
|
||||
{ET_TIME, 0,0,0, 39, 'A', SKINCOLOR_GOLD, 4318, "", 0}, // Virtual Highway Zone - 2'03"37
|
||||
{ET_TIME, 0,0,0, 40, 'A', SKINCOLOR_GOLD, 3550, "", 0}, // Eggman's Nightclub Zone - 1'41"42
|
||||
{ET_TIME, 0,0,0, 41, 'A', SKINCOLOR_GOLD, 2572, "", 0}, // KKR Ganbare Dochu 2 - 1'13"48
|
||||
{ET_TIME, 0,0,0, 42, 'A', SKINCOLOR_GOLD, 3091, "", 0}, // CK Chao Circuit 1 - 1'28"31
|
||||
{ET_TIME, 0,0,0, 43, 'A', SKINCOLOR_GOLD, 3454, "", 0}, // CK Chao Circuit 2 - 1'38"68
|
||||
{ET_TIME, 0,0,0, 44, 'A', SKINCOLOR_GOLD, 2958, "", 0}, // CK Cloud Tops 2 - 1'24"51
|
||||
{ET_TIME, 0,0,0, 45, 'A', SKINCOLOR_GOLD, 3693, "", 0}, // CK Regal Raceway - 1'45"51
|
||||
{ET_TIME, 0,0,0, 46, 'A', SKINCOLOR_GOLD, 3437, "", 0}, // SD2 Balloon Panic - 1'38"20
|
||||
{ET_TIME, 0,0,0, 47, 'A', SKINCOLOR_GOLD, 3238, "", 0}, // SM Dimension Heist - 1'32"51
|
||||
{ET_TIME, 0,0,0, 48, 'A', SKINCOLOR_GOLD, 3063, "", 0}, // MKSC Sky Garden - 1'27"51
|
||||
{ET_TIME, 0,0,0, 49, 'A', SKINCOLOR_GOLD, 2980, "", 0}, // MKDS Peach Gardens - 1'25"14
|
||||
{ET_TIME, 0,0,0, 50, 'A', SKINCOLOR_GOLD, 2914, "", 0}, // MKSC Rainbow Road - 1'23"25
|
||||
{ET_TIME, 0,0,0, 51, 'A', SKINCOLOR_GOLD, 3003, "", 0}, // SMK Donut Plains 1 - 1'25"80
|
||||
{ET_TIME, 0,0,0, 52, 'A', SKINCOLOR_GOLD, 2930, "", 0}, // SMK Mario Circuit 2 - 1'23"71
|
||||
{ET_TIME, 0,0,0, 53, 'A', SKINCOLOR_GOLD, 2389, "", 0}, // SMK Ghost Valley 2 - 1'08"25
|
||||
{ET_TIME, 0,0,0, 54, 'A', SKINCOLOR_GOLD, 4292, "", 0}, // SMK Bowser Castle 3 - 2'02"62
|
||||
{ET_TIME, 0,0,0, 55, 'A', SKINCOLOR_GOLD, 2346, "", 0}, // SMK Vanilla Lake 2 - 1'07"02
|
||||
|
||||
// SILVER NORMAL MEDALS
|
||||
// The general "guideline" of how good we want a player to be at a map.
|
||||
{ET_TIME, 0,0,0, 1, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Green Hills Zone - 1'50"00
|
||||
{ET_TIME, 0,0,0, 2, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Dark Race - 2'40"00
|
||||
{ET_TIME, 0,0,0, 3, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Northern District Zone - 2'40"00
|
||||
{ET_TIME, 0,0,0, 4, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Darkvile Garden Zone - 2'00"00
|
||||
{ET_TIME, 0,0,0, 5, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Daytona Speedway Zone - 2'10"00
|
||||
{ET_TIME, 0,0,0, 6, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Egg Zeppelin Zone - 2'20"00
|
||||
{ET_TIME, 0,0,0, 7, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Sonic Speedway Zone - 2'20"00
|
||||
{ET_TIME, 0,0,0, 8, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Hill Top Zone - 1'50"00
|
||||
{ET_TIME, 0,0,0, 9, 'B', SKINCOLOR_GREY, 170*TICRATE, "", 0}, // Misty Maze Zone - 2'50"00
|
||||
{ET_TIME, 0,0,0, 10, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Grand Metropolis - 2'20"00
|
||||
{ET_TIME, 0,0,0, 11, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Sunbeam Paradise Zone - 2'00"00
|
||||
{ET_TIME, 0,0,0, 12, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Diamond Square Zone - 2'10"00
|
||||
{ET_TIME, 0,0,0, 13, 'B', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Midnight Meadow Zone - 2'15"00
|
||||
{ET_TIME, 0,0,0, 14, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Twinkle Cart - 2'00"00
|
||||
{ET_TIME, 0,0,0, 15, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Pleasure Castle - 2'00"00
|
||||
{ET_TIME, 0,0,0, 16, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Paradise Hill Zone - 2'40"00
|
||||
{ET_TIME, 0,0,0, 17, 'B', SKINCOLOR_GREY, 170*TICRATE, "", 0}, // Sub-Zero Peak Zone - 2'50"00
|
||||
{ET_TIME, 0,0,0, 18, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Sapphire Coast Zone - 2'10"00
|
||||
{ET_TIME, 0,0,0, 19, 'B', SKINCOLOR_GREY, 170*TICRATE, "", 0}, // Sand Valley Zone - 2'50"00
|
||||
{ET_TIME, 0,0,0, 20, 'B', SKINCOLOR_GREY, 145*TICRATE, "", 0}, // Megablock Castle Zone - 2'25"00
|
||||
{ET_TIME, 0,0,0, 21, 'B', SKINCOLOR_GREY, 140*TICRATE, "", 0}, // Canyon Rush Zone - 2'20"00
|
||||
{ET_TIME, 0,0,0, 22, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Casino Resort Zone - 2'00"00
|
||||
{ET_TIME, 0,0,0, 23, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Silvercloud Island Zone - 2'30"00
|
||||
{ET_TIME, 0,0,0, 24, 'B', SKINCOLOR_GREY, 170*TICRATE, "", 0}, // Blue Mountain Zone - 2'50"00
|
||||
{ET_TIME, 0,0,0, 25, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Petroleum Refinery Zone - 2'30"00
|
||||
{ET_TIME, 0,0,0, 26, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Desert Palace Zone - 2'00"00
|
||||
{ET_TIME, 0,0,0, 27, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Aurora Atoll Zone - 2'40"00
|
||||
{ET_TIME, 0,0,0, 28, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Barren Badlands Zone - 2'30"00
|
||||
{ET_TIME, 0,0,0, 29, 'B', SKINCOLOR_GREY, 170*TICRATE, "", 0}, // Red Barrage Area - 2'50"00
|
||||
{ET_TIME, 0,0,0, 30, 'B', SKINCOLOR_GREY, 135*TICRATE, "", 0}, // Midnight Channel - 2'15"00
|
||||
{ET_TIME, 0,0,0, 31, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Vanilla Hotel Zone - 2'40"00
|
||||
{ET_TIME, 0,0,0, 32, 'B', SKINCOLOR_GREY, 160*TICRATE, "", 0}, // Toxic Palace Zone - 2'40"00
|
||||
{ET_TIME, 0,0,0, 33, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // Ancient Tomb Zone - 2'30"00
|
||||
{ET_TIME, 0,0,0, 34, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Cloud Cradle Zone K - 2'00"00
|
||||
{ET_TIME, 0,0,0, 35, 'B', SKINCOLOR_GREY, 165*TICRATE, "", 0}, // Volcanic Valley Zone - 2'45"00
|
||||
{ET_TIME, 0,0,0, 36, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // Kodachrome Void Zone - 1'50"00
|
||||
{ET_TIME, 0,0,0, 37, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // Boiling Bedrock Zone - 2'10"00
|
||||
{ET_TIME, 0,0,0, 38, 'B', SKINCOLOR_GREY, 165*TICRATE, "", 0}, // Egg Quarters - 2'45"00
|
||||
{ET_TIME, 0,0,0, 39, 'B', SKINCOLOR_GREY, 145*TICRATE, "", 0}, // Virtual Highway Zone - 2'25"00
|
||||
{ET_TIME, 0,0,0, 40, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // Eggman's Nightclub Zone - 2'00"00
|
||||
{ET_TIME, 0,0,0, 41, 'B', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // KKR Ganbare Dochu 2 - 1'40"00
|
||||
{ET_TIME, 0,0,0, 42, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // CK Chao Circuit 1 - 1'50"00
|
||||
{ET_TIME, 0,0,0, 43, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // CK Chao Circuit 2 - 2'00"00
|
||||
{ET_TIME, 0,0,0, 44, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // CK Cloud Tops 2 - 1'50"00
|
||||
{ET_TIME, 0,0,0, 45, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // CK Regal Raceway - 2'10"00
|
||||
{ET_TIME, 0,0,0, 46, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // SD2 Balloon Panic - 1'50"00
|
||||
{ET_TIME, 0,0,0, 47, 'B', SKINCOLOR_GREY, 130*TICRATE, "", 0}, // SM Dimension Heist - 2'10"00
|
||||
{ET_TIME, 0,0,0, 48, 'B', SKINCOLOR_GREY, 110*TICRATE, "", 0}, // MKSC Sky Garden - 1'50"00
|
||||
{ET_TIME, 0,0,0, 49, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // MKDS Peach Gardens - 1'45"00
|
||||
{ET_TIME, 0,0,0, 50, 'B', SKINCOLOR_GREY, 120*TICRATE, "", 0}, // MKSC Rainbow Road - 2'00"00
|
||||
{ET_TIME, 0,0,0, 51, 'B', SKINCOLOR_GREY, 100*TICRATE, "", 0}, // SMK Donut Plains 1 - 1'40"00
|
||||
{ET_TIME, 0,0,0, 52, 'B', SKINCOLOR_GREY, 105*TICRATE, "", 0}, // SMK Mario Circuit 2 - 1'45"00
|
||||
{ET_TIME, 0,0,0, 53, 'B', SKINCOLOR_GREY, 90*TICRATE, "", 0}, // SMK Ghost Valley 2 - 1'30"00
|
||||
{ET_TIME, 0,0,0, 54, 'B', SKINCOLOR_GREY, 150*TICRATE, "", 0}, // SMK Bowser Castle 3 - 2'30"00
|
||||
{ET_TIME, 0,0,0, 55, 'B', SKINCOLOR_GREY, 90*TICRATE, "", 0} // SMK Vanilla Lake 2 - 1'30"00
|
||||
};
|
||||
|
||||
// Default Extra Emblems
|
||||
extraemblem_t extraemblems[MAXEXTRAEMBLEMS] =
|
||||
{
|
||||
{"Novice", "Play 100 matches", 10, 'C', SKINCOLOR_RED, 0},
|
||||
{"Standard", "Play 250 matches", 11, 'C', SKINCOLOR_RED, 0},
|
||||
{"Expert", "Play 500 matches", 12, 'C', SKINCOLOR_RED, 0},
|
||||
{"Master", "Play 750 matches", 13, 'C', SKINCOLOR_RED, 0},
|
||||
{"Nightmare", "Play 1000 matches", 14, 'C', SKINCOLOR_RED, 0},
|
||||
};
|
||||
|
||||
// Default Unlockables
|
||||
unlockable_t unlockables[MAXUNLOCKABLES] =
|
||||
{
|
||||
// Name, Objective, Showing Conditionset, ConditionSet, Unlock Type, Variable, NoCecho, NoChecklist
|
||||
/* 01 */ {"Egg Cup", "", -1, 1, SECRET_NONE, 0, false, false, 0},
|
||||
/* 02 */ {"Chao Cup", "", -1, 2, SECRET_NONE, 0, false, false, 0},
|
||||
/* 03 */ {"SMK Cup", "", 2, 3, SECRET_NONE, 0, false, false, 0},
|
||||
|
||||
/* 04 */ {"Hard Game Speed", "", -1, 4, SECRET_HARDSPEED, 0, false, false, 0},
|
||||
/* 05 */ {"Encore Mode", "", 4, 5, SECRET_ENCORE, 0, false, false, 0},
|
||||
/* 06 */ {"Hell Attack", "", 6, 6, SECRET_HELLATTACK, 0, false, false, 0},
|
||||
|
||||
/* 07 */ {"Time Attack", "", -1, -1, SECRET_TIMEATTACK, 0, true, true, 0},
|
||||
/* 08 */ {"Break the Capsules", "", -1, -1, SECRET_BREAKTHECAPSULES, 0, true, true, 0},
|
||||
};
|
||||
|
||||
// Default number of emblems and extra emblems
|
||||
INT32 numemblems = 110;
|
||||
INT32 numextraemblems = 5;
|
||||
|
||||
// DEFAULT CONDITION SETS FOR SRB2KART:
|
||||
void M_SetupDefaultConditionSets(void)
|
||||
{
|
||||
memset(conditionSets, 0, sizeof(conditionSets));
|
||||
|
||||
// UNLOCKABLES
|
||||
// -- 1: Collect 5 medals OR play 25 matches
|
||||
M_AddRawCondition(1, 1, UC_TOTALEMBLEMS, 5, 0, 0);
|
||||
M_AddRawCondition(1, 2, UC_MATCHESPLAYED, 25, 0, 0);
|
||||
|
||||
// -- 2: Collect 15 medals OR play 50 matches
|
||||
M_AddRawCondition(2, 1, UC_TOTALEMBLEMS, 15, 0, 0);
|
||||
M_AddRawCondition(2, 2, UC_MATCHESPLAYED, 50, 0, 0);
|
||||
|
||||
// -- 3: Collect 30 medals OR play 150 matches
|
||||
M_AddRawCondition(3, 1, UC_TOTALEMBLEMS, 30, 0, 0);
|
||||
M_AddRawCondition(3, 2, UC_MATCHESPLAYED, 150, 0, 0);
|
||||
|
||||
// -- 4: Collect 50 medals OR play 200 matches
|
||||
M_AddRawCondition(4, 1, UC_TOTALEMBLEMS, 50, 0, 0);
|
||||
M_AddRawCondition(4, 2, UC_MATCHESPLAYED, 200, 0, 0);
|
||||
|
||||
// -- 5: Collect 70 medals OR play 300 matches
|
||||
M_AddRawCondition(5, 1, UC_TOTALEMBLEMS, 70, 0, 0);
|
||||
M_AddRawCondition(5, 2, UC_MATCHESPLAYED, 300, 0, 0);
|
||||
|
||||
// -- 6: Collect 110 medals ONLY
|
||||
M_AddRawCondition(6, 1, UC_TOTALEMBLEMS, 110, 0, 0);
|
||||
|
||||
// MILESTONES
|
||||
// -- 10: Play 100 matches
|
||||
M_AddRawCondition(10, 1, UC_MATCHESPLAYED, 100, 0, 0);
|
||||
|
||||
// -- 11: Play 250 matches
|
||||
M_AddRawCondition(11, 1, UC_MATCHESPLAYED, 250, 0, 0);
|
||||
|
||||
// -- 12: Play 500 matches
|
||||
M_AddRawCondition(12, 1, UC_MATCHESPLAYED, 500, 0, 0);
|
||||
|
||||
// -- 13: Play 750 matches
|
||||
M_AddRawCondition(13, 1, UC_MATCHESPLAYED, 750, 0, 0);
|
||||
|
||||
// -- 14: Play 1000 matches
|
||||
M_AddRawCondition(14, 1, UC_MATCHESPLAYED, 1000, 0, 0);
|
||||
}
|
||||
=======
|
||||
// Emblem locations
|
||||
emblem_t emblemlocations[MAXEMBLEMS];
|
||||
|
||||
|
|
@ -244,7 +42,6 @@ unlockable_t unlockables[MAXUNLOCKABLES];
|
|||
// Number of emblems and extra emblems
|
||||
INT32 numemblems = 0;
|
||||
INT32 numextraemblems = 0;
|
||||
>>>>>>> srb2/next
|
||||
|
||||
void M_AddRawCondition(UINT8 set, UINT8 id, conditiontype_t c, INT32 r, INT16 x1, INT16 x2)
|
||||
{
|
||||
|
|
@ -317,36 +114,16 @@ UINT8 M_CheckCondition(condition_t *cn)
|
|||
return (timesBeaten >= (unsigned)cn->requirement);
|
||||
case UC_ALLEMERALDS: // Requires game beaten with all 7 emeralds >= x times
|
||||
return (timesBeatenWithEmeralds >= (unsigned)cn->requirement);
|
||||
/*case UC_ULTIMATECLEAR: // Requires game beaten on ultimate >= x times (in other words, never)
|
||||
return (timesBeatenUltimate >= (unsigned)cn->requirement);*/
|
||||
case UC_OVERALLTIME: // Requires overall time <= x
|
||||
return (M_GotLowEnoughTime(cn->requirement));
|
||||
/*case UC_OVERALLSCORE: // Requires overall score >= x
|
||||
return (M_GotHighEnoughScore(cn->requirement));
|
||||
case UC_OVERALLRINGS: // Requires overall rings >= x
|
||||
return (M_GotHighEnoughRings(cn->requirement));*/
|
||||
case UC_MAPVISITED: // Requires map x to be visited
|
||||
return ((mapvisited[cn->requirement - 1] & MV_VISITED) == MV_VISITED);
|
||||
case UC_MAPBEATEN: // Requires map x to be beaten
|
||||
return ((mapvisited[cn->requirement - 1] & MV_BEATEN) == MV_BEATEN);
|
||||
case UC_MAPALLEMERALDS: // Requires map x to be beaten with all emeralds in possession
|
||||
return ((mapvisited[cn->requirement - 1] & MV_ALLEMERALDS) == MV_ALLEMERALDS);
|
||||
/*case UC_MAPULTIMATE: // Requires map x to be beaten on ultimate
|
||||
return ((mapvisited[cn->requirement - 1] & MV_ULTIMATE) == MV_ULTIMATE);
|
||||
case UC_MAPPERFECT: // Requires map x to be beaten with a perfect bonus
|
||||
return ((mapvisited[cn->requirement - 1] & MV_PERFECT) == MV_PERFECT);*/
|
||||
case UC_MAPTIME: // Requires time on map <= x
|
||||
return (G_GetBestTime(cn->extrainfo1) <= (unsigned)cn->requirement);
|
||||
/*case UC_MAPSCORE: // Requires score on map >= x
|
||||
return (G_GetBestScore(cn->extrainfo1) >= (unsigned)cn->requirement);
|
||||
case UC_MAPRINGS: // Requires rings on map >= x
|
||||
return (G_GetBestRings(cn->extrainfo1) >= cn->requirement);
|
||||
case UC_NIGHTSSCORE:
|
||||
return (G_GetBestNightsScore(cn->extrainfo1, (UINT8)cn->extrainfo2) >= (unsigned)cn->requirement);
|
||||
case UC_NIGHTSTIME:
|
||||
return (G_GetBestNightsTime(cn->extrainfo1, (UINT8)cn->extrainfo2) <= (unsigned)cn->requirement);
|
||||
case UC_NIGHTSGRADE:
|
||||
return (G_GetBestNightsGrade(cn->extrainfo1, (UINT8)cn->extrainfo2) >= cn->requirement);*/
|
||||
case UC_TRIGGER: // requires map trigger set
|
||||
return !!(unlocktriggers & (1 << cn->requirement));
|
||||
case UC_TOTALEMBLEMS: // Requires number of emblems >= x
|
||||
|
|
@ -517,21 +294,9 @@ UINT8 M_CheckLevelEmblems(void)
|
|||
|
||||
switch (emblemlocations[i].type)
|
||||
{
|
||||
/*case ET_SCORE: // Requires score on map >= x
|
||||
res = (G_GetBestScore(levelnum) >= (unsigned)valToReach);
|
||||
break;*/
|
||||
case ET_TIME: // Requires time on map <= x
|
||||
res = (G_GetBestTime(levelnum) <= (unsigned)valToReach);
|
||||
break;
|
||||
/*case ET_RINGS: // Requires rings on map >= x
|
||||
res = (G_GetBestRings(levelnum) >= valToReach);
|
||||
break;
|
||||
case ET_NGRADE: // Requires NiGHTS grade on map >= x
|
||||
res = (G_GetBestNightsGrade(levelnum, 0) >= valToReach);
|
||||
break;
|
||||
case ET_NTIME: // Requires NiGHTS time on map <= x
|
||||
res = (G_GetBestNightsTime(levelnum, 0) <= (unsigned)valToReach);
|
||||
break;*/
|
||||
default: // unreachable but shuts the compiler up.
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
74
src/m_cond.h
74
src/m_cond.h
|
|
@ -25,21 +25,10 @@ typedef enum
|
|||
UC_POWERLEVEL, // SRB2Kart: POWERLEVEL [power level to reach] [gametype, "0" for race, "1" for battle]
|
||||
UC_GAMECLEAR, // GAMECLEAR <x times>
|
||||
UC_ALLEMERALDS, // ALLEMERALDS <x times>
|
||||
//UC_ULTIMATECLEAR, // ULTIMATECLEAR <x times>
|
||||
//UC_OVERALLSCORE, // OVERALLSCORE [score to beat]
|
||||
UC_OVERALLTIME, // OVERALLTIME [time to beat, tics]
|
||||
//UC_OVERALLRINGS, // OVERALLRINGS [rings to beat]
|
||||
UC_MAPVISITED, // MAPVISITED [map number]
|
||||
UC_MAPBEATEN, // MAPBEATEN [map number]
|
||||
UC_MAPALLEMERALDS, // MAPALLEMERALDS [map number]
|
||||
//UC_MAPULTIMATE, // MAPULTIMATE [map number]
|
||||
//UC_MAPPERFECT, // MAPPERFECT [map number]
|
||||
//UC_MAPSCORE, // MAPSCORE [map number] [score to beat]
|
||||
UC_MAPTIME, // MAPTIME [map number] [time to beat, tics]
|
||||
//UC_MAPRINGS, // MAPRINGS [map number] [rings to beat]
|
||||
//UC_NIGHTSSCORE, // NIGHTSSCORE [map number] <mare, omit or "0" for overall> [score to beat]
|
||||
//UC_NIGHTSTIME, // NIGHTSTIME [map number] <mare, omit "0" overall> [time to beat, tics]
|
||||
//UC_NIGHTSGRADE, // NIGHTSGRADE [map number] <mare, omit "0" overall> [grade]
|
||||
UC_TRIGGER, // TRIGGER [trigger number]
|
||||
UC_TOTALEMBLEMS, // TOTALEMBLEMS [number of emblems]
|
||||
UC_EMBLEM, // EMBLEM [emblem number]
|
||||
|
|
@ -68,33 +57,17 @@ typedef struct
|
|||
} conditionset_t;
|
||||
|
||||
// Emblem information
|
||||
<<<<<<< HEAD
|
||||
#define ET_GLOBAL 0 // Global map emblem, var == color
|
||||
#define ET_SKIN 1 // Skin specific emblem, var == skin
|
||||
//#define ET_SCORE 2
|
||||
#define ET_TIME 2
|
||||
//#define ET_RINGS 4
|
||||
//#define ET_NGRADE 5
|
||||
//#define ET_NTIME 6
|
||||
=======
|
||||
#define ET_GLOBAL 0 // Emblem with a position in space
|
||||
#define ET_SKIN 1 // Skin specific emblem with a position in space, var == skin
|
||||
#define ET_MAP 2 // Beat the map
|
||||
#define ET_SCORE 3 // Get the score
|
||||
#define ET_TIME 4 // Get the time
|
||||
#define ET_RINGS 5 // Get the rings
|
||||
#define ET_NGRADE 6 // Get the grade
|
||||
#define ET_NTIME 7 // Get the time (NiGHTS mode)
|
||||
#define ET_GLOBAL 0 // Emblem with a position in space
|
||||
#define ET_MAP 1 // Beat the map
|
||||
#define ET_TIME 2 // Get the time
|
||||
//#define ET_DEVTIME 3 // Time, but
|
||||
|
||||
// Global emblem flags
|
||||
#define GE_NIGHTSPULL 1 // sun off the nights track - loop it
|
||||
#define GE_NIGHTSITEM 2 // moon on the nights track - find it
|
||||
// (N/A to Kart yet)
|
||||
//#define GE_NIGHTSPULL 1
|
||||
|
||||
// Map emblem flags
|
||||
#define ME_ALLEMERALDS 1
|
||||
#define ME_ULTIMATE 2
|
||||
#define ME_PERFECT 4
|
||||
>>>>>>> srb2/next
|
||||
#define ME_ENCORE 1
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
|
@ -133,21 +106,24 @@ typedef struct
|
|||
UINT8 unlocked;
|
||||
} unlockable_t;
|
||||
|
||||
// I have NO idea why these are going negative, but whatever.
|
||||
#define SECRET_NONE -6 // Does nil. Use with levels locked by UnlockRequired
|
||||
#define SECRET_ITEMFINDER -5 // Enables Item Finder/Emblem Radar
|
||||
#define SECRET_EMBLEMHINTS -4 // Enables Emblem Hints
|
||||
#define SECRET_PANDORA -3 // Enables Pandora's Box
|
||||
#define SECRET_TIMEATTACK -2 // Enables Time Attack on the main menu
|
||||
#define SECRET_BREAKTHECAPSULES -1 // Enables Break the Capsules on the main menu
|
||||
#define SECRET_HEADER 0 // Does nothing on its own, just serves as a header for the menu
|
||||
#define SECRET_LEVELSELECT 1 // Selectable level select
|
||||
#define SECRET_WARP 2 // Selectable warp
|
||||
#define SECRET_SOUNDTEST 3 // Sound Test
|
||||
#define SECRET_CREDITS 4 // Enables Credits
|
||||
#define SECRET_ENCORE 5 // Enables Encore mode cvar
|
||||
#define SECRET_HELLATTACK 6 // Map Hell in record attack
|
||||
#define SECRET_HARDSPEED 7 // Enables Hard gamespeed
|
||||
#define SECRET_NONE 0 // Does nil. Use with levels locked by UnlockRequired
|
||||
#define SECRET_HEADER 1 // Does nothing on its own, just serves as a header for the menu
|
||||
|
||||
#define SECRET_LEVELSELECT 2 // Selectable level select
|
||||
#define SECRET_WARP 3 // Selectable warp
|
||||
#define SECRET_TIMEATTACK 4 // Enables Time Attack on the main menu
|
||||
#define SECRET_BREAKTHECAPSULES 5 // Enables Break the Capsules on the main menu
|
||||
#define SECRET_SOUNDTEST 6 // Sound Test
|
||||
#define SECRET_CREDITS 7 // Enables Credits
|
||||
|
||||
#define SECRET_ITEMFINDER 8 // Enables Item Finder/Emblem Radar
|
||||
#define SECRET_EMBLEMHINTS 9 // Enables Emblem Hints
|
||||
|
||||
#define SECRET_ENCORE 10 // Enables Encore mode cvar
|
||||
#define SECRET_HARDSPEED 11 // Enables Hard gamespeed
|
||||
#define SECRET_HELLATTACK 12 // Map Hell in record attack
|
||||
|
||||
#define SECRET_PANDORA 13 // Enables Pandora's Box
|
||||
|
||||
// If you have more secrets than these variables allow in your game,
|
||||
// you seriously need to get a life.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue