Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PARAMETER DESTINATION IS "".
- PARAMETER RUNMODE IS 1. //1 = Take off, climb, and cruise, 2 = climb and cruise only, 3 = cruise only.
- DECLARE HEADINGL TO 0.
- DECLARE V0 TO GETVOICE(0).
- DECLARE INITALT TO SHIP:ALTITUDE.
- FUNCTION COMPASS {
- PARAMETER SPOT IS "".
- GLOBAL PLACE IS LATLNG(0,0).
- IF SPOT:TYPENAME = "STRING" {
- SET PLACE TO WAYPOINT(SPOT):GEOPOSITION.
- }
- ELSE IF SPOTY:TYPENAME = "GEOCOORDINATES" {
- SET PLACE TO SPOT.
- }
- ELSE{
- PRINT "The destination input must be either the name of a valid waypoint or a valid LATLNG() pair. Please try again.".
- UNLOCK STEERING.
- SAS ON.
- SHUTDOWN.
- }
- LOCAL X IS SIN(PLACE:LNG - SHIP:GEOPOSITION:LNG) * COS(PLACE:LAT).
- LOCAL Y IS COS(SHIP:GEOPOSITION:LAT) * SIN(PLACE:LAT) - SIN(SHIP:GEOPOSITION:LAT) * COS(PLACE:LAT) * COS(PLACE:LNG - SHIP:GEOPOSITION:LNG).
- LOCAL HDG IS ARCTAN2(Y, X).
- RETURN MOD(HDG + 360, 360).
- }
- WHEN SHIP:LIQUIDFUEL < 2000 THEN {
- STAGE.
- WHEN SHIP:LIQUIDFUEL < 1800 THEN {
- STAGE.
- WHEN SHIP:LIQUIDFUEL < 1600 THEN {
- STAGE.
- }
- }
- }
- WHEN ALTITUDE > 5000 THEN {
- SET HEAD TO COMPASS(DESTINATION).
- SET RUNMODE TO 2.
- WHEN ALTITUDE > 14000 THEN {
- SET RUNMODE TO 3.
- SET WARP TO 3.
- WHEN PLACE:DISTANCE < 90000 THEN { //90km from destination; about 6 minutes at typical cruise speed.
- SET WARP TO 0.
- UNLOCK STEERING.
- SAS ON.
- V0:PLAY(NOTE(440, 5)).
- WAIT 6.
- SHUTDOWN.
- }
- }
- }
- IF RUNMODE = 1 { //Takeoff logic. Only used in runmode 1.
- SAS OFF.
- BRAKES OFF.
- LOCK THROTTLE TO 1.
- STAGE.
- LOCK STEERING TO LOOKDIRUP(HEADING(SHIP:FACING:FOREVECTOR, 5):FOREVECTOR, UP:FOREVECTOR).
- WAIT UNTIL ALTITUDE > INITALT + 20.
- TOGGLE GEAR.
- WAIT UNTIL ALTITUDE > INITALT + 50.
- LOCK STEERING TO LOOKDIRUP(HEADING(90, 25):FOREVECTOR, UP:FOREVECTOR).
- }
- IF RUNMODE = 2 {
- LOCK STEERING TO LOOKDIRUP(HEADING(HEAD, 15):FOREVECTOR, UP:FOREVECTOR).
- }
- IF RUNMODE = 3 {
- LOCK STEERING TO LOOKDIRUP(HEADING(HEAD, 10):FOREVECTOR, UP:FOREVECTOR).
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement