diff --git a/src/ai.c b/src/ai.c index bdc45b0..a60ace3 100644 --- a/src/ai.c +++ b/src/ai.c @@ -862,8 +862,8 @@ static int ai_getnearestplanet(lua_State* L) { /* Cycle through planets. */ for(dist = 0., j = -1, i = 0; i < cur_system->nplanets; i++) { - d = vect_dist(&cur_system->planets[i].pos, &cur_pilot->solid->pos); - if((!areEnemies(cur_pilot->faction, cur_system->planets[i].faction)) && + d = vect_dist(&cur_system->planets[i]->pos, &cur_pilot->solid->pos); + if((!areEnemies(cur_pilot->faction, cur_system->planets[i]->faction)) && (d < dist)) { /* Closer friendly planet. */ j = i; @@ -874,7 +874,7 @@ static int ai_getnearestplanet(lua_State* L) { /* No friendly planet found. */ if(j == -1) return 0; - lua_pushlightuserdata(L, &cur_system->planets[j].pos); + lua_pushlightuserdata(L, &cur_system->planets[j]->pos); return 1; } @@ -889,7 +889,7 @@ static int ai_getrndplanet(lua_State* L) { p = RNG(0, cur_system->nplanets-1); /* Copy the data into a vector. */ - vectcpy(&v, &cur_system->planets[p].pos); + vectcpy(&v, &cur_system->planets[p]->pos); lua_pushlightuserdata(L, &v); return 1; @@ -905,9 +905,9 @@ static int ai_getlandplanet(lua_State* L) { if(cur_system->nplanets == 0) return 0; /* No planets. */ for(nplanets = 0, i = 0; i < cur_system->nplanets; i++) - if(planet_hasService(&cur_system->planets[i], PLANET_SERVICE_BASIC) && - !areEnemies(cur_pilot->faction, cur_system->planets[i].faction)) - planets[nplanets++] = &cur_system->planets[i]; + if(planet_hasService(cur_system->planets[i], PLANET_SERVICE_BASIC) && + !areEnemies(cur_pilot->faction, cur_system->planets[i]->faction)) + planets[nplanets++] = cur_system->planets[i]; /* No planet to land on found. */ if(nplanets == 0) { diff --git a/src/llua_space.c b/src/llua_space.c index 15c06cf..b4f4bcf 100644 --- a/src/llua_space.c +++ b/src/llua_space.c @@ -426,9 +426,9 @@ static int systemL_faction(lua_State* L) { /* Return result in table. */ lua_newtable(L); for(i = 0; i < sys->s->nplanets; i++) { - if(sys->s->planets[i].faction > 0) { /* Faction must be valid. */ + if(sys->s->planets[i]->faction > 0) { /* Faction must be valid. */ lua_pushboolean(L, 1); /* Value. */ - lua_setfield(L, -2, faction_name(sys->s->planets[i].faction)); /* Key. */ + lua_setfield(L, -2, faction_name(sys->s->planets[i]->faction)); /* Key. */ /* Allows syntax foo = space.faction("foo"); if foo["bar"] then ... end */ } } diff --git a/src/map.c b/src/map.c index a36eeb4..7eb8600 100644 --- a/src/map.c +++ b/src/map.c @@ -197,13 +197,13 @@ static void map_update(void) { nstanding = 0; f = -1; for(i = 0; i < sys->nplanets; i++) { - if((f == -1) && (sys->planets[i].faction > 0)) { - f = sys->planets[i].faction; + if((f == -1) && (sys->planets[i]->faction > 0)) { + f = sys->planets[i]->faction; standing += faction_getPlayer(f); nstanding++; } - else if(f != sys->planets[i].faction && - (sys->planets[i].faction>0)) { + else if(f != sys->planets[i]->faction && + (sys->planets[i]->faction > 0)) { /* @todo More verbosity. */ snprintf(buf, 100, "Multiple"); break; @@ -231,10 +231,10 @@ static void map_update(void) { else { buf[0] = '\0'; if(sys->nplanets > 0) - strcat(buf, sys->planets[0].name); + strcat(buf, sys->planets[0]->name); for(i = 1; i < sys->nplanets; i++) { strcat(buf, ",\n"); - strcat(buf, sys->planets[i].name); + strcat(buf, sys->planets[i]->name); } window_modifyText(map_wid, "txtPlanets", buf); } @@ -249,7 +249,7 @@ static void map_update(void) { window_moveWidget(map_wid, "txtServices", -20, y-gl_smallFont.h-5); services = 0; for(i = 0; i < sys->nplanets; i++) - services |= sys->planets[i].services; + services |= sys->planets[i]->services; buf[0] = '\0'; if(services & PLANET_SERVICE_COMMODITY) strcat(buf, "Commodity\n"); diff --git a/src/player.c b/src/player.c index b0943f5..3aff6b8 100644 --- a/src/player.c +++ b/src/player.c @@ -763,7 +763,7 @@ void player_renderBG(void) { pilot_isFlag(player, PLAYER_DESTROYED)) return; if(planet_target >= 0) { - planet = &cur_system->planets[planet_target]; + planet = cur_system->planets[planet_target]; c = faction_getColour(planet->faction); @@ -915,7 +915,7 @@ void player_renderGUI(void) { gl_printMid(&gl_smallFont, (int)gui.nav.w, gui.nav.x, gui.nav.y - 10 - gl_smallFont.h, NULL, "%s", - cur_system->planets[planet_target].name); + cur_system->planets[planet_target]->name); } else if(hyperspace_target >= 0) { /* Hyperspace target. */ @@ -1487,8 +1487,8 @@ void player_think(Pilot* pplayer) { &pilot_get(player_target)->solid->pos)); else if(planet_target != -1) pilot_face(pplayer, - vect_angle(&player->solid->pos, - &cur_system->planets[planet_target].pos)); + vect_angle(&player->solid->pos, + &cur_system->planets[planet_target]->pos)); } /* PLAYER_REVERSE will take over navigation. */ @@ -1630,7 +1630,8 @@ void player_land(void) { takeoff(); return; } - Planet* planet = &cur_system->planets[planet_target]; + + Planet* planet = cur_system->planets[planet_target]; if(planet_target >= 0) { if(!planet_hasService(planet, PLANET_SERVICE_LAND)) { player_message("You can't land here."); @@ -1670,8 +1671,8 @@ void player_land(void) { td = -1; /* Temp distance. */ tp = -1; /* Temp planet. */ for(i = 0; i < cur_system->nplanets; i++) { - d = vect_dist(&player->solid->pos, &cur_system->planets[i].pos); - if(planet_hasService(&cur_system->planets[i], PLANET_SERVICE_LAND) && + d = vect_dist(&player->solid->pos, &cur_system->planets[i]->pos); + if(planet_hasService(cur_system->planets[i], PLANET_SERVICE_LAND) && ((tp == -1) || ((td == -1) || (td > d)))) { tp = i; td = d;