1
0
Fork 0
Commit graph

156 commits

Author SHA1 Message Date
James Turner
ce92730ef6 Expose FlightPlan delegates to Nasal, finally.
This will permit Nasal (e.g., FMS) to update nicely when the FlightPlan
is modified from anywhere else.
2012-05-12 17:23:17 +01:00
James Turner
c5781546b9 Expose greatCircleMove to Nasal, and allow geo.Coord to be passed into methods. 2012-04-25 16:54:40 +01:00
James Turner
a132ced084 Nasal airport functions for various ancillary data pieces now work. 2012-04-23 23:04:59 +01:00
James Turner
ef796e88bc Fix build for non-Mac, hopefully. 2012-04-15 14:20:03 +01:00
James Turner
f5a79fc893 Start refactoring how FGPositioned classes are exposed to Nasal, more to come. 2012-04-15 13:54:50 +01:00
ThorstenB
5f1435b4fd Avoid "using..." in header files. 2012-04-05 21:02:09 +02:00
ThorstenB
578df0f484 #553: decouple OSG callbacks from Nasal subsystem 2012-02-06 22:19:33 +01:00
ThorstenB
d47342a5a4 Add --log-class option, improve logging classes.
Replace SG_GENERAL by more specific log classes in many places.
Allow "," to separate logging classes (using "|" is odd on the
command-line).
Also add new option to make logging more useful for developers.
You can use:
  --log-level=debug --log-class=environment
to only get environment debug messages, or
  --log-level=debug --log-class=sound,ai
to only get debug messages related to the sound or AI subsystem.
2011-12-11 14:06:17 +01:00
Torsten Dreyer
b82ea065c3 Add the frequency to the navinfo hash 2011-08-22 09:18:04 +02:00
Torsten Dreyer
3723de56ca Experimental navinfo() Nasal extension function
Add a navinfo() Nasal extension function to provide
information about navaids. Inspired by the airportinfo
function.

This is work in progress, do not rely on this in your Nasal
code - the interface might change over the next weeks.
2011-07-22 12:37:41 +02:00
ThorstenB
4fd1e219a4 #348 related: More places where missing files were not reported properly
Whenever resolving a (relative) path to an absolute path with
'resolve_maybe_aircraft_path', check if the result is empty and report original
(relative) path as missing. Otherwise no or a meaningless message is
issued ("File '' not found.").
2011-07-03 13:06:41 +02:00
ThorstenB
88f7c05274 Introduce "PRESERVE" flag to protect properties on sim reset.
Some specific properties need protection and shouldn't be restored to their
original values on sim-reset.
2011-06-12 20:31:56 +02:00
ThorstenB
370645e593 Olaf Flebbe: #332, Improve Nasal's "systime" method
Use gettimeofday for determine time, rather than time() and gettimeofday()
2011-06-02 23:53:42 +02:00
ThorstenB
3c8a80d968 Deterministic loading sequence for Nasal scripts
Avoid loading Nasal scripts in (random) file system order
2011-05-29 18:44:15 +02:00
ThorstenB
93180eb004 On-demand loading of Nasal modules.
Load a module whenever its /nasal/foo/enabled flag is set,
even if it was disabled at start-up. Also expose a property if it was
successfully loaded.
2011-04-03 15:30:25 +02:00
ThorstenB
298f832d43 Support optional Nasal modules in fgdata/Nasal/MyModuleFoo
- Allow structuring generic Nasal sources into modules (i.e. support
  separate source folders for multiplayer/local weather/... sources)
- Option to enable/disable loading of generic Nasal modules (i.e we only
  need to load stuff that is really needed/enabled).
