[Flightgear-devel] Chat Menu patch

2007-12-10 Thread Stuart Buchanan
Hi All,

Two small Chat Menu related patches:

1) The chat menu will now select the runway closest to the aircraft when the
aircraft is on the ground, or very low ( 100ft). This handles the case where 
the
user has selected a runway explicitly, e.g. 01R for KSFO take-offs for noise
abatement. My thanks for AnMaster for pointing this out on IRC. Note that above
100 ft, the wind-appropriate runway will still be used. 

2) Change to keyboard description for the - key, as pointed out by Melchior.

If someone could commit them to CVS, I'd be very grateful.

-Stuart


Index: chat-menu.xml
===
RCS file: /var/cvs/FlightGear-0.9/data/gui/dialogs/chat-menu.xml,v
retrieving revision 1.1
diff -u -r1.1 chat-menu.xml
--- chat-menu.xml   8 Dec 2007 19:04:59 -   1.1
+++ chat-menu.xml   10 Dec 2007 12:18:57 -
@@ -179,27 +179,61 @@
 };
   }  
   
-  # Determine the active runway.
-  var wind_speed = getprop(/environment/wind-speed-kt);
-  var wind_from = wind_speed ? 
getprop(/environment/wind-from-heading-deg)
: 270;
-  var max = -1;
+  # Determine the active runway. We have two ways to do this:
+  # - If the aircraft is on the ground (or very close to it), we'll try to
determine 
+  # the runway it is closest to.
+  # - If the aircraft is in the air, we'll work out the active runway based
on the wind.
+  
   var active_runway = ;
-
-  foreach (var r; keys(airport.runways)) {
-var curr = airport.runways[r];
-
-var wind = wind_from - curr.heading;
-while (wind = 180) wind -= 360;
-while (wind  -180) wind += 360;
-
-var deviation = math.abs(wind) + 1e-20;
-var v = (0.01 * curr.length + 0.01 * curr.width) / deviation;
-
-if (v  max) {
-  max = v;
-  active_runway = r;
+  var on_ground = (getprop(/position/altitude-agl-ft)  100);
+  
+  if (on_ground)
+  {
+# To find out the closest runway to the aircrafts position, we'll look
at the heading 
+# required to go from the aircraft's current position to the center of
each runway. 
+# The closer this is to the runways real heading, the more likely this
is the runway 
+# we're on. Note that we can't rely on /sim/atc/runway, as this is only
set on 
+# initialization.
+var max = 360;
+var loc = geo.aircraft_position();
+
+foreach (var r; keys(airport.runways)) {
+  var curr = airport.runways[r];
+  var p = geo.Coord.new();
+  p.set_latlon(curr.lat, curr.lon, airport.elevation);
+  
+  var course = p.course_to(loc);
+  var deviation = math.abs(course - geo.normdeg(curr.heading + 180));
+  
+  if (deviation  max)
+  {
+active_runway = r;
+max = deviation;
+  }
 }
   }
+  else
+  {  
+var wind_speed = getprop(/environment/wind-speed-kt);
+var wind_from = wind_speed ?
getprop(/environment/wind-from-heading-deg) : 270;
+var max = -1;
+
+foreach (var r; keys(airport.runways)) {
+  var curr = airport.runways[r];
+
+  var wind = wind_from - curr.heading;
+  while (wind = 180) wind -= 360;
+  while (wind  -180) wind += 360;
+
+  var deviation = math.abs(wind) + 1e-20;
+  var v = (0.01 * curr.length + 0.01 * curr.width) / deviation;
+
+  if (v  max) {
+max = v;
+active_runway = r;
+  }
+}
+  }

   # Find our distance and cardinal direction to the airport.
   var directions = split(,, North,North East,East,South East,South,South
West,West,North West);


Index: keyboard.xml
===
RCS file: /var/cvs/FlightGear-0.9/data/keyboard.xml,v
retrieving revision 1.105
diff -u -r1.105 keyboard.xml
--- keyboard.xml8 Dec 2007 19:30:20 -   1.105
+++ keyboard.xml10 Dec 2007 12:21:17 -
@@ -355,7 +355,7 @@
  key n=45
   name-/name
   repeatable type=boolfalse/repeatable
-  descCompose Chat/desc
+  descChat Menu/desc
   binding
  commanddialog-show/command
  dialog-namechat-menu/dialog-name





  ___
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/ 

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net

Re: [Flightgear-devel] Chat Menu patch

2007-12-10 Thread Stuart Buchanan
--- Stuart Buchanan wrote:
 Hi All,
 
 Two small Chat Menu related patches:
 
 1) The chat menu will now select the runway closest to the aircraft when the
 aircraft is on the ground, or very low ( 100ft). This handles the case where
 the
 user has selected a runway explicitly, e.g. 01R for KSFO take-offs for noise
 abatement. My thanks for AnMaster for pointing this out on IRC. Note that 
 above
 100 ft, the wind-appropriate runway will still be used. 
 
 2) Change to keyboard description for the - key, as pointed out by Melchior.
 
 If someone could commit them to CVS, I'd be very grateful.

... and as my mail client insists on wrapping lines with CRLF, I've uploaded a
diff file to http://www.nanjika.co.uk/flightgear.chat-menu.diff

-Stuart


  __
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com


-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] Chat Menu patch

2007-12-10 Thread Robert Black
I'm getting a 404 not found error on the link. 

On Monday 10 December 2007 07:32:59 am Stuart Buchanan wrote:
 --- Stuart Buchanan wrote:
  Hi All,
 
  Two small Chat Menu related patches:
 
  1) The chat menu will now select the runway closest to the aircraft when
  the aircraft is on the ground, or very low ( 100ft). This handles the
  case where the
  user has selected a runway explicitly, e.g. 01R for KSFO take-offs for
  noise abatement. My thanks for AnMaster for pointing this out on IRC.
  Note that above 100 ft, the wind-appropriate runway will still be used.
 
  2) Change to keyboard description for the - key, as pointed out by
  Melchior.
 
  If someone could commit them to CVS, I'd be very grateful.

 ... and as my mail client insists on wrapping lines with CRLF, I've
 uploaded a diff file to http://www.nanjika.co.uk/flightgear.chat-menu.diff

 -Stuart

I'm getting a 404 not found error on the link. 

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] Chat Menu patch

2007-12-10 Thread Stuart Buchanan

--- Robert Black wrote:
  ... and as my mail client insists on wrapping lines with CRLF, I've
  uploaded a diff file to http://www.nanjika.co.uk/flightgear.chat-menu.diff
 
  -Stuart
 
 I'm getting a 404 not found error on the link. 

Should be http://www.nanjika.co.uk/flightgear/chat-menu.diff

Sorry for the noise.

-Stuart


  __
Sent from Yahoo! Mail - a smarter inbox http://uk.mail.yahoo.com


-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel