1
0
Fork 0
Commit graph

51 commits

Author SHA1 Message Date
Anton Gomez Alvedro
8b16a71d50 Adds assert() for Nasal and fixes io.include internal marking
- A simple assert() function is added to the globals namespace.

 - io.include() marks the target namespace to avoid dependency loops.
   If the namespace is marked before the script to be included is
   compiled, a parse error leaves the target namespace marked while
   the script has not been loaded. This patch fixes this problem.
2014-06-06 21:41:10 -05:00
Philosopher
e9b1a89052 Clean up some global wrappers 2014-02-02 12:31:48 -06:00
janodesbois
5ce7d55342 FPS2KT and KT2FPS added to Nasal/global.nas 2013-10-27 13:50:39 +01:00
Philosopher
51c66c3df4 Fix defined() implementation 2013-10-20 13:06:51 -05:00
Thomas Geymayer
84b4da563e Inch/Meter conversion factors IN2M/M2I 2013-06-17 21:20:00 +02:00
Anders Gidenstam
3bcfe8296c Nasal/globals.nas: Added a missing var-keyword. 2012-06-12 22:35:37 +02: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
mfranz
8f5304ad90 add values() function as a counterpiece to keys() (see Perl) 2009-02-15 14:13:49 +00:00
mfranz
06cb820759 add KT2MPS/MPS2KT conversion constants 2008-12-17 01:03:32 +00:00
mfranz
e8a666c8e4 globals: cosmetics
props: initNode(): allow nil as first arg
2008-12-14 23:45:33 +00:00
mfranz
2be64792e1 add NM2M and M2NM constants 2008-12-13 12:55:47 +00:00
mfranz
db4c98d63e add constants GAL2L and LB2KG 2008-12-07 14:44:52 +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
55c34a0748 calculate M2FT from FT2M (of course :-) 2008-11-20 11:33:42 +00:00
mfranz
dcb1321923 make constants D2R, R2D, M2FT, FT2M global 2008-11-20 11:24:45 +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
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
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
ae40faf4e5 cosmetics (comment fixes & improvements, variable name) 2008-07-27 22:00:58 +00:00
mfranz
de1aa4c56e finally make printf() globally available 2008-07-23 15:43:45 +00:00
mfranz
b9e7bb1b4b add thisfunc() for reliable recursion 2008-07-22 19:03:25 +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
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
b3ab26db07 fix comment & cosmetics 2007-11-06 21:23:53 +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
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
705e4bcaac forward fourth setlistener() arg to _setlistener() 2007-10-14 18:03:31 +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
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
cfd9c1b48f pointless spelling fixes 2007-06-22 18:49:38 +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
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
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
cde64c8543 use __ for static variables (one underscore is too handy for use in other
modules to waste it here)
2006-02-18 00:12:09 +00:00
mfranz
dc6ab58eaf allow printlog() to be used with variable arg list (like print()):
printlog("warn", "Monty", "Burns");
2006-02-17 22:05:32 +00:00
mfranz
003ae0986f add printlog() function that works like SG_LOG(). It takes two arguments:
a --log-level and a scalar. Example: printlog("info", "I want more noise");
2006-02-17 21:24:08 +00:00
mfranz
714504b548 support optional setlistener() arg to fire callback function initially;
copy arg checking from interpolate()
2006-01-30 12:37:34 +00:00
mfranz
523b81e317 globals.nas: add _setlistener wrapper (needs to be used in INIT style
functions when used in $FG_ROOT/Nasal/*.nas, because it
             depends on props.nas being available; no restrictions in
             aircraft files, where it will proof most useful

gui.nas:     replace inefficient FPS display polling loop with listener
             callback
2005-12-16 19:15:08 +00:00
andy
f1c70da6d4 Fix interpolate() so that interpolate("/prop/name") freezes the
interpolation at the current value.  This was always a feature of the
C++ code, but the Nasal wrapper couldn't handle the empty argument
list.
2005-06-29 23:58:58 +00:00
andy
57eea1be61 Melchior needs an equivalent of Perl's defined() function to test for
double-initialization of joystick blocks.  So here it is.
2005-06-12 18:17:00 +00:00
andy
3677b96fad Bugfix to globals.fgcommand().
New Node.setValues() method which sets whole property trees from Nasal
data.

A view.nas module, which takes over handling of the X/x zoom keys.  It
clamps the FOV to a dynamically calculated maximum corresponding to
typical human visual accuity, and pops up a pretty dialog informing
you of the new FOV.
2003-12-08 02:09:19 +00:00
andy
5ed2c89605 Add abs() and interpolate() to globals. Move bo105 code to the -set.xml file 2003-12-05 02:38:35 +00:00