- Provide basic loading sequence: subfolders are strictly loaded _after_
  the base directory. So submodules can rely on .nas-scripts like math.nas,
  io.nas, debug.nas, ... to be already loaded - dropping the need for
  awkward listeners/timers to delay module initialization (loading order
  within Nasal/*.nas is still random)
2011-04-02 15:15:59 +02:00
James Turner
664817b0a7 Make the Nasal NaN check less aggressive - still SG_ALERT, but return nil instead of terminating the Nasal script completely. 2011-01-14 20:04:20 +00:00
James Turner
ce2a112639 When attempting to pass a NaN between Nasal and property nodes, catch this. 2010-12-28 11:58:03 +00:00
James Turner
db4b84bc5c Convert nasal directory() helper to use simgear::Dir 2010-10-24 07:10:51 +01:00
James Turner
dd2eec7bd8 Airways/procedures code - add new data structures to store waypoints and
procedures, and routing algorithms, and modify the GPS, route manager and
WaypointList to use the new objects.
2010-10-20 09:02:02 +01:00
Torsten Dreyer
a5017f218f Fix mean nasal bug when calling setprop("foo")
Reported on the forum from Thorsten Renk and analyzed by
Hooray, fixes this issue:
var x="/test/X";
var y="/test/Y";

setprop(x,100); # sets x=100
setprop(y); # sets x=0

setprop(x,100);
setprop(200); # sets x=200

by checking for at least 2 parameters for setprop
2010-09-13 22:15:50 +02:00
James Turner
2e69930c7d Expose path resolver to Nasal. 2010-08-15 11:02:27 +01:00
James Turner
ab495d1370 Add --fg-aircraft option, and aircraft dir path list. Partial support in places that load files, for respecting the setting.
Add helper to look for an aircraft branch path in multiple candidate locations.
Update the main subsystems to use the helper, and hence load from any aircraft dir.
2010-07-28 22:03:10 +01:00
Tim Moore
7ff80d11a0 changes for SGPropertyNode::getPath return type
It's now a std::string.
2010-03-09 11:24:45 +01:00
fredb
00e9ad3055 MINGW patch from Benot Laniel 2010-01-25 17:12:04 +01:00
jmt
52905875f9 Fix airportinfo() ILS frequency listing to use underscores. 2009-12-22 07:44:12 +01:00
jmt
88dc75695b Probably best if the string and its length agree. :) 2009-12-20 08:44:50 +01:00
jmt
3180d5f4f2 Add runway ILS frequency to Nasal airportinfo() query, as discussed on the list. 2009-12-20 08:44:47 +01:00
jmt
9cdcd76c6b Make Nasal airportinfo() tolerant of invalid airport idents. 2009-11-07 08:57:57 +01:00
Tim Moore
7d6c567fde Refer to property types using props:: namespace
BOOL, FLOAT etc. conflict with typedefs in windows.h.
2009-07-17 14:54:12 +02:00
timoore
4cc3084256 SGPropertyNode::Type moves to simgear::props namespace 2009-07-16 12:10:47 +02:00
frohlich
ee9dc0c93a No need to zero the _props variable.
This reference is released by the SGSharedPtr destructor anyway.

Modified Files:
	src/Scripting/NasalSys.cxx
2009-06-11 16:05:20 +02:00
mfranz
3930967645 FGNasalModelData: use model XML path as module source 2009-04-01 09:23:54 +02:00
mfranz
de35bbe4ed assign a unique module name to ai/mp embedded nasal (again): __model%u 2009-04-01 09:23:54 +02:00
mfranz
b07eec93f1 don't keep 'nasal-dir-initialized' node after removing 2009-04-01 09:23:54 +02:00
fredb
9ff286ea01 Support old compilers 2009-04-01 09:23:54 +02:00
mfranz
27389e0742 geodinfo: make vector origin altitude configurable 2009-04-01 09:23:54 +02:00
frohlich
7e73a87882 Improove FGTileMgr::scenery_available for small ranges.
Use SGGeod in FGTileMgr, FGScenery apis.

Modified Files:
	src/AIModel/AIBallistic.cxx src/Main/main.cxx
	src/Scenery/scenery.cxx src/Scenery/scenery.hxx
	src/Scenery/tilemgr.cxx src/Scenery/tilemgr.hxx
	src/Scripting/NasalSys.cxx
2009-03-18 08:00:07 +01:00
mfranz
92510697f3 restore consistent coding-style; remove obsolete code; fix typo 2009-03-18 08:00:07 +01:00
mfranz
b57f623520 don't call change-only listeners at first trigger event 2009-03-11 23:14:34 +01:00
mfranz
f3ba7a3bd4 - pass return values in set{,Bool,Int,Double}Value() and setprop()
- make some char* "const" to silence warnings

This removes the warning that (rarely) occurred if one wrote to a
write protected property with setprop(). While this was a useful
hint, it needlessly floods the terminal if one protected a property
intentionally. (Consider to add an SG_DEBUG warning instead.) It's
now the caller's job to check for the result if it actually cares.
2009-02-10 00:22:16 +01:00
jmt
c9e8112a81 Add various helper filters, to make use of type-ranges, and reduce the need
to down-cast in filter implementations.
2009-01-10 00:07:01 +01:00
jmt
660d59a098 Another clean-up iteration: FGAirportList::search is gone, replaced by two
static FGAirport helpers. As a result, another global index goes away. Use
the helpers to avoid ugly FGPositioned down-casts in various places.

Also converts the environment/METAR code to deal with FGAirport pointers,
instead of string identifiers, and contains work-in-progress code to implement
the AirportList dialog using FGPositioned. This isn't enabled yet for various
reasons, but is the final piece to allow FGAirportList to be removed.
2008-12-26 15:26:42 +00:00
jmt
82bfb6a08d Clean out FGAirportList - not quite obsolete yet, but the spatial queries are
gone. This is good news, since the old query was implemented as a linear
search, sorted by Manhattan distance, and with a warning not to use the logic
at runtime. Various systems (such as the Mk-VIII) do query such data often,
eg every second.

Also gets Point3D out of Airports/simple.hxx, as a precursor to removing it
completely.
2008-12-26 11:15:00 +00:00
jmt
02d1b14c1a Finish conversion of FGRunway to a real class - all public members are gone. 2008-12-24 15:45:35 +00:00
mfranz
1a292c9ed2 - createModule: add optional arg[] vector arguments
- make propNodeGhost() public, so that it can be used by non-friends
- SGNasalModelData: create module with arg[] containing two prop ghosts
2008-10-18 19:52:18 +00:00
mfranz
e1d72f8253 - fix regression: classes derived from SGModelData get the props root
via modelLoaded, not a possible Nasal node.
- rename SGNasalModelData::_props to ::_root to avoid confusion
2008-10-18 18:47:28 +00:00
mfranz
e8738eca19 listeners: do no longer set cmdarg() to avoid interference with embedded Nasal 2008-10-12 21:08:44 +00:00
mfranz
f2398fd983 - airportinfo(): remove superfluous indices of threshold/stopway
- restore consistent coding style: no 2-space spaghetti code
  indentation, remove trailing spaces, no spaces after ( and before )
2008-09-23 20:06:40 +00:00
ehofman
aa78341698 James Turner:
Convert FGRunway to be heap-based, and inherit FGPositioned. This is a large, ugly change, since FGRunway was essentially a plain struct, with no accessors or abstraction. This change adds various helpers and accessors to FGRunway, but doesn't change many places to use them - that will be a follow up series of patches. It's still a large patch, but outside of FGAirport and FGRunway, mostly mechanical search-and-replace.

An interesting part of this change is that reciprocal runways now exist as independent objects, rather than being created on the fly by the search methods. This simplifies some pieces of code that search for and iterate runways. For users who only want one 'end' of a runway, the new 'isReciprocal' predicate allows them to ignore the 'other' end. Current the only user of this is the 'ground-radar' ATC feature. If we had data on which runways are truly 'single-ended', it would now be trivial to use this in the airport loader to *not* create the reciprocal.
2008-09-11 08:38:09 +00:00