[Add] Cargo affects weight. Also fixed bug when changing ships.
This commit is contained in:
parent
28e936b828
commit
123ddb3d46
@ -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.
|
||||
|
11
src/pilot.c
11
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user