[Add] Cargo affects weight. Also fixed bug when changing ships.

This commit is contained in:
Allanis 2013-06-02 16:43:16 +01:00
parent 28e936b828
commit 123ddb3d46
2 changed files with 13 additions and 3 deletions

View File

@ -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.

View File

@ -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;
}