1
0
Fork 0
Commit graph

1693 commits

Author SHA1 Message Date
Florent Rougon
02b01af19e Add-ons: small fixes to Nasal/addons.nas and Docs/README.add-ons
+ After discussion with Henning:
    - orig_setlistener() and orig_maketimer() were not intended to be
      public -> prefix the function names with an underscore;
    - clear the add-on's lists of tracked listeners and timers in
      remove() (load() does that too, but it's a bit late).

+ Little rewording in Docs/README.add-ons.
2018-12-10 15:29:22 +01:00
Henning Stahlke
f3548c561e canvas/api.nas: add square, ellipse and circle to path; update svg.nas accordingly 2018-12-08 19:55:08 +01:00
Henning Stahlke
f6e3628b50 add Window.getSize() to canvas/gui.nas 2018-12-08 16:55:38 +01:00
Henning Stahlke
5e2756b410 Add reload support to addons.nas; add tracking of listeners and timers 2018-12-07 19:24:22 +01:00
James Turner
e6fd70bd63 Merge /u/jsb1685/fgdata/ branch jsb-next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/118/
2018-12-04 15:27:07 +00:00
Henning Stahlke
cce5b4ca1f canvas/gui.nas prevent runtime error 2018-12-04 14:47:20 +01:00
James Turner
6f26451c08 Merge /u/jsb1685/fgdata/ branch jsb-next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/117/
2018-12-02 11:12:04 +00:00
Henning Stahlke
37adcd8051 canvas/svg.nas add support for circle und ellipse 2018-11-30 19:35:22 +01:00
James Turner
a5c8bbcc84 Rename nasal dir to avoid clashes 2018-11-28 22:49:45 +00:00
James Turner
d3a080ef29 Move GoFlight helpers to a subdir
Avoid loading the helpers by default
2018-11-19 17:17:35 +01:00
Richard Harrison
11ed499d61 /environment/contrail was always true for the first 30 seconds. Fixes #2077
Fix is to simply call the update method during the init listener.
2018-11-18 17:17:38 +01:00
James Turner
363dc4cea5 GoFlight MCP and EFIS input configs 2018-11-14 17:45:37 +00:00
Richard Harrison
8841f77cfd Emesary; handle fatal errors during a recipient receive.
- the recipient will be removed from the transmitter and appropriate error messages printed.

Contributed by Nikolai V. Chr.
2018-11-07 01:58:05 +01:00
Daniel Meissner
8e45e86f9c Fix glide slope tunnel altitude offset by moving it to correct runway touchdown zone. 2018-11-06 16:14:59 +01:00
Richard Harrison
c98c299625 Multiplayer list:
Change model that has a fallback model to be green rather than orange.
2018-11-05 19:52:41 +01:00
Richard Harrison
575a01aa9a GUI: change MP messages (other) craft to be a more readable coluor.
This is a compromise as it needs to be visible on dark and light backgrounds, however this colour seems to be about the best I can find.
2018-11-04 15:57:29 +01:00
Richard Harrison
6a68a623c9 Emesary: refactor incoming bridge connection logic
This is mainly to allow unit testing.
2018-10-31 10:05:34 +01:00
Thorsten Renk
73073c4512 Move AW auto-start detection outside AW namespace to avoid duplicate AW start issue when de-selected in launcher and selected in-sim 2018-10-06 09:41:22 +03:00
Scott Giese
43ac415a8a Bug Fix: #1732 Nasal runtime error with hovered tooltip 2018-10-03 01:49:50 -05:00
Richard Harrison
66c15d5b89 Canvas NavDisplay (map) fix nil waypoint when only one waypoint in flightplan.
Without this it will cause a nil dereference resulting in

Nasal runtime error: non-objects have no members
  at D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/map/WPT.lcontroller, line 57
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/map/WPT.lcontroller, line 79
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/MapStructure.nas, line 1088
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/geo.nas, line 384
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/MapStructure.nas, line 1051
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/MapStructure.nas, line 1059
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/canvas/map/WPT.lcontroller, line 26
  called from: D:/Program Files/FlightGear 2018.2.2/data/Nasal/globals.nas, line 119
2018-09-29 13:41:01 +02:00
Thorsten Renk
4208e699cc AW: Teach AW about Default landclass 2018-09-17 11:39:35 +03:00
Richard Harrison
02643d36cd Controls: Remove debug prints 2018-09-16 20:41:43 +02:00
Richard Harrison
939887cca1 Joystick bindings: fix confusions over trigger and pickle.
Trigger sets /controls/armament/trigger - typically for a gun, but can be used (model side) to launch anything

Pick sets /controls/armament/pickle - typically to release something (e.g. missiles), but could be bound model side to act as a trigger.
2018-09-16 17:37:25 +02:00
Thorsten Renk
2e38b20030 New active volcano: Beerenberg on Jan Mayen 2018-09-15 10:32:58 +03:00
Richard Harrison
40ff13b65b Reposition slowdown settimer fixes.
Definitely problems in aar.nas, seaport.nas; as these were hanging off a fdm-initialized.

The others have timers that are started from a listener and as such are more suited to use maketimer rather than settimer

The modules that use the loopid technique are probably fine, but these are also more suited (and easier to understand) using a maketimer
2018-09-14 22:50:47 +02:00
Gijs de Rooy
41aaff7a89 Add lights shader to overall quality slider 2018-09-13 11:40:00 +02:00
Thorsten Renk
ab9805ca9b AW: Fix bad vertical visibility profile determination for high clouds in METAR 2018-09-05 09:27:44 +03:00
Richard Harrison
2e6d0725d1 Change the performance monitor to use the font as specified in the style (rather than hardcoding it) 2018-09-02 11:53:32 +02:00
Thorsten Renk
a91bb4caa0 Update canvas dialog widget lib 2018-09-01 09:49:16 +03:00
Thorsten Renk
67bb39d046 AW: Make weather system randomize the high cloud scattering properties on init to avoid repetition 2018-09-01 09:46:33 +03:00
Thorsten Renk
14cd479313 AW: Some tweaks for more consistent lighting of Cumulus cloud bottoms 2018-08-30 09:28:33 +03:00
Richard Harrison
70dd214ed8 Payload Dialog improvements;
- modify to work with JSBSim aircraft when reloading the fuel based on the payload (e.g. external tanks selected)
- add property sim/gui/dialogs/payload-reload that when set will cause the payload dialog to reload (to support a second dialog that modifies the payload)
- fix so that the window retains its position (close handler) and window Z order when reloading.
2018-08-07 19:26:25 +02:00
Richard Harrison
ee9f10cc03 Emesary: add new method and tidy up diagnostics. 2018-07-28 00:39:22 +02:00
Richard Harrison
2322d0dbe8 Joystick binding changes;
- added extra bindings
- reworked the view axis (usually bound to the hat); to move at a better rate.
- trim to elevator position. When selected this will remember the current position and when the joystick is centered it will apply this as the trim. Very useful for carrier approaches; and also it helps to do something that is much easier with loaded controls when you can feel the pressure being reduced by the operations of the trim switch
2018-07-28 00:39:22 +02:00
Richard Harrison
f8177dcc11 Changes to permit the (on demand) refuelling tanker to take part in replays. 2018-07-28 00:39:21 +02:00
Richard Harrison
04adc76265 Better support for numeric properties in PropertyUpdateManager 2018-07-28 00:39:21 +02:00
James Turner
bc00f8d436 Fix Nasal string.match with trailing *
As discussed in:
https://sourceforge.net/p/flightgear/codetickets/2016/

Fix a bug where string.match(‘747’, ‘747*’) returned false.
2018-06-16 20:53:07 +01:00
Richard Harrison
6431d36166 Generic MFD: Nav display optimisation
Change the NavDisplay so that the updates are paused when not being displayed.
2018-04-30 11:42:19 +02:00
Stuart Buchanan
8fdffa16e6 FG1000 - Fix 3D model GDUs, find nearest ID on DTO 2018-04-29 21:15:18 +01:00
Stuart Buchanan
aa14289a79 FG1000: NDB and VOR Info pages, improved VOR icons 2018-04-16 13:38:41 +01:00
Stuart Buchanan
63ee35becd FG1000 - Improvements to Checklists page, softkeys 2018-04-12 22:26:58 +01:00
Stuart Buchanan
9f7e17a434 Support for <group> of checklists.
Checklists now support grouping by placing a group of checklists
under a <group> node.

e.g. /sim/checklists/group/checklist

The group can have a <name>, which is used by the checklist dialog
and can be used by other interfaces, such as the FG1000.
2018-04-12 22:24:57 +01:00
Stuart Buchanan
7f09b1f3c6 FG1000: Active Flight Plan MFD Page
- View and edit the active flightplan
2018-04-06 19:52:18 +01:00
Stuart Buchanan
60352375d0 FG1000 - PFD Flightplan and improved GroupElement 2018-03-25 17:55:03 +01:00
Tobias Dammers
054da4e691 Fix: chat messages from MP list captured kbd forever 2018-03-19 09:47:16 +00:00
Thomas Geymayer
8eb3707042 canvas.gui: Fix warning when deleting widget after canvas 2018-02-27 08:42:34 +01:00
Stuart Buchanan
98e11ec207 Initial FG1000 PFD 2018-02-26 21:24:21 +00:00
Stuart Buchanan
91dd762736 Support for Runway numbers on RWY MapStructure layer
- Change getInstance to getOrCreateInstance for FG1000.
- Implement runway numbering on AirportInformation page.
2018-02-18 21:41:17 +00:00
Richard Harrison
d7a9b36c08 Joystick dialog changes
- Engines control now use the same axis methods as the flight controls; which allows for these to have an inverted checkbox.

- Change the axis combo boxes to instead show a popup dialog (much like the button config). This is better because the items can be grouped sensibly.

- Changed the way that the "all engines" controls work - the dialog binds these to a "engines/XXXX-all" for which there is a listener in controls.nas which propogates over all engines.

- Added extra bindings to both the buttons and the axis dialogs.

- moved the "None" button to the bottom and renamed it to the more comprehensible "Remove assignment"
2018-02-16 19:35:50 +01:00
Thorsten Renk
b09fcb593d Start adding widget collection for aircraft-side canvas dialogs 2018-02-11 10:04:08 +02:00
Florent Rougon
c17d9377f8 Add-ons: more specific file names for the interface between FG core and add-ons
The add-on framework now uses the following files in each add-on
directory:
  - addon-config.xml (previously: config.xml)
  - addon-main.nas   (previously: main.nas)

This is consistent with the addon-metadata.xml file that is already part
of the interface between FG core and add-ons. The goal is to make it
clearer, when browsing an add-on directory, which files belong to the
"FG core <-> add-on" interface and which files belong to the add-on
proper. This will be beneficial also when more files are added to the
"FG core <-> add-on" interface, such as possibly addon-events.xml in the
future.

This change is incompatible, thus it is the right time to do *before*
2018.2.1 is out, especially considering that this upcoming release
already has incompatible changes in the add-on API, namely the
requirement of the addon-metadata.xml file and the type of the argument
passed to each add-on's main() function. We'll try harder not to break
compatibility in the add-on API once 2018.2.1 is out. For now, it is
still a good time to try to get the API as clean as possible.
2018-02-10 19:50:00 +01:00
Stuart Buchanan
c8072e5e2c Fix badly flashing UI elements due to timers 2018-02-04 22:40:48 +00:00
Stuart Buchanan
e7a0fba8ac FG1000-specific VOR symbols. 2018-02-03 20:26:26 +00:00
Stuart Buchanan
339064ce31 VOR symbology and Nearest VOR page. 2018-02-03 20:25:48 +00:00
Stuart Buchanan
6f6cc8f925 NDB Symbol for MapStructure Layers 2018-02-02 16:06:15 +00:00
Stuart Buchanan
67b95bb1fe Fix highlighting of arrow elements 2018-02-01 22:28:39 +00:00
Stuart Buchanan
655c8719dc Additional style options for FIX MapStructure layer 2018-01-31 22:46:32 +00:00
Stuart Buchanan
d244358320 Fix COM toggle and increase map coverage to MFD. 2018-01-30 21:00:01 +00:00
Thorsten Renk
3d1921dd1f Add volcano simulation for Etna 2018-01-30 10:28:08 +02:00
Stuart Buchanan
183f5e2112 Add simple GPS leg Map Structure layer. 2018-01-29 20:44:36 +00:00
Thomas Geymayer
f8b0c5548c parsesvg: use new stroke-opacity and fill-opacity properties 2018-01-29 09:12:09 +01:00
Thorsten Renk
5334498037 Automatically run AW if /nasal/local_weather/enabled is true on startup 2018-01-29 08:57:13 +02:00
Richard Harrison
d287f23ad8 Emesary notifications: change explanation to match revised property for filtering outgoing properties
Change /sim/multiplay/transmit-only-generics to /sim/multiplay/transmit-filter-property-base, which can be 1 to transmit only generics, or a number greater than 1 to indicate the start index to transmit (e.g. 12000 for new emesary mp bridge properties)
2018-01-28 15:51:44 +01:00
Stuart Buchanan
ee69231220 Direct To part 2 - Waypoint Submenu 2018-01-27 21:55:22 +00:00
Stuart Buchanan
da252c8a18 Initial Direct To page - non-functional. 2018-01-26 19:06:06 +00:00
Stuart Buchanan
0c4544c1e1 Add Config Store and MFD Header display.
ConfigStore for storing and retrieving config settings (needs XML import/export)
Header display with 4 different header fields (all configurable)
Publisher for ADC and FMS.
2018-01-18 19:37:50 +00:00
Stuart Buchanan
f6f5efe9f4 Use Emesary interface rather than airportinfo() 2018-01-13 21:07:32 +00:00
Stuart Buchanan
cbb281759c NAV/COM Radio support
Add NAV/COM 8.33MHz radio support and integration
with the property trees for radios.

Also general cleanup.
2018-01-13 18:53:06 +00:00
Stuart Buchanan
ab8774a3e0 Extend MFDPageController to handle Emesary register 2018-01-08 21:39:39 +00:00
Florent Rougon
a57aed195e Add-ons: pass the addons.Addon ghost to main() instead of the base path
The addons.Addon instance (ghost) is much more interesting than its base
path. The base path is immediately accessible from the addons.Addon
instance using its 'basePath' attribute. The addons.Addon instance
allows main() to easily access essentially all of the add-on metadata,
including the add-on identifier, which makes it possible to write
main.nas without hardcoding the add-on id at all.

This is an incompatible change of course, so better do it now than
later.
2018-01-08 09:55:55 +01:00
Stuart Buchanan
73424c1791 Update NAV/COMM frequencies from properties
- Add new Emesary notification type for NAV/COM data
- Create Update/Publish interfaces using Emesary from properties
- Use interfaces to drive updates to EIS and NAV/COM frequencies
- Change the PageGroupController to a "proper" MFD page
2018-01-05 16:37:39 +00:00
Stuart Buchanan
ad77dc2f9c Modify FG1000 EIS to use Emesary,
- New Emesary notificaion type for engine data
- New Canvas PFD UI Elements - Pointer, Rotating
- Upate EIS to use above.
2018-01-03 20:24:41 +00:00
Stuart Buchanan
9eb91171b4 FG1000 Nearest Airports page
- DTO MapStructure layer to provide a DTO line to a lat/lon
- Support for scrolling lists in the PFD/GroupElement
- Support MAP (NavigationMap) and ENGINE (EIS) soft-keys from other pages.
2017-12-31 16:10:52 +00:00
Richard Harrison
cc152b67ad Emesary: modify bridge to use new MP properties; or to allow the property base for all bridges within a model to use.
By separating out the bridges this could be used in the future to transmit Emesary properties at a different rate. It is one of the future possible methods to improve MP communications and dual/multi controls
2017-12-28 01:25:01 +01:00
Richard Harrison
4e0483c9e8 NASAL: fix new truncateAt method to handle nil ptr errors during execution 2017-12-28 01:13:06 +01:00
Richard Harrison
79dc657170 Emesary: ensure that MPStringMaxLen initialized to default value in OutgoingBridge constructor 2017-12-28 00:15:15 +01:00
Stuart Buchanan
475fd50585 PFD UI Elements and NearestAirports page 2017-12-27 19:51:54 +00:00
Florent Rougon
c535306b3d Add-ons: simplify loading using the new API, set the 'loaded' flag
Also:
  - use the namespace __addon[ADDON_ID]__ when loading an add-on's
    main.nas file (previously, the namespace used was __addon[i]__ where
    i is 0 for the first registered add-on, 1 for the second one, etc.);
  - use logprint() instead of printlog(), because the former writes a
    more helpful source file and line number for the log call in
    fgfs.log (i.e., not always src/Scripting/NasalSys.cxx...);
  - remove the listener once it has been fired;
  - add documentation in Docs/README.add-ons.
2017-12-08 00:37:21 +01:00
Stuart Buchanan
3d31775ff3 Initial commit of FG1000 MFD 2017-11-24 23:04:46 +00:00
Richard Harrison
28fbda2e2a Emesary changes to better support GeoEventNotifications.
A GeoEventNotification can be used to notify all other MP craft (that are connected to the bridge) of AI objects or ballistic items that are present on the local player's machine. For example tankers, dropped payloads, missiles, carriers.

Changes

- Fix transfer string encoding for bridge. If the string contained untransmittable characters the length was wrong. Change to use the valid characters from BinaryTransfer.

- Fix bug transferring negative numbers.

- Add method to notification to provide the type key to be used to decide if a non distinct message should be added to the queue; rather than relying on the simple type.ident. This allows multiple notifications of the same type to be non distinct but also be transmitted

- Allow the maximum size of the mp string to be defined per bridge; rather than a system wide value. This allows the bridges to have their size tuned to match expected requirements; for example a bridge that is transmitting GeoEventNotification may need a lot more space than a bridge that is transmitting property sync notifications.

- Improve error message when out of space (due to the maximum string length)

- add trace option to bridges to aid debugging of transmitted values. This will produce verbose output.

- Add UniqueIndex to GeoEventNotification; to allow for multiple non-distinct notifications to be transmitted concurrently. This overrides the GetBridgeMessageNotificationTypeKey to include the UniqueIndex
2017-11-18 12:46:37 +01:00
Stuart Buchanan
1e69f3eb75 Fix handling of multiple MFDs
Found by chance during code read.  Untested, but surely correct.
2017-11-17 15:53:26 +00:00
Richard Harrison
8dafff9933 MFD framework - add support for Emesary
Allow a MFD to be controlled via Emesary notifications (notifications.PFDEventNotification);

Notification needs to be constructed with the following parameters;

1 - MFD designation (text; name of MFD)
2 - MFD identity (int, id of the MFD within the model). Default 1; same as used when creating the MFD
3 - Event type (PFDEventNotification.SoftKeyPushed, notifications.PFDEventNotification.ChangeMenuText
4 - Event parameter.
  a) for PFDEventNotification.SoftKeyPushed an int identifying the button
  b) for notifications.PFDEventNotification.ChangeMenuText a hash array containing the menu ID and the new text (e.g. [{ Id: 1, Text: "NNN"}])

