122 Commits

Author SHA1 Message Date
Raffson
c4be00d11b
Migrate to PySide6 2023-10-08 00:53:51 +02:00
Raffson
046dccc4d5
Update contributors list 2023-08-12 19:25:36 +02:00
Raffson
3b745c43eb
Save-compat changes to allow loading Liberation saves
May be incomplete, some discrepancies in naming may still exist, but at least Kerbo's campaign can be loaded.
2023-07-01 17:08:12 +02:00
Raffson
db7bcaa45c
Properly indicate save-incompatibility issues to users 2023-06-03 16:04:27 +02:00
Raffson
27686f6d78
Update contributors 2023-05-19 22:20:40 +02:00
Dan Albert
dbc6a25791
Update contributors list.
<3
2023-05-19 20:52:05 +02:00
Raffson
34645560bf
Migration changes 2023-05-16 21:45:26 +02:00
Raffson
b25f484ef3
More renaming of Liberation into Retribution 2023-02-05 12:05:27 +01:00
Raffson
88f984b0a8
Configurable RF/TCN/ICLS/LINK4 with UI feedback
Resolves #70

Freq/Channel will turn orange when double booked.
Freq will turn red if GUARD freq was assigned.
2023-01-17 18:32:20 +01:00
Dan Albert
634d48e3e7
Attribution compliance for OSM data.
https://github.com/dcs-liberation/dcs_liberation/issues/2434
2022-11-26 15:20:23 +01:00
Dan Albert
cbc124eff6
Hide sim speed controls behind a flag.
Flag is only controlled from the command-line because redoing Qt layout
usually breaks things. Off by default in 6 since this feature is nowhere
near done enough to even be used experimentally (most changes to the ATO
made after the sim begins will break the game).

Fixes https://github.com/dcs-liberation/dcs_liberation/issues/2535.
2022-11-20 16:07:02 +01:00
Raffson
5aed3fbb87
Add migrator
Attempts to fix incompatibilities in save files across builds. The idea is to try and handle the incompatibility as graceful as possible, and adding more "incompatibility fixes" in the future.
2022-11-19 22:47:33 +01:00
Raffson
810c202f1b
Add "save before quit" in closing dialog 2022-11-07 18:46:46 +01:00
Raffson
46eed54705
Update discord link 2022-10-02 19:56:46 +02:00
Raffson
8af2d888d4
Update 'About' dialog 2022-09-18 22:09:42 +02:00
Raffson
cb4754a3f9
Update URLs in UI's main window 2022-09-18 22:09:41 +02:00
Raffson
5faf79766f
Adjust discord server 2022-09-18 22:09:41 +02:00
Raffson
37b4b8f487
Update quit message 2022-09-18 22:09:41 +02:00
Raffson
9840ed1444
Introduce .retribution save-files
Keeping .liberation since we'd want stay compatible for as long as possible
2022-09-18 18:23:00 +02:00
Raffson
7a92fa773f
Adjust main window title 2022-09-18 15:48:15 +02:00
Dan Albert
c69158728d
Update contributors list. 2022-08-15 21:15:00 +02:00
Raffson
74142536e9
#978 2022-08-14 14:45:25 +02:00
MetalStormGhost
51b9d80488 Update contributors list. 2022-07-11 02:16:42 -07:00
Raffson
6557864697 Import QApplication 2022-06-11 20:17:39 -07:00
Raffson
5f1ae30f19 Close all windows on exit 2022-06-10 14:53:11 -07:00
Dan Albert
f72b2a21f7 Remove the old map.
The new map has no open bugs.
2022-03-20 16:13:07 -07:00
Dan Albert
904602510d Remove API key auth; CORS is sufficient.
The React UI running in a browser can't connect to the backend without
punching a hole for CORS, which isn't done by default. We don't need the
API key to protect from browsers, and anything else running on the
user's machine that can access the backend (that's hosted on only
localhost) already has enough control to do damage without using
Liberation as an attack vector.

