From 3aad3142acbe39b6fb5cfe04550661acfcc103af Mon Sep 17 00:00:00 2001 From: Steve Date: Thu, 11 Aug 2016 18:06:42 +0100 Subject: [PATCH] Reworked mission progress counting. --- src/galaxy/starSystems.c | 42 +++++++++++++++------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/src/galaxy/starSystems.c b/src/galaxy/starSystems.c index c29b6b9..c39735e 100644 --- a/src/galaxy/starSystems.c +++ b/src/galaxy/starSystems.c @@ -133,39 +133,23 @@ void updateStarSystemMissions(void) { StarSystem *starSystem; Mission *mission, *prev; - int numOptional, completedOptional; game.completedMissions = game.totalMissions = game.availableMissions = 0; for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) { - numOptional = completedOptional = starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0; + starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0; for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next) { starSystem->totalMissions++; - - if (mission->completed) - { - starSystem->completedMissions++; - } - if (mission->isOptional && starSystem->type == SS_NORMAL) + if (starSystem->type == SS_NORMAL && !mission->isOptional) { - numOptional++; - - if (mission->completed) - { - completedOptional++; - } + game.totalMissions++; + game.completedMissions++; } } - - if (starSystem->type == SS_NORMAL) - { - game.totalMissions += (starSystem->totalMissions - numOptional); - game.completedMissions += (starSystem->completedMissions - completedOptional); - } } for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) @@ -180,22 +164,28 @@ void updateStarSystemMissions(void) { starSystem->availableMissions++; - if (!mission->completed) + if (mission->completed) + { + starSystem->completedMissions++; + } + else { starSystem->activeMission = mission; } + + if (starSystem->type == SS_NORMAL && !mission->isOptional) + { + game.availableMissions++; + } } prev = mission; } - if (starSystem->type == SS_NORMAL) - { - game.availableMissions += starSystem->availableMissions; - } - sprintf(starSystem->description, "[ %s ] [ Missions %d / %d ]", starSystem->name, starSystem->completedMissions, starSystem->availableMissions); } + + printf("completed=%d, available=%d, total=%d\n", game.completedMissions, game.availableMissions, game.totalMissions); } void destroyStarSystems(void)