1
0
Fork 0
Commit graph

589 commits

Author SHA1 Message Date
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
Automatic Release Builder
c7f66ecf1c Fix some warnings from Xcode 12 2020-10-29 14:52:19 +00:00
James Turner
395a3e70e9 Logging: use new MANDATORY_INFO level.
Requires corresponding SG commit.
2020-09-08 10:59:29 +01:00
James Turner
1fd5502e9b Nasal removecommand: use a return value
Change removecommand() to indicate success or failure via a return
value: 1 for success, 0 for failure.
2020-09-04 10:56:41 +01:00
James Turner
37d820120d Unit-testing: tests for Nasal SGCommand API
Test adding/removing/invoking commands, and error handles when
duplicate adding and removing a command name.
2020-08-26 17:20:58 +01:00
James Turner
8a1109160b Fix Nasal ‘removecommand’ so it actually works. 2020-08-25 19:23:43 +01:00
Scott Giese
91f8b4dbef REVIEW: Memory Leak - ClipboardX11 ctor
55,397 (104 direct, 55,293 indirect) bytes in 1 blocks are definitely lost
2020-08-22 17:00:24 -05:00
James Turner
a297c89144 Flightplans: add clearAll, rename clear -> clearLegs
Improve naming of clear() methods, and expose the new ones to Nasal.
this will allow RouteManager dialog ‘clear’ button to clear all, soon.

See ticket:
https://sourceforge.net/p/flightgear/codetickets/2064/
2020-08-17 16:11:10 +01:00
legoboyvdlp R
d6b7eaf60f Fix that tp_type will return nil for transitions 2020-07-30 12:26:04 +01:00
legoboyvdlp R
668b499ff4 Correct restrictions above and below. Add test case. Fix contributed by Tobias Dammers 2020-07-30 12:25:02 +01:00