https://github.com/dcs-liberation/dcs_liberation
2022-03-06 01:57:12 -08:00
Dan Albert
8165d3bd8c Add support for running the build react map.
https://github.com/dcs-liberation/dcs_liberation/issues/2039
2022-03-06 01:53:22 -08:00
Dan Albert
92236a5bc3 Update the react map for some new events. 2022-03-03 23:31:07 -08:00
Dan Albert
c5c596dc2f Move TGOs out of MapModel. 2022-03-03 17:11:01 -08:00
C. Perreau
d0ad554e14
Merge pull request #2040 from dcs-liberation/ukraine
🇺🇦 Support for Ukraine
2022-03-03 23:48:11 +01:00
Khopa
0b1365a04b Properly credit CC artwork author. 2022-03-03 23:34:22 +01:00
Dan Albert
ccb510fe47 Move front lines out of MapModel. 2022-03-03 02:17:13 -08:00
Khopa
510dcd762f 🇺🇦 Support for Ukraine 2022-03-02 17:52:47 +01:00
Dan Albert
c628695a4e Persist window geometry on close.
Re-opens the window in the configuration it was in (size, maximized,
correct display, etc) when it was closed.
2022-02-28 18:08:40 -08:00
Dan Albert
59e98b31df Add a basic React implementation of the map.
See client/README.md for instructions.
2022-02-28 00:31:56 -08:00
RndName
54e24dff39 Improve Layout System and adopt to review
- adopted to review comments
- removed the role from layouts
- reworked the Groups within the layouts
- added more documentation
- rebased to latest changes
2022-02-21 20:45:41 +01:00
RndName
2c17a9a52e Refactor Templates to Layouts, Review and Cleanup
- Fix tgogenerator
- Fix UI for ForceGroup and Layouts
- Fix ammo depot handling
- Split bigger files in smaller meaningful files (TGO, layouts, forces)
- Renamed Template to Layout
- Renamed GroundGroup to TheaterGroup and GroundUnit to TheaterUnit
- Reorganize Layouts and UnitGroups to a ArmedForces class and ForceGroup similar to the AirWing and Squadron
- Reworded the UnitClass, GroupRole, GroupTask (adopted to PEP8) and reworked the connection from Role and Task
- added comments
- added missing unit classes
- added temp workaround for missing classes
- add repariable property to TheaterUnit
- Review and Cleanup

Added serialization for loaded templates

Loading the templates from the .miz files takes a lot of computation time and in the future there will be more templates added to the system. Therefore a local pickle serialization for the loaded templates was re-added:
- The pickle will be created the first time the TemplateLoader will be accessed
- Pickle is stored in Liberation SaveDir
- Added UI option to (re-)import templates
2022-02-21 20:45:41 +01:00
Dan Albert
c16ca40894 Move waypoints and commit boundaries to FastAPI. 2022-02-20 13:30:36 -08:00
Dan Albert
77d29e314c Add API key authentication.
We don't have any sensitive data, but we do access the file system. On
the off chance that some phishing website decides to try to use
Liberation as an attack vector, prevent access to the API by
unauthorized applications. An API key is generated at each program start
and passed to the front end via the QWebChannel.
2022-02-19 14:41:39 -08:00
Dan Albert
09457d8aab Move frozen combat handling out of MapModel. 2022-02-19 13:51:18 -08:00
Dan Albert
21f7912458 Add websocket event stream for sim updates.
As a proof of concept this only covers the flight positions.
2022-02-16 01:34:56 -08:00
Dan Albert
656a98675e Rework sim status update to not need a thread.
Rather than polling at 60Hz (which may be faster than the tick rate,
wasting cycles; and also makes synchronization annoying), collect events
during the tick and emit them after (rate limited, pooling events until
it is time for another event to send).

This can be improved by paying attention to the aircraft update list,
which would allow us to avoid updating aircraft that don't have a status
change. To do that we need to be able to quickly lookup a FlightJs
matching a Flight through, and Flight isn't hashable.

We should also be removing dead events and de-duplicating. Currently
each flight has an update for every tick, but only the latest one
matters. Combat update events also don't matter if the same combat is
new in the update.

https://github.com/dcs-liberation/dcs_liberation/issues/1680
2021-12-23 17:46:24 -08:00
RndName
f9ed61d199
Enable / Disable game specific functions if no game is loaded
- Disable Save, Settings, Stats and Notes if game is none

fixes #1854
2021-12-20 13:55:05 +01:00
Dan Albert
2a75d14e0e Revert upgrade to pyside6.
This appears to be incompatible with pyinstaller. I get the following
when trying to run the executable generated with pyside6:

```
Traceback (most recent call last):
  File "qt_ui\main.py", line 29, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
  File "qt_ui\windows\QLiberationWindow.py", line 28, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 476, in exec_module
  File "qt_ui\widgets\map\QLiberationMap.py", line 11, in <module>
ImportError: could not import module 'PySide6.QtPrintSupport'
```
2021-11-21 17:39:43 -08:00
Dan Albert
4a7dae9cc2 Upgrade to PySide6.
PySide2 renamed to PySide6 for Qt 6 support. It doesn't seem like
PySide2 is getting a 3.10 wheel, so upgrade to Qt 6 to prep for that.
2021-11-20 19:26:18 -08:00
Dan Albert
d31f0e22e3 Show the status of each flight in the UI.
https://github.com/dcs-liberation/dcs_liberation/issues/1704
2021-11-07 11:27:50 -08:00
Dan Albert
de0b267568 Shut down the sim update thread on quit.
Otherwise the update thread just sits there waiting forever...
2021-11-02 23:59:08 -07:00
Dan Albert
03430a4df5 Update the UI to show sim state.
https://github.com/dcs-liberation/dcs_liberation/issues/1704
2021-11-02 23:34:51 -07:00
Dan Albert
87bf3110c8 Add play/pause features to the sim.
There's no UI feedback for this yet other than the log messages.

https://github.com/dcs-liberation/dcs_liberation/issues/1704
2021-11-02 23:34:51 -07:00