1
0
Fork 0
Commit graph

598 commits

Author SHA1 Message Date
James Turner
d3d4a8615a Build with revised SGPropertyNode alias() API 2023-06-13 11:37:45 +01:00
scttgs0
b2c3795f11 Maintenance: namespace
Clean up namespaces.
Don't use broad 'using namespace' context in header files.
Header Guards.
SPDX tags.
2023-05-20 17:33:07 -05:00
Erik Hofman
b71b27ea18 Fix for:
Saikrishna Arcot: In flightgear, in src/Scripting/sqlitelib.cxx (also added a couple months ago), this file is missing a #include "config.h". Because of that, SYSTEM_SQLITE will never be defined.
2023-03-07 09:21:47 +01:00
Erik Hofman
098300bb51 Use mmapping when reading Nasal scripts saving two memory copies out of for (copy from disk to the i/o buffer, copy from the i/o buffer tot the ifstream, copy from the ifstreamto a string and copy from a string to Nasal). 2023-02-25 10:03:03 +01:00
Erik Hofman
484f1da20e Fix the build for systems without a system wide sqlite lubrary 2023-01-23 15:35:24 +01:00
Erik Hofman
f492f9bf6e sqlite_open_v2 requires sqlite3_close_v2 (I think, not really clear). 2023-01-23 14:50:51 +01:00
Erik Hofman
446cf2eb05 Run the SQLite path through the path validation mechanism 2023-01-23 11:52:17 +01:00
Erik Hofman
e3fd08dd82 Add SQLite support to Nasal and copy the nasal-bin utility over from SimGear, make it C++11 and add it as an installable nasal interpreter for standalone testing and debugging of local nasal scripts. 2023-01-23 09:53:07 +01:00
James Turner
de40779109 Canvas: Expose raw image dimensions to Nasal 2023-01-10 14:18:19 +00:00
James Turner
4c42600898 Sprintf to snprintf fixes
Reduce warning from Clang about use of sprintf.
2023-01-08 19:36:44 +00:00
James Turner
3b36379c5c Nasal: improve module delete/reload
Allow modules to define an unload callback, and also drive
the 'loaded' property to false, to give modules the ability to clean
up when being unloaded. This makes reloading work without
errors for Canvas.

Additionaally, add some special code when creating the
Canvas module, to ensure the C++ defined pieces are loaded :
fortunately Canvas is the only module which needs this.
2023-01-06 10:41:01 +00:00
James Turner
3f742c1b1d Expose new Canvas methods to Nasal
Requires corresponding SimGear update
2023-01-05 14:06:46 +00:00
James Turner
fc842c17f0 Canvas: LayoutItem.setVisible can be chained
Wrap LayoutItem::setVisible so it returns self, and hence can be chained,
similar to methods implemented in Nasal.
2023-01-04 15:22:24 +00:00
James Turner
1b07851374 Canvas Layout: check arguments to add/insertItem
When the ItemRef argument is null, report a runtime error
instead of crashing.
2023-01-04 14:16:24 +00:00
James Turner
78e6a209f1 Add some missing cases to Nasal FlightPlan binding
Expose 'between' restrictions as a 2-tuple.
2022-12-02 12:22:15 +00:00
James Turner
0a85e23cde Extend FlightPlan to handle ‘between’ restrictons
As part of this, also improve units handling in speed/altitude
restrictions.
2022-11-28 15:34:00 +00:00
Stuart Buchanan
e6c2e258b5 Fix crash on exit
NasalModelDataProxy destructor relies on globals being valid.
2022-11-27 14:29:11 +00:00
Edward d'Auvergne
c1c7b043ac SGSubsystemMgr::get_subsystem(): Universal switch to the templated function.
The globals non-templated get_subsystem() helper function has been made private
to enforce the switch.
2022-11-17 15:57:39 +00:00
James Turner
c509744b0f Nasal: support for module reload via command
This won’t work for all modules, depending on what inter-dependencies
exist.
2022-11-08 22:38:04 +00:00
Florent Rougon
ee12883eb6 Replace fgValidatePath() with SGPath::validate()
Move the fgValidatePath() code and the two associated static variables
'read_allowed_paths' and 'write_allowed_paths' to SimGear.
fgValidatePath() is now known as SGPath::validate(). This requires
SimGear commit e002a481f481709263a.
2022-08-22 13:35:15 +02:00
Lars Toenning
5051d90487 Use std::function for callbacks 2022-05-25 10:38:20 +01:00
James Turner
fb36cea04c Skip NasalClipboard on test-suite builds
Ticket: https://sourceforge.net/p/flightgear/codetickets/2740/
2022-05-17 14:33:35 +01:00
PlayeRom
446299ddaf Fix using SI units like speed in km/h and altitude in meters for flight plan in Launcher. 2022-05-10 16:40:06 +01:00
James Turner
4e6f9e6239 Nasal startup: allow more control over loading
Allow excluding scripts entirely based on the startup load properties.
2022-03-09 16:52:19 +00:00
James Turner
52731a7c04 Nasal: expose Canvas SpaceItem directly
Allow a SpacerItem to be explicitly created.
2022-03-09 16:52:19 +00:00
James Turner
77501672df Nasal expose propertyValue as a helper
Allow other code to map property values to an naRef, without exposing
the generic property node on their API. This avoids creating a wrapper
props.Node frequently for simple value access.
2022-03-09 16:52:19 +00:00
James Turner
cbd5ef9e7b GUI: XML to Nasal bridge, to keep PUI dialogs working
(Disabled by a CMake option)

