17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 09:49:19 +02:00
Commit Graph

58 Commits

Author SHA1 Message Date
e50b05394b Merge branch 'master' into feat/uart-2.0 2026-09-19 22:14:43 +02:00
314595e8f0 hardware protocol v2: make the hello handshake idempotent
A device which doesn't hear the welcome repeats its greeting. Minting a
fresh session for every repeat left both ends chasing each other's
session ids: the device eventually answered with the id it had been
given, the simulator had already moved on and rejected it as
INVALID_SESSION, the device restarted the handshake, and so on twice a
second for as long as the link was up.

The same greeting arriving on a session which has not been used yet is
now answered with the session it already has, and only a different
device, or one whose session had progressed, gets a new id. Repeated
greetings are counted as handshakes and shown in the debug panel, so the
condition which causes them stays visible instead of flooding the log.
2026-09-17 15:01:58 +00:00
maj00r
3fa3853018 fix for sonar 2026-09-14 22:51:33 +02:00
e7b64c7397 Merge branch 'random-seed-entropy' of https://github.com/MaSzyna-EU07/maszyna into random-seed-entropy 2026-09-14 19:28:45 +02:00
788135cc2d Improve random engine entropy and clean up random engine initialization 2026-09-14 19:26:24 +02:00
maj00r
2945f3f9b2 use random_device for local generator 2026-09-14 19:11:07 +02:00
maj00r
ff3daea78c seed the random engines from the system pool, not std::random_device 2026-09-14 18:26:16 +02:00
eed44dc858 hardware protocol v2.1: device log, diagnostic routines, manual links
Three additions, all driven from the simulator debug panel.

DEVICE_LOG lets a controller send text lines; they reach the simulator log
and a per connection view in the panel which keeps the last 64 of them.

Diagnostic routines: a controller lists the procedures it offers, the
operator picks one from a drop down and starts it, and the controller
reports progress and the result. While a routine runs the controller can
ask the simulator to show a message box with its own text and buttons and
gets back which one was pressed, which is what a valve or gauge
calibration needs. The message box appears whether the debug panel is
open or not.

Links can now be disconnected and reconnected by hand: disconnecting
closes the serial port so the controller can be reprogrammed, and the
session is rebuilt from scratch on reconnect. Ports which appear while
the simulation runs can be picked from a refreshed list, given a baud
rate and added as a new controller, so the manager now starts even with
no uart2 entries in eu07.ini.
2026-09-06 11:29:26 +00:00
91be90548f hardware protocol v2: configuration, wiring and debug panel
Adds the WITH_HARDWARE_PROTOCOL_V2 build option and the eu07.ini entries
which configure it: uart2 declares a serial link and may be repeated for
several controllers, the remaining uart2* entries tune frame size,
heartbeat, rate limits and logging. UART v1 is untouched and both may be
active at the same time on different ports.