Method obj.PFD.RegisterWithEmesary(emesary.GlobalTransmitter) need to be called to connect the MFD to a transmitter
2017-11-16 02:57:13 +01:00
Richard Harrison
08fd851489 Theme rework.
Change fonts; make use of the new feature to allow fonts to be specified using property from dialog xml.

Ensure that all fonts are defined within the style.
2017-11-12 16:57:39 +01:00
Stuart Buchanan
4bd57492f4 Add Lat/Lon grid MapStructure layer. 2017-10-15 21:54:05 +01:00
Stuart Buchanan
d84c527ca7 Canvas MapLayers for Airport
Add RWY, TAXI, TWR, PARKING map layers
Add new static position controller
Update Select Airport dialog to use new MapLayers.
2017-10-13 17:38:27 +01:00
Stuart Buchanan
e38ec03c60 Add STAMEN layer. Patch by Slawek MIKULA. 2017-10-02 20:34:31 +01:00
Stuart Buchanan
a622f6f37e Add zoom limits for SlippyMap layers 2017-10-02 20:25:11 +01:00
Stuart Buchanan
5ec53b4c36 Fix FIX label location. Patch from Slawek MIKULA 2017-10-02 20:22:06 +01:00
Stuart Buchanan
b5c67d82bc Fix minor compilation bug in geo.nas 2017-10-02 20:21:37 +01:00
Nikolai V. Chr
4621d0a5d4 Fix for setting individual attributes in geo.Coord 2017-10-02 12:04:34 +02:00
Stuart Buchanan
2fbc1dc491 Add VFR charts to Canvas Maps
Also add limits to zoom function.
2017-09-28 18:11:41 +01:00
Stuart Buchanan
85b7665c19 Add Canvas Map Support for Slippy Map
- Include OSM and OpenAIP in the canvas-map dialog.
2017-09-28 15:38:03 +01:00
Thorsten Renk
91db77595d Some (pretty hot) volcano code - general management routines, Kilauea and Stromboli worked out as examples, WIP 2017-09-24 18:08:36 +03:00
Richard Harrison
5ca84cbfdf Revised classic theme to make it use better fonts and colours. 2017-09-18 00:48:20 +02:00
Richard Harrison
434d4fde90 Multiplayer chat : possibly fix the popup dialog getting stuck. 2017-09-18 00:45:15 +02:00
Richard Harrison
bc71bf297e Add Property / object update manager to props
Manage updates when a value has changed more than a predetermined amount. This makes updating displays (e.g. canvas), or performing actions based on a property (or value in a hash) changing by more than the preset amount.
2017-09-17 22:22:00 +02:00
Richard Harrison
91dc5d2a83 AI Tanker: notify any listeners that a new tanker has been added.
need to set /ai/models/model-added to the path of the tanker node when created.
2017-09-17 22:22:00 +02:00
Thorsten Renk
7df5690f08 ALS terrain overlay shaders, not yet used, terrain definitions will follow post-release 2017-09-16 09:44:18 +03:00
Thorsten Renk
40d5f90f7d Fix AW METAR mode check for T-storms 2017-08-22 11:37:28 +03:00
Torsten Dreyer
e35ff1aa9a Don't complain about non-existant /addon property 2017-08-12 22:32:40 +02:00
Stuart Buchanan
2b072dd992 Use new C++ setValues/setChildren
Improve Nasal poperty access performance by
re-implementing props.nas functions in C++.
2017-08-06 21:16:26 +01:00
Richard Harrison
405eb73bb6 Emesary multiplayer bridge rework.
The primary goal of this work is to provide a alternative to multiplayer property transmission, one that is more efficient and event driven. By using notifications in the model bindings these control messages can be bridged and do not require extra code to implement dual controls.

