1
0
Fork 0
Commit graph

1701 commits

Author SHA1 Message Date
James Turner
5862ada5f0 Add Image to Canvas API 2012-08-06 10:27:25 +01:00
Thomas Geymayer
7e641735cb Canvas: Improve API and SVG parser.
- API:
  * Rename setSize to setFontSize
  * Add method getElementById to Group
  * Rename name of element to id to show more prominent
    that it should be unique.
  * Add methods for hide/show elements.
  * Fix: set correct id for cloned elements (parsesvg)
  * Fix: retrieving group with getElementById failed.
  * Parse SVG inkscape:transform-center-[xy]
  * Allow rotation around given point (use values from inkscape
    by default for SVG files)
  * Use breadth-first search instead of depth-first search for
    Element::getElementById (large speedup :))
  * Add more convenience functions for path drawing.
  * Add version check (useful if API files manually copied)

 - SVG:
  * Support <use> element
  * Parse font-size
  * Parse stroke-linecap
2012-08-02 01:40:00 +02:00
Thomas Geymayer
2e3aa2673b Canvas: Update API to new geo coords and add map element 2012-08-02 01:40:00 +02:00
Thomas Geymayer
007e9bc33a Canvas: Add a basic SVG parser.
- Add basic std::string implementation to a Nasal submodule named
   std.
 - Add basic SVG parser parsing its results into a canvas group
   element.
2012-08-02 01:39:59 +02:00
Thomas Geymayer
07cb9e7df0 Canvas: Add Nasal API for using the Canvas. 2012-08-02 01:39:59 +02:00
Stuart Buchanan
f1adeec7cc Enhancements to the Fuel and Payload dialog
- Fraction of each tank capacity displayed, along with pounds and gallons
- Total fuel is now displayed
- CofG displayed if available even if /limits/ not defined (bug fix)
- Tanks of capacity 0 ignored (bug fix)
- Some layout improvements.

Addresses issue #778
2012-07-29 22:44:14 +01:00
ThorstenB
121790f337 Make restore-defaults option also apply to aircraft-specific data 2012-07-15 11:07:23 +02:00
Stuart Buchanan
bd4e8764de Correct waiting period for exit statements without conditions,
update tutorial README with <wait> tag.
2012-07-14 20:27:31 +01:00
Stuart Buchanan
359a8ce414 Fix exit-time, step-time tags, and make the <wait> tag only apply to the
first iteration of any step.  Fix for issue #417
2012-07-14 20:20:21 +01:00
Ryan M
f5c1fbd167 Animated jetways : Fix infinite spawn glitch; Replace various for() loops with foreach() loops 2012-07-10 21:52:37 +02:00
ThorstenB
9856fdd452 #748: keyboard bindings in control.nas must not rely on autopilot
Throttle/aileron/elevator keyboard bindings did not work on aircraft
without autopilots (= without A/P properties). Rearrange logic to make
basic axis/throttle control the default (i.e. when prop values are "nil").
2012-07-01 00:24:23 +02:00
Emilian Huminiuc
4587dc8bc5 gui.nas: make sure enabling Rembrandt disables the skydome-scattering shaders
Signed-off-by: Emilian Huminiuc <emilianh@gmail.com>
2012-06-28 01:37:31 +03:00
Markus Pargmann
b67a848bfc pilot list direct chat button
This is a new button in the pilot list, left of the callsign. It's
binded to multiplayer.compose_message("<CALLSIGN>, ");

Signed-off-by: Anders Gidenstam <anders@gidenstam.org>
2012-06-16 18:38:45 +02:00
Markus Pargmann
fe68411d37 Custom message highlighting
By setting the property /sim/multiplay/chat_highlight . Especially
useful to highlight messages directed to ATCs.
2012-06-15 14:30:02 +01:00
Markus Pargmann
0920d46cac use lowercase 2012-06-15 14:29:52 +01:00
Markus Pargmann
b188fdf017 chat callsign highlighting 2012-06-15 14:29:33 +01:00
Anders Gidenstam
3bcfe8296c Nasal/globals.nas: Added a missing var-keyword. 2012-06-12 22:35:37 +02:00
Anders Gidenstam
e3e0defac9 Nasal/screen.nas: Added a missing 'me.'. 2012-06-12 22:34:33 +02:00
Stuart Buchanan
12595310e0 Correct use of getprop() so that --enable-real-weather-fetch works.
Fixes issue 789 on the FG bugtracker.
2012-06-12 11:09:50 +01:00
Flightgear Development
4df011cd63 Advanced Weather v1.5 2012-06-11 20:23:33 +02:00
Frederic Bouvier
be6c2e3fc6 Disable stereoscopic options in Rembrandt 2012-06-03 16:19:10 +02:00
Vivian Meazza
ce77e04690 Revert "add Model movement"
This reverts commit 7b8be5146ed2225828525a51a6167232a33e16b0.