This builds equivalent C++ objects to what the PUI dialogs build, with
properties exposed to Nasal. Peer objects are created by Nasal callbacks,
which can implement the various dialog functions needed to keep
compatibility, especially the ‘update’ and ‘apply’ hooks.
2022-03-09 16:52:19 +00:00
James Turner
79f38a5742 Expose new GridLayout to Nasal
Requires up-to-date SimGear which includes the new header.
2022-03-09 16:52:19 +00:00
Tobias Dammers
fe8b7bea21 Marker pins 2022-01-27 08:47:48 +00:00
James Turner
d59db8ea54 FlightPlan: distuinguish routes from flight-plans
Add a bool flag isRoute to flight-plan, and use it to model
routes (which contain VIAs) from plans/legs, which do not.

Default isRoute to false, so most users only see expanded
Vias, and hence something that can be flown directly.
2022-01-15 22:23:38 +00:00
Florent Rougon
e3b619dd05 Fix missing include in src/Scripting/NasalFlightPlan.cxx 2022-01-06 12:11:02 +01:00
James Turner
c1e5cc3074 Improve creating VIA segments
Improve argument parsing for createViaTo, createViaFromTo to
handle Airway ghosts as well as strings. As part of this, allow
specification of the airway level explicitly when looking
up an airway.

SF-ID: https://sourceforge.net/p/flightgear/codetickets/2686/
2022-01-05 15:44:50 +00:00
James Turner
a7ae3bf6cd Fix up linkage of Nasal tests inside CppUnit
Ensure correct test backend is used inside fgfs_test_suite
2022-01-05 15:41:33 +00:00
Jonathan Redpath
0bf618d7f1 Make geodFromHash accept geo.Coord with Cartesian coords.
geodFromHash() will now respect the _pdirty and _cdirty flags. This
ensres that FGPositioned functions are protected from invalid or
outdated coordinates, and therefore from erroneous results.
2022-01-04 12:08:14 +00:00
Roman Ludwicki
82f967ab92 Cope with SGPropertyNode::getStringValue() now returning std::string by value.
This is by Lars Toenning <dev@ltoenning.de>, Roman Ludwicki <romek21@op.pl> and
SDeAstis <salvatore.deastis@gmail.com>, in 2021 Hackathon.

Also cope with removal of SGPropertyNode::getName() - use getNameString()
instead.
2021-12-24 14:49:06 +00:00
Julian Smith
11426c8177 src/Scripting/NasalSys.cxx: simplified FGNasalSys::logNasalStack(). 2021-08-26 22:24:12 +01:00
James Turner
b01beac664 Add error report for Nasal load failures 2021-07-29 08:49:32 +01:00
Julian Smith
31c7fc8565 src/Scripting/NasalSys.cxx: show source line if we get error while parsing Nasal.
Helps track down errors in Nalsa embedded inside XML - line numbers are from
start of Nasal, not start of XML file.
2021-06-25 10:32:17 +01:00
Julian Smith
97a25b79ea src/Scripting/NasalSys.cxx: avoid noisy diagnosic if running test-suite. 2021-06-25 10:32:17 +01:00
Julian Smith
ef07f26023 src/Scripting/nasal-props.cxx:f_getAttribute(): added VALUE_CHANGED_UP and VALUE_CHANGED_DOWN. 2021-06-02 19:06:58 +01:00
James Turner
34b8fbc58e Precomputed random numbers API
Use updated pre-compute API for random numbers

By Marc Eberhard
2021-05-25 12:57:07 +01:00
James Turner
c92c41a50f Switch test_suite build to use an OBJECT library
Remove use of BUILDING_TESTSUITE from headers. Where possible, move
test APIs to their own file in the test_suite dir (testApis.cxx). For
some others, add them to a special list of ‘sources which depend on
the build mode’. This will hopefully go away with some further
refactoring.
2021-03-08 16:59:15 +00:00
James Turner
15dfc492dc AIModelData: add error report context
Not complete yet, but add the ability to pass context in from the
AIBase to the loader thread. Also add error context to more places
in AI / scenario loading.
2021-02-24 14:47:01 +00:00
James Turner
caad29e7c8 Add error reporting to common failure points.
Not exhaustive by far, but adds many of the common failure points
witnessed on Sentry.
2021-02-20 20:06:27 +00:00
Scott Giese
0019b22046 Code Maintenance - nullptr checking 2021-02-18 23:52:46 -06:00
Julian Smith
fb027e0193 src/Scripting/nasal-props.cxx:f_setValueHelper(): improved diagnostic.
Added s_val_description() which returns string describing a naRef.
2021-01-30 12:48:06 +00:00
Erik Hofman
dd59119570 Store the region name of the material in the region parameter 2020-11-15 09:30:27 +01:00
Julian Smith
b78ef0c1ab src/Scripting/NasalSys.cxx: fix call to sglog() to pass function="".
Nasal function names are not persistent strings so are not handled correctly by
sg_log_delta code.
2020-11-01 00:03:03 +00:00
Automatic Release Builder
19aa0332f2 loadxml() command: add ‘quiet’ bool option
This is to avoid console/log spam from jetways.nas in particular,
which uses loadxml to probe for file existence, every 10 seconds. But
in general it seems useful to have this potentially be quiet, since
there is a result code.
2020-10-29 16:23:26 +00:00
Automatic Release Builder
4c48faf2c7 Remove log warning from geodinfo(), it's too noisy 2020-10-29 14:53:36 +00:00