Using this alternative permits the modeller much greater control of which properties are transmitted, how these are encoded, and how often the updates are needed.

Please remember that this is a use case for Emesary, it is not all that Emesary can provide and there are still many other uses for the event driven object oriented system that Emesary provides.

Briefly the changes are:

- New PropertySyncNotificationBase to permit property transfer between ownship and MP versions using notifications instead of the pre-defined MP messages. This gives a much more flexible way to seutp multiplayer property transfer - and can probably support more properties because of the more efficient packing. There is a corresponding parameter (/sim/multiplay/transmit-only-generics) that will only transmit the bare minimum of parameters; making more space for notifications.

- new AircraftControlNotification to allow for animation bindings in the model, these notifications can be easily bridged over MP thus adding a simple method to implement dual controls.

- more efficient packing of encoded notifications over MP saving roughly 30% (by using a much larger encoding space and also changing to use fixed length encoding). This breaks compatibility with previous MP bridges, however at this time I don't think anything is using the current code.

There can be different types of PropertySyncNotification (with unique ID's) sent at a different schedule (so you could have a 10 second update of very slow moving items). However bear in mind that the messages have a lifetime of 10 seconds to ensure receipt - so to optimise space would require > 15 seconds to make much difference, and that is very slow moving.
2017-07-23 16:05:43 +02:00
Torsten Dreyer
5c1f4a69f1 Introduce handler for --addon commandline switch
Requires flightgear commit f6698a0b1f9e8c0791314aa09cbe1625927ef3ff
to have property /addons/addon[n] populated
2017-07-18 12:14:50 +02:00
Torsten Dreyer
09bcc00b80 reset executable bit for nasal script 2017-07-18 10:57:13 +02:00
James Turner
3201c14768 Fix for sticking message tooltip.
Distinguish the popup types, and don’t allow mouse movement to change
the hide timer when the active tip is a message.
2017-05-30 00:20:14 +01:00
James Turner
cc14717930 Fix to Canvas-GUI window transparency
Separate the window titlebar from the main background area, so the
transparency of each can be set independently.

From Henning Stalkhe.
2017-05-29 08:24:22 +01:00
Thorsten Renk
2f99804dba More variation for the ALS aurora simulation, WIP 2017-04-27 14:18:55 +03:00
Stuart Buchanan
5c62d4663c Add Joystick Config dialog for individual engines 2017-04-20 21:06:42 +01:00
Erik Hofman
5049ebd0bc Prepare for windsock turbulence animation 2017-04-11 13:39:25 +02:00
Thorsten Renk
48768ee9d2 Earthview 2.1 - parallax mapping for cloud layer, lightning at night, Rayleigh scattering in atmosphere and minor bugfixes 2017-04-05 16:50:31 +03:00
Stuart Buchanan
6f2ccdd395 Add support for sprintf() formatting to tutorial
<message> tags can now contain sprintf() format
strings (%d, %.2f etc), with

<message-param>
  <property>/some/prop</property>
</message-param>

used as the substitute value.  Could be extended
in the future with perhaps Nasal evaluation?
2017-03-28 21:38:34 +01:00
Thorsten Renk
1fad428a27 Special purpose faster canvas text setting methods 2017-03-19 16:23:35 +02:00
Torsten Dreyer
ff77af8abe assign a name to the tooltip canvas 2017-02-20 19:22:53 +01:00
Stuart Buchanan
2473d667fd Use Festival TTS for tutorials 2017-02-11 21:49:00 +00:00
James Turner
a5cc57466f Merge /u/jsb1685/fgdata/ branch gui.nas into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/84/
2017-01-23 18:01:41 +00:00
James Turner
51e2ddc8ba Revert "Use new canvas Path rect/SVG support."
Don't use the built-in SVG/rect parser, since this bypasses creating
coordinate / command properties which some Canvas users rely upon.

This reverts commit 57a2d21ddf.
2017-01-23 17:51:39 +00:00
Henning Stahlke
962368eb2f Add yasim c.g. display to weight-and-fuel dialog. 2017-01-23 17:57:18 +01:00
Henning Stahlke
b568229f4a Handle missing property to avoid runtime error 2017-01-23 17:54:15 +01:00
James Turner
54abfe4874 Merge /u/prriley/fgdata/ branch next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/81/
2017-01-04 14:20:43 +00:00
Patrick Riley
a3bbb029fa FG crashes from glideslope tunnel if runway id is empty string. This change defends against bad data. 2017-01-04 09:11:27 -05:00
Richard Harrison
ea32a92fe7 Generic MFD : Added optional parameter to update method
When using a data provider, or Emesary it is useful to be able to pass an optional element into the update method for the pages.
2017-01-04 02:19:32 +01:00
Florent Rougon
bc42bb5d55 gui.FileSelector: fix bug (initial dir parameter not working) 2016-12-30 02:22:23 +01:00
James Turner
57a2d21ddf Use new canvas Path rect/SVG support. 2016-12-16 19:34:16 +00:00
Thorsten Renk
a27a82b4ad Tentative fix for accelerometers using YaSim properties in JSBSim or optionally generated properties 2016-11-23 15:34:04 +02:00
Thorsten Renk
52e5592442 Replacement of blackout/redout implementation with a sophisticated model developed for military simulators - research and implementation by Nikolai Verner Christensen 2016-11-21 10:06:35 +02:00
Thorsten Renk
5c437d74cb Earthview 2.0 - support for normal maps, better upper atmosphere edge, cloud relief shader, improved dawn zone, horizon estimation, improved resource management,... 2016-11-17 20:54:32 +02:00
Gijs de Rooy
109e452424 Navdisplay:
- properly referencing the canvas namespace, so that the ND module can be separately included via io.include()
- moving the initialization of aircraft specific SVG elements into the navdisplay.styles file, and the corresponding Boeing/Airbus entries there (see initialize_elements())
2016-10-16 16:57:16 +02:00
Gijs de Rooy
d14b0e73ad Navdisplay: fix navaid ranges for Airbus 2016-10-09 14:12:41 +02:00
Gijs de Rooy
7d7294da89 Navdisplay: fix navaid ranges 2016-10-08 20:47:07 +02:00
James Turner
3834fcc36e Add a math.clamp function. 2016-08-20 18:33:12 -05:00
Thorsten Renk
8d6413796a Some preparation for Rio Visuals 2016-08-08 09:20:04 +03:00
James Turner
8d1e42e93f Merge /u/tikibar/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/70/
2016-08-04 09:54:06 +00:00
James Turner
84fa01a6d8 Hint to the user when we adjust on-runway start.
Still deciding if this is needed or in the right place, but
adding as an experiment, can be reverted if people don’t
like it.
2016-07-17 21:54:33 +01:00
John Williams
fc616b19a9 Restored missing markings in GS and centered VOR/LOC displays in APP and VOR modes for Boeing canvas ND 2016-07-07 12:42:55 -07:00
Thorsten Renk
ec89cde472 Change coordinates for orbiting AI object to JSBSim inertial definition for consistency 2016-06-02 11:36:17 +03:00
Richard Harrison
f171e41632 Added Emesary, AN/SPN-46 ACLS, and a Multiplayer Bridge
Emesary is a simple and efficient class based interobject communcation system to allow decoupled disparate parts of a system to function together without knowing about each. It allows decoupling and removal of dependencies by using notifications to cause actions or to query values.

Emesary is all about decoupling and removing dependecies, and improving the structure of code. Using Emesary you can more easily define the what rather than the how. By using what is essential an event driven system it is easy to add or remove modules, and also for extra modules to be inserted that the rest of the aircraft knows nothing about (e.g. FGCamera or the Walker).

see: http://chateau-logic.com/content/emesary-nasal-implementation-flightgear

The AN/SPN-46 is an ACLS implementation using Emesary. ACLS is the Navy's version of ILS.
---------------------------------------------------------------------------
There is also support for transmitting messages over MP which allows models to communicate with each other in a decoupled method using notifications. What happens is that bridged messags simply arrive at the Receive method of recipients in other models on other running instances without the need to do anything special.
2016-05-17 11:22:15 +02:00
Richard Harrison
94334ec5fc Generic MFD: Add Canvas NavDisplay
This links together the generic MFD and the NavDisplay; it allows a fairly easy method to add a Map page to an MFD device.

----------------------
See: http://wiki.flightgear.org/Canvas_MFD_Framework
----------------------
Instantiate parameters:
  1. pfd_device (instance of PFD_Device)
  2. instrument display ident (e.g. mfd-map, or mfd-map-left mfd-map-right for multiple displays) - used to map to the property tree
  3. layer_id: main layer  in the SVG
  4. nd_group_ident : group (usually within the main layer) to place the NavDisplay
  5. [optional] switches - used to connect the property tree to the nav display. see the canvas nav display.

To add a canvas nav display page simply do

me.some_page =  PFD_NavDisplay.new(me.PFD,"Situation", "mpcd-sit", "ID", "jtids_main");
2016-05-17 11:15:53 +02:00
Richard Harrison
56f6e4fd15 Remove debug and tidy up messages 2016-05-16 22:49:56 +02:00
Richard Harrison
4e351957df GeoEventNotification: add items from Models/Geometry 2016-05-16 12:13:58 +02:00
Thorsten Renk
7f3b94f8a4 Code to optionally instance and simulate the position of orbiting objects 2016-05-16 10:56:13 +03:00
Richard Harrison
b3cb0689b8 Emesary: tidy up default MP prooperty index and add droptanks to GeoEvent 2016-04-25 20:40:57 +02:00
Torsten Dreyer
b89eb0290a remove the infamous "A" console message 2016-04-24 11:12:18 +02:00
James Turner
91da4a1378 Lower default canvas Map debug level
Info-level should not log messages continuously, which some map
operations do, so lower the default to ‘debug’.
2016-04-17 18:16:08 +01:00
Richard Harrison
beb26236aa Emesary MP Bridge; optimisation
Encode the indexes and use add constants to remove hardcoded values
2016-04-17 11:32:19 +02:00
Richard Harrison
53dcb70e61 Encoded/Decode changes to use more appropriate methods. 2016-04-16 15:14:46 +02:00
Richard Harrison
1efe01a452 Fix so that the callsign is a method as most of the MP properties probably won't be fully populated when the incoming bridge is created. 2016-04-16 15:14:16 +02:00
Richard Harrison
db7ddba8ba New encoding scheme for transfer over bridge that is slightly more efficient in most cases. 2016-04-16 15:13:33 +02:00
Richard Harrison
bb24cfaec5 Change to be more generic 2016-04-12 23:25:57 +02:00
Richard Harrison
4ed25ac361 Emesary mp support
Add support for transfer string
Change Type to NotificationType as Type can be confusing
2016-04-12 23:25:47 +02:00
Richard Harrison
7fa52ea4ee Merge branch 'next-rjh' into next-emesary-mp-bridge 2016-04-10 00:38:48 +02:00
Richard Harrison
1ec48a966c Added Emesary Multiplayer bridge 2016-04-09 21:39:57 +02:00
Richard Harrison
f87afb2677 Add page indexes 2016-04-09 21:39:29 +02:00
Thorsten Renk
5134fa2a61 AW drives diurnal terrain temperature differences 2016-04-08 10:49:55 +03:00
Richard Harrison
54165c213f Added Emesary and AN/SPN-46 ACLS
Emesary is a simple and efficient class based interobject communcation system to allow decoupled disparate parts of a system to function together without knowing about each. It allows decoupling and removal of dependencies by using notifications to cause actions or to query values.

Emesary is all about decoupling and removing dependecies, and improving the structure of code. Using Emesary you can more easily define the what rather than the how. By using what is essential an event driven system it is easy to add or remove modules, and also for extra modules to be inserted that the rest of the aircraft knows nothing about (e.g. FGCamera or the Walker).

see: http://chateau-logic.com/content/emesary-nasal-implementation-flightgear

The AN/SPN-46 is an ACLS implementation using Emesary. ACLS is the Navy's version of ILS.
2016-04-02 00:13:35 +02:00
Michael Soitanen
0a4d099dc7 ND: Position trend vector. Correct drawing in case of small radius. 2016-03-28 15:26:27 +02:00
Thorsten Renk
c2ac3b8e13 Add shrub landclass to AW convective definitions 2016-03-26 09:00:08 +02:00
Erik Hofman
0d623d5f5e Add the option to the Debug menu to save the video configuration file 2016-03-21 11:53:19 +01:00
Stuart Buchanan
221235063b Add button bindings for engine to joystick config
At the suggestion of Gilberto AGOSTINHO, add
button bindings for throttle, mixture and prop
to the joystick configuration dialog.

Specific use-case is users of game-pads, but also
useful to users with a single throttle axis on their
joystick.
2016-02-10 22:21:18 +00:00
Gijs de Rooy
da50e51aa3 Fix #1823: prevent 16-bit overflow by navdisplay trend vector 2016-01-24 17:36:31 +01:00
James Turner
fddc972010 Warp/time-adjust GUI tweaks
- make t/T action press and hold, with some acceleration factor and
  clamping to a maximum rate. (Avoids confusing latching-mode of
  previous system(

- show the local time of day while adjusting.

Values are based on some experimentation, feedback welcome on the
mailing list.
2016-01-15 20:53:43 -06:00
James Turner
bd1fa5b201 (from Denk Padje)
a small patch here that uses math.round() instead of int() for "percent"
mapping in Canvas tooltip.
2016-01-15 19:35:48 -06:00
Thorsten Renk
3ab3ba72e6 Support for Aurora Boeralis for ALS skydome and Earthview 2016-01-10 10:07:21 +02:00
Florent Rougon
2cf6cf4a93 joystick.PropertyScaleAxis.parse(): copy the property name too
- Since joystick.PropertyScaleAxis instances have a 'prop' attribute
  indicating the property name, it seems logical to have
  joystick.PropertyScaleAxis.parse() set this attribute based on the
  property name in its argument ('p').

- This commit also tries to improve readability by using a 'bindingNode'
  variable instead of repeatedly calling 'p.getNode("binding", 1)'.
2016-01-09 07:56:47 +01:00
Florent Rougon
769a83e64f joystick.PropertyScaleAxis.parse(): always copy 'factor' and 'inverted'
- Commit 5bcf58c7d6 forgot to set the
  'inverted' attribute when there was no 'factor' node in the argument's
  'binding' node. Fix this.

- Also copy the argument's 'factor' value to the 'factor' instance
  attribute for consistency, since joystick.PropertyScaleAxis instances
  have such an attribute initialized in the constructor.
2016-01-09 07:35:23 +01:00
Florent Rougon
703639ec68 Remove inappropriate 'deadband' attribute from joystick.PropertyScaleAxis
As far as I can tell, the dead-band setting belongs to <axis> nodes, not
to <binding> nodes using property-scale. This can be seen in
do_property_scale()'s definition (flightgear/src/Main/fg_commands.cxx)
as well as in fgdata/Docs/README.Joystick.html.

joystick.PropertyScaleAxis creates <dead-band> nodes as children of
<binding> nodes in generated joystick binding files under
$FG_HOME/Input/Joysticks which, AFAICT, are completely useless and thus
confusing. The <dead-band> nodes should be created at a different level
to be effective (cf. FGJoystickInput::postinit() in
flightgear/src/Input/FGJoystickInput.cxx).

This commit removes the 'deadband' attribute from
joystick.PropertyScaleAxis, since it has nothing to do there IMHO.
2016-01-08 15:45:58 +01:00
Florent Rougon
5bcf58c7d6 Fix nuking of property-scale's default factor by joystick-config dialog
As can be seen in do_property_scale()'s definition in
flightgear/src/Main/fg_commands.cxx, property-scale rightfully uses a
default factor of 1.0. However, if a joystick axis' property-scale
binding has no 'factor' node defined, and one opens the joystick
configuration dialog, then PropertyScaleAxis.parse() creates an empty
'factor' node that implicitely gets a value of 0. This method is called
by joystick.readConfig() when the joystick-config dialog is opened. This
has the effect of rendering the corresponding joystick axis inoperant.

How to reproduce the bug:
  - take a joystick such as the SAITEK CYBORG 3D USB, with its default
    binding file from
    fgdata/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml (this file uses
    property-scale for the aileron, with no explicitely defined factor);
  - start FlightGear; move the joystick left or right while looking at
    the plane wings -> the ailerons move, it works fine;
  - now, open the joystick-config dialog and do the same test -> the
    ailerons don't move anymore and the 'Aileron' value at the bottom of
    the dialog stays at 0 (0.0 or -0.0...). Just opening the dialog to
    test the joystick has "corrupted" its setup! This is very confusing
    for users.

This fix corrects the problem by avoiding the apparently unneeded
creation of an empty 'factor' node when there is none inside the
<binding>. An alternative would be to create a 'factor' node with value
1.0. In any case, if someone later expands the joystick-config dialog to
allow modification of property-scale's factor, he should make sure to
use a default value of 1.0!
2016-01-08 12:04:39 +01:00
James Turner
8164811d9f Speed-up fix; now included in /sim/time/delta-sec 2016-01-05 23:25:55 -06:00
Erik Hofman
41562e4b87 Gilberto Agostinho:
I created a substantial quantity of new work in the New Regional
Textures project and I would like to ask if anyone could review and
perhaps commit them into FGDATA. The modifications are:

- New textures and material definitions for California
- New textures and material definitions for Mexico
- New material definitions for Central America
- New textures and material definitions for Southern Europe
(Mediterranean region: Portugal, Spain, south of Italy, Greece, coast of
Balkans)
- New airport grass texture (global)
- New airport grass texture for Latin America
- New American town texture (global)
- Small improvement to grass blade textures (to better fit the airport
grass texture)

If this will be committed, we must add a note thanking the United States
Geological Survey (USGS) for the satellite images of California (
http://www.usgs.gov/ ) to the Thanks file.
2015-12-30 17:13:18 +01:00
Thorsten Renk
4c4044b15c AW sets parameters for scattering phenomena 2015-12-21 13:49:23 +02:00
Gijs de Rooy
48fe7a838e Navdisplay: issue #1822, display altitude range arc on centered mode 2015-12-14 15:03:15 +01:00
Michael Soitanen
77abdbe7e8 NavDisplay: Wind direction in Boeing mode now have degree symbol. Position trend vector is not computed with groundspeed less than 100kts to remove possible error with lateral slope runways. Corrected postion trend vector lenght on range smaller than 10 nm 2015-12-10 17:19:20 +01:00
Michael Soitanen
676a40f912 NavDisplay: Added mode, when heading bug is always displayed regardless of track-heading switch. Switched off by default. 2015-11-30 13:34:54 +01:00
Gijs de Rooy
34b957e63b Navdisplay: add position trend vector to MAP 2015-11-30 13:29:44 +01:00
Gijs de Rooy
30aef3eee1 Navdisplay: magnetic variation for wind arrow by Michael Soitanen 2015-11-29 17:35:09 +01:00
Torsten Dreyer
00781db6c9 Small optimizations in local_weather
listener functions are called with changed node as arg,
using this spares a getprop()

Signed-off-by: Thorsten Renk <thorsten.i.renk@jyu.fi>
2015-11-27 12:10:28 +02:00
Rebecca N. Palmer
45c3eeb9ad Nasal: remove obsolete io.nas security
This has been superseded by the C++-level fgValidatePath
2015-11-22 11:22:22 +00:00
Thorsten Renk
04524c0cca Tentative improvements to AW gust modeling 2015-11-16 17:41:57 +02:00
Thorsten Renk
57c5bf1fbf Earthview loads only texture sheets actually used 2015-11-08 20:42:20 +02:00
Erik Hofman
34315227c1 Richard Harrison:
Add  generic version of a canvas MFD (based on the F-15)

It has a fairly simple class structure and hopefully is reasonably easy to understand; Thorsten's using it on the Shuttle and Hooray mentioned that it'd be a good idea to make it generic. It provides a device, that has pages and a set of buttons. The set of buttons control the page that is selected (i.e. a menu). Each page has its own set of menus. A menu defines a label and a page that is displayed. I intend to document it on the wiki once its added.
2015-10-26 12:56:11 +01:00
Torsten Dreyer
dd3390b3af Fix elevation bug for jetways
Thanks to Martin Herweg (d-laser)
2015-10-11 22:32:25 +02:00
Thorsten Renk
454fa8df8f More work on rendering lighting in ALS, public domain NOAA image resources are gratefully acknowledged 2015-08-12 11:31:05 +03:00
Thorsten Renk
a48dea9e48 Lightning for AW with ALS support - work in progress 2015-08-11 16:28:32 +03:00
Torsten Dreyer
1630bd8254 Merge commit '3feafef999aa79e87bea368cb19511413f06478b' into next
This was https://sourceforge.net/p/flightgear/fgdata/merge-requests/29/

minor correction in lag_adjust.nas (mp patch)
2015-06-17 10:44:27 +02:00
James Turner
47e14354c0 Merge commit 'b028a8ea13248aa97c3cc3a77fbb292c31147994' into next 2015-06-17 00:08:36 +01:00
janodesbois
3feafef999 minor correction in lag_adjust.nas (mp patch) 2015-06-15 01:11:59 +02:00
janodesbois
12af1482e7 little adjustements for the mp patch 2015-06-09 21:12:48 +02:00
Torsten Dreyer
dabaeea9fa Merge /u/tikibar/flightgear/ branch canvas_tacan into next
http://sourceforge.net/p/flightgear/fgdata/merge-requests/22/
2015-06-09 07:12:46 +00:00
janodesbois
b304d43d49 bug correction to the lag adjust nasal part, did things wrong when
simplifying the code
2015-06-08 18:23:34 +02:00
James Turner
563c098452 Change some Nasal logging to use logprint()
- avoids console output at default (WARN) log level from the C172P
2015-06-08 10:33:31 +01:00
Torsten Dreyer
19fe180e3e Merge commit 'e033ac2f106efd45155341f877242b448dd8ded5' into next
This is merge request #20
MP Patch first step fgdata part: nasal to check wich planes we are
displaying in the futur, with a distance check , one plane each frame.
2015-06-07 21:29:32 +02:00
John Williams
c6eab93660 Add canvas tacan display on VOR and APP modes in addition to MAP mode 2015-06-07 21:15:57 +02:00
artix
b028a8ea13 Some fix 2015-06-06 12:29:36 +02:00
artix
a6fe054946 Airbus style for MapStructure/navdisplay 2015-06-06 12:29:36 +02:00
janodesbois
e033ac2f10 FgData part for the MP patch, we allow lag compensation only if the mp plane
is close enough, we check only one plane each frame
2015-06-06 07:05:05 +02:00
Thomas Geymayer
7c3762108c canvas.gui: editingFinished signal for LineEdit. 2015-06-02 18:27:19 +02:00
Curtis L. Olson
1142bde5e9 Tomaskom writes:
I was playing with the target tracking and decided to fix an old bug that causes it to behave wrong at higher altitudes.

Background: the script continuously updates values in the autopilot to follow specified target aircraft (AI/MP). It is controlled directly through the property tree under /autopilot/target-tracking.

Issue: the script reads out true airspeed, but autopilot expects indicated airspeed. This is why at higher altitudes, the tracking always overshoots.

I fixed this by introducing an estimate on indicated airspeed of the target, using the ratio between local aircraft true and indicated airspeed.
I also fixed an issue where it ignored minimum speed setting and polished initialization by using props.globals.initNode() instead of dedicated presence check for every property (and also ensured the nodes have correct types, no more bool stored as double). And the last thing I changed was to increase the default tracking distance to a more sane value, with the original value of 0.05nm the tracking was unstable in heading with most aircraft and started oscillating.
With the changes I applied, the distance is now holding precisely at any altitude and with any winds.
2015-05-28 10:29:38 -05:00
John Williams
d88a359cd1 Add canvas display for TACAN; improve wind vector direction correction 2015-05-16 13:53:01 +02:00
Stuart Buchanan
b4d16682ce GUI Cleanup from Michael HABARTA. Part 3/3 2015-05-03 17:13:50 +01:00
www2
acb88337f2 add var to fillOpacity and strokeOpacity 2015-04-10 21:09:14 +02:00
www2
7b71a8f361 Add Alpha channel for fill and stroke 2015-04-09 00:51:24 +02:00
Rebecca N. Palmer
60da209425 Remove FG_SCENERY from Nasal allowed directories
This was insecure as Nasal could change it, and appears to be unused
2015-03-13 18:31:38 +00:00
Torsten Dreyer
404fff889b Merge commit 'refs/merge-requests/268' of https://gitorious.org/fg/fgdata into merge-requests/268 2015-02-22 21:49:12 +01:00
Torsten Dreyer
0cfddbcd9d Merge commit 'refs/merge-requests/271' of https://gitorious.org/fg/fgdata into merge-requests/271 2015-02-22 21:42:46 +01:00
Thorsten Renk
a401041637 Tentative bugfix for AW not considering gusty follow-up METAR reports 2015-01-14 10:04:42 +02:00
James Turner
e370899a93 Procedures: be defensive about STAR/approach choice.
Current GUI allows selected mis-matched STAR and approach. Low risk
fix is to detect and deal with this case by just routing direct. Real
fix involves a slicker GUI or inserting a route discontinuity (possible
in FG 3.6 hopefully)
2015-01-10 19:38:29 +00:00
James Turner
f786e57c96 Set new route-path / flightplan control values.
Propagation is done by the FMSDelegate so custom FMS/GPS
systems can trivially replace this behaviour.
2015-01-08 19:48:17 +00:00
Nikolai V. Chr
4b806a36c2 Added possibility to specify position to gui.popupTip 2015-01-04 18:36:18 +01:00
James Turner
da1316a74c Hitch/aertow updates fro D-NXKT
-fix a severe bug which led to unintended hitch releases;
-include the new JSBSim external force location variables;
-improvements for function closeHitch
2015-01-04 08:58:20 +00:00
Thorsten Renk
1ad3944b17 Two minor AW bugfixes - behaviour without terrainsampler restored and gusty winds in METAR corrected 2015-01-02 09:12:44 +02:00
Thomas Geymayer
d930e3f2fa Nasal: std.Vector: add 'contains' method (by onox). 2014-12-23 14:40:29 +01:00
Anton Gomez Alvedro
c108f3b988 Bugfixes and improvements to the Failure Manager
- Fix: runtime exception in remove_failure_mode()
  - Fix: keep failure & trigger status on teleport.
  - Fix: allow random failures from the gui to be enabled/disabled multiple times.
  - Fix: mcbf/mtbf are set to zero when they fire, so they can be reactivated from the gui.
  - Fix: string casts of several trigger types had syntax errors.
  - Usability: screen messages related to failures now use positive logic:
         "condition 100%" instead of "failure level 0%"
  - Performance: Time triggers now use internal timers, instead of requiring being polled.
  - Reviewed Trigger interface for more rational usage. reset() is replaced by arm()/disarm()
  - Added a subscription interface to listen to FailureMgr events.
  - Added an internal log buffer to keep a record of relevant events and present them to gui elements.
  - Several usability improvements to the FailureMgr Nasal API.
2014-12-21 12:39:52 +01:00
James Turner
6a763a0d77 Route-manager: fix approach transitions. 2014-12-19 17:02:55 +00:00
Philosopher
db36387a36 Nasal REPL: integrate with Canvas keyboard
Allows for focusing/unfocusing by clicking on the window or "desktop"
respectively.
2014-11-28 09:29:28 -06:00
Philosopher
c0713db911 Fix screen width compensation
The reason it didn't work for me is that
/sim/rendering/camera-group/camera/viewport/ does not seem to contain
the actual dimensions of the view window... which is odd. Instead I'll
use /sim/startup/[xy]size (and make it into a method so I don't have to
change 3 lines next time :). Now that it works (again), it looks so much
better. Thanks to Alexis Bory for the original idea.
2014-11-27 22:17:22 -06:00
Thomas Geymayer
7b279f1fd7 canvas.gui: ensure all LineEdit/ScrollArea methods are chainable. 2014-11-23 23:35:26 +01:00
syd adams
d9e9a65909 modified gui.nas to enable hiding tank on Fuel dialog 2014-11-19 12:14:18 -07:00
Thorsten Renk
a6ff6a6199 Undulatus-based AW clouds make use of transparency parameter 2014-11-17 13:35:48 +02:00
Thorsten Renk
403c35d544 AW domain-based clouds utilize transparency parameter 2014-11-17 12:59:48 +02:00
Thorsten Renk
4e9ba3e560 Basic ALS + AW infrastructure to use new cloud transparency parameter 2014-11-16 12:28:09 +02:00
Thorsten Renk
4e144a16bb AW uses detailed precipitation control, property rule adjusts precipitation illumination 2014-10-22 11:00:19 +03:00
Thomas Geymayer
33a9b73b5c Add std.Vector wrapper class (by onox). 2014-10-18 01:13:37 +02:00
Thorsten Renk
d1982846e1 AW produces snow when SN is specified in METAR string 2014-10-15 12:49:47 +03:00
Torsten Dreyer
61a6fee0db Canvas svg: use font-style and map LiberationFonts
- interprete the font-style attribute for text
- add a better font-mapper for Liberation Fonts
2014-09-10 16:51:12 +02:00
Thomas Geymayer
fd3bd5da20 canvas.gui: Basic InputDialog and some small tweaks. 2014-09-01 19:31:25 +02:00
Thomas Geymayer
246c480ea3 canvas.gui: Add a basic LineEdit for text input. 2014-08-31 19:40:14 +02:00
Torsten Dreyer
f3058a3f2e Canvas: add support for stroke-linejoin 2014-08-26 00:06:59 +02:00
Thomas Geymayer
2bce958f39 parsesvg: Improved clip and error handling.
- Ignore and warn for unsupported/invalid clip regions.
 - Correctly handle clip 'none'.
 - Use printlog everywhere instead of debug.dump and others.
2014-08-24 13:59:36 +02:00
Thomas Geymayer
a10e9c7b00 canvas.gui: simplify MessageBox and Aircraft center with core changes. 2014-08-05 00:22:14 +02:00
Thomas Geymayer
804b42cfa4 canvas.gui: Window input focus handling. 2014-08-04 23:48:29 +02:00
Thomas Geymayer
67229cbadc canvas.gui: handle visibility changes of widgets. 2014-07-21 00:28:44 +02:00
Thomas Geymayer
8aabd3726a parsesvg: support for rectangular clip/mask. 2014-07-19 21:44:38 +02:00
Thomas Geymayer
59edeea5c3 Aircraft Center: fix aircraft switching log message. 2014-07-12 18:10:36 +02:00
Thomas Geymayer
bb1ab2d975 canvas.gui: let widgets set layout size to allow user defined size hints. 2014-07-12 18:10:36 +02:00
Gijs de Rooy
2452ab0f5c Navdisplay: fix runway symbol 2014-07-12 17:56:48 +02:00
Gijs de Rooy
dd1e0cba46 Navdisplay: fix wind data display, add TCAS messages, move DME/VOR out of update() 2014-07-10 23:07:47 +02:00
Gijs de Rooy
1ba6af1284 Navdisplay:
- set z-index on layers
- correct PLAN range
- hide/show navaids on mode change
- display runway identifier
2014-07-08 12:28:26 +02:00
Gijs de Rooy
573de77cb8 Navdisplay: bug fixed and new features
- Correct z-index
- Add MAP CTR compass
- Fix active WPT color
- Hide wind data at low speeds
- Move code outside main update loop
- Correct ranges
2014-07-06 23:17:47 +02:00
Thomas Geymayer
db27e0972e canvas.Window: move/setSize/setPosition: support coords as vector. 2014-06-30 23:18:48 +02:00
Thomas Geymayer
c75869271e Aircraft Center: fixes for install progress in reopened windows.
Restore install progress indication after closing and reopening
Aircraft Center.
2014-06-30 18:16:22 +02:00
Thomas Geymayer
bc714fa39c canvas.gui: widget focus fixes and clean up. 2014-06-29 12:04:36 +02:00
Thomas Geymayer
f8bbc32d68 Aircraft Center: improve responsiveness.
Only show max 50 aircraft by default and provide a "Show More"
button. This prevents locking the GUI for up to nearly 15 seconds
with showing the list of all aircraft.
2014-06-28 13:18:57 +02:00
Thomas Geymayer
eb01ab7127 canvas.gui.ScrollArea: no need for double update of content size. 2014-06-28 13:18:56 +02:00
Thomas Geymayer
1864153b9a canvas.gui.MessageBox: Ensure path for saving selections exists. 2014-06-26 18:11:41 +02:00
Hyde Yamakawa
ece46ff679 Update canvas map symbols 2014-06-25 21:35:32 -04:00
Thomas Geymayer
15d3e8612d Canvas REPL: update for ScrollArea changes/remove unneeded code. 2014-06-26 00:55:36 +02:00
Thomas Geymayer
0338d82c55 canvas.gui.ScrollArea: fix (wheel) scroll behavior.
Rewrite the way scrolling for ScrollAreas is handled: Store
content position instead of scrollbar positions to keep position
on resize and promote moving the content instead of the contents
to as primary API.
Let the mousewheel scroll by fixed content offset instead of
scrollbar offset to make it actually usable (especially with
low scrolling distance).
2014-06-26 00:50:46 +02:00
Philosopher
b7f0b09df4 Canvas REPL: actually fix copy/paste/continue line 2014-06-24 20:10:32 -05:00
Philosopher
2c3f457281 MapStructure: avoid flickering labels/paths 2014-06-24 14:21:14 -05:00
Philosopher
7207f2e629 Canvas REPL: a few bugfixes 2014-06-24 14:15:42 -05:00
Thomas Geymayer
170079a22e canvas.gui: Draw tooltips on top of other windows/dialogs. 2014-06-24 15:34:03 +02:00
Thomas Geymayer
43f8ce0870 Add props.compileCondition to actually use exposed SGCondition. 2014-06-23 21:12:57 +02:00
Thomas Geymayer
4b00bb3067 canvas.gui: tweak label size hints and text color. 2014-06-23 21:12:26 +02:00
Thomas Geymayer
9e905228ef Nasal: respect color argument for debug._dump_prop 2014-06-21 12:09:34 +02:00
Thomas Geymayer
717c684dad tooltip: better error reporting on failed mapping. 2014-06-21 12:09:33 +02:00
Gijs de Rooy
9b4a1b52a4 Navdisplay: use true airspeed 2014-06-20 21:52:35 +02:00
Thomas Geymayer
a2aafc3b51 Canvas bug fixes.
- show canvas in a window
 - create window decoration also during pause
 - update content of ScrollArea on resize
2014-06-19 22:19:11 +02:00
Thomas Geymayer
351f67952c canvas.gui: Tweak size hints and MessageBox size. 2014-06-19 01:17:40 +02:00
Thomas Geymayer
e091ff9c40 Aircraft Center: show a warning message that it is experimental. 2014-06-18 17:25:15 +02:00
Thomas Geymayer
c03454a6b4 canvas.gui: MessageBox allow saving user selection. 2014-06-18 17:24:51 +02:00
Thomas Geymayer
5d723e6eab canvas.gui: Add checkbox widget. 2014-06-17 21:02:59 +02:00
Thomas Geymayer
e496ca56ab canvas.gui: Add MessageBox class.
Use canvas.MessageBox.critical/warning/information/question
to show a standard, but also customizable dialog box.
2014-06-17 17:16:02 +02:00
Thomas Geymayer
9933398a37 canvas.gui: missing return and minor color update. 2014-06-17 17:12:21 +02:00
Thomas Geymayer
c4d9310e33 canvas.gui: Remove old demo code. 2014-06-17 17:11:48 +02:00
Thomas Geymayer
b5dae5b567 canvas.gui: Button color tweaking. 2014-06-17 11:44:05 +02:00
Thomas Geymayer
8760036aa2 Aircraft Center: tabs for installed aircrafts. Buttons to switch aircraft. 2014-06-16 22:38:46 +02:00
Thomas Geymayer
55980af126 canvas.gui: remove canvas elements on deleting layout items. 2014-06-16 22:38:46 +02:00
Thomas Geymayer
cba00d9217 Aircraft Center: tweaking/typos.
- Increase default size.
 - Run parse_markdown on description to remove multi
   whitespace, possible present in catalog.xml and
   also support simple, one-level bullet point lists.
2014-06-16 22:38:45 +02:00
Thomas Geymayer
45889adb74 canvas.gui.ScrollArea: drag to scroll inside content area. 2014-06-13 12:27:31 +02:00
Rebecca Palmer
81607f734e Remove ATC chatter, as previously discussed:
http://sourceforge.net/p/flightgear/mailman/message/32440533/
http://sourceforge.net/p/flightgear/mailman/message/32428167/
2014-06-12 23:53:17 +01:00
Thomas Geymayer
6d086ad73e Aircraft Center: show description and package size.
Description is probably not visible, as currently now package
includes a description. If no description is available the
ratings are shown.
2014-06-13 00:34:44 +02:00
Thomas Geymayer
3505d3c8bf canvas.gui: support height-for-width layouting.
Setting wordWrap on canvas.gui.Label enables height-for-width
where the height of the label depends on the layouted texts
width.
2014-06-13 00:34:44 +02:00
Thomas Geymayer
2aeeae855f Aircraft Center: filter based on minimum rating and show missing thumbnail. 2014-06-12 00:49:18 +02:00
Thomas Geymayer
35bf001fa6 Aircraft Center: show progress and update button on install/remove. 2014-06-11 00:44:17 +02:00
Thomas Geymayer
1b5fc0cbdf canvas.gui: allow disabling widgets. 2014-06-11 00:36:42 +02:00
Thomas Geymayer
e4d60f2153 Simple canvas based "Aircraft Center".
- Needs FlightGear compiled with -DENABLE_PACKAGE_SYSTEM.
 - Shows only first 100 available aircrafts.
 - Now progress indication on install/remove (need to reopen
   dialog afterwards)
2014-06-10 18:47:13 +02:00
Thomas Geymayer
48f33fe78f canvas.gui: Checkable buttons, layout for ScrollArea and images for Lables. 2014-06-10 18:46:52 +02:00
Thomas Geymayer
7e2c93825f canvas.gui: restructuring, fixing and new Label widget. 2014-06-09 01:00:21 +02:00
Anton Gomez Alvedro
7b46de3e27 Code review comments and bugfixes
- Making run_tests accept a target namespace as an argument.
 - Fixed asynchronous trigger callback mechanism.
   MCBF triggers working again.
 - Fixed numerical problems when calculating standard deviation
   for rand triggers.
2014-06-06 21:41:13 -05:00
Anton Gomez Alvedro
5df7a784e5 Failure Management Framework (1st milestone)
Replaces existing Nasal/failures.nas script with a programmable failure
manager. The failure manager allows dynammic creation and removal of
failure modes, on demand activation and a flexible set of triggers.
The public interface can be found in Nasal/FailureMgr/public.nas

Aircraft/Generic/Systems/failures.nas provides a library of triggers and
failure actuators ready to use for programming the failure manager.

A compatibility layer is included under
Aircraft/Generic/Systems/compat_failure_modes.nas.
This compatibility layer is currently loaded on startup and programs the
FailureMgr to emulate the former behavior (same set of failure modes and
compatible interface through the property tree).

This first milestone is only intended to replace the failure management
engine underneeth with minimum visible changes, and hopefully no aircraft
breakages. Future milestones will build upon this to add a Canvas based
procedural GUI and example integration on aircrafts.
2014-06-06 21:41:11 -05:00
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
501f8ba881 MapStructure: a few WPT/RTE bugfixes 2014-06-06 21:19:12 -05:00
Philosopher
807062d0b6 Misc. Nasal cleanup 2014-06-06 21:19:11 -05:00
Philosopher
ddcb543c10 debug.nas: use argument to disable/enable color
(on top of the normal color setting -- i.e. this overrides that)
2014-06-06 21:19:10 -05:00
Thomas Geymayer
f91d439ac0 canvas.gui: Update ScrollArea for layouting system. 2014-06-05 17:33:44 +02:00
Thomas Geymayer
c226e171ca canvas.gui: tweaking and testing widget/layout stretch. 2014-06-04 17:53:52 +02:00
Thomas Geymayer
c3a65442b1 canvas.gui: Update for core changes and use new layouting system 2014-06-03 19:30:30 +02:00
Philosopher
f0d44ae8fe Lots lots more MapStructure changes
Fix the main bugs, add features and convert most of the layers.
Move/refactor some things as well. Add a canvas map dialog next to the
built-in one -- it's not 100% functional but it's quite close actually.

As before, the excitement has been taking place at our team clone.
https://gitorious.org/fg/canvas-hackers-fgdata/commits/0b4cc84
(topics/canvas-map-dialog branch this time, current HEAD in above URL.)
2014-05-25 14:27:11 -05:00
Hyde Yamakawa
c572c0e6d3 Add IFR symbols set based on Jeppessen IFR Glossary. 2014-05-17 06:50:29 -04:00
Thorsten Renk
3970bad285 Updates to Earthview, based on work by Anton Gomez Alvedro 2014-05-05 15:27:32 +03:00
Philosopher
37c005c222 Many MapStructure/NavDisplay updates
See the clone at https://gitorious.org/fg/canvas-hackers-fgdata/source/topics/canvas-radar:
2014-04-28 21:39:00 -05:00
Thorsten Renk
5a2ada9619 Updates to Earthview 2014-04-25 09:40:32 +03:00
Thorsten Renk
23d7f41481 Earthview orbital rendering based on the NASA Visible Earth image collection 2014-04-24 10:37:41 +03:00
Hyde Yamakawa
78ea19de4d Add IFR Basic Symbols Set and VFR Aopa's Set svg for canvas 2014-04-21 07:31:06 -04:00
Philosopher
6e17a1d2cb Initial Nasal REPL work (canvas-based)
Features:
- Various configurable styles.
- Working scroll bars, thanks to Tom
- Adequate REPL-ness.

See the wiki for more information!
http://wiki.flightgear.org/Interactive_Nasal_Console

N.B. This makes some (sane) changes to other Nasal files, including
expanding some of the Canvas API.
2014-04-18 16:49:11 -05:00
Thorsten Renk
426a4a0a6c GUI option and some internal tweaks for cloud shadow functionality 2014-04-17 12:39:53 +03:00
Thomas Geymayer
a5401c19c7 canvas: update for new bounding box getters. 2014-03-31 13:34:50 +02:00
Hyde Yamakawa
da76bc635e Canvas ND:GS pointer, LOC pointer and dme source fix from Soitenen 2014-03-25 17:55:06 -04:00
Thomas Geymayer
04c40a4232 canvas.gui.ScrollArea: check for valid content bounding box. 2014-03-24 00:18:29 +01:00
Thomas Geymayer
e593ee2c30 canvas.gui: Update for 'file'->'src' rename. 2014-03-20 11:46:48 +01:00
Thomas Geymayer
cf05294b84 canvas.gui: Basic demo showing how to use windows and widgets. 2014-03-19 23:51:34 +01:00