Added "unwinnable" mission flag, to automatically continue the game when the player is defeated.

This commit is contained in:
Steve 2016-01-25 14:58:07 +00:00
parent bf3de041c6
commit a251459413
4 changed files with 23 additions and 5 deletions

View File

@ -169,6 +169,15 @@ static void doBattle(void)
} }
battle.stats[STAT_TIME]++; battle.stats[STAT_TIME]++;
if (battle.unwinnable && battle.missionFinishedTimer <= -FPS * 6)
{
postBattle();
destroyBattle();
initGalacticMap();
}
} }
static void draw(void) static void draw(void)

View File

@ -52,13 +52,16 @@ void drawMissionInfo(void)
case MS_COMPLETE: case MS_COMPLETE:
case MS_FAILED: case MS_FAILED:
if (battle.missionFinishedTimer <= -FPS) if (!battle.unwinnable)
{ {
drawMissionSummary(battle.status == MS_COMPLETE ? missionCompleteTexture : missionFailedTexture); if (battle.missionFinishedTimer <= -FPS)
if (battle.missionFinishedTimer <= -(FPS * 2))
{ {
drawWidgets(battle.status == MS_COMPLETE ? "battleWon" : "battleLost"); drawMissionSummary(battle.status == MS_COMPLETE ? missionCompleteTexture : missionFailedTexture);
if (battle.missionFinishedTimer <= -(FPS * 2))
{
drawWidgets(battle.status == MS_COMPLETE ? "battleWon" : "battleLost");
}
} }
} }
break; break;

View File

@ -72,6 +72,11 @@ void loadMission(char *filename)
loadEpicData(cJSON_GetObjectItem(root, "epic")); loadEpicData(cJSON_GetObjectItem(root, "epic"));
} }
if (cJSON_GetObjectItem(root, "unwinnable"))
{
battle.unwinnable = cJSON_GetObjectItem(root, "unwinnable")->valueint;
}
initScript(cJSON_GetObjectItem(root, "script")); initScript(cJSON_GetObjectItem(root, "script"));
free(text); free(text);

View File

@ -278,6 +278,7 @@ typedef struct {
int epic; int epic;
int epicFighterLimit; int epicFighterLimit;
int playerSelect; int playerSelect;
int unwinnable;
int missionFinishedTimer; int missionFinishedTimer;
int boostTimer; int boostTimer;
int ecmTimer; int ecmTimer;