/** * @brief Makes sure it's sane to change ships in the equipment view. * @param shipname Ship being changed to. */ int can_swapEquipment( char* shipname ) { int failure = 0; char *loc = player_getLoc(shipname); Pilot *newship; newship = player_getShip(shipname); if (strcmp(shipname,player.p->name)==0) /* Already onboard. */ land_errDialogueBuild( "You're already onboard the %s.", shipname ); failure = 1; if (strcmp(loc,land_planet->name)) { /* Ship isn't here. */ dialogue_alert( "You must transport the ship to %s to be able to get in.", land_planet->name ); failure = 1; } if (pilot_cargoUsed(player.p) > (pilot_cargoFree(newship) + pilot_cargoUsed(newship))) { /* Current ship has too much cargo. */ land_errDialogueBuild( "You have %d tons more cargo than the new ship can hold.", pilot_cargoUsed(player.p) - pilot_cargoFree(newship), shipname ); failure = 1; } if (pilot_hasDeployed(player.p)) { /* Escorts are in space. */ land_errDialogueBuild( "You can't strand your fighters in space."); failure = 1; } return !failure; }
/** * @brief Makes sure it's sane to change ships. * @param shipname Ship being changed to. */ int can_swap( char* shipname ) { int failure = 0; Ship* ship; ship = ship_get( shipname ); if (pilot_cargoUsed(player.p) > ship->cap_cargo) { /* Current ship has too much cargo. */ land_errDialogueBuild( "You have %g tons more cargo than the new ship can hold.", pilot_cargoUsed(player.p) - ship->cap_cargo, ship->name ); failure = 1; } if (pilot_hasDeployed(player.p)) { /* Escorts are in space. */ land_errDialogueBuild( "You can't strand your fighters in space."); failure = 1; } return !failure; }