[Add] Actually chance system faction on planet addition/removal.
This commit is contained in:
parent
8b1b6e2af0
commit
9a31850ce7
23
src/space.c
23
src/space.c
@ -88,6 +88,7 @@ static int systems_load(void);
|
|||||||
static StarSystem* system_parse(StarSystem* system, const xmlNodePtr parent);
|
static StarSystem* system_parse(StarSystem* system, const xmlNodePtr parent);
|
||||||
static void systemJumps(const xmlNodePtr parent);
|
static void systemJumps(const xmlNodePtr parent);
|
||||||
/* Misc. */
|
/* Misc. */
|
||||||
|
static void system_setFaction(StarSystem* sys);
|
||||||
static void space_renderStars(const double dt);
|
static void space_renderStars(const double dt);
|
||||||
static void space_addFleet(Fleet* fleet, int init);
|
static void space_addFleet(Fleet* fleet, int init);
|
||||||
static PlanetClass planetclass_get(const char a);
|
static PlanetClass planetclass_get(const char a);
|
||||||
@ -764,6 +765,8 @@ int system_addPlanet(StarSystem* sys, char* planetname) {
|
|||||||
planetname_stack[spacename_nstack-1] = planet->name;
|
planetname_stack[spacename_nstack-1] = planet->name;
|
||||||
systemname_stack[spacename_nstack-1] = sys->name;
|
systemname_stack[spacename_nstack-1] = sys->name;
|
||||||
|
|
||||||
|
system_setFaction(sys);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -816,6 +819,8 @@ int system_rmPlanet(StarSystem* sys, char* planetname) {
|
|||||||
WARN("Unable to find planet '%s' and system '%s' in planet<->system stack.",
|
WARN("Unable to find planet '%s' and system '%s' in planet<->system stack.",
|
||||||
planetname, sys->name);
|
planetname, sys->name);
|
||||||
|
|
||||||
|
system_setFaction(sys);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -878,6 +883,7 @@ static StarSystem* system_parse(StarSystem* sys, const xmlNodePtr parent) {
|
|||||||
|
|
||||||
/* Clear memory for sane defaults. */
|
/* Clear memory for sane defaults. */
|
||||||
memset(sys, 0, sizeof(StarSystem));
|
memset(sys, 0, sizeof(StarSystem));
|
||||||
|
sys->faction = 1;
|
||||||
planet = NULL;
|
planet = NULL;
|
||||||
size = 0;
|
size = 0;
|
||||||
|
|
||||||
@ -967,13 +973,24 @@ static StarSystem* system_parse(StarSystem* sys, const xmlNodePtr parent) {
|
|||||||
#undef MELEMENT
|
#undef MELEMENT
|
||||||
|
|
||||||
/* Post processing. */
|
/* Post processing. */
|
||||||
if(sys->nplanets > 0)
|
system_setFaction(sys);
|
||||||
/**< @todo Make dependant on overall planet faction. */
|
|
||||||
sys->faction = sys->planets[0]->faction;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @fn
|
||||||
|
*/
|
||||||
|
static void system_setFaction(StarSystem* sys) {
|
||||||
|
int i;
|
||||||
|
sys->faction = -1;
|
||||||
|
for(i = 0; i < sys->nplanets; i++) /** @todo Handle multiple different factions. */
|
||||||
|
if(sys->planets[i]->faction > 0) {
|
||||||
|
sys->faction = sys->planets[i]->faction;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Load the jumps into a system. */
|
/* Load the jumps into a system. */
|
||||||
static void system_parseJumps(const xmlNodePtr parent) {
|
static void system_parseJumps(const xmlNodePtr parent) {
|
||||||
int i;
|
int i;
|
||||||
|
Loading…
Reference in New Issue
Block a user