1
0
Fork 0
Commit graph

15028 commits

Author SHA1 Message Date
Julian Smith
001c1d231d If multiplayer record is enabled, carry on recording while replaying.
This background recording keeps the user aircraft stationary while recording
all movements of multiplayer aircraft. Allows one to look at replay without,
for example, disturbing continuous record to file.
2020-06-17 21:10:33 +01:00
Julian Smith
15915b5a79 Added support for continuous uncompressed save to file.
This allows full-fidelity recordings of arbitrary length (limited only by disc
space) to be created and replayed. These recordings always contain multiplayer
information, regardless of /sim/replay/multiplayer.

When an uncompressed recording is loaded, it is not copied into memory. Instead
we extract individual frame information as required when replaying.

Recording to file is activated by setting /sim/replay/record-continuous to
true. We use the same filename pattern as ordinary fgtapes. The file format
is similar except for being uncompressed (so that replaying can seek within
the recording; gzip etc don't seem to support seeking within the uncompressed
stream.)
2020-06-17 21:10:33 +01:00
James Turner
dbec99abc9 Translate weather scenarios names+descriptions
Allow weather scenarios to be translated, and display this in the
launcher.
2020-06-17 16:15:01 +01:00
James Turner
38cccc3f62 Bugfix: empty popup menus in the launcher
Propagate the display role to the overlay menu correctly.
2020-06-17 16:12:37 +01:00
James Turner
7948a135b6 Launcher: load aircraft with odd -set.xml includes
Lars T identified some cases where the launcher would fail to include
local aircraft due to them using weird ways to include additional
XML into their -set.xml. Add a temporary resource provider while the
launcher is scanning, to make this work.

Will pick to LTS branch once verified.
2020-06-17 11:51:16 +01:00
James Turner
00d34b67e1 Fix translation of migration-notification dialog.
Was being shown before locale was selected, so always using default
translation. Fixed by deferring the dialog, and also added an assert
for debug builds, if trying to access translated string too early.
2020-06-17 10:57:34 +01:00
Lars Toenning
42ed210c9c Add warning if *-set.xml couldn't be parsed for launcher 2020-06-16 22:48:26 +01:00
Lars Toenning
b280905b8c Fix CMake 5.17+ FPHSA warning
Starting with CMake 5.17 FindPackageHandleStandardArgs is detecting package name mismatches. Also capitalization is checked. 
See: ee4673c1ae
2020-06-16 12:09:39 +01:00
James Turner
46084c59ff Splash: fix a missing translation Slawek spotted
Allow the ‘% completed’ text to be translated.
2020-06-15 18:42:02 +01:00
James Turner
cbf1f3494a new version: 2020.3.0 2020-06-15 12:33:51 +01:00
James Turner
095959ae32 new version: 2020.2.1 2020-06-15 12:33:51 +01:00
James Turner
c8a88f7c40 Fix some missed translation markers for Add-ons
See: https://sourceforge.net/p/flightgear/codetickets/2163/

Thanks to Slawek for spotting these.
2020-06-15 12:24:57 +01:00
James Turner
1d97267663 Fix crash on shutdown in FGFontCache
Reported here by Michael:
https://sourceforge.net/p/flightgear/codetickets/2114/
2020-06-12 11:26:20 +01:00
James Turner
dce282d7b8 Rename js.h -> FlightGear_js.h
Ensure we don’t get weird conflicts as our internal version is
starting to diverge from the original PLIB one.
2020-06-11 17:48:49 +01:00
James Turner
00cffc2f01 Allow correct re-init of joysticks on macOS
With this change, “Reload Input” will discover newly attached devices
on macOS, which previously did not work.

Also add correct detection of disconnected devices, which previously
was not handled well, especially with the new ‘keep trying to open
devices’ behaviour of FGJoystickInput.

Should fix:
https://sourceforge.net/p/flightgear/codetickets/2259/
2020-06-11 17:43:55 +01:00
James Turner
9326c88f9b Move Qt root path variable to top-level CMakeList 2020-06-10 17:59:09 +01:00
James Turner
c1afb053a1 Fix flight-plan cloning with approach transitions 2020-06-10 17:58:31 +01:00
legoboyvdlp R
b210f9e253 Add test for cloning flightplan with approach transitions 2020-06-10 17:18:23 +01:00
James Turner
bce6b56c8d Remove use of QQ.Window / PopupTracker
Overlay menus work better than native popups for most use-cases, and
simplify integration (no window focus changes). Switch the remaining
menus to always use the overlay system

As part of this, fix how Overlay positions are adjusted, to avoid
the ugly zero-interval timer.
2020-06-10 16:54:27 +01:00
James Turner
aedaf798c0 Launcher: add key shortcut for Fly!
Ctrl-F, since we don’t have a find function.

