- rename prop-key-handler.nas to prop_key_handler.nas (the hyphens were
intentional, exactly to *make* using it as namespace less inviting,
but times change ...)
- add property browser binding to the '/'-key for when the property key handler
is turned off (/sim/input/property-key-handler=0). If it's on, use /: or
/<property>: to open the browser.
- run keyboard event listener only when property key handler is active
I hope that the '/' key can keep this binding even after a keyboard review.
The '/' is just the most natural key for dealing with properties, and it's
far less prominent on non-US-keyboards (e.g. Shift-7 on German keyboards),
so it's not really very well suited for important aircraft functions, anyway.
But I don't insist. :-)
other than Shift-SPACE or SPACE alone). The move to Shift-Enter was bad,
as all Return combinations are filtered by open dialogs with <default>
set. SPACE remains reserved for communication functions (PTT), though, and
the property browser will be moved away if more combinations are needed for it.
- some comments in the file head
- move "fire starter" from SPACE-key to s-key
- move "open property browser" from Shift-SPACE to Shift-Enter (Shift-Return)
- implement PTT on SPACE/Shift-SPACE (with the other six SPACE/modifier
combinations unused, apart from a popup)
- add controls.ptt(v) wrapper function (v can be 1 or 2 for on, and 0 for off)
Easter-Egg:
- pressing the t-key for at least one second resets the warp delta.
This is an experimental feature that most people won't notice. It's meant
for investigating if suchlike "unorthodox" key use is acceptable. While
modifier-keys are the norm on computer keyboards, modifier-times aren't,
although we are used to them from other devices, such as alarm clocks etc.)
May later get removed without warning.
wrapper call
mf: I didn't find a trace of that /autopilot/controls-overrides/ property
in the fgfs source code and most of the data package. There are regular
complaints in the IRC channel about numpad keys 9 & 3 not working.
the same, with one exception: I (=Shift-i) doesn't only switch to the
alternative old HUD, but toggles that and the new HUD. Eventually
we may want to re-organize the HUD key bindings. Maybe after the old
HUD has been removed?
where it is desirable (it defaults to false); the <key>'s <repeatable>
setting is also used for the <mod-shift> branch, so we have to set it
as soon as one branch needs it.
- to support "old-style" gear/flap control (operation as long as button
pressed/lever pushed -> b29/hurricane), let bindings not only report
up/down, but up (-1), stop (0), down (1).
- let controls.flapsDown() ignore "stop" so as to remain compatible with
prior behavior
- adapt all joysticks/aircraft (sigh)
- some minor cosmetics in joystick configs, such as indentation fixes
Implement simple help system with global and aircraft specific dialogs:
The gui.nas changes have been discussed with Andy. All ac have a help dialog,
but some are empty. (This wouldn't have been necessary, as the system falls
back to the "Common Aircraft Keys" if an aircraft has no help defined, but an
empty dialog is less confusing and encourages to be filled with interesting
information. :-) I scanned all aircraft files for interesting performance
data and added some to the dialogs (stall speed, etc.) The Concorde and the
p51d have (over?)complete dialogs and can serve as examples. The format is
documented in $FG_ROOT/Nasa/gui.nas.
There is also a couple of other, minor fixes.
The following files have ugly MSDOS line endings:
$FG_ROOT/Aircraft/Hunter/hunter{-2tanks,}-set.xml
$FG_ROOT/Aircraft/A380/A380-set.xml
The Concorde-jsbsim.nas file is a useless copy of the real */nas file, which is
in Nasal/. I'was debugging the Concorde and wondered why changes to this file
had no effect ...
(Fixed Concorde in the help-ac.diff patch: don't use "interpol" keyword as
variable.)
I'd like to suggest that the spoiler settings are set in the same way as the
flaps are now done i.e. via Nasal, so that specific spoiler settings can also
be defined in the aircraft set file.
It was only when I was about to change the keyboard bindings for the slats
control that I remembered that there wasn't already a mapping for them in
keyboard.xml. I've _not_ added a mapping for slats as this is a bit of a hot
topic atm but as I had already added a Nasal func for the slats in
controls.nas I've left that in there. It's a trivial bit of code but I don't
know if leaving it in there is a good idea as it's code that shouldn't ever
be called until there's a corresponding keyboard mapping.
controls in the cockpit vs. which wheels they apply to. FlightGear now
sets /controls/gear/brake-left, /controls/gear/brake-right, and
/controls/gear/brake-parking. It should be up to the FDM to sort out
which wheels under which circumstances are affected by these controls
and ultimately what happens to the physical motion of the aircraft.
Move the "tip popup" code from view.nas to a new gui.nas module, and
make it generically useful.
Wire up flap steppings for the 747 as an example of per-aircraft
flaps.
Realtime-based property slewing, to eliminate dependence of trim and
view direction rates on frame rate.
New Node.setValues() method which sets whole property trees from Nasal
data.
A view.nas module, which takes over handling of the X/x zoom keys. It
clamps the FOV to a dynamically calculated maximum corresponding to
typical human visual accuity, and pops up a pretty dialog informing
you of the new FOV.
discovered that there are a few inconsistencies in keyboard.xml. It allows
you to reduce the magneto setting on 4 engines, but will only increase it
on 2, which tends to result in a somewhat circular path from the end of
the runway :-)
This is my local keyboard.xml file.
There are some definitions in there that I would like to see
in the official keyboard.xml file. I suggested some of them
already almost exactly one year ago, but the suggestion was
dismissed with the argument, that the keyboard settings
should/would be redone very soon, anyway ... :->
* shift escape ... reset FDM
(Note: this doesn't work on IRIX)
* ctrl w ... turn on wing leveler
* g ... gear up
* shift g ... gear down
* control b ... toggle speedbrake (emh)
1. The p51d cries for a "Reset" key. Yeah, I admit that I've
crashed some dozens of these beauties already, and yes, I
am ashamed. Having to turn the menu on every time was too
bothersome. Shift-ESC is still free and resetting is closely
related to quitting. So this seems natural. (And don't ask
why the command is called "old-reinit-dialog".)
2. Finally add a shortcut for the wing-leveler. Natural
choice: Ctrl-W, which is still free and fits well with the
other autopilot shortcuts Ctrl-[ANH].
3. Separate gear up and down into two different shortcuts.
It really doesn't make sense as a toggle property. I'd
even say, that this is the most important prerequisite
for becoming a serious flight simulator. ... Never
land on your belly again, because you were actually
retracting the landing gear on approach, having forgotten
to retract it on lift-off.
Erik Hofman:
I've added Ctrl+B as the default binding for speedbrake support but this binding is overrruled by the p51d model to switch engine boost level.
forward as it always has (not using the cycle-view command). shift+"V" scrolls
in reverse through the views. Ctrl-V returns to view 0 (cockpit).
Both forward and reverse scrolls wrap.
There are a number of little changes. Tested with current cvs as of 20:30EST
04Feb. Actually been running since the beginning of January with these
patches. All changes work without crashing with the current base package cvs,
but there are some visual problems with the views (other than pilot view)
without changes to the base package.
As soon as you can build test and commit I can add in those base package
updates that will make it all work nicely. I will also go through all the 3D
Aircraft configs to make sure the change in the "pitch-offset" for cockpit
views (see below) are made to maintain current behavior.
Here are the files (changes listed below):
http://www.spiderbark.com/fgfs/viewerupdate.diffs.gzhttp://www.spiderbark.com/fgfs/viewerupdate.tar.gz
implement them for the C172P 3D model. Look near the top of
preferences.xml for an example. The recognized properties are as
follow, with vanilla defaults in parentheses:
/sim/view/config/default-field-of-view-deg (30)
/sim/view/config/default-pitch-deg (0)
/sim/view/config/front-direction-deg (0)
/sim/view/config/front-left-direction-deg (45)
/sim/view/config/left-direction-deg (90)
/sim/view/config/back-left-direction-deg (135)
/sim/view/config/back-direction-deg (180)
/sim/view/config/back-right-direction-deg (225)
/sim/view/config/right-direction-deg (270)
/sim/view/config/front-right-direction-deg (315)
These are particularly useful for the view from inside a 3D aircraft
model.
aircraft that do not have 3d cockpit configured. Toggling is done with the
"c" key. Note also that for now, since the 3d models don't have a "small"
panel defined, the "s" key is disabled if "allow-toggle-cockpit" is true.
These are the updates for the View manager properties. Removed the last of
items (within the viewer/viewmgr) hard coded to view number. Added support
for per view configuration of ground level nearplane value. Tower views look
very nice with little or no z-buffer problem in the models. Pilot offset
dialog can be used to move eye in all views.
lot, since otherwise a property that is never set or tied by
FlightGear itself will always be kept as a string and converted on
each access. That's why fgGetBool and friends could take up a lot of
processor time sometimes.
position, and for engaging the starter. Here's how it works:
1. To select an engine, use '!' (shift-1) for engine 1, '@' (shift-2)
for engine 2, '#' (shift-3) for engine 3, '$' (shift-4) for engine
4, or '~' to select all engines. These bindings set the bool
properties /sim/input/selected/engine[0],
/sim/input/selected/engine[1], etc.
2. To decrease the magneto for the selected engine(s), use '{'.
3. To increase the magneto for the selected engine(s), use '}'.
4. To engage the starter for the selected engine(s), use SPACE.
Eventually, I'll extend this so that the throttle uses the selected
engine as well, and will perhaps even support engine selection in the
joystick bindings. Right now, only engine 1 (engines[0]) is selected
by default.
- added ^T to toggle terrain-follow
- added M and m to decrease and increase warp
- added p to pause and unpause the sim
- added T and t to decrease and increase warp delta
- added X and x to increase and decrease field of view
- added Z and z to decrease and increase visibility
- added F2 to force a tile-cache update
- added F4 to force a lighting update
- added F9 to toggle textured rendering
- new external file for joystick configuration
- designed for a basic three-axis, three-button joystick; others will
require some work
** keyboard.xml
- changed back to using index ('n' attribute) to represent key code
- switched to nesting for modifiers, so that they can all appear in
the same declaration
- bound 'b' to brake, but modified so that the brake is released
as soon as the button is
** preferences.xml
- start mixture at 1.0 (full rich), which is most appropriate for
take-off and landing
- commented out old joystick bindings
- added reference to external joysticks.xml file