Add UCRP_SURVIVE

Extremely simple condition - finish the level without NO CONTEST. Good for two specific Challenges that were trying to make do with "finish in good standing" as a substitute
This commit is contained in:
toaster 2024-03-19 19:02:50 +00:00
parent 03adb1c093
commit ae3e151e65
3 changed files with 7 additions and 0 deletions

View file

@ -3088,6 +3088,7 @@ static void readcondition(UINT16 set, UINT32 id, char *word2)
else if ((offset=0) || fastcmp(params[0], "FINISHCOOL")
|| (++offset && fastcmp(params[0], "FINISHPERFECT"))
|| (++offset && fastcmp(params[0], "FINISHALLPRISONS"))
|| (++offset && fastcmp(params[0], "SURVIVE"))
|| (++offset && fastcmp(params[0], "NOCONTEST"))
|| (++offset && fastcmp(params[0], "SMASHUFO"))
|| (++offset && fastcmp(params[0], "CHASEDBYSPB")))

View file

@ -1710,6 +1710,9 @@ boolean M_CheckCondition(condition_t *cn, player_t *player)
&& !(player->pflags & PF_NOCONTEST)
//&& M_NotFreePlay()
&& numtargets >= maptargets);
case UCRP_SURVIVE:
return (player->exiting
&& !(player->pflags & PF_NOCONTEST));
case UCRP_NOCONTEST:
return (player->pflags & PF_NOCONTEST);
@ -2650,6 +2653,8 @@ static const char *M_GetConditionString(condition_t *cn)
return "finish a perfect round";
case UCRP_FINISHALLPRISONS:
return "break every Prison Egg";
case UCRP_SURVIVE:
return "survive";
case UCRP_NOCONTEST:
return "NO CONTEST";

View file

@ -103,6 +103,7 @@ typedef enum
UCRP_FINISHCOOL, // Finish in good standing
UCRP_FINISHPERFECT, // Finish a perfect race
UCRP_FINISHALLPRISONS, // Break all prisons
UCRP_SURVIVE, // Survive
UCRP_NOCONTEST, // No Contest
UCRP_SMASHUFO, // Smash the UFO Catcher