Galactic map display updates.

This commit is contained in:
Steve 2016-06-07 09:24:09 +01:00
parent 142c02c1ed
commit a500f137b6
3 changed files with 30 additions and 5 deletions

View File

@ -301,7 +301,16 @@ static void addPulses(void)
switch (starSystem->type)
{
case SS_NORMAL:
pulse->r = 255;
if (!starSystem->activeMission->isOptional)
{
pulse->r = 255;
}
else
{
pulse->r = 128;
pulse->g = 128;
pulse->b = 255;
}
break;
case SS_SOL:
@ -563,7 +572,7 @@ static void drawStarSystemDetail(void)
* this only really counts for Alba, as it has 10 missions and there's only space for 9 to display.
* We need to subtract 1 from the completed missions to get the correct number (mission at the bottom will be the one to select).
*/
start = MIN(selectedStarSystem->completedMissions - 1 - MAX_LISTED_MISSIONS, 0);
start = MAX(selectedStarSystem->availableMissions - MAX_LISTED_MISSIONS, 0);
i = 0;
@ -592,6 +601,8 @@ static void drawStarSystemDetail(void)
y += 50;
}
i++;
}
if (game.currentMission->available)

View File

@ -133,12 +133,13 @@ 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)
{
starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0;
numOptional = completedOptional = starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0;
for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next)
{
@ -148,12 +149,22 @@ void updateStarSystemMissions(void)
{
starSystem->completedMissions++;
}
if (mission->isOptional && starSystem->type == SS_NORMAL)
{
numOptional++;
if (mission->completed)
{
completedOptional++;
}
}
}
if (starSystem->type == SS_NORMAL)
{
game.totalMissions += starSystem->totalMissions;
game.completedMissions += starSystem->completedMissions;
game.totalMissions += (starSystem->totalMissions - numOptional);
game.completedMissions += (starSystem->completedMissions - completedOptional);
}
}
@ -168,6 +179,8 @@ void updateStarSystemMissions(void)
if (mission->available)
{
starSystem->availableMissions++;
starSystem->activeMission = mission;
}
prev = mission;

View File

@ -304,6 +304,7 @@ struct StarSystem {
int availableMissions;
int fallsToPandorans;
int type;
Mission *activeMission;
Mission missionHead;
StarSystem *next;
};