Requested by Richard, and easy to add :)
2020-06-09 14:53:43 +01:00
Julian Smith
43130aa581 Fixed splash download statistics to use 'B' for bytes rather than 'b'.
'b' usually means bits.
2020-06-09 10:43:15 +01:00
James Turner
a7d8d9c2ab Use -fPIC for building Sqlite 2020-06-09 10:34:02 +01:00
James Turner
6278e74e4b Fix MSVC build: include <atomic>
(Weirdly, only needed with some MSVC versions…)
2020-06-09 08:43:14 +01:00
James Turner
2574783656 ATC: Fix crash with missing traffic ID
https://sourceforge.net/p/flightgear/codetickets/2254/
2020-06-08 22:44:52 +01:00
James Turner
32ff21c1df UI: support OSG multi-threading modes, partially
Requires private header, so might need an additional package installed
on some Unixes.
2020-06-08 22:44:52 +01:00
James Turner
2ca06d5b69 Launcher: move PNGs to assets/ subdir 2020-06-05 22:16:02 +01:00
James Turner
3cd3ad465e Add Qt dialog state controller
Allow standard control of drill-down dialogs (with back / forward
navigation)
2020-06-05 22:09:03 +01:00
James Turner
faa070307d Add property Qt item-model
Allows exposing a set of property nodes as a model in combo boxes,
lists, etc.
2020-06-05 22:09:03 +01:00
James Turner
c2c3bc17f6 Expose child-props to QML binding class 2020-06-05 22:09:03 +01:00
Julian Smith
edb5be38ee Multiplayer replay: add support to fgtape recordings. improved replay behaviour.
Fgtape:

    If multipayer replay is active we write multiplayer packet information to
    fgtape files. We also add /sim/replay/multiplayer to the properties written
    to fgtape file so at load time we knows whether to expect multiplayer
    packets.

    New builds of fg can load and replay old recordings.

    It is expected (but has not been tested) that old builds of fg will be able
    to read new fgtape recordings where /sim/replay/multiplayer was unset or
    false (currently the default).

    Old builds of fg will not be able to load fgtape recordings that include
    multiplayer data.

Avoid incorrect removal of multiplayer aircraft when replaying:

    We now clear multiplayer motion history when we jump forwards or backwards
    during replay. This ensures that multiplayer code doesn't remove
    multiplayer aircraft because of inconsistent-looking time stamps.

    We preserve some multiplay information when purging recorded information
    to save space. This ensures that when replaying we get frequent enough
    packets to avoid the multiplayer code thinking that multiplayer aircraft
    have disappeared.
2020-06-05 21:21:14 +01:00
Julian Smith
4de00657c9 Multiplayer replay: added properties showing memory usage info. 2020-06-05 21:21:14 +01:00
Julian Smith
e7b1f3f52e Multiplayer replay: new, support for replaying multiplayer aircraft as well as the user's aircraft.
At the moment this only works for live replays - we don't (yet) write the
multiplayer information to fgtape files.

Enable with:
    --prop:bool:/sim/replay/multiplayer=true

This works by copying all raw multiplayer packets into a buffer in
FGMultiplayMgr. Each time it is called, FGFlightRecorder::capture() moves all
the available packet from this buffer into its FGReplayData. Thus we store
roughly syncronised multiplayer packets along with the user aircraft's detailed
replay properties.

When replaying, FGFlightRecorder pushes packets into a buffer in
FGMultiplayMgr, which are used instead of live multiplayer packets. [Actually
when replaying FGMultiplayMgr still reads live packets in order to handle live
chat messages, and ignores chat messages from FGFlightRecorder.]
2020-06-05 21:21:14 +01:00
James Turner
0015744486 Nasal unit-testing feedback from Henning 2020-06-05 21:00:59 +01:00
James Turner
033a53f1d7 Add missing code to previous commit :) 2020-06-05 20:49:05 +01:00
James Turner
a9e5a27e55 UI handling tweaks
- add class to handle top-level windows
- remove requirement to use custom graphics-window
- order alongside PUI UI
2020-06-05 17:54:27 +01:00
James Turner
af00b5e304 Set CMake OpenGL VND policy 2020-06-05 13:33:27 +01:00
James Turner
6beeea2bd5 Nasal flight-plans: allow clearing transitions
When nil is set on the _trans members, clear the transition value
internally. Also fix an error message.
2020-06-04 17:54:13 +01:00
James Turner
023fbe35ea Tweaks to avoid a crash when asking for FGData path
exit(-1) early in startup seems to cause QApplication to be cleaned
up in a weird way
2020-06-04 17:43:27 +01:00
James Turner
9cc9a8a197 Add ‘makesingleshot’ helper to Nasal.
Makes a timer object, but set to single shot mode and starts it.
2020-06-01 11:16:37 +01:00
James Turner
26b0148747 Preserve developer-mode on reset
Thanks to Henning for pointing out problem.
2020-06-01 11:15:45 +01:00
James Turner
2f1852ee83 Add test-case for timer restart
Test rescheduling of timer during activation. See:
https://sourceforge.net/p/flightgear/codetickets/2257/
2020-05-31 14:20:01 +01:00
James Turner
13bb1adf54 Better fix for orientation nodes init
(Avoid the chance that we overwrite a value set earlier)
2020-05-31 12:24:36 +01:00
James Turner
c0d347859f Ensure various properties have a value on start.
Ensure /orientation/heading-magnetic-deg, etc have a type of double
immediately. Showed up as a bug in the SenecaII, since the property
is created but has NIL value until the first update() call.
2020-05-31 12:18:07 +01:00
James Turner
ea40f3d424 Adjust LBEL SID departure test work work 2020-05-31 12:16:59 +01:00
James Turner
03563a1601 Fix DME intercept handling in route/GPS
Both the route-path cade and the RNAV code were using some bad logic
to compute the intersection point. All fixed now, but requires a
new helper in Simgear.
2020-05-30 15:59:07 +01:00
James Turner
e51a0c55b5 Fly-by support for Radial intercepts
In the common case, avoid an overshoot when doing radial
intercepts.
2020-05-30 15:59:07 +01:00
James Turner
176ccfa8dc Test updates for new GPS fly-by 2020-05-30 15:59:07 +01:00
James Turner
eb55cd4a8c Test pilot changes for data logging 2020-05-30 15:59:07 +01:00
James Turner
5a73859b62 Add missing license 2020-05-30 15:59:07 +01:00
James Turner
6bb1478067 GPS fly-by support
Remove the non-functional turn-anticipation code from the GPS, and
enable fly-by mode in (some of the) RNAV controllers: initially the
leg controller.

The new config property is gps/config/enable-fly-by, defaults to off
for compatibility.
2020-05-30 15:59:07 +01:00