diff --git a/src/land.c b/src/land.c index 0f6f53d..f97ad81 100644 --- a/src/land.c +++ b/src/land.c @@ -771,13 +771,16 @@ static void shipyard_yoursTransport(char* str) { static int shipyard_yoursTransportPrice(char* shipname) { char* loc; Pilot* ship; + int price; ship = player_getShip(shipname); loc = player_getLoc(shipname); if(strcmp(loc, land_planet->name)==0) // Already here. return 0; - return (int)ship->solid->mass*500; + price = (int)ship->solid->mass*500; + + return price; } // Spaceport bar. diff --git a/src/pilot.c b/src/pilot.c index 7ab76ab..e1d8759 100644 --- a/src/pilot.c +++ b/src/pilot.c @@ -672,6 +672,7 @@ int pilot_addCargo(Pilot* pilot, Commodity* cargo, int quantity) { q = pilot->cargo_free; pilot->commodities[i].quantity += q; pilot->cargo_free -= q; + pilot->solid->mass += q; return q; } @@ -690,11 +691,14 @@ int pilot_addCargo(Pilot* pilot, Commodity* cargo, int quantity) { } static void pilot_calcCargo(Pilot* pilot) { - int i; + int i, q; pilot->cargo_free = pilot->ship->cap_cargo; for(i = 0; i < pilot->ncommodities; i++) - pilot->cargo_free -= pilot->commodities[i].quantity; + q += pilot->commodities[i].quantity; + + pilot->cargo_free -= q; // Reduce space left. + pilot->solid->mass = pilot->ship->mass + q; // Cargo affects weight. } unsigned int pilot_addMissionCargo(Pilot* pilot, Commodity* cargo, int quantity) { @@ -709,6 +713,7 @@ unsigned int pilot_addMissionCargo(Pilot* pilot, Commodity* cargo, int quantity) pilot->commodities[pilot->ncommodities].id = ++mission_cargo_id; pilot->commodities[pilot->ncommodities].quantity = q; pilot->cargo_free -= q; + pilot->solid->mass += q; pilot->ncommodities++; return pilot->commodities[pilot->ncommodities-1].id; @@ -726,6 +731,7 @@ int pilot_rmMissionCargo(Pilot* pilot, unsigned int cargo_id) { // Remove cargo. pilot->cargo_free += pilot->commodities[i].quantity; + pilot->solid->mass -= pilot->commodities[i].quantity; memmove(pilot->commodities+i, pilot->commodities+i+1, sizeof(PilotCommodity) * (pilot->ncommodities-i-1)); @@ -757,6 +763,7 @@ int pilot_rmCargo(Pilot* pilot, Commodity* cargo, int quantity) { pilot->commodities[i].quantity -= q; pilot->cargo_free += q; + pilot->solid->mass -= q; return q; }