diff --git a/lib/sensors.ks b/lib/sensors.ks index 64447b5..001b370 100644 --- a/lib/sensors.ks +++ b/lib/sensors.ks @@ -4,7 +4,9 @@ function buildSensorList { local sList is Lexicon(). list SENSORS in SensorList. for s in SensorList { - sList:add(s:type, s). + if not sList:HasKey(s:type) { + sList:add(s:type, s). + } } return sList. } @@ -22,5 +24,5 @@ function ReadSensor { if not sList:HasKey(s) { return -1. // TODO: is -1 an impossible result for all sensors? I suspect not... } - return sList[s]. + return s:DISPLAY:TOSCALAR. } diff --git a/lib/stabilize_rocket.ks b/lib/stabilize_rocket.ks index d8dcf4a..a3dbf80 100644 --- a/lib/stabilize_rocket.ks +++ b/lib/stabilize_rocket.ks @@ -44,8 +44,8 @@ function Hover { } function alignForHover { - if ReadSensor("pres") = 0 { - // if we're in a vacuum, cancel all velocity first... + if ReadSensor("PRES") = 0 { + // if we're in a vacuum, align with retrograde for smoother horizontal control. lock STEERING to SHIP:SRFRETROGRADE. print "Aligning with retrograde.". wait until done or VAng(SHIP:FACING:FOREVECTOR, SHIP:SRFRETROGRADE:FOREVECTOR) < 0.1. @@ -54,7 +54,7 @@ function alignForHover { return. } } else { - // ... otherwise just cancel vertical velocity + // ... otherwise just align vertically. lock STEERING to SHIP:UP. print "Aligning vertical.". wait until done or VAng(SHIP:FACING:FOREVECTOR, SHIP:UP:FOREVECTOR) < 1. @@ -76,6 +76,6 @@ function restoreControl { unlock THROTTLE. unlock STEERING. SAS on. - print "Stabilized operation ended. Returning control to pilot.". + print "Done.". set done to false. }