[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) {
|
static int shipyard_yoursTransportPrice(char* shipname) {
|
||||||
char* loc;
|
char* loc;
|
||||||
Pilot* ship;
|
Pilot* ship;
|
||||||
|
int price;
|
||||||
|
|
||||||
ship = player_getShip(shipname);
|
ship = player_getShip(shipname);
|
||||||
loc = player_getLoc(shipname);
|
loc = player_getLoc(shipname);
|
||||||
if(strcmp(loc, land_planet->name)==0) // Already here.
|
if(strcmp(loc, land_planet->name)==0) // Already here.
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return (int)ship->solid->mass*500;
|
price = (int)ship->solid->mass*500;
|
||||||
|
|
||||||
|
return price;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spaceport bar.
|
// 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;
|
q = pilot->cargo_free;
|
||||||
pilot->commodities[i].quantity += q;
|
pilot->commodities[i].quantity += q;
|
||||||
pilot->cargo_free -= q;
|
pilot->cargo_free -= q;
|
||||||
|
pilot->solid->mass += q;
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,11 +691,14 @@ int pilot_addCargo(Pilot* pilot, Commodity* cargo, int quantity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void pilot_calcCargo(Pilot* pilot) {
|
static void pilot_calcCargo(Pilot* pilot) {
|
||||||
int i;
|
int i, q;
|
||||||
|
|
||||||
pilot->cargo_free = pilot->ship->cap_cargo;
|
pilot->cargo_free = pilot->ship->cap_cargo;
|
||||||
for(i = 0; i < pilot->ncommodities; i++)
|
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) {
|
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].id = ++mission_cargo_id;
|
||||||
pilot->commodities[pilot->ncommodities].quantity = q;
|
pilot->commodities[pilot->ncommodities].quantity = q;
|
||||||
pilot->cargo_free -= q;
|
pilot->cargo_free -= q;
|
||||||
|
pilot->solid->mass += q;
|
||||||
pilot->ncommodities++;
|
pilot->ncommodities++;
|
||||||
|
|
||||||
return pilot->commodities[pilot->ncommodities-1].id;
|
return pilot->commodities[pilot->ncommodities-1].id;
|
||||||
@ -726,6 +731,7 @@ int pilot_rmMissionCargo(Pilot* pilot, unsigned int cargo_id) {
|
|||||||
|
|
||||||
// Remove cargo.
|
// Remove cargo.
|
||||||
pilot->cargo_free += pilot->commodities[i].quantity;
|
pilot->cargo_free += pilot->commodities[i].quantity;
|
||||||
|
pilot->solid->mass -= pilot->commodities[i].quantity;
|
||||||
memmove(pilot->commodities+i, pilot->commodities+i+1,
|
memmove(pilot->commodities+i, pilot->commodities+i+1,
|
||||||
sizeof(PilotCommodity) * (pilot->ncommodities-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->commodities[i].quantity -= q;
|
||||||
|
|
||||||
pilot->cargo_free += q;
|
pilot->cargo_free += q;
|
||||||
|
pilot->solid->mass -= q;
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user