Too soon!

Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2012-05-28 10:59:35 +01:00
Vivian Meazza
ee9fef9472 add Model movement
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2012-05-27 22:08:34 +01:00
Anders Gidenstam
24d9e19cd8 Nasal/string.nas: Corrected a misspelled variable name. 2012-05-20 22:50:59 +02:00
Frederic Bouvier
eea2f89080 Fix menubar 2012-05-18 12:53:33 +02:00
James Turner
898b3769d3 Add default FlightPlan delegate for the route-manager. 2012-05-15 17:51:48 +01:00
Frederic Bouvier
1a5cc682a9 Add condition on ambient occlusion and a menu item to switch it on and off if the stage is enabled in the pipeline 2012-05-12 09:20:13 +02:00
ThorstenB
5057b49ed9 #669: fix fly-by-view when aircraft skips position
Reposition when view position is too far away, i.e. due to replay,
relocation etc.
2012-05-03 00:00:56 +02:00
Flightgear Development
2b972341b3 Terrain Haze v1.3 2012-04-26 17:22:58 +03:00
James Turner
4c047c235f Change geo.nas to use native helpers for bucket path/index 2012-04-26 00:01:47 +01:00
ThorstenB
ed0d58cd75 #705: add sanity checks to fuel tank update
Just ignore incomplete tanks (without essential properties like "level_lbs")
and avoid Nasal run-time errors.
2012-04-22 15:19:20 +02:00
ThorstenB
278a7db2bf Add missing name tags to menu items.
Also enable rendering buffer option for Rembrandt only.
2012-04-18 16:00:38 +02:00
ThorstenB
1867df11ce performance monitor: improve layout
also change default measurement interval to 1 second
2012-04-09 00:00:13 +02:00
ThorstenB
ed5692f411 props.nas: allow "getBoolValue" to work with properties of UNSPECIFIED type. 2012-04-08 23:02:36 +02:00
ThorstenB
e57b96e448 performance monitor: show more details 2012-04-05 21:18:47 +02:00
Gijs de Rooy
f15b01df8e Disable skydome shader when quality-level=0 via commandline. 2012-04-04 18:40:00 +02:00
ThorstenB
6651e5abcd Fixed typo. 2012-04-01 21:07:58 +02:00
ThorstenB
a79a91a2aa aircraft.nas: performance optimization
listeners at sim/rendering/precipitation-aircraft-enable triggered
excessively (every loop)
2012-04-01 13:06:40 +02:00
ThorstenB
cd10e3edd7 Fixed aircraft.teleport when parkpos is set.
/sim/presets/parkpos needs to be empty, otherwise runway position is
ignored.
2012-04-01 13:06:39 +02:00
ThorstenB
f3a3b9f45f Use correct initializer signal. 2012-03-25 10:14:37 +02:00
ThorstenB
b62c1c01b7 Avoid duplication of "findElementByName" function.
Now moved to common gui.nas.
2012-03-24 12:45:58 +01:00
ThorstenB
ac132a2ce5 Remove property listener when deleting dialog. 2012-03-24 10:45:42 +01:00
Anders Gidenstam
6e5b38aebf Nasal/props.nas: Added missing var keywords. 2012-03-23 22:29:35 +01:00
Anders Gidenstam
aef778a99b Nasal/aircraft.nas: Added missing var keywords. 2012-03-23 22:27:02 +01:00
Anders Gidenstam
b024c81233 Nasal/gui.nas: Added missing var-keywords. 2012-03-23 22:25:31 +01:00
ThorstenB
e282a1e6ed fgdata/Nasal: avoid performance drop after sim reset/relocate
"/sim/signals/fdm-initialized" triggers _every_ time the FDM is reset,
so for every sim reset/relocate.
We need to uninstall the listeners after its first execution, or guard
certain parts of the initialization, to avoid starting multiple
"timer/update loops", or installing multiple property listeners.
Repeating "sim reset" often enough would eventually completely block/
overload the system.
2012-03-20 21:18:20 +01:00
ThorstenB
f03eedab48 #708: reset engine list on FDM reset
Need to clear the engine list before appending a new set of engines.
Engine list was growing on every FDM reset, causing weird control effects
after (multiple) sim resets.
2012-03-15 20:23:45 +01:00
Torsten Dreyer
abce54aa2a backward compatibility for /sim/auto-coordination
please see fg commit 5caa42af8ec6a8971aef37777640dbe449eda5cf
2012-03-13 21:07:39 +01:00
Gijs de Rooy
8e863bbd28 Allow shaders to be disabled/set through a commandline option.
Use --prop:/sim/rendering/shaders/quality-level=-1 to enable the custom
settings in the Shader Options dialog.
Apart from that the quality-level property will work as before (0 disables
all shaders, 5 puts all shaders to max.
2012-03-10 17:09:23 +01:00
Frederic Bouvier
ebc1002139 Sunrises 1.2 by Thorsten Renk 2012-03-08 23:22:27 +01:00
ThorstenB
1d222c06a8 #683 Nasal error with mibs/video assistant 2012-02-25 15:43:20 +01:00
Stuart Buchanan
4981aeb6f3 Remove redundant menu enable/disable for local_weather_tiles menu item. 2012-01-22 20:04:40 +00:00
ThorstenB
06f910c0f6 #611: write-message-log nasal error
Also fix issues when disconnecting/reconnecting MP at run-time.
2012-01-22 12:42:57 +01:00
Gijs de Rooy
3200e957f8 Hide load and save options from help menu, as they are broken/disabled. 2012-01-19 22:02:09 +01:00
Torsten Dreyer
edbff6bd34 Refactor weather-utility.nas
A bug in weather-utility.nas caused constant computation
of wave parameters due to the fact that the wind speed
was ignored.

That code was ugly anyway, so it has been replaced by
property rules which don't create work for the nasal
garbage collector.

All required properties for the wave shader are now in
interpolator.xml, the snow-line computation lives in
metarinterpolator.xml
2012-01-19 00:05:48 +01:00
Stuart Buchanan
9973a8a417 Fixes to local weather requested by Thorsten RENK. 2012-01-13 14:50:36 +00:00
ThorstenB
a195da8676 Stop message loop when disconnecting MP server
Also update status of menu items.
2012-01-07 16:17:02 +01:00
ThorstenB
e3fabacfc5 #558: weather utility, performance drop on sim reset
Do not install another set of listeners on _every_ sim reset.
Also improve performance by removing a listener for a property which is
written in _every_ loop anyway (don't waste another Nasal context).
(Do we really need a _Nasal_ loop running at full speed just to convert
a bunch of properties? It increases the load on the Nasal GC and
is unconditionally active, even if all shaders are disabled etc).
2012-01-07 09:23:26 +01:00
Frederic Bouvier
dfea2249b5 Correct fix for Local Weather 1.4 2012-01-05 09:47:26 +01:00
Stuart Buchanan
0d9d60eca7 Fix MP chat to work when MP not enabled from the command line. 2012-01-04 22:54:21 +00:00
Stuart Buchanan
34eb640a76 Further updates to the Multiplayer Settings dialog
- Now enabled even when no MP settings configured on command-line
- Add Server Status button to launch the MP Server status URL
- Minor layout cleanup.
2012-01-04 21:53:25 +00:00
Frederic Bouvier
56afb80358 Local Weather 1.4 by Thorsten Renk : fixes lots of graphical errors and transparency issues and provides a consistent GUI. 2012-01-03 20:21:34 +01:00
Stuart Buchanan
3fb129923c Fix for issue 526 - Not possible to restart YASim aircraft after fuel starvation 2011-12-28 09:09:28 +00:00
James Turner
4bb602c2f1 fgdata changes for HUD cycling 2011-12-11 18:07:54 +00:00
Gijs de Rooy
bbb3f9682e Issue #429: help dialog and keyboard.xml descriptions now match the key-bindings. 2011-12-07 16:47:42 +01:00
Gijs de Rooy
f852529e56 Adjust snow line based on METAR. Snow level is only adjusted when METAR reports snow below the user set altitude. 2011-12-06 20:39:05 +01:00
Vivian Meazza
b0f871a1e4 Add vars
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2011-12-02 21:09:20 +00:00
Vivian Meazza
022c0fe433 Used to "untie" properties used by shaders
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2011-12-01 22:31:26 +00:00
ThorstenB
32c204fe00 Add system performance dialog. 2011-11-19 15:56:44 +01:00
Anders Gidenstam
d699b3fea1 mp_broadcast,scenery: Improved consistency for the shared state. 2011-10-07 23:49:11 +02:00
Anders Gidenstam
52b3ab04c3 Added support for sharing scenery events (e.g. opening hangar doors) over MP.
Set the property /scenery/share-events to true to enabled the feature.
2011-10-05 21:57:51 +02:00
ThorstenB
5acd6d4c04 Improve keyboard control for replay system.
Keys should also work when dialog is hidden (but replay is active).
2011-10-03 20:27:19 +02:00
ThorstenB
5392614331 Don't crash when tank property doesn't (yet) exist. 2011-09-25 16:21:10 +02:00
Frederic Bouvier
a2b26f8d59 Local Weather 1.36 by Thorsten Renk 2011-09-23 23:25:15 +02:00
Frederic Bouvier
928789a0d5 Local Weather 1.35 by Thorsten Renk 2011-09-23 23:22:19 +02:00
ThorstenB
9195b36005 #441: overlay dialog must be reinitialized after reloading GUI 2011-09-18 12:36:40 +02:00
Mathias Froehlich
558c321f94 Fix problem with the A320 family not starting up correctly. 2011-09-08 19:34:15 +02:00
ThorstenB
1a9a589452 Add documentation and more config options to tyre-smoke effect.
Make vspeed/diff_norm configurable. Allow effect to be independent of
vspeed, so it works for all gear (after main gear touch down, vspeed is 0,
so smoke effects for nose-gear usually wouldn't work).
2011-09-04 19:16:39 +02:00
ThorstenB
8421d75cb9 Fix low-pass filter and adapt to speed-up factor.
Low-pass filter should not use real-time, but simulation time to filter
effects. Obey speed-up factor.
2011-09-04 19:16:38 +02:00
ThorstenB
2a66a01fed Apply defaults to each tutorial separately
Configured step/exit intervals configured for one tutorial affected all
following tutorials.
2011-08-28 10:08:15 +02:00
ThorstenB
fb984bf8ce Option to set screenshot directory. 2011-08-21 15:17:16 +02:00
ThorstenB
8e7d7012ce Directory dialog
New directory dialog - just an option for the existing file dialog really.
2011-08-21 15:00:45 +02:00
Torsten Dreyer
7937b78c80 Adjust local weather updraft property name 2011-08-03 14:31:32 +02:00
Martin Spott
d13214ebe9 Revert "Add minor pathname correction."
This reverts commit edd708b075b35ef549bf919b689f9a0d58b0f25a.
2011-07-16 15:39:41 +02:00
Martin Spott
0ca0ee6ad2 Add minor pathname correction. 2011-07-16 00:02:25 +02:00
Martin Spott
9a71b2d234 Merge commit 'refs/merge-requests/107' of git://gitorious.org/fg/fgdata 2011-07-15 23:56:03 +02:00
Torsten Dreyer
2abec7404a Remove i/I keybindings
Removing the currently unused keybindings for [Shift]I used
for cycling of HUD types. Also remove this from the help
dialog.

May be re-added for the next release, but currently there is
no HUD-type cycling implemented.
2011-07-12 23:24:32 +02:00
ThorstenB
0ece95127c Thorsten Renk: local weather 1.18
fixes for a couple of issues, some improved textures/cloud model changes,
smooth instead of hard visibility transitions, updated documentation.
Also removed 'Test' entries from the menu.
(ThorstenB: Also cleaned-up Docs/ folder, moving local weather
documentation images to sub folder).
2011-07-03 23:39:01 +02:00
ThorstenB
a0256e47ed Fixed parentheses when checking conditional view-name property.
Avoids stepping through invalid views.
2011-07-03 16:06:14 +02:00
ThorstenB
9c55acfb46 #351: fix listener sequence for local weather
Module relied on one listener to be called before the other.
Join listeners to avoid dependencies.
2011-06-25 20:08:39 +02:00
Ryan Miller
0685d0127d Animated jetways: Fix shift-click in the jetway editor not setting _edit to false on the current jetway 2011-06-23 17:35:35 -04:00
Ryan Miller
8254ae53bd Animated jetways: Change editor STG function to use new Models/Airport/Jetway directory 2011-06-22 12:12:43 -04:00
Ryan Miller
b030c2239d Animated jetways: Small fix for the editor not converting STG jetways correctly 2011-06-22 12:10:03 -04:00
Martin Spott
1f64676296 Ryan Miller: Get rid of no-op jetway XML files. 2011-06-18 01:33:57 +02:00
Ryan Miller
2cb19bc34e (Animated jetways) Fix nil velocities in AI aircraft crashing the whole thing (previous commit fixed MP aircraft, not AI) 2011-06-16 14:46:29 -07:00
Ryan Miller
a6acba8a87 (Animated jetways) Move AI and MP connecting code to load loop, increase load loop frequency to 10 seconds, fix nil velocities in AI aircraft crashing the whole thing 2011-06-16 14:45:39 -07:00
Ryan Miller
3a5b53c0e3 (Animated jetways) Updated core files and jetway definition files to use relative elevations, moved menubar item to AI/ menu, "enabled" and "debug" settings are now saved over multiple sessions, core files are now part of a Nasal subsystem, use airline-specific model files, put less load on the loop by using an _active property for each jetway object 2011-06-15 20:52:45 -07:00
Curtis L. Olson
052ae33034 Merge branch 'master' of gitorious.org:fg/fgdata 2011-06-15 13:53:32 -05:00
Curtis L. Olson
fa4743be24 Add a display.tagformat member that defaults to "%s". This is useful for
aligning property names so the '=' sign matches column position.
2011-06-15 13:51:03 -05:00
ThorstenB
1bf8b99bc9 Adapted local weather package and menu to new submodule structure. 2011-06-13 22:27:44 +02:00
ThorstenB
aea57a9882 Moved local weather module to subdirectory. 2011-06-13 22:08:43 +02:00
ThorstenB
cfe528617c Thorsten Renk: local weather addon 1.15
Local weather now capable of controling the new scattering and overcast
rendering parameters.
2011-06-13 21:57:21 +02:00
ThorstenB
539716828b Added GUI/menu item for scenery download/update. 2011-06-13 20:40:46 +02:00
ThorstenB
04fb5b3066 Adapting to new screen-shot command
Success/error report is now automatically displayed by a listener.
2011-06-13 20:38:04 +02:00
ThorstenB
3e3ecb49e2 Revert "issue #127: make screen shots work with OSG multi-threading"
This reverts commit 5106935b92ad31be69d4ef82ebb34305a658948e.
2011-06-13 00:58:26 +02:00
ThorstenB
b8eecab9cf Introduce "PRESERVE" flag to protect properties on sim reset.
Protect values of some specific properties on sim-reset.
2011-06-12 20:40:11 +02:00
ThorstenB
f84ce36d90 Fixed issue with "unnamed view".
Do not show "unnamed views" (views have no name when they belong to
another aircraft).
2011-06-12 15:31:57 +02:00
ThorstenB
7c8558274a Turn atc-chatter.nas into a separate submodule.
Moved atc-chatter.nas into subdirectory (file unmodified).
Load atc-chatter.nas on demand only.
2011-06-05 23:22:12 +02:00
Durk Talsma
210516d969 Merge branch 'master' of git@gitorious.org:fg/fgdata 2011-06-05 22:20:39 +02:00
Durk Talsma
d97172dbc4 Removal (hopefully temporarily) of the animated jetway code.
Motivation for removal: The current implementation is problematic due to hardcoded elevations, and shows some problems when the code is disabled. Additionally, the preferred sequence for committing material to ${FG_ROOT}/data/Models is to commit them to the scenemodels database, from where they are synced with fgdata/GIT.
2011-06-05 22:10:38 +02:00
ThorstenB
c3f8c1478a tutorial submodule, part #2: adapt script/GUI to load module on demand
tutorial.nas is now loaded (only) when "Start Tutorial" button is pressed.
2011-06-05 21:37:58 +02:00
ThorstenB
f3ff41d3d4 tutorial submodule, part #1: move existing sources into subdirectory
(non-functional, moved original scripts only)
2011-06-05 21:36:24 +02:00
ThorstenB
910cda3fce Tutorials: improve timing when repeating messages
Don't confuse user by repeating messages when he just fulfilled the
tutorial's step exit condition.
2011-06-04 14:14:49 +02:00
ThorstenB
f2d2b8e8b1 issue #281: tutorial's view direction messed-up/unusable by outside views
When user switched to a different view mode (e.g. chase/helicopter/tower
view) before or during a tutorial, everything went wrong...
Need to control (save/restore/switch) the view number (view mode) during
tutorials.  Also adds an option to explicitly change view mode during
a tutorial, i.e. tutorials can switch to tower view, chase view, ... now.
2011-06-03 00:39:05 +02:00
ThorstenB
f082300e20 Tutorial improvements
Make tutorial dialog a proper window, clean-up menu.
Show welcome message to new user when tutorial available.
Repeat current tutorial message, when no user progress.
2011-06-02 19:11:05 +02:00
Durk Talsma
ecfc088a4f Merge commit 'refs/merge-requests/95' of git://gitorious.org/fg/fgdata into merge-requests/95 2011-06-02 09:26:11 +02:00
Ryan Miller
8dcbb39e0f Remove incorrect jetway editor export message 2011-05-30 17:13:19 -07:00
Torsten Dreyer
bef8f1fc6e Fix bug #280. Allow setting of weather-scenario at runtime
Add a listener to /environment/weather-scenario to allow setting
the scenario at runtime. Need some cleanup of the global weather
dialog to remove duplicate code.
2011-05-30 17:21:31 +02:00
ThorstenB
b34be9cf92 issue #127: make screen shots work with OSG multi-threading
Use listener to report success/error messages for screen shots
(depends on simgear+fgdata update!)
2011-05-28 23:22:34 +02:00
ThorstenB
ac46479d0a Adjust balloon position on sim-reset
It's annoying when balloons appear exactly at the current a/c position
on sim reset, since the a/c gets knocked over etc.
(Balloon scenario still won't work properly after a sim-reset, so another
fix is required...).
2011-05-27 22:10:52 +02:00
Ryan Miller
96da518d8d New animated jetway system; add support for EGKK, EHAM, KDEN, KLAS, KSFO, PANC, 717, AI 737, AI 744, AI MD-80 2011-05-26 18:10:32 -07:00
James Turner
d4fb116cd2 Nasal IO changes to work with new loadxml features 2011-05-25 21:27:07 +01:00
Frederic Bouvier
aa6680b4a6 Local Weather 1.1 by Thorsten Renk 2011-05-14 15:18:40 +02:00
Durk Talsma
4a8dba3af8 Merge commit 'refs/merge-requests/87' of git://gitorious.org/fg/fgdata into merge-requests/87 2011-04-21 08:26:37 +02:00
Ryan Miller
36c48caaf2 Added crossfeed valve class to aircraft.nas, extended math.nas with min(), max(), and avg() 2011-04-20 16:25:41 -07:00
Frederic Bouvier
d151a25e94 Local Weather 1.02 by Thorsten Renk 2011-04-19 22:55:25 +02:00
ThorstenB
ab1d790d3b Rendering cache / ATC-chatter fix. 2011-04-03 18:19:03 +02:00
ThorstenB
ec43493e91 Use local Nasal vars. Run ATC chatter handler when feature enabled only. 2011-04-02 11:48:39 +02:00
ThorstenB
2f00f31935 Make sure only one g-force/redout handler instance is running
Enabling redout/compression separately started two handlers - instead of one.
2011-04-02 11:46:04 +02:00
ThorstenB
1f1c752316 Improve multiplayer chat, stop sending expired messages.
Only transmit messages for a few seconds instead of forever.
Also remove two obsolete variables.
2011-04-02 11:41:32 +02:00
ThorstenB
346b47cd5a Don't create properties for ghost tanks. 2011-04-02 11:29:40 +02:00
Anders Gidenstam
2f79bdb473 Disable most loops when wildfire is disabled. 2011-04-01 21:21:35 +02:00
ThorstenB
7299d07dab New option to display frame latency.
Better property to evaluate simulation performance than frame rate.
2011-03-28 00:24:32 +02:00
ThorstenB
c26de5ce41 Only run target-tracker-timer when feature is enabled. 2011-03-27 21:02:26 +02:00
ThorstenB
afaaf62e18 Fixed some file modes (not executable). 2011-03-27 21:01:43 +02:00
Frederic Bouvier
65c166c12c Local Weather 1.0 by Thorsten Renk 2011-03-19 14:03:28 +01:00
Torsten Dreyer
3d3fa8131e Fix rendering bug: no precipitation
Synchronize /sim/rendering/precipitation-enable to
/sim/rendering/precipitation-gui-enable and
/sim/rendering/precipitation-aircraft-enable on startup
2011-03-14 20:51:56 +01:00
Csaba Halasz
2753432b92 Added tyresmoke_system class to aircraft.nas 2011-02-15 15:55:57 +01:00
Torsten Dreyer
5da86c6471 Remove code now performed in TankProperties 2011-02-14 23:13:12 +01:00
Gijs de Rooy
5c4bdb4a1f Revert adb57b8: screenshot directory dialog 2011-01-22 22:49:25 +01:00
Torsten Dreyer
2cf9732978 Add ctrl-z to the help dialog (reset visibility) 2011-01-19 20:02:53 +01:00
Torsten Dreyer
b43b53c977 Fix bug #253, at least partially
make options
--wind=nnn@mm
--visibility
--visibility-miles
--ceiling
--turbulence
work again. These options now write properties in the
/environment/config/presets
branch. The values will be applied in the property-rules
in FGDATA/Environment/interpolator.xml
Corresponds to commit e86cecf4704a4bdcf43114245d8ac94adb1f1eef
in fg/next
2011-01-19 19:42:40 +01:00
Curtis L. Olson
fa26992660 Merge branch 'master' of gitorious.org:fg/fgdata 2011-01-19 10:27:22 -06:00
Curtis L. Olson
1f4371245b Address Melchior's concern about view prediction depending on a particular
aircraft system, rather than "core" data.

Fix a long standing annoyance (for me anyway) when the fly-by-view is first
instantiated, it never put a point forward very far so the first transtion
came very quickly and abruptly.  Improve the forward prediction based on
ground speed and time when the view is reset (or switched to.)  I like this
a lot better personally.
2011-01-18 11:47:15 -06:00
Torsten Dreyer
cdb21a52e4 GlobalWeather: (better) support for weather-scenario
- handle /environment/weather-scenario property on startup
- try to detect predefined scenario on startup of global
weather dialog box and select the corresponding entry in
the scenario combo box.
2011-01-17 21:05:01 +01:00
Gijs de Rooy
692d9c3717 Add screenshot dialog, to select directory 2011-01-15 22:48:43 +01:00
Curtis L. Olson
d9d6d1ed12 Add a variant of the tanker request function that produces a tanker with
a more random (challenging to intercept) starting point and heading.
2011-01-13 16:36:57 -06:00
Frederic Bouvier
3ff6a53bf1 Local weather 0.92 by Thorsten Renk 2011-01-05 13:36:10 +01:00
Stuart Buchanan
467b4eef16 Add function to allow the binding of a menu item to be configured
through Nasal using a symbolic name.

Usage:

gui.menuBind("radio", "dialogs.Radio.open()");
2011-01-03 17:28:40 +00:00
Torsten Dreyer
819d7ab811 controls.startEngine: allow selection of engine(s) 2011-01-01 10:35:15 +01:00
Curtis L. Olson
8ed16a4de2 Project "fly-by" vantage point ahead based on ground track direction instead
of aircraft body heading.  This works better when there is significant
cross wind or side slipping.
2010-12-31 15:31:04 -06:00
Anders Gidenstam
1181987bca Nasal/IOrules: Allow the wildfire simulation to save its state. 2010-12-30 15:00:50 +01:00
Stuart Buchanan
16b7ffba05 Consistent Close and title bars for Fuel & Payload, Wildfire and Route Manager dialogs. 2010-12-28 19:51:34 +00:00
ThorstenB
adbf344559 MP pilot list: fixed window behaviour and "--fg-aircraft" support.
Use new "model-installed" property instead of searching directories
directly - which didn't work with new "--fg-aircraft" dirs.
Also, pilot list now keeps its position. Avoid jumping to top-right
corner when updating.
2010-11-13 17:38:37 +01:00
Torsten Dreyer
b4e885e7fd Obsolete startup.nas
logic from startup.nas is now handled during the initialization
sequence of the idle-loop.
2010-11-10 22:24:51 +01:00
Anders Gidenstam
d373245285 Nasal/controls.nas: Added per-engine axis handlers. 2010-10-30 13:26:55 +02:00
James Turner
c7560f61b4 Switch over to v2 HUD by default, v1 HUD is no longer used. 2010-10-29 00:56:42 +01:00
Frederic Bouvier
758f691a1c Local Weather version 0.9 by Thorsten Renk 2010-10-26 21:42:36 +02:00
James Turner
0425ec0589 Torsten Brehm: catch NaNs in pilot list gui, and report only once per call-sign. 2010-10-16 17:31:19 +01:00
Torsten Dreyer
e7e8ac84f2 don't use printlog before nasal-dir-initialized
Thanks, Anders.
2010-10-13 20:46:31 +02:00
Torsten Dreyer
c6b2df2a6c use printlog for "init contrail" and downgrade to debug 2010-10-11 21:29:01 +02:00
Torsten Dreyer
6ba8808039 Use printlog for "*** NEW LOCATION ***" and downgrade to info 2010-10-11 21:23:57 +02:00
Anders Gidenstam
66746acbab Updated mp_broadcast.nas: Added missing var keywords. 2010-10-09 21:17:10 +02:00
Torsten Dreyer
0fcc99d9a3 startup.nas: just check for a valid METAR
and don't care if it's from realwx or static input. There is still
a timing issue, probably we should wait for a valid METAR
if realwx is enabled.
2010-10-07 17:59:38 +02:00
Anders Gidenstam
ee5eceb3da Updated mp_broadcast.nas: Added missing var keyword. 2010-10-03 19:25:36 +02:00
Torsten Dreyer
351114b999 Fix line endings 2010-09-28 08:58:02 +02:00
Stuart Buchanan
7ee83e19df Modify chat key handler, so excessive backspaces doesn't enable the autopilot. 2010-09-27 21:13:30 +01:00
Torsten Dreyer
5edf6cae9b reflect recent weather changes in startup.nas 2010-09-26 17:07:24 +02:00
Frederic Bouvier
a0803ad074 Local Weather v0.85 by Thorsten Renk 2010-09-10 08:52:21 +02:00
Anders Gidenstam
c3617a9cd6 Updated Wildfire:
- Removed the reference to null.ac in wildfire.xml.
- Rearranged the animation order in the 3d model xml files.
- Fixed materials in the AC3D files.
- Separated 3d model handling from the cellular automaton.
2010-09-04 00:39:51 +02:00
BARANGER Emmanuel
6837a30398 - a small script of Melchior that can be improved (Start from a seaport with a seaplane). 2010-09-02 12:10:29 +02:00
Vivian Meazza
311e44c78c Merge branch 'master' of \New Git\fgdata 2010-08-29 21:29:37 +01:00
Vivian Meazza
7b1387d521 Add impacts
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-08-29 20:45:03 +01:00
James Turner
8fd716f2ca Extend IORules system to permit aircraft dirs. 2010-08-16 11:08:24 +01:00
James Turner
83c9e8b157 Change Nasal to use relative not absolute data paths
(requires current FG git)
2010-08-15 11:27:15 +01:00
Vivian Meazza
be53f07e7a Add script to calculate contrail temperature based on an approximation to the "Appleman Chart"
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-08-04 23:22:38 +01:00
Frederic Bouvier
1e9a6c4cdf Change edge_bias asked by Thorsten ( http://www.flightgear.org/forums/viewtopic.php?f=5&t=7358&p=89159#p89204 ) 2010-08-03 19:20:20 +02:00
Frederic Bouvier
4dd0ef9a08 Local weather v0.81 by Thorsten Renk 2010-08-03 08:18:14 +02:00
Anders Gidenstam
229ee23103 Limit the rate a participant can send wildfire ignite events at. 2010-07-09 15:05:51 +02:00
Anders Gidenstam
4711f719ce Make the mp_broadcast BroadcastChannel honour the ignore list. 2010-07-09 13:39:44 +02:00
Vivian Meazza
74df9856d7 Update
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-07-05 13:25:53 +01:00
Stuart Buchanan
bb9e21f6e6 Revert "Initial check-in of MP groups function"
This reverts commit e9113980449fe50eb186a3b2e26bc88dc613d841.
2010-06-27 23:23:56 +01:00
Stuart Buchanan
d593c6a80a Merge branch 'master' of gitorious.org:fg/fgdata 2010-06-18 21:14:42 +01:00
Stuart Buchanan
fee08cca57 Initial check-in of MP groups function 2010-06-18 21:13:47 +01:00
Frederic Bouvier
652070f265 Thorsten Renk: local weather 0.7 2010-06-15 20:54:44 +02:00
Vivian Meazza
4489d48e67 Merge branch 'master' of gitorious.org:fg/fgdata into Work 2010-06-04 23:24:41 +01:00
Vivian Meazza
8a4d78a7bb Remove unwanted files
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-06-04 23:05:27 +01:00
Frederic Bouvier
eb47297d94 Thorsten Renk: local weather 0.61 2010-06-04 23:05:32 +02:00
Vivian Meazza
2c7075a9b0 Minor updates
Signed-off-by: Vivian Meazza <vivian.meazza@lineone.net>
2010-06-04 11:14:33 +01:00
Stuart Buchanan
b53c16db1d Update pilot list to use ignore property for AI objects 2010-05-21 22:09:38 +01:00
vmmeazza
a7ac90bac7 Bugfix 2010-04-25 21:05:30 +00:00
vmmeazza
9bd6191854 Add layered clouds 2010-04-12 20:51:46 +00:00
torsten
31df14b691 Initial import of the balloon scenario from gooneybird 2010-04-07 14:15:24 +00:00
vmmeazza
391b46612b Update by Anders Gidenstein - an improved version of the buffer 2010-02-13 09:40:53 +00:00
vmmeazza
50adc28ff7 Update by Anders Gidenstein to prevent scripts producing the error:
"WARNING: PUI: Too many live puInterfaces open at once!"
due to multiple window/dialog updates during the same frame.
This error has been reported to cause FG to crash, but this cannot be
reliably reproduced.
2010-02-12 23:35:22 +00:00
torsten
a18db246f0 Disable the autopilot menu item if any of
KAP140
CENTURYIIB
CENTURYIII
autopilot is detected or the property
/autopilot/hide-menu
is present
2010-01-04 14:06:30 +00:00
ehofman
9c9ead857b match sound code changes 2009-11-30 12:02:55 +00:00
torsten
e9bb24b8a2 Add the autovisibility functionality for the menubar.
If /sim/menubar/autovisibility/enabled is true, show the menubar when the mouse hits the upper edge of the window and hide the menubar on click outside a pui element.
2009-11-16 20:40:15 +00:00
vmmeazza
5cb130c313 Change tyresmoke parameter - by Heiko Schultz 2009-10-22 20:20:30 +00:00
sydadams
91c90c0679 added the view zoom popup to the enable property. Might
need it's own menu entry
2009-10-15 05:21:54 +00:00
torsten
823636811f Anders Gidenstam:
Here is a new diff for the MP-chat ignore feature since multiplayer.nas
has been updated
2009-10-11 18:40:55 +00:00
torsten
862730999e Anders Gidenstam:
I suspect that work around for the /ai/models/model-added listener problem
(i.e. that the listener is called in the middle of the process of
adding/removing a MP entry) isn't the right way to solve the problem.

The attached patch instead defer processing of the added/removed
MP entries in the multiplayer Nasal module until the next time the Nasal
subsystem is executed. This should prevent the problematic execution of
the Nasal listener callback in the middle of C++ MP code.
2009-10-11 11:57:58 +00:00
sydadams
a48eb09c7d Updated the view popup , and restored the original indentation 2009-10-09 00:21:32 +00:00
sydadams
4dbe45348c added a /sim/view-name-popup bool to enable / disable the viewname popup ... enabled by default 2009-10-08 02:21:18 +00:00
torsten
24204e2e75 don't ignore the latest multiplayer pilot 2009-09-05 20:22:14 +00:00
ehofman
bc05b9e26e allow writing to the temp directory (for unix at least) 2009-06-17 15:38:29 +00:00
mfranz
bbf1004629 Anders GIDENSTAM: Fix send to self 2009-06-03 17:19:17 +00:00
mfranz
a13361766b initialize view manager at nasal-dir-initialized sig (was: fdm-initialized) 2009-05-27 16:24:17 +00:00
mfranz
51ca35061d add documentation about geo.elevation()'s optional arg 2009-05-19 20:02:43 +00:00
mfranz
e3743f2ae7 prop_key_handler: improve search function; update comments 2009-05-06 20:37:40 +00:00
mfranz
3a6315031e door.setpos(): stop movement before setting absolute value
timer: stop and save/restore on reset
2009-05-06 18:49:06 +00:00
mfranz
b71c0c580e add signum function sgn(); consistent use of braces 2009-05-05 18:34:53 +00:00
mfranz
233a9d27f4 - defined(): also consider the global namespace (as the comment implies)
- move local namespace container up
2009-05-05 18:33:43 +00:00
torsten
28018bd083 get rid of pushback.nas by instantiating the aircraft.door when opening the dialog. 2009-05-05 14:17:36 +00:00
abory
6a66414638 - Now the pushback "door" will be created only if /sim/model/pushback has
already been created by the modeler via the <aircraft>-set.xml file.
- Varified the code, removed the class structure, tests the nasal dir
initialization first.
- As part of the Nasal dir, the script must *not* be declared in the
<aircraft>-set.xml file.
2009-05-04 21:40:08 +00:00
abory
2bb2de3645 - Oooops, sorry for that. 2009-05-04 11:12:52 +00:00
abory
f5601ebf3a - Ooops, sorry for that. 2009-05-04 11:03:39 +00:00
abory
36bad881f0 - Gijs de Rooy: Generic pushback. 2009-05-04 10:58:27 +00:00
mfranz
35d506bce1 isnan: shorter & faster 2009-04-24 08:12:21 +00:00
vmmeazza
9a2e19c234 Anders - Bugfix 2009-04-13 21:41:52 +00:00
mfranz
894003a865 tanker: avoid cloud layers; drop identity.init 2009-03-30 20:12:57 +00:00
mfranz
834afe5aa7 make file reloadable at runtime; minor fixes; cleanup 2009-03-29 08:04:35 +00:00
mfranz
715fec092b add callsign to warning message, cleanup 2009-03-25 17:53:40 +00:00
mfranz
d1df1132c6 add tangens function 2009-03-25 17:52:43 +00:00
mfranz
7ef387cc0a fly refueling pattern (leg length 50 nm) 2009-03-25 17:47:56 +00:00
mfranz
ecd8c1b71f make model-not-installed message a little less noisy 2009-03-23 21:24:41 +00:00
mfranz
53e733d425 new isnan() that doesn't create a NaN itself 2009-03-21 18:17:59 +00:00
mfranz
7ee14f044c fix removal of data entries if channel is used elsewhere 2009-03-20 11:08:09 +00:00
mfranz
2d4d0c81cc fix comment 2009-03-19 20:06:58 +00:00
mfranz
16baea26b4 - vary callsign and tacan channel; use free AI id
- make update loop faster
- fix reinit listener
2009-03-19 16:44:12 +00:00
mfranz
fc9b2dd2a5 - geo.elevation: make intersection vector origin's altitude configurable
to allow measuring terrain elevation under solid objects
- coding style unification
2009-03-18 18:26:30 +00:00
mfranz
020e495197 ... but without debug message. :-) 2009-03-18 13:46:57 +00:00
mfranz
080432cd17 - use new aircraft.nas functions: kias_to_ktas(), wind_speed_from()
- export radar values: bearing-deg, elevation-deg, range-nm
2009-03-18 13:46:07 +00:00
mfranz
dafeb03bf1 add simple wind_speed_from() function, and Jean PELLOTIER's not-so-simple
kias_to_ktas() function
2009-03-18 13:13:15 +00:00
mfranz
bd1c719d6f make tanker appear on the radar 2009-03-17 22:07:43 +00:00
mfranz
abb13ca903 - make sure /systems/refuel/ exists
- cleanup
2009-03-15 20:19:17 +00:00
mfranz
dc7e8577d4 - put tanker nearer
- allow multiple instances
2009-03-15 19:57:13 +00:00
mfranz
5c41d1a99b allow aar-equipped aircraft to request a tanker everywhere without scenario 2009-03-15 16:13:55 +00:00
mfranz
5237feb527 window.write: turn plain numbers into strings 2009-03-15 15:23:00 +00:00
mfranz
d6e96199eb use controls.startEngine(0) for starter release (easier to override) 2009-03-14 20:56:06 +00:00
mfranz
2618b98b88 model: simplification using the new values() function 2009-02-16 23:35:54 +00:00
mfranz
1bf00fbc92 generally allow *.log files under /home/m/.fgfs 2009-02-16 15:48:02 +00:00
mfranz
315d48910a message log: don't show seconds; new header/footer; minor improvements 2009-02-16 15:38:47 +00:00
mfranz
6a6861a5ff mp log: use real time 2009-02-15 22:52:22 +00:00
mfranz
cf88f5e8a4 remove is{dir,reg,lnk,sock,fifo,blk,chr}. The vector returned by io.stat()
does now contain the type in element 11.
2009-02-15 21:08:55 +00:00
mfranz
fed30b2f05 io.nas: add deprecation warning to io.is{dir,fifo,lnk,...} 2009-02-15 18:26:20 +00:00
mfranz
9b8f29fdfe use local hash (again) to store last messages per callsign 2009-02-15 17:50:13 +00:00
mfranz
b465bd27a8 --prop:sim/multiplay/write-message-log=1 enables logging of MP messages
to $FG_HOME/mp-messages.log
2009-02-15 17:36:47 +00:00
mfranz
efaa3d545d - simplification (multiplayer.model does a lot of the checks already)
- write to /sim/messages/mp-plane (rather than ai-plane)
- screen.nas: better color?
2009-02-15 15:48:38 +00:00
mfranz
c77af3c4b6 map /sim/messages/mp-plane to screen/voice 2009-02-15 15:10:47 +00:00
mfranz
8f5304ad90 add values() function as a counterpiece to keys() (see Perl) 2009-02-15 14:13:49 +00:00
stuart
dfc22cf009 Use initNode for safe, effective relief from code bloat. 2009-02-12 21:14:54 +00:00
stuart
72cc845a63 Remove redundant (and ugly) set1 function 2009-02-12 20:32:04 +00:00
stuart
a0a493b8ce Failure manager. Based on work by Erobo and John DENKER. 2009-02-12 20:24:06 +00:00
mfranz
824cff9192 comment out isnan()
It conflicts with Jester's debugging setup, and Andy says there should be
no NaN in the first place. This is a bug that needs to get fixed. Just
enable isnan() if you want to detect NaNs in the meantime. (The MP system
creates them ATM. The property getters shall turn them into nil.)
2009-02-12 16:59:03 +00:00
mfranz
a9afecf74b debug.error: rename to warn, reduce default caller skip, documentation 2009-02-09 14:29:43 +00:00
mfranz
747d9dcbde debug mode: fix slice 2009-02-09 00:24:23 +00:00
mfranz
6495f062d3 var++ 2009-02-08 21:58:31 +00:00
mfranz
4757d49c0c debug mode: add hint for why the write operation probably failed 2009-02-08 21:16:28 +00:00
mfranz
04511dbc8d --prop:debug=1 enables a debug mode where some functions generate warnings.
setprop(), props.Node.set{,Int,Bool,Double}Value() complain if they couldn't
write, e.g. because the target property is write protected, or doesn't have
a tied setter function.
2009-02-08 20:46:55 +00:00
mfranz
a1c1018aa2 Anders GIDENSTAM: adapt for unified tank level property (and do it right :-) 2009-02-06 23:14:49 +00:00
sydadams
22b9c908a9 Update jsb aircraft to use the changed tank/level-lbs property 2009-02-06 22:56:00 +00:00
mfranz
1d783e03bb remove debug.exit(); add debug.isnan()
- exit was only justified at times where fgcommand() needed an explicit
  node statement, which made using it a bit clumsy. Nowadays that's only
  fgcommand("exit"), which is as good as debug.exit() was.
- isnan() is really only for debugging and, thus, not in the global
  namespace. Nasal code should never generate NaNs (though it's easy:
  var nan = 1/0; There! :-), and NaNs imported from the C++ side (tied
  properties!) should get fixed there. IOW: routine checks for nan in
  Nasal can only be temporary hacks/debugging measures.
2009-02-06 14:41:13 +00:00
mfranz
1d50d3c086 dialog: show unavailable entries orange; cleanup 2009-02-06 12:03:31 +00:00
mfranz
540b9368fe multiplayer.model: more containers, more data, variable renaming,
temporarily catching error exceptions, colored missing-ac message ...
2009-02-04 21:47:19 +00:00
mfranz
158c7ea800 - check for availability of MP models (add 'available' member)
- display "??? foo" if "foo" isn't available on the system
- make sure x/y/z are never nil (I think I had such a case)
2009-02-03 16:15:37 +00:00
mfranz
7985e6e984 model_view: add some orientation parameters 2009-02-01 21:59:41 +00:00
mfranz
afe8de52ab - faster sorting
- update loop fix
2009-02-01 01:58:15 +00:00
mfranz
a644007c67 disabling the dialog in screenshots is nice in theory, but doesn't really work 2009-01-31 22:01:42 +00:00
mfranz
9fdec57110 dialog: don't start multiple loops 2009-01-31 21:53:54 +00:00
mfranz
ab1e00a81e - re-open after gui-reinit
- only update once per sec
- cosmetics
2009-01-31 21:22:18 +00:00
mfranz
3cf6667328 gahh ... s/setlistener/_setlistener/ 2009-01-31 20:29:20 +00:00
mfranz
8bb50c1871 model_view_handler: use multiplayer.model + add selection popup 2009-01-31 19:30:31 +00:00
mfranz
65e4b71406 factor the MP aircraft monitoring code out of the dialog class and let
the dialog use it. Other services need the same functionality and it
should only be done once.
2009-01-31 17:15:48 +00:00
mfranz
82d4864c24 model_view: remove stale/invalid entries 2009-01-31 10:24:08 +00:00
mfranz
9927e31504 - use "var" keywords everywhere
- bail out if there's no autopilot at all
2009-01-30 21:24:59 +00:00
mfranz
e31acedcfa model_view: make it more reliable 2009-01-30 15:22:17 +00:00
mfranz
db1fcf2949 model_view: remove experimental mouse handling; cleanup 2009-01-30 12:05:29 +00:00
mfranz
cf69b0d01b model_view: ignore AI models for now (make that configurable?) 2009-01-30 00:16:14 +00:00
mfranz
6aa74d2e7a add model-view: switch through all AI/MP models via dialog in bottom/left corner 2009-01-29 23:57:57 +00:00
mfranz
c697394b1c strip \n from own chat messages (again :-) 2009-01-27 20:12:19 +00:00
mfranz
9957c0a6e1 add eXtended isstring: isxstring(), which also applies to \n 2009-01-27 19:27:21 +00:00
mfranz
fedd64d89a optimization & cleanup & var keyword:
- use find() instead of string.match()  (way faster!)
- add a missing var keyword
- don't store old messages in a hash, but only store the respective last
  message in the model's multiplayer branch
- keep history \n-trimmed (instead of removing \n only when concatenating)
2009-01-27 16:55:46 +00:00
mfranz
14a928f391 trim: allow to specify alternative trim class function 2009-01-27 01:42:46 +00:00
mfranz
9d4d61e2e8 don't close the dialog on Esc (Jester was right: that's annoying :-) 2009-01-25 15:18:51 +00:00
mfranz
2541ad8e30 All elements of a --prop:display expression containing a percent sign are
interpreted as number format. (They couldn't be valid property paths anyway.)
If there's more than one such element, then the last one counts.

  --prop:display=%.2g,velocities/airspeed-kt,position/altitude-ft
2009-01-25 00:27:12 +00:00
mfranz
8d62bc2b0f Anders GIDENSTAM: center dialog and print report only when there was a fire 2009-01-18 16:15:02 +00:00
mfranz
1fe5ace8b5 Anders GIDENSTAM: wildfire (read $FG_ROOT/Models/Effects/Wildfire/README) 2009-01-18 15:43:08 +00:00
mfranz
e8484502da s/set_lonlat/set_latlon/ 2009-01-15 00:39:51 +00:00
mfranz
64a22469ab s/hdg/brg/ 2009-01-12 21:50:43 +00:00
mfranz
c31ab0ea96 showHelpDialog(): leave some margin for resizing 2009-01-12 12:27:41 +00:00
mfranz
1fc7581f77 add symbols for new cursors 2009-01-11 15:04:55 +00:00
mfranz
e96322b351 OverlaySelector: don't choke if there are no options 2009-01-11 02:42:33 +00:00
mfranz
198d1cb60f make dialog resizable with Ctrl-dragging 2009-01-10 22:31:30 +00:00
curt
278b0a7262 This should never really have been in the central nasal area. 2009-01-03 01:23:47 +00:00
mfranz
aff4cacf70 ... and allow to specify several paths separated with comma. Of course,
multiple usage of --prop:display[*]=... is also supported.
2008-12-23 10:15:12 +00:00
mfranz
087494abf5 add some documentation about the property display 2008-12-23 10:03:26 +00:00
mfranz
bab238d58b string(): make zero padding work if arg is 0 2008-12-22 01:50:48 +00:00
mfranz
58897fb5f4 revert init signal change -- better fix the real problem 2008-12-19 20:52:22 +00:00
mfranz
305cac01f3 use a more reliable property to detect real-weather-fetch 2008-12-19 13:50:44 +00:00
mfranz
8fc95fdde1 - add geo.viewer_position()
- make geo.{aircraft,click}_position() a bit faster
- no longer import the math functions (wasn't worth it)
2008-12-19 13:41:25 +00:00
mfranz
2d37f6c60b - remove menu greying out (there's no such entry any more)
- start dynamic view at fdm-initialized to avoid nasal errors (math.cos)
2008-12-18 13:05:56 +00:00
mfranz
5df46f3e5c - add controls.wingsDown() wrapper
- carrier-bindings.xml: remove trailing spaces & add some blanks
2008-12-17 18:42:41 +00:00
mfranz
06cb820759 add KT2MPS/MPS2KT conversion constants 2008-12-17 01:03:32 +00:00
mfranz
821c3bd31c rain: read some properties only if they are actually needed 2008-12-15 16:16:08 +00:00
mfranz
cb76be5383 rain: add units to the output properties and explain them 2008-12-15 08:01:33 +00:00
mfranz
d8131d6944 only turn osg precipitation off for internal views 2008-12-15 00:18:26 +00:00
mfranz
e8a666c8e4 globals: cosmetics
props: initNode(): allow nil as first arg
2008-12-14 23:45:33 +00:00
mfranz
2abb0516b5 Vivian MEAZZA: support for handling rain flow on canopies
/me: some modifications + cosmetics in the light class
2008-12-14 23:43:46 +00:00
mfranz
2be64792e1 add NM2M and M2NM constants 2008-12-13 12:55:47 +00:00
mfranz
117dac8b4f removelistener() must not remove path validation listeners 2008-12-12 14:57:38 +00:00
mfranz
e5656fedc9 store 30 history entries by default (settable via property
/sim/gui/prop-key-handler/history-max-size)
2008-12-09 00:20:29 +00:00
mfranz
59ff8c6129 also search value 2008-12-08 14:03:18 +00:00
mfranz
db4c98d63e add constants GAL2L and LB2KG 2008-12-07 14:44:52 +00:00
mfranz
291ba987d3 fuel dialog: add tank checkbox only if the "selected" property is actually
writable. This omits the box: <selected type="bool" write="n">1</selected>
2008-12-04 11:34:05 +00:00
mfranz
71f80dff34 initNode: add fourth optional parameter: "force", which enforces a type,
so n.initNode("whatever", 1 "BOOL", 1);  will make node n a BOOL even
if it was "DOUBLE" before. Default: 0. An existing value will be retained,
though.
2008-12-04 11:30:44 +00:00
mfranz
8bf823c4fb initNode: make path optional and let it default to "". This is allowed:
props.globals.getNode("sim/foo", 1).initNode();  and equivalent to
    props.globals.getNode("sim").initNode("foo");
2008-12-03 20:53:00 +00:00
mfranz
5c88cdf6f1 dump: no space after [ and before ] 2008-12-03 20:49:33 +00:00
mfranz
bcc043a368 security wrappers: move original func var into wrapper closure 2008-11-26 16:17:55 +00:00
mfranz
1e5cf9ff0a more use of initNode & some consistency improvements (method format) 2008-11-26 16:09:16 +00:00
mfranz
f7e246905b tree(): show which nodes are aliased to which nodes 2008-11-26 16:07:32 +00:00
mfranz
acff4f55ab add getAliasTarget() wrapper 2008-11-26 11:35:48 +00:00
mfranz
8b62c82b38 fix another forgotten geo.FT2M -> globals.FT2M 2008-11-23 22:22:49 +00:00
mfranz
521954116c only enable precipitation if it's enabled in the gui
(/sim/rendering/precipitation-gui-enabled) *and* if the aircraft wants it
(/sim/rendering/precipitation-aircraft-enabled). Some aircraft model rain
on the windshield and want to turn rain off for interior views.
2008-11-23 09:53:46 +00:00
mfranz
31162ce78b more initNode() (Alzheimer?) 2008-11-22 21:02:04 +00:00
mfranz
75470bf31d Rename Node.clear() to Node.clearValue(), because that's the name that we
use on the C++ side.
2008-11-22 12:05:01 +00:00
mfranz
b3032f63c7 Add Node.clear() method, which resets a node to type "NONE" and value 'nil'.
This can be used to invalidate nodes and may be interesting for debugging
purposes. Use carefully!
2008-11-22 11:20:44 +00:00
mfranz
2b77665c22 setCursor: complain and show options if wrong cursor name was given 2008-11-20 23:03:24 +00:00
mfranz
8d7545252f convert more initNode to the method version (sorry, had forgotten these) 2008-11-20 22:06:54 +00:00
mfranz
f263e693f2 remove deprecated (wrapper) function props.initNode() 2008-11-20 20:41:19 +00:00
mfranz
55b7e3d8e0 dynamic_view.nas: use D2R/R2D constants
globals.nas: move constants to top
geo.nas: fix comments & make bucket_span "private"
2008-11-20 20:18:39 +00:00
mfranz
c74d6ee75e - make props.initNode a props.Node method
- props.nas: some minor improvements
2008-11-20 19:45:40 +00:00
mfranz
55c34a0748 calculate M2FT from FT2M (of course :-) 2008-11-20 11:33:42 +00:00
mfranz
eebfdf218c - make constants D2R, R2D, M2FT, FT2M global
- geo.put_model: use 'add-model' fgcommand
2008-11-20 11:24:46 +00:00
mfranz
dcb1321923 make constants D2R, R2D, M2FT, FT2M global 2008-11-20 11:24:45 +00:00
mfranz
9976b71472 init: make sure /sim/tutorials actually exists 2008-11-15 19:40:28 +00:00
mfranz
81e967a609 nasal now returns constant and readable ghosttypes, so we do no longer
need the symbol table and comparison with the ghosttype of props._globals()
2008-11-13 12:00:23 +00:00
mfranz
c6cd898f64 - update comment to reflect alias()/unalias() addition
- minor improvements & cosmetics
2008-11-13 11:57:07 +00:00
mfranz
2aba6e7d80 Node: only wrap() functions that actually return property ghosts 2008-11-12 17:06:53 +00:00
mfranz
547770e30b add alias()/unalias() wrapper methods 2008-11-12 14:43:41 +00:00
mfranz
78d1a6e631 OverlaySelector: check callback function explicitly for nil 2008-11-12 11:43:26 +00:00
mfranz
d1fd61c728 gui.nas: use nasal-dir-initialized signal for INIT func, so that it's
earlier available. (The settimer/1 was a workaround for another
    problem that should be fixed by now.)
globals.nas: load $FG_HOME/Nasal/ files as first settimer(0) function,
    so that it always comes after all nasal-dir-initialized callbacks

This should fix the glide_slope_tunnel/popupTip bug and makes the
startup order clearer and cleaner.
2008-11-11 14:54:51 +00:00
mfranz
05cc0f3fda add complementary function to bits.string(): bits.value() This is rather
pointless for running fgfs, but can be useful for development and debugging,
and it's just a few lines.
2008-10-25 15:03:32 +00:00
mfranz
6384588444 I said "correctly". 2008-10-25 14:24:26 +00:00
mfranz
f7bd13fed3 debug.dump(): print empty strings as hash key correctly 2008-10-25 14:20:47 +00:00
mfranz
6371627424 bits.string: add optional zero-padding 2008-10-23 22:16:32 +00:00
mfranz
97c1ec0ac7 set: bugfix (invert test; still faster than the old version :-) 2008-10-22 23:27:03 +00:00
mfranz
f5ab1de0b6 set/clear: shorter & a few nanoseconds faster 2008-10-22 23:04:07 +00:00
mfranz
464d9d3f75 add bits.toggle() and bits.switch() 2008-10-22 20:56:22 +00:00
mfranz
80215e0731 "export" bit vector & cleanup 2008-10-22 14:02:58 +00:00
mfranz
6003c3a17d bits.test: remove silly loop 2008-10-22 13:26:55 +00:00
mfranz
6d5585ec65 restore simple bits functions. Useful for setting/testing boolean values
inr MP transport, and for setting/clearing modifier bits in js config files.
2008-10-22 12:49:01 +00:00
mfranz
2f76461c8c io.nas/stat: drop use of broken bits library
gui.nas/OverlaySelector: me.data is no longer a node; only sort once
2008-10-21 21:37:41 +00:00
mfranz
0bd5bc58a7 livery: documentation fix 2008-10-19 21:12:57 +00:00
mfranz
c5fe446f58 overlay-select.xml, gui.nas: fix overlay-dialog close(); add relpath() func
aircraft.nas: remove redundant data.add()
2008-10-19 12:34:09 +00:00
mfranz
94211721cf livery: fix bad default nameprop (must be relative) 2008-10-19 11:55:52 +00:00
mfranz
32bf0f7265 gui.nas: remove trailing slashes in nameprop/sortprop
aircraft.nas: add generic overlay_update function, and make livery_update
         a wrapper for it
2008-10-19 11:52:56 +00:00
mfranz
da7d1ded71 aircraft.nas: make aircraft.livery a wrapper for gui.OverlaySelector
gui.nas: add file name to stored data (needed for MP-livery)
2008-10-16 15:26:19 +00:00
mfranz
a021ab0af0 - aircraft.nas: remove formation class (Deprecated only three hours ago.
Is this fast development, or what?! :-)
- gui.nas: remove debug message
2008-10-15 18:14:54 +00:00
mfranz
181dbba72c OverlaySelector: more robust path handling 2008-10-15 16:48:24 +00:00
mfranz
c350a7b6a8 s/fixpath/normpath/ (as in python) 2008-10-15 16:35:11 +00:00
mfranz
8c7e7cb994 OverlaySelector: add callback func arg; only store the file paths 2008-10-15 16:13:10 +00:00
mfranz
5d576f0e3d - gui.OverlaySelector: add optional sort criterion, add selection by index,
add next(), and previous() methods.
- aircraft.nas: deprecate formation class
2008-10-15 15:27:56 +00:00
mfranz
6a72126327 OverlaySelector: don't autosave choice. That's easy enough to do "by hand". 2008-10-14 18:48:54 +00:00
mfranz
4341781968 add overlay selector dialog class (similar to the livery selector) 2008-10-14 18:41:19 +00:00
mfranz
782368fefa documentation update and cosmetics 2008-10-09 17:20:27 +00:00
mfranz
b1017ac425 Vivian MEAZZA: tyresmoke: add spray flag/intensity for wet surfaces 2008-10-08 22:57:50 +00:00
mfranz
996fd73c0c - let F12 pop up radio settings dialog (used to be Ctrl-r)
- disable "reload global preferences", which is semi-broken
2008-10-08 21:59:31 +00:00
mfranz
ce0504cfd4 - move development functions from function keys to :Y (multikey)
- move replay from 'r' to 'Ctrl-r' where it is less dangerous
2008-10-07 20:13:34 +00:00
mfranz
3ba03ff2d7 AJ MacLEOD: add braking chute wrapper function 2008-10-07 19:22:49 +00:00
mfranz
363e210fda - typeset longer option lists in multiple columns
- make it a tad faster
2008-10-07 10:44:45 +00:00
mfranz
fe8f9134ec fun hack to get useful error message 2008-10-06 23:21:54 +00:00
mfranz
d9b5505a39 load_nasal(): hack around new Nasal bug 2008-10-06 21:21:13 +00:00
mfranz
77480233a6 ok, and now really fix it :-P 2008-10-06 20:22:28 +00:00
mfranz
459add7acb d'oh ... s/setlistener/_setlistener/ 2008-10-06 20:12:50 +00:00
mfranz
757b64a2c3 tyresmoke: s/getNode/getChild/ 2008-10-05 23:35:02 +00:00
mfranz
c56653d203 tyresmoke: make it faster, cleaner, shorter 2008-10-05 23:16:15 +00:00
vmmeazza
f7339eeb22 Add generic tyre smoke - correctly this time 2008-10-05 22:56:44 +00:00
vmmeazza
16818db739 Add generic tyre smoke 2008-10-05 22:41:39 +00:00
mfranz
eab70dccda improve dialog layout 2008-10-05 16:13:13 +00:00
mfranz
adc77f2777 replace all %% 2008-10-04 22:43:24 +00:00
mfranz
437dbf524d aircraft.nas: light: remove backwards compatibility warning
multikey.nas: don't show %% in option display for %
string.nas: scanf: add -1 return mode; documentation
2008-10-03 20:46:08 +00:00
mfranz
e6e1f8ae20 - move color functions from debug.nas to string.nas
- multikey.nas: add exit/no-exit markers to help output
2008-10-03 15:20:12 +00:00
mfranz
597a7d2187 add teleport() function 2008-10-03 10:48:39 +00:00
mfranz
fbd73ee7d3 multikey.nas: don't show empty ("reserved") entries
string.nas: scanf: detect %% correctly
2008-10-03 09:47:40 +00:00
abory
8fcaaf4491 - Alexis Bory: As seen previously with Till, the nasty F-14 radar brakes multiplayer.dialog.show() unless we better test the "valid" node. 2008-10-02 20:12:00 +00:00
mfranz
e561c08c04 - gui.nas: make fuel&payload warning closable with Esc
- multikey.nas: minor clarification in the help output
2008-10-02 15:19:47 +00:00
mfranz
a334ed9e7b add initial slightly greyed out help text about <Tab> options 2008-10-02 11:37:17 +00:00
mfranz
29f7d18865 repair :? help function ... sigh, should never have started with colorizing 2008-10-02 10:43:17 +00:00
mfranz
67c40af00c use patthern tree, offer options on <TAB> 2008-10-02 00:59:52 +00:00
mfranz
3fbb11b27a scanf: don't bark on empty test string if format ends with number element 2008-10-02 00:58:57 +00:00
mfranz
5fd89049bb add field width to %s & coding style 2008-10-01 19:51:44 +00:00
tat
04d90bae5a Added: %s support for scanf 2008-10-01 18:36:09 +00:00
mfranz
283dd67ca8 whoops 2008-10-01 16:39:26 +00:00
mfranz
32c5cde2f0 move improved help screen generator multikey.{xml -> nas} 2008-10-01 16:30:25 +00:00
mfranz
772112df89 use color codes only when printing to the terminal 2008-10-01 14:04:47 +00:00
mfranz
613e693656 Be a bit more careful with the kbd hack ... not that I noticed any problems.
(Proper fix probaly necessary in OSG. On my TODO list.)
2008-09-30 20:41:06 +00:00
mfranz
886cf8b382 also let adjEngControl return value (average of selected engines) 2008-09-30 20:33:18 +00:00
mfranz
b1a3428bd8 make slewProp(), and with it {aileron,elevator,rudder}Trim return new value 2008-09-30 18:11:46 +00:00
mfranz
f5babfe796 s/desc/_/ & cosmetics 2008-09-29 22:39:45 +00:00
mfranz
12412f0a56 does no longer work after the nasal update 2008-09-29 16:37:23 +00:00
mfranz
7274bfe94a s/desc/_/ (binding return variable) 2008-09-29 14:16:50 +00:00
mfranz
1b9f9a2f98 hack around kbd bug for now (eew!) 2008-09-29 13:30:42 +00:00
mfranz
024842d9b9 indendation fix, drop a few braces (because we can :-) 2008-09-29 10:06:50 +00:00
mfranz
df90d69de9 string.scanf(): return elements in vector given as argument; function
only returns success (0: no match, 1: extensible match, 2: safe match)
2008-09-29 10:06:16 +00:00
mfranz
eb11977be2 implementation of vi-like multiple-key commands (as suggested by John DENKER) 2008-09-28 20:28:28 +00:00
mfranz
3197bc3f24 string.scanf(): more efficient and (more :) correct %f detection 2008-09-28 20:23:14 +00:00
mfranz
13a5e62995 scanf: '+' or '-' alone aren't really numbers 2008-09-28 16:20:49 +00:00
mfranz
2ea8466111 steering: vim typo 2008-09-26 22:53:57 +00:00
mfranz
d5605e2280 steering: fix after nasal update 2008-09-26 22:48:48 +00:00
mfranz
3f4df41fc7 add simple scanf function (a.k.a. poor man's regex) 2008-09-26 12:04:57 +00:00
mfranz
bb6b98b306 runBinding: support optional default namespace/module 2008-09-25 11:10:35 +00:00
mfranz
ba68b4f8eb typo & consistency 2008-09-24 23:06:43 +00:00
mfranz
366792cf3d add props.runBinding(<binding-node>) command 2008-09-24 20:03:06 +00:00
mfranz
e354f26a4d add braces to work with Nasal TNG 2008-09-24 19:38:56 +00:00
mfranz
91ab7d4b97 - remove no longer neede complement_runways() function
- s/threshold1/threshold/
2008-09-23 20:08:15 +00:00
mfranz
c047efb41f debug.proptrace: increase the default frame number to get one complete frame 2008-08-17 07:35:27 +00:00
mfranz
a289958717 improve help message 2008-08-16 15:37:54 +00:00
mfranz
917cace77c string.nas: remove forgotten debug message
props.nas: replace some "arg[*]" by named args
aircraft.nas: load aircraft data only if the file exists (to avoid warning)
debug.nas: no space before colon & fixed comment & cosmetics
2008-08-14 22:13:25 +00:00
mfranz
4ac84809e9 nasal: cleanup & minor fixes
- fuel.nas: use props.initNode()
- debug.nas: fix comment
- globals.nas: load_nasal(): check extension and set module arg
- io.nas: update log message (the rules are no longer for io.open() only)
2008-08-10 17:53:41 +00:00
mfranz
51aae20072 screen.nas: evaluate --prop:display when fdm is up, or some props are missed
(you didn't take the "final version" seriously, anyway, did you?)
2008-08-05 12:35:01 +00:00
mfranz
f0463b345f screen.nas: display option (final version)
- use --prop:display=fdm/jsbsim/fcs   to display this node only
- use --prop:display=fdm/jsbsim/fcs/  to display this node's children
2008-08-05 12:20:27 +00:00
mfranz
2823009955 s/live/display/ ... makes more sense 2008-08-05 11:58:43 +00:00
mfranz
1f65d80475 allow to add properties to the live display with --prop:live=/some/property 2008-08-05 11:49:13 +00:00
mfranz
b360c2ad62 use <enabled>false</enabled> flag for widgets that shouldn't be drawn
instead of <hide>true</hide>. This is consistent with other places
in fgfs, like menu entries, hud elements, subsystem switches, etc.
2008-08-05 05:28:27 +00:00
mfranz
2040b96b4f s/show_widgets/enable_widgets/ (the function doesn't show anything) 2008-08-03 15:37:43 +00:00
mfranz
463105bca5 add show_widgets() function 2008-08-03 13:41:07 +00:00
mfranz
49defb639e - load_nasal(): catch usage of improper namespaces (e.g. $FG_HOME/Nasal/isa.nas)
- IOrules: add harmless rule for extremely popular Nasal addon script  :-)
2008-07-30 20:34:52 +00:00
mfranz
443c261cdd - drop redundant log message
- cosmetics: fix mixed tab/space indentation, drop pair of curly braces
2008-07-30 19:33:42 +00:00
mfranz
8202730c4e use io.load_nasal() to load the local Nasal files from ~/.fgfs/Nasal/ 2008-07-30 19:25:27 +00:00
mfranz
ad781922a7 here's a case where we want explicit namespace prefixes everywhere
(just renaming debug.string instead was plan B ;-)
2008-07-30 19:22:36 +00:00
mfranz
78ba60685c some convenience functions for the built-in bits library 2008-07-29 17:17:09 +00:00
mfranz
00475e2d5c - set "archive" flags on all /sim/presets/ children on saving flight, and
- run "presets-commit" after loading
2008-07-29 00:07:18 +00:00
mfranz
ae40faf4e5 cosmetics (comment fixes & improvements, variable name) 2008-07-27 22:00:58 +00:00
mfranz
dec94a9bb4 - fully complement runways (for external callers)
- show id/name of new airport
- use props.initNode()
- cleanup
2008-07-27 21:59:13 +00:00
mfranz
daee426f00 minor reorganization and cosmetics 2008-07-24 17:41:40 +00:00
mfranz
9148a4b2eb cosmetics: white space fix & one "var" added 2008-07-23 19:37:51 +00:00
mfranz
de1aa4c56e finally make printf() globally available 2008-07-23 15:43:45 +00:00
mfranz
93bc59c9a3 update comment 2008-07-23 15:42:43 +00:00
mfranz
f046c00c3d make valdiation listeners safe 2008-07-23 15:42:16 +00:00
mfranz
fee6139da5 partly revert last change: thisfunc() isn't safe enough for this purpose 2008-07-23 00:41:18 +00:00
mfranz
7bbbfa6a8e use thisfunc() instead of caller(0)[1] 2008-07-22 23:26:46 +00:00
mfranz
54e6ec55b4 closure(): better error formatting 2008-07-22 22:50:42 +00:00
mfranz
e522611638 closure(): level is optional and defaults to 0 2008-07-22 22:38:34 +00:00
mfranz
1ad5b18ec8 closure(): must freeze io.open for the comparison 2008-07-22 22:26:09 +00:00
mfranz
dc4b8633a3 new io.open()'s closure musn't get manipulated either 2008-07-22 21:30:47 +00:00
mfranz
3cfc93927f make sure the closure of security code can't be manipulated by wrapping
closure()
2008-07-22 21:23:54 +00:00
mfranz
8b6ff24167 make sure functions used by the security code are tamper-proof 2008-07-22 21:22:59 +00:00
mfranz
b9e7bb1b4b add thisfunc() for reliable recursion 2008-07-22 19:03:25 +00:00
mfranz
cb3150b915 (failing attempt to) lock down two functions 2008-07-22 16:46:18 +00:00
mfranz
30cd488f90 data.load(): use io.read_properties() (fixes *.sav loading bug) 2008-07-11 22:50:58 +00:00
mfranz
abdc416f32 - remove "load flight"/"save flight" dialogs, and
- use a file selector instead
- file-select.xml: handle non-existing files correctly
2008-07-11 20:57:52 +00:00
mfranz
c604b92deb now that the file reading/writing fgcommands underlie the same mechanism
as Nasal's io.open(), we need to allow saving/loading flights and saving
aircraft specific data at exit
2008-07-11 16:38:51 +00:00
mfranz
32f1730c6e - load_nasal: better error message if compile() fails
- io.open handler: extract validation to separate function and
- add detached read/write validation listeners
2008-07-11 15:37:27 +00:00
mfranz
86475efa5e fixpath: handle empty strings 2008-07-11 15:23:23 +00:00
mfranz
3be5c6956b io: use default attribs rather than a hard-coded number for globals identification
gui/tutorial/aircraft: use io.read_properties()/io.write_properties()
2008-07-11 09:37:33 +00:00
mfranz
ee44cdf0db Anders GIDENSTAM: enable fuel&payload dialog for JSBSim
mf: minor modifications & adding several instances of "var"
2008-07-10 20:13:58 +00:00
mfranz
9be716de1c typo 2008-07-10 16:55:45 +00:00
mfranz
8909695f36 add io.{read,write}_properties() convenience wrappers for
fgcommand("loadxml") and fgcommand("savexml")
2008-07-10 16:53:43 +00:00
mfranz
951f31a56c change attribute names from read/write to readable/writable 2008-07-07 10:25:08 +00:00
mfranz
b8ba3c5f66 cosmetics (no braces for one-liner functions; looks nicer, IMHO) 2008-07-03 16:24:52 +00:00
mfranz
6e24e077ba - invert io.load_nasal() return value
- let load_rules() return nil or the path (rather than 0 or 1)
- better log output
- cosmetics
2008-07-03 16:23:13 +00:00
mfranz
6f9f70e84d - don't use undefined variable `curr'
- cosmetics
2008-06-22 18:00:02 +00:00
mfranz
caca942012 revert last change: don't append cwd to relative paths for now. There's
no way yet to safely detect absolute paths, so this would break on MS Windows.
This will only mean that relative paths will always fail, as they don't
match any pattern. These are all absolute.
2008-06-22 13:54:36 +00:00
mfranz
875b99c90e whoops, wrong quotes 2008-06-22 12:17:02 +00:00
mfranz
cf9f30cb11 fixpath(): simplify by using new join() and replace() functions 2008-06-22 11:33:13 +00:00
mfranz
5240b57018 io.open(): turn relative paths into absolute ones before checking 2008-06-22 11:31:41 +00:00
mfranz
d86b1b9c74 string.nas: new functions string.join() and string.replace()
debug.nas: let benchmark() repeat tested function
io.nas: cosmetics
aircraft.nas: initialize time property only once
2008-06-21 07:10:32 +00:00
mfranz
ab08bfb8eb make sure that a die() (e.g. caused by an IOrules file being read protected)
doesn't disable the whole security mechanism
2008-06-16 11:19:29 +00:00
mfranz
94e010e4d1 whoops ... s/and/or/ 2008-06-16 11:00:05 +00:00
mfranz
bf9c2dc6a5 read rules for io.open() file access from $FG_ROOT/Nasal/IOrules or, if
available, from $FG_HOME/Nasal/IOrules. That's desirable because
ordinary users aren't allowed to edit files in $FG_ROOT.
2008-06-16 10:47:02 +00:00
mfranz
7cc783c2f5 this comes from not using tabs ... sigh 2008-06-16 07:16:10 +00:00
mfranz
b5cdfeb2b8 ... and allow reading only from ~/.fgfs/* and $FG_ROOT/* 2008-06-16 07:07:50 +00:00
mfranz
df018fff49 only allow writing to ~/.fgfs/Scenery/*.stg and ~/.fgfs/Export/* 2008-06-16 06:32:32 +00:00
mfranz
141f1c8da4 must not use setlistener in $FG_ROOT/Nasal/*.nas ... 2008-06-15 10:11:32 +00:00
mfranz
0fad328217 load_nasal: boolify result, as the number doesn't mean anything and might
be confusing
2008-06-14 22:39:28 +00:00
mfranz
56eef9c69f move load_nasal to io module 2008-06-14 14:32:37 +00:00
mfranz
62cc0f457c load_nasal: fix module and let it return whether there was an error 2008-06-14 14:25:34 +00:00
mfranz
a79c0e95c5 move load_nasal() here from the debug module 2008-06-14 14:22:34 +00:00
mfranz
c159ea1755 io.open(): drop die() color 2008-06-13 19:19:54 +00:00
mfranz
4a30ad6efe io.open(): remove debug messages (for easier code review) 2008-06-13 19:14:48 +00:00
mfranz
59e3d65545 and die() with red color for now 2008-06-13 13:18:16 +00:00
mfranz
0216b1a65c improve log messages 2008-06-13 13:08:56 +00:00
mfranz
4d17687f12 move fixpath back to string.nas. It *is* about strings, after all, and also
usable for property paths, so io.nas doesn't seem the right place.
2008-06-13 13:01:38 +00:00
mfranz
496a76b9fa and "br" as well :-) 2008-06-13 12:11:42 +00:00
mfranz
06aa2b772c open: allow "rb" everywhere like "r" 2008-06-13 12:09:45 +00:00
mfranz
2b3f574063 don't need /var/log/ 2008-06-13 11:57:20 +00:00
mfranz
7d9bd68742 - move fixpath() from "string" to "io" module
- first stab at Nasal security model: allow writing files only to authorized
  dirs. (Most of the debug messages will be removed later.)
2008-06-13 11:35:55 +00:00
mfranz
11d7de3e85 enable the Multiplayer menu if any of txport and rxport is set 2008-06-11 20:05:46 +00:00
mfranz
55670ccb35 enable multiplayer menu only in MP mode 2008-06-11 18:46:54 +00:00
mfranz
761444b917 close dialog on Esc, like every other dialog with a close button 2008-06-11 18:39:03 +00:00
mfranz
c1581e2ea1 Till BUSCH: multiplayer dialog (open with multiplayer.dialog.open() or toggle()) 2008-06-11 18:23:03 +00:00
mfranz
2866043c3d - prop_key_handler: limitate history to history-max-size on loading
- string/debug: cosmetics
2008-06-08 11:14:57 +00:00
mfranz
238fce1d15 let initNode() initialize a property to double(0) by default 2008-06-04 20:41:44 +00:00
mfranz
246ce973ec save and reload up to 20 history entries 2008-05-19 17:31:57 +00:00
mfranz
8fe1cf807d add initNode() function that initializes (if necessary) and returns a property.
If the property has a valid value already, then the given value is ignored.

  var x = props.initNode("/foo", 10);
  var y = props.initNode("/bar", 1, "BOOL");
2008-05-19 15:44:23 +00:00
mfranz
67ba396942 display: redraw on window resize so that the display won't disappear 2008-05-19 09:48:41 +00:00
mfranz
3184ea67a3 - add screen.display documentation
- add screen.display.setfont() and .toggle() method
- make property labels optional
2008-05-16 16:26:15 +00:00
mfranz
5334016034 display: format number, true/false for bools, quotes for strings 2008-05-15 20:31:35 +00:00
mfranz
f54cb1159f prop_disp: change color to white ... again. (Sorry for the many small commits. :-) 2008-05-15 16:11:50 +00:00
mfranz
54f8fc4370 property_display: turn it into a regular class & lots of improvements 2008-05-15 15:42:31 +00:00
mfranz
0b4322736f - make debug.dump() accept more than one argument (one could already write
debug.dump([a, b]) for that, but debug.dump(a, b) is more obvious)
- change output colors: variable names are no longer bold, all property
  attributes are now blue, not just the property type)
- drop redundant braces & other cosmetics
2008-05-15 15:23:17 +00:00
mfranz
b6d987453f data.add(): use props.nodeList() function 2008-05-15 15:20:11 +00:00
mfranz
a329a7ba14 - add props.nodeList() function which turns property ghosts, props.Nodes,
and path strings into a list of props.Nodes. It also digests lists of
  properties, or lists of lists of properties etc., thus allowing things
  like props.nodeList(arg), props.nodeList(n.getChildren("foo")). This is
  meant for functions like aircraft.data.add() or screen.display.add().
- remove some redundant braces
- fix comment
2008-05-15 15:17:56 +00:00
mfranz
e5c027786d property_display:
- don't use screen.window, but let it do its own dialog handling. Thereby
- make it faster  (update every frame by default)
- prevent collisions with the menu
- allow to move the dialog away (only the left edge is draggable!)
- try color white  (better color suggestions welcome :-)
2008-05-14 20:06:50 +00:00
mfranz
356a8430a7 property display: make sure tags are as short as possible but unique 2008-05-14 15:40:00 +00:00
mfranz
af38cc7c63 property display:
- make interval and color configurable
- use bigger font
- display strings containing \n in one line
2008-05-14 12:04:54 +00:00
mfranz
ee8b517246 property display: don't choke on nil properties 2008-05-14 10:57:02 +00:00
mfranz
ba57bd9a2e property display: set HELVETICA_12 font (same as for fps display) 2008-05-14 10:36:37 +00:00
mfranz
02c4b7a613 - screen.nas: add live property display
- prop_key_handler.nas add support for live property display
2008-05-14 10:23:47 +00:00
mfranz
b055de3528 add setCursor() wrapper function for the "set-cursor" fgcommand 2008-05-08 10:15:18 +00:00
mfranz
7c5bd888ac negative key numbers mark events consumed now 2008-05-03 21:29:38 +00:00
stuart
7513200f8e Add additional message check so callsign is not prefixed if present in message itself. 2008-05-03 19:45:22 +00:00
stuart
acef95d90c Re-order initialization and fix a couple of bugs. 2008-04-29 19:58:10 +00:00
mfranz
757c2314dd don't try to build completion from invalid node 2008-04-26 23:29:52 +00:00
mfranz
1544af3ab9 return negative key numbers to report key event as consumed 2008-04-26 13:27:27 +00:00
stuart
b703e21db9 Initialize on /sim/signals/fdm-initialized instead of /sim/signals/nasal-dir-initialized. This happens later on, and ensure we have a valid /sim/time/delta-sec value for the filters. 2008-04-23 22:09:34 +00:00
mfranz
c78327ee21 - lowpass: work with delta-sec = nil
- cosmetics
2008-04-23 22:01:44 +00:00
stuart
01d21c928a Add generic redout. 2008-04-23 20:44:57 +00:00
mfranz
efaeff5180 - make the limiter a tad faster
- fix comment
2008-04-21 21:39:45 +00:00
mfranz
ff6c9ec672 view_limiter: fix wrong starting offset 2008-04-15 16:55:40 +00:00
mfranz
c97010cefd make panViewDir use new limiter params & some parameter tweaks 2008-04-15 13:29:23 +00:00
mfranz
7fbeb50695 view_limiter:
- new parameter naming (left/right instead of min/max; signs are ignored)
- fix wrap-around skips
- use regular constructor so as not to confuse people  ;-)
2008-04-15 13:02:18 +00:00
mfranz
c4ebd9a0f2 - use separate view-limiter handler instances per view
- cleanup
2008-04-15 07:04:52 +00:00
mfranz
656340fa3d davidB21 + Vivian MEAZZA + /me: pilot view limiter
If a <view> contains a <limits> block, then a view handler gets attached to
it, which limits head turns to a given range, whereby headings beyond a given
threshold cause an additional sideways movement. This is turned off by default
for now.
2008-04-14 10:00:27 +00:00
mfranz
3e9a108288 make view.index (value of "/sim/current-view/view-number") and view.current
(a props.Node hash of the current view, e.g. /sim/view[100]/) available
2008-04-12 20:25:21 +00:00
sydadams
c7b3412af0 Added a check for passive mode to allow keyboard controls .. 2008-04-01 05:56:38 +00:00
mfranz
6d3676639b revert bad livery.current initialization 2008-03-01 12:01:23 +00:00
mfranz
4db470acd4 move MP livery update parts from the livery class into a separate
livery_update class and add an optional third argument to its constructor:
a callback function that's called whenever the class noticed a livery
change
2008-03-01 09:49:57 +00:00
mfranz
e9e234410d initialize livery.current at livery.init() 2008-02-29 21:28:34 +00:00
mfranz
713685f275 add aircraft.livery methods for updating the livery in MP loaded aircraft 2008-02-29 17:17:40 +00:00
mfranz
217cbcae34 add mod-up action to magneto keys, and ignore that in the controls wrapper;
This allows to implement car-like combined magneto/starter switches.
2008-02-23 18:18:55 +00:00
stuart
dc4ad0dc80 Update to generic blackout, incorporating feedback from Melchior FRANZ:
- Update redout level every frame
 - Replace reading of properties every iteration with listeners
 - move -onset and -complete properties into a parameters subtree
2008-02-16 20:23:27 +00:00
stuart
dd923792ec Add generic blackout/redout for all aircraft, along with a gui.
Based on previous work by vivian and myself.
2008-02-16 08:26:59 +00:00
vmmeazza
0e0b9b4b06 Add a new class which enables formations to be changed during runtime. A modification of the Livery Class 2008-02-15 14:09:37 +00:00
mfranz
80ed641d69 avoid unnecessary call() 2008-02-13 20:12:42 +00:00
andy
4ae206fc00 Turns out some code likes to call isa() with non-objects. Might as
well have it return false (which is valid) instead of throwing an
exception (also valid, but more surprising).
2008-02-07 21:23:42 +00:00
andy
bedac8ec83 Fix isa() when used on classes with superclasses. 2008-02-07 18:03:03 +00:00
mfranz
b94a02a4f5 disable ground steering head turn (until there's a better implementation?).
This does often work badly, especially in seaplanes.
2008-02-07 15:07:09 +00:00
mfranz
46f66693e2 - make timer.stop() return "me"
- make door.move() only spawn an interpolate event if the target value
  differs from the current pos (fixes brake problem in the dhc6)
2008-02-05 12:39:56 +00:00
mfranz
30f3dff563 make axis wrappers a tad faster (and a whole lot cooler :-) 2008-01-30 21:52:29 +00:00
mfranz
c35f3207d3 preferences.xml: drop /sim/input/selected/engine settings (these properties
are set in controls.nas since ages)
controls.nas: avoid repeated querying of /sim/input/selected/engine[*]
    properties; this isn't supposed to change at runtime and is a rather
    costly process, especially in axis handlers
2008-01-30 16:48:04 +00:00
mfranz
5776d1cc87 make mixture/propeller/carbHear only work for selected engine (like throttle) 2008-01-29 23:45:31 +00:00
mfranz
cce72f08a9 don't save view-enabled state of nameless views to aircraft config file
(the view may have been removed from the *-set.xml file)
2008-01-18 14:16:38 +00:00
mfranz
7c9566860d Stewart ANDREASON: fix broken index calculation in livery.set() 2007-12-17 21:49:52 +00:00
mfranz
c96fd4b089 - make stepView() read the <enabled> flag as bool
- some more 'var', as usual
2007-12-13 20:16:20 +00:00
mfranz
e37bd9d12f add new key defs 2007-12-09 22:58:51 +00:00
vmmeazza
4ee3367452 Stuart Buchanan:
Add chat menu
2007-12-08 19:01:03 +00:00
mfranz
cf0f21dec3 ... and turning them on again should actually make the frames visible. 2007-12-07 12:23:46 +00:00
mfranz
c83a76d585 disable top bar only if /sim/model/geometry/square/top is unset. Put this
into your ~/.fgfsrc if you want complete squares (yes, 0 is on :-).

  --prop:sim/model/geometry/square/top=0
2007-12-07 11:49:55 +00:00
mfranz
77dcb9dc34 glide slope tunnel visualization script 2007-12-01 19:10:12 +00:00
mfranz
62b3343fef Markus ZOJER: add wingSweep() wrapper
mf: add var keyword, use named args, ...
2007-11-29 13:16:13 +00:00
mfranz
0183e43b38 allow to open several property browsers with one command line argument
(comma separated paths):

  --prop:browser=position,orientation,sim/model
2007-11-28 22:22:29 +00:00
mfranz
8e1364713f reorder instructions in start(); rename some variables 2007-11-27 16:28:52 +00:00
mfranz
125d9d7f19 don't remove double entries in the whole history, but only push unique ones 2007-11-27 01:40:23 +00:00
mfranz
4faba765b0 remove obsolete code 2007-11-26 16:42:43 +00:00
mfranz
7592b8243a remove leftover debug statement 2007-11-26 16:14:44 +00:00
mfranz
73c0285ef9 - remove property browser binding from the <SPACE> key
- 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. :-)
2007-11-26 16:12:37 +00:00
mfranz
4b5550520b character class fixes (isfoo()) 2007-11-26 09:50:18 +00:00
mfranz
a53e636268 debug.nas: _dump_string(): escape some characters
prop-key-handler.nas: minor cleanup
2007-11-25 20:36:57 +00:00
mfranz
ecf469e295 prop-key-handler.nas: check for nil property
tutorial.nas, globals.nas, controls.nas: cosmetics
2007-11-20 17:02:13 +00:00
mfranz
73bbdd280d treat "Cockpit View" like other views; limit view.stepView() step to 1 and -1 2007-11-20 11:34:54 +00:00
mfranz
eccdedf12c - ensure correct order of initialization
- only save aircraft view properties that are defined
- unset "userarchive" flags, just in case
2007-11-19 20:20:55 +00:00
mfranz
73aeb8d772 OK, and now it Really Works.
(Yes, that's one way to get a better place in the number-of-commits ranking. ;-)
2007-11-19 18:55:24 +00:00
mfranz
87e746a755 sheesh ... another little bug to fix: fixate path for settimer closure 2007-11-19 18:30:55 +00:00
mfranz
59e51fa533 refresh "enabled" state of aircraft views (or they'd last only until the next run) 2007-11-19 18:07:30 +00:00
mfranz
b8b665d347 work correctly if the stepView() step is >1 or <-1 (though such steps
don't really make much sense)
2007-11-19 17:08:47 +00:00
mfranz
10c875f75e make system and aircraft views configurable in Menu->Views->View Options.
These are then skipped with view.stepView(n), unless the second, optional
argument is set to 1:  view.stepView(n, 1);
Whether a view is enabled or not, is saved in $FG_ROOT/.fgfs/autosave.xml
(system views) or $FG_ROOT/.fgfs/aircraft-data/<aircraft>.xml
2007-11-19 16:26:15 +00:00
mfranz
d6be4c8303 make sure aircraft don't use reserved view indices (0..99)
I tried it the nice way, but it didn't work. Why is it important to
reserve indices for fgfs? Because someone has otherwise to go through
all aircraft in CVS and move aircraft specific views out of the way,
every time a system view gets added. Been there, done that.
2007-11-19 14:22:55 +00:00
mfranz
96c76c4fe0 display hash keys that are numbers as numbers; import string.nas functions 2007-11-19 13:31:18 +00:00
mfranz
31807d6538 dump funny hash keys correctly, as string with escaped non-printables 2007-11-19 12:36:26 +00:00
mfranz
4ed4939b8e describe <Shift-TAB> and <Shift-Backspace> keys as well :-) 2007-11-18 13:30:30 +00:00
mfranz
0bca5bdea6 - add Debug->Development Extensions dialog with two checkboxes to
- allow turning on/off extra widgets for developers (HUD dialog: colors,
  rendering dialog: visualization of shadow edges), and to turn on/off new
- property key handler ('/'-key)

Both features are off by default, and their state is saved to autosave.xml.
2007-11-18 12:20:17 +00:00
mfranz
9dfa8830a7 more isfoo() functions (yes, I intend to use them :-) 2007-11-16 17:16:42 +00:00
mfranz
d85ba7575c make debug.attributes() verbose by default. This adds the refcounter to
the property attribute string, as in:

  (NONE, L1, #8345)

... for a node of type "NONE", with one listener attached, and 8345 instances
of the shared pointer around.
2007-11-15 21:27:42 +00:00
mfranz
3a83fb99d5 - "export" the attributes function for return a property node's attributes
as string (s/_attrib/attributes)
- bind() the code in load_nasal() correctly
2007-11-15 06:46:14 +00:00
mfranz
14a5f38be2 make gui.property_browser() not only digest property paths, but
also props.Node class hashes
2007-11-14 20:13:35 +00:00
david
45363925fc Add function to toggle lighting. 2007-11-10 01:29:31 +00:00
mfranz
5481c73b20 - fix bug that made gui.popupTip() ignore the optional delay argument
- use more "var" keywords and named args
- popupTip(): add optional third hash argument that is merged with the
  dialog properies hash. This can be used to select different font or
  dialog colors, etc.
2007-11-09 13:00:05 +00:00
mfranz
2ba2925cd0 add view manager which manages view handlers. fly-by-view is now implemented
as such a view handler. Views that don't use one aren't affected -- the view
manager doesn't run when they are active.
2007-11-06 21:49:33 +00:00
mfranz
b3ab26db07 fix comment & cosmetics 2007-11-06 21:23:53 +00:00
mfranz
9b7eafd658 use sim time delta for the lowpass, not realtime delta 2007-11-06 21:22:06 +00:00
mfranz
99bcbe8ea5 change global dynamic-view flag from /sim/view[0]/dynamic/enabled to
/sim/current-view/dynamic-view. There are additionally <dynamic-view>
settings per view, but those only enable it for that view if it's
globally turned on.
2007-11-03 14:08:39 +00:00
mfranz
eb5b350ec9 we need more colors! 2007-10-16 18:54:25 +00:00
mfranz
be3025b40f bah ... always shortly after presenting a new feature on the list, I change
it and the description doesn't match any more.  :-}
Number of frames makes more sense than seconds (default = 1):

  debug.proptrace([<property> [, <number_of_frames>]]);
2007-10-16 17:23:25 +00:00
mfranz
fc6f357a0e add new debugging function proptrace(), which outputs all regular property
writes (not directly written tied ones), all node additions and removal.
Frames are separated with a line. Turn off ANSI coloring if you want to
pipe the results into a file: --prop:sim/startup/terminal-ansi-colors=0
2007-10-16 15:24:30 +00:00
mfranz
c6790fd328 don't set stopTutorial listener before we can be sure that markerN is set 2007-10-15 21:55:23 +00:00
mfranz
256b1880cb wrapNode(): One argument ought to be enough for anybody. 2007-10-15 18:32:20 +00:00
mfranz
2bcddab9b6 setlistener(): accessing the node via cmdarg() is now depreciated. Use
a regular function argument for that. Note the "n" in this example:

   setlistener("/sim/current-view/view-number", func(n) {
       setprop("/sim/hud/visibility", !n.getValue());
   }, 1);
2007-10-15 18:27:42 +00:00
mfranz
12c11dfa6f setlistener(): now that we know the params, we only need to unwrap the first two 2007-10-15 18:00:17 +00:00
mfranz
0d3c7cec6f - setlistener(): add wrapper function to turn ghost arguments into props.Nodes
- "modernization": use more named function arguments and "var" keywords
2007-10-15 16:30:37 +00:00
mfranz
cdc2b360d7 launchbar message: adapt for new setlistener() syntax; fourth argument set
to zero, so that the listener is only triggered when the launchbar state
has change. (YASim writes it in every frame. Sigh.)
2007-10-14 18:04:53 +00:00
mfranz
705e4bcaac forward fourth setlistener() arg to _setlistener() 2007-10-14 18:03:31 +00:00
mfranz
3cccfaac53 re-activate launchbar listener, and make it a type 2 listener
(repeated writing of the same value doesn't trigger, only changes do)
2007-10-12 17:25:54 +00:00
mfranz
6149c6bbda commenting the "Engaged" message out ... YASim.cxx sets the launchbar
state string in *every* frame, so we shouldn't "listen" to it.  :-(
2007-10-10 10:59:41 +00:00
mfranz
520fff1c1e screen.nas: now *really* do the runway report quietly
startup.nas: cosmetics
2007-10-10 09:58:22 +00:00
mfranz
d003752d20 let copilot/ground crew report when engaged in launchbar 2007-10-09 14:48:44 +00:00
mfranz
693bebcd43 this module is meant for pure startup code. It shall not contain any library
code that is called from outside. It will be removed from the global namespace
once it has done its job. For now it only selects a proper runway for wind
directions reported by METAR, but only, of course, if an airport was chosen,
but no runway and no heading, and if the aircraft is actually on ground.
2007-10-07 19:44:58 +00:00
mfranz
095e3e717e agl: need to check for nil 2007-10-07 17:09:13 +00:00
mfranz
dfd21c722d - add more "var" keywords, fix indentation, drop some parentheses,
fix comments, consistency fixes, ...
- aircraft.nas: angular_lowpass -> minor speedup
2007-10-07 15:12:05 +00:00
mfranz
ef22d3f5a3 only report ATC/runway near ground & cleanup 2007-10-07 11:34:53 +00:00
mfranz
b7ddc05287 rwy info isn't always available 2007-10-04 22:07:37 +00:00
mfranz
321fbbbcab friendly ATC tells us on which runway we are, without sound.
Please complain if you find it, nevertheless, annoying.
2007-10-04 18:23:36 +00:00
mfranz
a895da0247 can't use props.getNode() on the top level ... 2007-10-03 19:14:04 +00:00
mfranz
eafc9c3a1d rename index() to indexof() 2007-10-03 19:01:01 +00:00
mfranz
63dca5051a add index() function which returns view index by name. Identifying views
by name is safer and especially useful for aircraft specific views, where
the XML index doesn't match the view number.
2007-10-03 18:15:50 +00:00
mfranz
0f69bc55ef enable dynamic view not only for view[0], but for all views with set
"config/dynamic-view" bool
2007-10-03 17:33:42 +00:00
mfranz
fd20d330ba props.Node: add remove() method that removes the node it was calleed on
from its property tree. The node remains accessible as long as references
to it are kept. Example:

  var cow_chain = func {
      var cow = geo.put_model("Models/Fauna/cow.ac", geo.aircraft_position());
      settimer(func { cow.remove() }, 10);
      settimer(cow_chain, 2);
  }
  cow_chain();
2007-08-07 11:30:30 +00:00
mfranz
bf050c012f load and execute all ~/.fgfs/Nasal/*.nas files in alphabetic order after
the $FG_ROOT/Nasal/*.nas ones are done. This allows to use props.Node etc.
immediately, without requirement for settimer(func{}, 0) constructions.

Rationale:
- clean separation of local additions (and hacks :-) from standard files
- users might not have write permission to $FG_ROOT/Nasal/ or shouldn't
  have to su to root for writing Nasal code
2007-08-06 22:50:06 +00:00
mfranz
109f38812b don't reset viewPosition on view.resetView(). This would break
"seat adjustment" view MMB-dragging.
2007-08-01 21:28:58 +00:00
mfranz
3132b5c962 Fix mouse MMB+LMB: this reset to view[0] parameters independent of the
current view, so it was only usable in cockpit view, and messed up every
other view.
2007-08-01 21:10:04 +00:00
mfranz
e092ee9abc - we prefer hyphens in property names to underscores
- save /sim/multiplayer/chat-display to autosave.xml
- remove trailing spaces
2007-08-01 19:37:51 +00:00
mfranz
7c2a88a98a Anders GIDENSTAM:
- Page up/down changes the selected throttles one step up/down, i.e.
  if the original throttle settings were x steps apart they remain
  steps apart (unless the boundary is reached).
- Mouse + MMB drag changes the selected throttles by the delta amount
  (length of drag).
- The throttleAxis() wrapper for joysticks sets the selected
  throttles to correspond to the joystick's axis position. I.e. all
  selected engines will get the same throttle setting. Since most
  joystick throttles are positional devices I think this behaviour
  is more logical than using a relative adjustment in this case. """

mf: slightly modified, added var etc. (more such changes in controls.nas
    to come)
2007-07-19 16:18:39 +00:00
mfranz
3ec61cdd5f key help: property browser: Shift-Enter -> Ctrl-Space 2007-07-19 10:51:24 +00:00
mfranz
b6b39def59 nextStyle: switch to next available style, allowing the index range to
have holes. That way people can start their private styles with e.g. 100
and can be sure that the system doesn't mess with them.
2007-07-17 10:05:14 +00:00
mfranz
886af1b68d fly-by: more variation of view points in air, with some limits on ground to
avoid irritating taxiing through the viewer or down view on the aircraft
2007-07-16 14:42:48 +00:00
mfranz
3c08f34027 - move "swap panels" from s-key to S-key
- 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.
2007-07-13 13:46:09 +00:00
mfranz
96a8a9657f - drop redundant aircraft namespace
- use getprop() instead of props.Node.getValue() here because it's faster
2007-07-06 21:28:07 +00:00
mfranz
d6ff854aa5 add class for variable inverval lowpass filtering of angles. (If there's
a better method or name for it, please tell me.) This is primarily for
smoothing view heading angles.
2007-07-06 20:31:14 +00:00
mfranz
bece57dfc8 output ghosts in a readable form 2007-07-02 20:58:30 +00:00
mfranz
54c28ced16 what I do best: cosmetics 2007-07-01 18:54:32 +00:00
mfranz
faf9ea862d implement writexml() function for writing non-standard XML files
(that is: such that don't use PropertyList as root element and have
data hidden in attributes)
2007-07-01 15:05:16 +00:00
mfranz
122423aa2b - make io.readxml() a lot faster
- documentation update
2007-06-30 11:06:36 +00:00
mfranz
7b1ac37678 add readxml function that reads an XML file and returns it as property tree 2007-06-29 15:49:08 +00:00
mfranz
968c517a71 bye ... we have a Nasal interface to the built-in EasyXML parser now 2007-06-29 15:44:15 +00:00
mfranz
2e9c693e67 use geodinfo() function to retrieve the terrain elevation for a coordinate 2007-06-23 15:28:08 +00:00
mfranz
43d6e707bb minus can't be delimiter in a [] range 2007-06-22 20:41:00 +00:00
mfranz
cfd9c1b48f pointless spelling fixes 2007-06-22 18:49:38 +00:00
mfranz
248d4fcf60 - fix behavior for broken input
- more documentation
2007-06-22 17:52:37 +00:00
mfranz
f827653668 - create new Nasal module string.nas with simple shell style pattern matching
algorithm (needed for the file selector and useful for other purposes, like
  assembling lists of livery or screenshot files etc.)
- io.nas: move fixpath to string.nas (it's not only useful for file paths
  but can also be used for property paths)
- screen.nas: move trim to string.nas (used by screen.nas and nasal-console.xml)
- gui.nas: add pattern matching to FileSelctor
- ufo.nas: use patterm matching (only *.ac and *.xml files shall be listed)
2007-06-22 14:13:30 +00:00
mfranz
44cbca565d add ghost(type) output, just like nasal/lib/debug.nas :-) 2007-06-21 20:00:21 +00:00
mfranz
ce356a350e don't multiply with nil 2007-06-20 15:16:29 +00:00
mfranz
fa820545b7 livery: need to set name for standard dialogs separately 2007-06-18 15:34:36 +00:00
mfranz
b96c113765 always the same module dependency problems ... sigh 2007-06-18 15:15:16 +00:00
mfranz
ce70468d73 - fix Coord.latlon() method (output degree instead of radian to be consistent
with Coord.lat() and Coord.lon(), and because this is the preferable unit
  in script space)
- add put_model(<path>, <coord> [, <hdg> [, <pitch> [, <roll>]]]) variant,
  which takes a Coord instead of <lon>/<lat>/<alt>). Here's some inspiration:

  setlistener("/sim/signals/click", func {
      geo.put_model("Models/Fauna/cow.ac", geo.click_position(), 360 * rand());
  });
2007-06-18 11:06:10 +00:00
mfranz
870830b4a7 - import asin/acos/mod from the new math.nas
- drop parentheses where not necessary (looks cleaner :-)
2007-06-18 10:33:37 +00:00
mfranz
b2750d8a05 adapt for geo.nas changes (swapping lon & lat) 2007-06-18 10:23:14 +00:00
mfranz
32616f42a0 swap lon & lat everywhere. lat/lon is illogical, but unortunately a kind of
standard.  :-(
2007-06-18 10:22:17 +00:00
mfranz
31eff644c1 - add setters to the gui.FileSelector, so that title/button text/dir/file/
dotfile flag can be set later (and take effect after the next open())
- add Alt-".." binding: change to $PWD (which is the default starting dir)
2007-06-17 22:56:22 +00:00
mfranz
10ca74fc83 - make dir entry an input field
- make title & button text separately settable
- sequential numbers for clones rather than random numbers
2007-06-17 15:27:33 +00:00
mfranz
e91115e328 Maik JUSTUS: use geodtocart() and carttogeod() functions, rather than
simplified conversion based on a spheroidal Earth
2007-06-16 18:26:06 +00:00
mfranz
59c303bcc1 add printerror() function that prints error vectors as set by call() 2007-06-16 08:21:39 +00:00
mfranz
75a2b57a83 - move dialog registration to the Dialog class
- fix documentation
2007-06-15 16:22:13 +00:00
mfranz
57b8debf7e - Dialog: add optional third arg: dialog name (by default taken from the
dialog's <name> entry)
- FileSelctor: new class derived from Dialog. It clones the file-select
  dialog and reports chosen files/dirs via callback function.
2007-06-14 23:19:43 +00:00
mfranz
183672f8a2 - don't prepend slash on relative paths or archaic paths with drive letters
- documentation updates
2007-06-14 11:26:16 +00:00
mfranz
0fed31d7b7 - fixpath: don't need to remove leading/trailing slashes "manually"; that's
a side effect of the stack loop already
- replace all backslashes by slashes, to avoid security problems on UNIX
  (if support for them is desirable on MS Windows, then we'd need an OS
  property)
2007-06-13 20:31:09 +00:00
mfranz
120d09b5e6 Andy ROSS: functions to check for stat()[2] flags, such as isdir()
mf: fixpath(): function to normalize file paths (doesn't handle escaped
    characters yet)
2007-06-13 16:46:41 +00:00
mfranz
d9910b27e7 simplification 2007-06-12 22:08:18 +00:00
mfranz
3c73eaa45f documentation update and cosmetics 2007-06-12 21:27:48 +00:00
mfranz
4c2ded3509 throw out load_xml_nasal and implement load_nasal(<file> [, <module>]);
This can be used to load and run Nasal code at runtime (without need
for an XML frame).
2007-06-12 19:13:28 +00:00
mfranz
a1fd54cfdf aircraft.nas, gui.nas: adapt loadxml for absolute paths, drop second fgcommand arg
debug.nas, tutorial.nas: adapt for abs. paths
fuel.nas: cleanup
screen.nas: don't remove listeners -- that's done automatically by removind
    the node in NasalSys.cxx
xml.nas: minor documentation fix
2007-06-12 16:20:55 +00:00
mfranz
39ee6cff4f fix backtrace() (probably broken since the last Nasal update) 2007-06-10 20:31:33 +00:00
andy
30502189d8 The screen-capture command no longer pops up a dialog, so toss up a tip
from within the F3 keybaord handler instead.
2007-06-07 16:59:07 +00:00
mfranz
0fcdafe2aa add autotrim class to help with trimming (read the class documentation for
an explanation). There's no button/key using this by default (yet?).
2007-06-07 10:12:03 +00:00
mfranz
71fa47d99d drop clumsy handling of temporary file data branch, and use the "savexml"
fgcommand's temporary <data> argument branch instead
2007-06-06 21:40:47 +00:00
mfranz
c050b436fa livery handling: add sort option and next()/previous() methods 2007-06-05 14:21:12 +00:00
mfranz
95caf1a918 add livery singleton class that maintains livery XML files.
TODO: allow explicit sorting (currently only alphabetic) and add next()
      and previous() methods
2007-06-04 13:45:23 +00:00
mfranz
6cb769ebf7 in addition to aircraft dialogs from arbitrary paths also allow gui.Dialog
to handle regular dialogs from $FG_ROOT/gui/dialogs/.
Example:   var fps = gui.Dialog.new("fps"); fps.open(); fps.close();
2007-06-04 12:42:29 +00:00
mfranz
fef7057bfc flyby: don't choke on <view>s without <name>, even though these are bugs 2007-06-03 20:54:31 +00:00
mfranz
9a37371eaa document geo.put_model() 2007-05-31 20:19:26 +00:00
mfranz
eb1e986889 whoops ... no comment 2007-05-15 20:46:59 +00:00
curt
203c61aaa1 Minor cosmetic changes. 2007-05-15 16:07:15 +00:00
mfranz
bec64d9c9e s/play-audio-message/play-audio-sample/ 2007-05-15 14:40:58 +00:00
mfranz
436bf87c54 debug.benchmark(): helper function that prints the system time in seconds
for the given function call
2007-05-14 16:28:53 +00:00
mfranz
a9b9c86750 - add Node.getValues() in analogy to Node.setValues(). Returns a hash with
all children, vectors for multiply used names, further hashes for subtrees
  etc. Meant for quickly pulling in config branches where (almost) all values
  are needed.
- usage of "var" keyword and named parameters in other (but not all) funcs
2007-05-14 15:15:00 +00:00
mfranz
02b4dc58e8 geo.nas:
- add put_model() function to place models at given lon/lat. If
  elevation is nil, then it will be put on the surface. The path is
  relative to $FG_ROOT.
- let geo.click_position() and geo.aircraft_position() return copies
  of the Coord class, not just a reference

view.nas: adaptation for geo.nas change; minor changes
2007-05-12 18:38:57 +00:00
mfranz
1a19f8a8e5 - make viewReset reset fly-by view
- cleanup
2007-05-11 21:16:35 +00:00
mfranz
874d55b6e7 simplify by using the props.Node.setBinding() method 2007-05-11 19:02:20 +00:00
mfranz
5f97465d6e - make view_manager singleton class
- simplify lookat wrapper with a call()
- cosmetics
2007-05-11 18:59:34 +00:00
mfranz
47d675bfd5 - make the HUD and the data class singleton classes
- use var everywhere, cosmetics
2007-05-11 18:04:51 +00:00
mfranz
c54fbb1e39 _c should be a valid function from the beginning 2007-05-11 18:03:44 +00:00
mfranz
d92ae39349 - skip DOCTYPE
- optional attr prefix in xml.dump
2007-05-11 15:44:16 +00:00
mfranz
8befda2655 whoops ... forgot one "arg" fix 2007-05-10 17:37:28 +00:00
mfranz
e22a4086ff "fixed" the "arg bug". (Wasn't really a bug, just old-style Nasal code
that doesn't work with new nasal. :-)
2007-05-10 17:33:28 +00:00
mfranz
80fd0740e5 new commands:
debug.color(bool)                 turns terminal colors on/off
  debug.tree(property="", mode=1);  dumps property tree in flat
                                    mode (0) or space indented mode (1).

Flat tree mode is similar to props.debug(), but colored, and it outputs
all attribute flags and the number of attached listeners.
2007-05-09 17:31:45 +00:00
mfranz
3b6a79ee8b - use Nasal's rethrow capabilities
- remove redundant lines
2007-05-08 22:21:34 +00:00
mfranz
072610c001 aircraft.steering: redefine the controls.applyBrakes() wrapper, too.
If this isn't what the aircraft developer wants, then s/he can still
redefine it again afterwards.
2007-05-08 14:22:54 +00:00
mfranz
6b533c19a9 add class that implements differential braking with rudder input 2007-05-08 09:52:13 +00:00
mfranz
f7a9ef4d37 - use heading instead of last course (works better in curves)
- stop at crash
2007-05-05 21:36:31 +00:00
mfranz
d225de2aea fix behavior for begin and end of replay 2007-05-05 15:07:54 +00:00
mfranz
c13914937e make "terrain-elevation" wrapper more efficient 2007-05-05 10:09:13 +00:00
mfranz
d4e030f9c6 - don't update when aircraft stays within threshold distance
- randomize left/right, better parameters
- don't reset on pause
2007-05-04 22:48:40 +00:00
mfranz
66f9e552ba - first stab at fly-by view mode
- hack for the panView functions: work in paused mode, too!
2007-05-04 18:01:26 +00:00
mfranz
9785ce8e36 - make stepView robuster and view order changeable (via view.views vector)
- de-classify view.point
2007-05-04 17:19:31 +00:00
mfranz
9f1bc7efeb add "terrain-elevation" utility function 2007-05-03 22:09:34 +00:00
mfranz
d9b0226d30 - add process_file() function (still reads the whole file into memory)
- handle "processing instructions"
- don't gobble leading spaces in non-cdata data sections
- minor fixes, cosmetics, documentation changes
2007-05-03 15:56:59 +00:00
mfranz
af56aed55e simple xml parser that allows to read non-fgfs-standard xml files such as
those from traffic manager and AI, so that it will later be possible to
load the data into the UFO Scenery Object Editor, to visualize and edit
parking positions, taxiing routes etc. The parser also allows to suck
arbitrary (simple) XML data files into fgfs from Nasal context.

In the long run the non-standard XML files in fgfs shall, of course, be
converted to standard format, in which no data may be stored in attributes.
2007-05-02 20:55:54 +00:00
mfranz
24b8156e9f HUD: only consider i/I/H presses when a HUD is displayed 2007-05-01 19:36:41 +00:00
mfranz
1e446a26ae setlistener(): don't drop calls with invalid property -- the c++ side
outputs a nice error message in this case
2007-04-27 15:52:54 +00:00
mfranz
944e6a8548 in debug levels "debug" and "bulk" output listener id, file name, and
line-number for every setlistener() wrapper call. This allows to identify
listeners later by their id.
2007-04-27 14:27:01 +00:00
sydadams
bafa93e8fd Added volume control to the atc-chatter 2007-04-19 04:42:20 +00:00
mfranz
47f5e58005 can't hurt to initialized light.endstate (state after number of sequences) 2007-04-06 21:53:46 +00:00
mfranz
5471f0cd5b - remove hack around Nasal bug, which is already fixed
- add second optional argument to light.blink() method, which
  defines which state should be set after the end of the sequences
  (defaults: 0)
2007-04-06 21:33:22 +00:00
mfranz
c331a49dea add optional argument to blink() method:
blink()  ... set signal generator to unlimited blinking
blink(3) ... set signal generator to blinking only 3 sequences
             after turning the switch on.
2007-04-06 20:03:47 +00:00
mfranz
38c170baa5 props.copy: add third argument that, if set, also copies the node attributes 2007-04-04 14:44:13 +00:00
mfranz
2893846dea - add <abort> group (like <exit> but works when <error>s are still made)
- rename <interval> to <wait>
- add <step-time> and <exit-time> on the <tutorial> level for default
  step iteration and exit time
- let <init>, <step>, <error>, <end>, <abort> share handler for
  <marker>, <set>, <view>, <nasal>
2007-03-30 20:24:26 +00:00
andy
3bcfb0624a Add soft-coded utilites to the "io" and "math" modules. The math
stuff is, for the most part, already available in the geo module; but
it's small and this naming matches the evolvoing "standard nasal
library".
2007-03-29 22:09:25 +00:00
andy
3bcb193cb9 Fix symbol lookup issue via a caller() hack. Not sure what the
underlying problem is, but this allows fpsDisplay() to be called both
as a command handler and as a function.
2007-03-29 19:32:59 +00:00
mfranz
de80a63ae6 don't rely on the existence of an "arg" pointer 2007-03-29 18:39:10 +00:00
mfranz
abaa43a1a5 add function to reload Nasal module at runtime. Very convenient for
development. The file must be an XML file with Nasal between a
header/footer. It's a good idea to give it a *.nas extension, so
that editors choose the Nasal syntax coloring.

  <PropertyList><script><![CDATA[

  ... here goes the Nasal code ...

  ]]></script></PropertyList>
2007-03-29 15:00:04 +00:00
mfranz
88b81056e1 - make fuel checkbox/slider "live"
- add two dialog helper functions dialog_apply() and dialog_update()
2007-03-29 14:50:27 +00:00
mfranz
44bb7bb192 reload XML dialogs on gui-reinit 2007-03-28 20:35:12 +00:00
mfranz
6fdf07b79e reverting; just saw why I hadn't turned it on 2007-03-27 18:02:12 +00:00
mfranz
bf1f438380 make the screen.log window keep the position it was dragged to 2007-03-27 17:48:16 +00:00
mfranz
bcb244be92 use <hrule/> without dummy children 2007-03-26 15:26:23 +00:00
mfranz
c09c7ac5c6 When loading a dialog, first close it, then remove the whole branch,
then load, and finally open the dialog again if it was open at the
beginning. That way it's easy to edit and to update a Nasal-loaded
XML dialog.
2007-03-25 10:00:53 +00:00
mfranz
7a300fca3e add tutorial loader function for AJ :-) 2007-03-24 23:28:41 +00:00
mfranz
269396c421 - remove tutorial dialogs from gui.nas and create a new XML dialog
$FG_ROOT/gui/dialogs/tutorial.xml. It combines the former selection
  and description dialogs, which makes browsing much more pleasant.
  No more switching back and forth between the two old dialogs. Also,
  the <list> box can handle a bigger number of tutorials than the
  <combo> box could.
- remove comments from the top of tutorial.nas. The documentation is
  now $FG_ROOT/Docs/README.tutorials
2007-03-24 20:56:40 +00:00
mfranz
b47f8f439d change <marker><[xyz]> to <marker><[xyz]-m> (for consistency with the
animation syntax, and to make tutorials noisier and harder to read :-)
2007-03-24 18:10:33 +00:00
mfranz
44305607b3 - s,/sim/tutorial,/sim/tutorials,
- add a <delay> property that can be used at top level (for the default),
  and in <init> and <step>  (Time in seconds in which the main loop should
  run again.)
- fix initialization bug
2007-03-24 13:39:01 +00:00
mfranz
7f375cf76c s,/sim/tutorial,/sim/tutorials, 2007-03-24 13:32:15 +00:00
mfranz
10093284ba If text contains "{display|voice}" groups, skip the delimiters and discard
the "voice" part. It's no longer possible to display the three letters {|}
in screen message at the moment, but they aren't overly useful. We may want
to support escaping in the future, if necessary.
2007-03-23 15:56:34 +00:00
mfranz
03ba6e2b80 - now *really* disable marker on stopTutorial()
- add target heading
2007-03-23 10:58:15 +00:00
mfranz
8a288f59c2 calculate "Estimated Time of Arrival" (ETA) in minutes for each <target>.
Negative values show that you are actually moving away. To avoid division
by zero, a small value is always added to speed. So, if you aren't moving
at all, you still get a non-infinity, but huge ETA.
2007-03-22 22:10:55 +00:00
mfranz
ef9caa1310 - <targets> can have arbitrary names
- <set> pair: allow to set <property> from <value> or second <property>
- support <set> pairs in <end>, too. This can be used to restore values.
- add optional <view> to <init>/<step>/<exit>/<end>. This is meant for
  cockpit tutorials. See the Lightning's startup tutorial for an example.
2007-03-22 17:08:05 +00:00
mfranz
9a0600b150 - replace "sprintf hack" by real sprintf
- add view manager for saving/restoring and moving/interpolating view
  axes & fov to absolute values. This is used for cockpit tutorials in
  $FG_ROOT/Nasal/tutorial.nas
2007-03-22 16:22:41 +00:00
mfranz
0606fa3703 make condition() slightly faster and prettier (or not) 2007-03-21 18:37:06 +00:00
mfranz
54693a663f - fix <audio> bug
- check a step's errors in random order (otherwise a retarded instructor
  bitches minutes about the climb angle, and only then notices that the
  heading is totally wrong ;-) ... mabye simple scheduling would be better
- document embedded <nasal>
- start of <view> support
2007-03-21 17:31:26 +00:00
mfranz
b482f5d852 - add <target> feature: for each defined <target> lon/lat pair, corresponding
entries /sim/tutorial/targets/target[n]/{distance-m,direction-deg} are
  provided and kept up-to-date. A direction angle of 0 means that the target
  is straight ahead, 90 means it's to the right (3 o'clock) 179 means the
  target is right behind, etc.

- everywhere where <message> and/or <audio> is supported, there can be more
  of those entries, in which case one is randomly chosen. This is to make
  the instructions less monotone:

  <message>You are too fast. Fly at 100 knots.</message>
  <message>Not so fast. 100 knots are more than enough.</message>
  <message>Slower! Idiot!</message>                                  ;-)
2007-03-21 00:21:51 +00:00
mfranz
80913de2e0 code from ufo.nas (used by ufo.nas and tutorial.nas)
- simple geo coordinates class: geo.Coord with methods to set/get single
  components, to apply distance/course and the get distance/course to other
  coords
- functions that return click and aircraft position as geo.Coord
- function that returns tile_path for given lon/lat
- function that returns normalized angle (0 <= angle < 360)
2007-03-20 20:54:52 +00:00
mfranz
cf16f4de88 support <model> definition in a tutorial file, so that tutorials can place
static scenery objects, like air-racing pylons, etc.
2007-03-20 17:32:28 +00:00
mfranz
6d20159866 - trim/sanitize screen messages, so that tabs aren't displayed as
question marks
- make listeners one-shot (saves a couple of bytes of RAM :-)
2007-03-20 16:25:11 +00:00
mfranz
7319f5e772 better condition() comment & cosmetics 2007-03-20 16:23:23 +00:00
mfranz
dcd471b63d - add dialog wrapper, so that "tutorial.dialog()" typed into the
Help->Nasal-Console opens the adjustment dialog
- reset Nasal namespace for emebedded Nasal for every tutorial
- rename <voice> to <audio>  (in the hope that this won't be mixed up
  with Festival voice synthesis; should we call it <audio-sample>?)
- rename <instruction> to <message> for consistency reasons, so there
  are now <step><message>s, <error><message>s, and <end><message>s
2007-03-20 16:22:26 +00:00
mfranz
7cb5ad477c major overhaul/part I:
- add <marker> support (blinking magenta circle to point to switches etc.)
- use "real" conditions instead of tutorial-only ones
- list of <error> with <message> and <condition> children, instead
  of one <error> group with <check> items (necessary because of <condition>)
- only one <exit> (use <condition><and>... to define a set
- rename properties <prop><val><msg> to <property><value><message>
  (consistency with other systems)
- <end><message>/<voice> instead of <endtext> and <endtext-voice> etc.
- add <nasal> support everywhere, with separate namespace and predefined
  tutorial functions in it (currently only say(), next(), previous())
- make <timeofday> property actually work

TODO:
- more cleanup/re-organization
- add optional <view> group, to direct user view to switches (for startup
  tutorials etc.)

2-space indentation changed to tabs (with Stuarts permission), and braces
to K&R style (rationale on request :-)
2007-03-19 23:46:50 +00:00
mfranz
5b812986fb undefined <condition>s are "true" 2007-03-19 18:17:05 +00:00
mfranz
b2f57eab81 boolify <property> result 2007-03-18 15:49:11 +00:00
mfranz
0b4e6f934e add a props.condition(property) command that evaluates a property branch
as <condition> according to the rules set out in $FG_ROOT/Docs/README.condition
2007-03-18 13:57:32 +00:00
mfranz
5f7104ac8a revert condition() patch. This can as easily be done in pure Nasal. 2007-03-18 10:52:08 +00:00
mfranz
d1c4bcea85 condition(property) wrapper for the _condition function.
See $FG_ROOT/Docs/README.condition
2007-03-17 15:59:39 +00:00
mfranz
ad8048627d add Dialog.namespace() method, which returns the XML dialog's namespace
if the dialog is open and contains embedded <nasal>, or nil otherwise.
This can be used to call dialog functions.
2007-02-26 11:00:04 +00:00
mfranz
2987f9660f let Shift-Space open property browser 2007-02-24 10:16:26 +00:00
mfranz
8f977f33ff - immediately unfreeze when mouse mode changes to a non-pointer mode
- rename variable s/speed/time/
2007-02-23 22:17:55 +00:00
mfranz
9e11e2102f - add property /sim/startup/terminal-ansi-colors {BOOL}. This is used
by debug.nas to turn on/off syntax coloring for dumped data (which
  is desirable as compound data types can fill several screens with
  rather hard to read data). Unfortunately, it can't be reliably deduced
  from the OS whether ANSI colors are available or not.
- move "multiplayer chat" properties to where they belong
2007-02-18 17:21:50 +00:00
mfranz
dfb4316b43 - make duration of view change configurable (default 0.2 seconds)
- extract some constants
2007-02-11 16:56:15 +00:00
mfranz
7763462f24 - add some documentation
- reset values
2007-02-10 23:47:02 +00:00
mfranz
7f30f1599e prevent math.ln(0) 2007-02-10 20:42:36 +00:00
mfranz
892f665997 small fix; need to remove the whole silly wrapper, anyway 2007-02-09 18:10:22 +00:00
mfranz
4b7c559b69 - extend lookat() function: dynamic_view.lookat(hdg, pitch, roll, x, y, z [, fov])
- use extra function for resuming normal mode after lookat: dynamic_view.resume()
- add fov (field-of-view) to interface:  me.fov_offset
- remove register_headshake and me.headshake; this can still be done via
  normal register(). If only headshaking is to be added, while keeping default
  plane view, do this:

  dynamic_view.register(func {
      default_plane();
      me.x_offset = ...
      me.y_offset = ...
      me.z_offset = ...
  });
2007-02-08 22:16:10 +00:00
mfranz
4ebd876c85 - move all module initialization code into one-shot listener
- initialize /sim/time/delta-realtime-sec, so that the lowpass filter doesn't
  complain if it's starter eraly (of course the results won't be correct
  until the delta is real)
2007-02-08 18:42:02 +00:00
mfranz
12f5714b37 add support for x/y/z axes. The built-in function is (still) a NOOP, but
aircraft can plug a custom function. This function can access all internal
variables of the ViewManager class. It can set me.{x,y,z}_offset, and also
add offsets to me.{heading,pitch,roll}_offset. Example:

dynamic_view.register_headshake(func {
        me.x_offset = rand() * 0.02;  # Parkinson effect
});

The advantage of this implementation is that it doesn't break MMB drag
functionality, and that is can be frozen by mouse movements.
2007-02-07 22:13:51 +00:00
mfranz
b07ebf0dfa work around Nasal bug (and/or operators) 2007-02-07 17:31:41 +00:00
mfranz
caf96d76c8 minor documentation fix 2007-02-07 17:06:52 +00:00
mfranz
3bec4f4cfc - add debug.local([<frame>]) to output local variables of frame #0
or of given frame
- add debug.string(<variable>). This returns the variable dump as
  string.
- add var to module function variables to avoid collisions with module names
2007-02-07 17:06:05 +00:00
mfranz
a1556fa69a make lookat work correctly for when the user changed view direction;
Remember: dynamic_view.lookat(heading, pitch, roll) moves view
smoothly to this direction, while dynamic_view.lookat() moves it back.
This can be used for quick view changes to the panel etc. It's currently
only used in the bo105 (flaps-up binding).
2007-02-07 16:58:46 +00:00
mfranz
e034e66c57 interpolate between frozen or lookat direction and current view direction 2007-02-06 16:25:44 +00:00
mfranz
df1bd972f8 - fix reinit/reset (has this caused the spinning view on reset for some?)
- add var to module functions to avoid conflicts with module names
2007-02-06 14:33:59 +00:00
mfranz
c9db8c22a3 don't waste time when we aren't in dyn-view mode at all 2007-02-05 22:59:51 +00:00
mfranz
286629c3e1 oh, and freeze while a button is pressed in arrow mode ... 2007-02-05 20:57:19 +00:00
mfranz
ea2d56aa33 don't generally freeze dynamic_view in arrow mouse mode, but only a short
time after mouse movements or clicks. After that period a rather ugly jump
happens. TODO: make this smoother
2007-02-05 20:36:29 +00:00
mfranz
90100e2514 disable dynamic view in mouse arrow mode. Operating all the tiny switches
on 3d panels while hopping over bumpy terrain has become difficult -- much
harder than in real life. I'm open for better solutions. Just complain. :-)
2007-02-05 16:14:51 +00:00
mfranz
0f07c14bd3 getBoolValue() on an undefined node shall return "false", not "true".
This isn't only more logical, it's also how SGPropertyNode::getBoolValue()
acts. The fix has potential to break code, but so far I haven't seen any
problems. I added a debug message to my copy and will for a while check
all cases that I run into. To check yourself, just add one line:

    getBoolValue : func {
        val = me.getValue();
+       if(val == nil) { debug.dump(me) }
        if(me.getType() == "STRING" and val == "false") { 0 }
        else { val != nil and val != 0 }
    }

This will output a debug message to the terminal for each case where
formerly "true" was returned, and now "false" is.
2007-02-05 11:40:49 +00:00
mfranz
cb25691c03 call setWeightOpts on reset, too 2007-01-31 21:37:14 +00:00
mfranz
003ba28784 make sure that setWeightOpts isn't called before fuel.nas' init fdm listener.
This is a bit hackish and needs to be reconsidered.
2007-01-31 21:13:16 +00:00
mfranz
221c23e18b - don't create tanks in empty tank nodes (that nasty native_fdm.cxx causes)
- use Nasal features that were introduced after this code was first written:
  * var for local variables (and to make clear when a variable is first used)
  * += operator
  * listeners to import seldom changing variables and to avoid waiting for
    the FDM in a loop

This new code started as empty file where I added my stuff and then copied
parts from the old code, piece by piece. This is why the coding & indentation
style has changed. Functionally the code should basically be equivalent.
2007-01-31 15:53:01 +00:00
mfranz
80b188706f cosmetics and stuff 2007-01-30 23:22:36 +00:00
mfranz
7ecdeec89e better backtrace section titles with added frame number 2007-01-29 23:48:41 +00:00
mfranz
6f073760af whoops 2007-01-29 19:57:54 +00:00
mfranz
feaf223d88 cleanup 2007-01-29 16:24:58 +00:00
mfranz
7d0fe51b9f first stab at nasal debugging helper module (nicks parts for files from
the Nasal repository :-)
2007-01-28 12:20:18 +00:00
mfranz
04de5c67c8 - add all entries in /sim/aircraft-data/path[*] to the save-list, so that one
can also write

      <sim>
          <aircraft-data>
              <path>/sim/author</path>
              <path>/sim/description</path>
              <path>/sim/rtatus</path>
          </aircraft-data>
      </sim>

  in a *-set.xml file instead of using Nasal (aircraft.data.add("/sim/author", ...)
- s/timeN/node/ to match the pattern described in the head comment
- make listener on-shot
2007-01-26 23:33:25 +00:00
mfranz
e3d90ee46c - don't prepend underscore to aircraft names (this was a leftover from
versions that wrote that name to the property tree)
- move HUD part to the bottom. It isn't really part of the library
- cleanup
2007-01-23 17:29:41 +00:00
mfranz
b47d2e2204 respect /sim/startup/save-on-exit 2007-01-22 19:05:35 +00:00
mfranz
97771b69ae - save aircraft data before the aircraft's Nasal files are executed
- make 0 a valid saving interval, and 'nil' or no arg stop the loop
  (this is for consistency with settimer() or aircraft.timer() intervals
- smaller fixes, cleanup
2007-01-22 16:49:28 +00:00
mfranz
f376ea5adb use /sim/signals/nasal-dir-initialized signal to simplify things 2007-01-22 00:03:07 +00:00
mfranz
bf7731c0af use /sim/signals/nasal-dir-initialized signal for library initialization;
this makes it possible to use screen.log.write() everywhere in aircraft
nasal files, not only after settimer(func{}, 0) were triggered
2007-01-21 20:56:25 +00:00
mfranz
977910c258 we can't use the setlistener() wrapper here, but need the real thing 2007-01-21 20:44:55 +00:00
mfranz
f61969ed01 add timer class that optionally saves time in the aircraft data file,
restores this time at next run and continues from this value. This is
meant for operation hour counters (Hobbs meters) for turbines, etc.
2007-01-21 20:06:05 +00:00
mfranz
722f35903d only save before the reset is executed, so we can save e.g. the Hobbs time 2007-01-21 00:21:53 +00:00
mfranz
ec18defa4c the dummy entry is no longer needed; files get only written if they
actually contain aircraft settings
2007-01-20 23:13:54 +00:00
mfranz
a73972512d add class for saving data into aircraft specific files
in ~/.fgfs/aircraft-data/ or %APPDATA%\flightgear.org\aircraft-data\
2007-01-20 20:15:06 +00:00
mfranz
51712052e1 this file is broken by design. Fixing the Nasal error apparently
overstrains it, so here's the error back. Have fun!  :-|
2007-01-13 22:37:38 +00:00
mfranz
4690b3c2c3 totally pointless mini-optimization 2007-01-13 21:46:07 +00:00
mfranz
f58fcdd492 make sure the property doesn't only exist, but is actually initialized 2007-01-13 18:35:22 +00:00
mfranz
7b6205d37b add props.Node.getAttribute() and props.Node.setAttribute() methods.
Examples:
  var tied = foo.getAttribute("TIED");
  foo.setAttribute("USERARCHIVE", 1);

Both methods accept attribute strings "READ", "WRITE", "ARCHIVE",
"TRACE_READ", "TRACE_WRITE", and "USERARCHIVE". getAttribute() does
additionally accept "TIED" (although this isn't an SGPropertyNode::Attribute).
Attribute "REMOVED" is not supported.
2007-01-12 18:06:50 +00:00
mfranz
41a756a6ba light class: make the first time-value always "on", even for odd numbered
light pattern. This is more robust and doesn't need the reinit listener.
2006-12-13 16:15:27 +00:00
mfranz
923f2b7299 - fix index and restart loop on reinit
- cosmetics
2006-12-12 22:42:52 +00:00
mfranz
30ce4f68c2 - make register() method more tolerant
- cosmetics
2006-12-11 18:37:10 +00:00
mfranz
ddc4b4c8e5 fix lookat() method (didn't consider unmanaged view "goals") 2006-12-10 23:09:42 +00:00
mfranz
bfacf76538 change per-aircraft configuration to a single function object that is
registered with dynamic_view.register() and is called in the main loop,
replacing the default plane/helicopter function. This has access to
all class functions/members and sets me.heading_offset, me.pitch_offset,
and me.roll_offset, which are then used as new view offsets.
The function can also do other things, such as call the lookat() method
to temporarily set heading and pitch. See the bo105 for an example.

While further minor changes are to be expected, the configuration method
seems to be the way to go.
2006-12-10 21:50:59 +00:00
mfranz
0529f66842 - first stab at making dynamic view parameters configurable on a per-aircraft
basis; see bo105.nas for an example; expect some changes, though
- move "lookat" feature here from bo105.nas (used by "flaps up" bindings)
2006-12-09 22:42:13 +00:00
mfranz
354a0f59ff make if-branch for helicopters (bo105 settings) and for everything else;
this *really* needs to be made configurable and less hackish
2006-12-07 22:38:07 +00:00
mfranz
28323bcec8 new light.new() arguments with light pattern array; error message for old
style args
2006-12-06 15:58:03 +00:00
mfranz
cb9361b067 showHelpDialog: automatically split the contents of a <line> block at
newlines
2006-12-06 00:24:48 +00:00
mfranz
a5aae32cc1 whoops; fix return value 2006-12-05 19:32:44 +00:00
mfranz
2cb4354814 - fix switch() method
- optimization (and code obfuscation ;-)
2006-12-05 19:17:17 +00:00
mfranz
eff0eecb8f lowpass: add set() method to set current average
light: - only trigger switch action if switch state actually changed
       - simplify loop
2006-12-04 10:42:05 +00:00
mfranz
c5ac5639a0 reset view after reinit (slowly, because the lowpass filters need to catch up) 2006-12-03 23:59:50 +00:00
mfranz
89710547ec Use a listener to watch the aircraft.light switch. This is slightly more
efficient and there's no more potential 0.5 s delay.
2006-12-03 22:20:16 +00:00
mfranz
4ae3ab11df don't silently fix bad user input -- complain loudly 2006-11-04 11:33:08 +00:00
mfranz
2145558999 documentation fix 2006-11-03 19:39:08 +00:00
mfranz
dabf3f300c - aircraft.nas: add variable-interval EWMA lowpass filter class
- dynamic_view.nas: use aircraft.lowpass() class

This makes the dynamic view independent of the frame rate. Currently,
each filter instance reads out dt on its own, which is a bit inefficient.
I'll change that to just one read for all instances later (when Nasal
implemented predictable module loading order. :-)
2006-11-03 17:38:32 +00:00
mfranz
0ff3f5da2b boring cleanup 2006-11-02 21:06:36 +00:00
mfranz
07e3e2b05b - minor fix
- add info/debug messages
2006-10-31 13:59:50 +00:00
mfranz
ae1df38643 better atc-message repetition (Remember: '+'-key) 2006-10-31 12:19:42 +00:00
mfranz
76e6f5247a disable joystick info dialog if no js available 2006-10-21 10:19:24 +00:00
mfranz
82c4dd05ed - replace indentation tabs with spaces
- fix sliders: revisions 1.43/1.44 had introduced a mandatory <min-lb>;
  if that was missing, a slider without handle was generated, and a click
  on the slider lead to a crash.
  -> check for both <min-lb> and <max-lb> and set default values
     0, respectively 100

  var min = w.getNode("min-lb", 1).getValue();
  var max = w.getNode("max-lb", 1).getValue();
  slider.set("min", min != nil ? min : 0);
  slider.set("max", max != nil ? max : 100);
2006-10-17 19:22:36 +00:00
frohlich
9c52cbf4ac Modified Files:
preferences.xml gui/menubar.xml gui/dialogs/rendering.xml
Added Files:
	Nasal/multiplayer.nas gui/dialogs/chat.xml
	gui/dialogs/chat_full.xml:
	the data part of Stuarts multiplayer/chat patch
2006-10-10 05:23:38 +00:00
mfranz
aad61698ff fix property_browser() 2006-08-27 19:27:21 +00:00
andy
d9ff131805 Oops, wrong sense of create predicte. Melchior was peeved. 2006-08-27 16:45:54 +00:00