The driver mode starts the manager when at least one link is configured
and pumps it from the input polling loop, and the debug panel gains a
Hardware Protocol v2 section reporting link and session condition,
packet rates, round trip time, protocol and transport error counters and
whatever diagnostics the device itself reports, with switches for
protocol and frame logging.
2026-09-05 20:35:38 +00:00
jakubg1
ba19db8715 Revert "Remove training card window"
This reverts commit 363b50c9c2.
2026-09-02 12:32:35 +02:00
jakubg1
363b50c9c2 Remove training card window
This was a leftover from attempts at modifying MaSzyna for professional simulators.
Interaction with this window could cause a crash.
2026-08-23 22:37:33 +02:00
Sebastian Krzyszkowiak
22361eec1d Fix compilation with discord-rpc turned off (#135)
Closes #55
2026-07-15 21:50:16 +02:00
combolek
d863ec18c3 uilayer: Implement ui.bg.opacity setting (#139)
uilayer: Implement up ui.bg.opacity setting
2026-07-12 00:41:25 +02:00
0207c3f53c Merge pull request #128 from dos1/first-frame-pause
drivermode: Make sure to draw the first frame before pausing
2026-07-02 09:58:05 +02:00
e3ccdd98ab Merge pull request #127 from dos1/randomseed
Initialize random seed early in the init sequence
2026-07-02 09:57:46 +02:00
Sebastian Krzyszkowiak
f8339d9bfb drivermode: Make sure to draw the first frame before pausing
Otherwise the screen stays empty when the game is launched paused.
2026-07-02 09:37:07 +02:00
Sebastian Krzyszkowiak
86e91b187a scenarioloaderuilayer: Make the bottom gradient smoother
Since gamma factor is used, we need more than 256 steps to make
the gradient smooth.
2026-07-02 06:49:52 +02:00
Sebastian Krzyszkowiak
8b47d2af51 scenarioloaderuilayer: Scale the loading screen to the window size 2026-07-02 06:49:52 +02:00
Sebastian Krzyszkowiak
c98441d1aa Initialize random seed early in the init sequence
Network client will overwrite the seed if necessary.
2026-07-02 03:14:54 +02:00
d60841944d Merge pull request #124 from xwizard/refactor/user-config-path
refactor: extract user_config_path() helper
2026-06-30 22:35:53 +02:00
Mateusz Włodarczyk
fe603f15eb refactor: extract user_config_path() helper
Consolidates platform-specific config-directory logic (APPDATA on Windows,
~/Library/Application Support on macOS, ~/.config on Linux) into a single
user_config_path(filename) function in utilities/utilities.{cpp,h}, removing
copy-pasted #ifdef blocks from application.cpp, editor/editorSettings.cpp,
input/{keyboard,gamepad,drivermouse,uart}input.cpp.
2026-06-30 21:30:36 +02:00
jerrrrycho
d85096f64d reformat: remove redundant parentheses 2026-06-30 21:19:46 +02:00
Sebastian Krzyszkowiak
2f187b470f drivermode: Allow to (un)set picking mode by combining Alt with Shift/Ctrl
Pressing Alt toggles picking mode. This is fine for keyboard and mouse usage,
but some use cases, such as disabling picking mode when a finger is placed
on a thumbstick and enabling it back when it's lifted, require finer control.
Allow to always enable picking mode when pressing Alt with Shift, and to always
disable picking mode when pressing Alt with Ctrl.
2026-06-30 06:14:43 +02:00
jerrrrycho
7a32e7e9ab Merge pull request #113 from MaSzyna-EU07/refactor-nullptr
refactor: replace null with nullptr
2026-06-29 13:40:06 +02:00
jerrrrycho
bf147dd155 refactor: replace null with nullptr 2026-06-29 02:48:25 +02:00
75461eaf86 World Streaming Part 1 2026-06-18 18:18:02 +02:00
449609d817 Snap to ground || New terrain system || Terrain sculping || Mesh simplification 2026-06-17 08:56:42 +02:00
5a39ed5193 ImGuizmo System OpenGL 2026-06-17 01:19:59 +02:00
3bed2212d7 Editor settings for New/Legacy camera controll 2026-06-16 23:53:01 +02:00
c0abea1473 Merge pull request #109 from docentYT/fix-compilation-warnings
Fix compilation warnings
2026-06-16 11:14:25 +02:00
docentYT
be91c4da70 Fix C4566 2026-05-12 16:36:32 +02:00
docentYT
4c7cf22d06 Use texture id casting recommended by ImGui wiki 2026-05-12 00:18:11 +02:00
docentYT
373c04c0b7 Add missing return 2026-05-12 00:12:55 +02:00
docentYT
991fb02414 Remove function declaration that has no implementation and is not used 2026-05-12 00:05:36 +02:00
docentYT
4e0b4e6ff6 Check if Train pointer is not nullptr 2026-05-11 23:48:13 +02:00
3480d1c3a4 Replace wrap360 with clamp_circular 2026-05-10 22:49:58 +02:00
3419666070 scale/endscale/localscale per node model 2026-05-10 13:12:49 +02:00
docentYT
5367cb9940 Merge remote-tracking branch 'upstream/master' into utilities-simplification 2026-05-05 23:08:43 +02:00
docentYT
13c7317f6e Do not allow implicit cast for inline std::string to_string(bool Value) and change to_string to std::string for non boolean values 2026-05-03 15:49:29 +02:00
docentYT
7081dab3c2 Replace RadToDeg and DegToRad with glm::degrees and glm::radians 2026-05-02 14:51:13 +02:00
docentYT
ca699d117f Remove not needed includes 2026-05-02 14:40:31 +02:00
bae20a69e8 Bring back old simulator console as ini option showsystemconsole 2026-05-01 23:51:57 +02:00
docentYT
d1f16411a1 Replace clamp with std::clamp 2026-05-01 22:14:29 +02:00
docentYT
9c27b54960 Simplify len_common_prefix 2026-05-01 13:57:33 +02:00
docentYT
350123fb9e Replace ExchangeCharInString with std::ranges::replace 2026-05-01 00:43:22 +02:00
docentYT
ee3af0bf18 Change RandomInt to Random overload and reuse global random engine. 2026-05-01 00:25:16 +02:00
docentYT
ca839652bf Use the sq function to force constexpr expressions for numeric literals and enhance readability 2026-04-28 13:23:14 +02:00
docentYT
cba106e22e Use glm::length2 instead of glm::length where possible 2026-04-27 23:27:08 +02:00
docentYT
fae68642bc use glm instead of Math3D in vehicle
WARNING: Model rotation is broken
2026-04-27 13:07:38 +02:00
docentYT
2ed1e63416 use glm instead of Math3D in editormode 2026-04-26 22:41:54 +02:00