Added Waypoint challenge type.
This commit is contained in:
parent
f88c8dd156
commit
0cd73db62e
|
@ -476,6 +476,10 @@ static void drawObjectives(void)
|
||||||
{
|
{
|
||||||
drawText(SCREEN_WIDTH / 2, 35, 14, TA_CENTER, colors.white, "%d / %d", battle.stats[STAT_ENEMIES_SURRENDERED], game.currentMission->challengeData.surrenderLimit);
|
drawText(SCREEN_WIDTH / 2, 35, 14, TA_CENTER, colors.white, "%d / %d", battle.stats[STAT_ENEMIES_SURRENDERED], game.currentMission->challengeData.surrenderLimit);
|
||||||
}
|
}
|
||||||
|
else if (game.currentMission->challengeData.waypointLimit)
|
||||||
|
{
|
||||||
|
drawText(SCREEN_WIDTH / 2, 35, 14, TA_CENTER, colors.white, "%d / %d", battle.stats[STAT_WAYPOINTS_VISITED], game.currentMission->challengeData.waypointLimit);
|
||||||
|
}
|
||||||
else if (player->flags & EF_MUST_DISABLE)
|
else if (player->flags & EF_MUST_DISABLE)
|
||||||
{
|
{
|
||||||
drawText(SCREEN_WIDTH / 2, 35, 14, TA_CENTER, colors.white, _("System Power : %d%%"), player->systemPower);
|
drawText(SCREEN_WIDTH / 2, 35, 14, TA_CENTER, colors.white, _("System Power : %d%%"), player->systemPower);
|
||||||
|
|
|
@ -29,6 +29,7 @@ static void updatePlayerKillsChallenge(Challenge *c);
|
||||||
static void updateDisabledChallenge(Challenge *c);
|
static void updateDisabledChallenge(Challenge *c);
|
||||||
static void updateItemsChallenge(Challenge *c);
|
static void updateItemsChallenge(Challenge *c);
|
||||||
static void updateSurrenderChallenge(Challenge *c);
|
static void updateSurrenderChallenge(Challenge *c);
|
||||||
|
static void updateWaypointChallenge(Challenge *c);
|
||||||
static void completeChallenge(void);
|
static void completeChallenge(void);
|
||||||
static void failChallenge(void);
|
static void failChallenge(void);
|
||||||
static int updateChallenges(void);
|
static int updateChallenges(void);
|
||||||
|
@ -63,6 +64,7 @@ void initChallenges(void)
|
||||||
challengeDescription[CHALLENGE_PLAYER_ITEMS] = _("Collect %d packages");
|
challengeDescription[CHALLENGE_PLAYER_ITEMS] = _("Collect %d packages");
|
||||||
challengeDescription[CHALLENGE_RESCUE] = _("Rescue %d civilians");
|
challengeDescription[CHALLENGE_RESCUE] = _("Rescue %d civilians");
|
||||||
challengeDescription[CHALLENGE_SURRENDER] = _("Cause %d enemies to surrender");
|
challengeDescription[CHALLENGE_SURRENDER] = _("Cause %d enemies to surrender");
|
||||||
|
challengeDescription[CHALLENGE_WAYPOINTS] = _("Reach %d waypoints");
|
||||||
|
|
||||||
tail = &game.challengeMissionHead;
|
tail = &game.challengeMissionHead;
|
||||||
|
|
||||||
|
@ -216,6 +218,11 @@ static int challengeFinished(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (game.currentMission->challengeData.waypointLimit > 0 && (battle.stats[STAT_WAYPOINTS_VISITED]) >= game.currentMission->challengeData.waypointLimit)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (game.currentMission->challengeData.eliminateThreats && !battle.hasThreats)
|
if (game.currentMission->challengeData.eliminateThreats && !battle.hasThreats)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -283,6 +290,10 @@ static int updateChallenges(void)
|
||||||
case CHALLENGE_SURRENDER:
|
case CHALLENGE_SURRENDER:
|
||||||
updateSurrenderChallenge(c);
|
updateSurrenderChallenge(c);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CHALLENGE_WAYPOINTS:
|
||||||
|
updateWaypointChallenge(c);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -427,6 +438,14 @@ static void updateSurrenderChallenge(Challenge *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void updateWaypointChallenge(Challenge *c)
|
||||||
|
{
|
||||||
|
if (!c->passed)
|
||||||
|
{
|
||||||
|
c->passed = battle.stats[STAT_WAYPOINTS_VISITED] >= c->value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
char *getChallengeDescription(Challenge *c)
|
char *getChallengeDescription(Challenge *c)
|
||||||
{
|
{
|
||||||
if (c->type == CHALLENGE_TIME)
|
if (c->type == CHALLENGE_TIME)
|
||||||
|
|
|
@ -338,6 +338,7 @@ enum
|
||||||
CHALLENGE_RESCUE,
|
CHALLENGE_RESCUE,
|
||||||
CHALLENGE_SURVIVE,
|
CHALLENGE_SURVIVE,
|
||||||
CHALLENGE_SURRENDER,
|
CHALLENGE_SURRENDER,
|
||||||
|
CHALLENGE_WAYPOINTS,
|
||||||
CHALLENGE_MAX
|
CHALLENGE_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -158,6 +158,7 @@ void initLookups(void)
|
||||||
addLookup("CHALLENGE_PLAYER_ITEMS", CHALLENGE_PLAYER_ITEMS);
|
addLookup("CHALLENGE_PLAYER_ITEMS", CHALLENGE_PLAYER_ITEMS);
|
||||||
addLookup("CHALLENGE_RESCUE", CHALLENGE_RESCUE);
|
addLookup("CHALLENGE_RESCUE", CHALLENGE_RESCUE);
|
||||||
addLookup("CHALLENGE_SURRENDER", CHALLENGE_SURRENDER);
|
addLookup("CHALLENGE_SURRENDER", CHALLENGE_SURRENDER);
|
||||||
|
addLookup("CHALLENGE_WAYPOINTS", CHALLENGE_WAYPOINTS);
|
||||||
|
|
||||||
addLookup("STAT_PERCENT_COMPLETE", STAT_PERCENT_COMPLETE);
|
addLookup("STAT_PERCENT_COMPLETE", STAT_PERCENT_COMPLETE);
|
||||||
addLookup("STAT_MISSIONS_STARTED", STAT_MISSIONS_STARTED);
|
addLookup("STAT_MISSIONS_STARTED", STAT_MISSIONS_STARTED);
|
||||||
|
|
Loading…
Reference in New Issue