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

89 Commits

Author SHA1 Message Date
f7aea3c0a8 perf(parser): tokens read from a memory buffer instead of a stream, plain numbers converted with from_chars, token queue without per-item allocations; stream state reported by eof() and ok() kept as it was 2026-10-05 23:51:11 +02:00
0ae0aecde8 fix(scenery): binary terrain files named by terrain directives loaded once and only as a complete set, with fallback on the default SBT or the text files; default SBT no longer ignored and rewritten on every load 2026-10-05 23:51:01 +02:00
maj00r
220fd0f37e feat(editor): Polish translation of the track editor, loaded from lang/editor_<lang>.po next to the simulator translation 2026-10-05 01:21:11 +02:00
3ce9102da0 feat(roads): level crossings, spawn and removal points for road vehicles, deleting points of a road 2026-10-04 00:31:44 +02:00
daeed40f15 feat(roads): junctions, height above the ground and rounded profile following the terrain 2026-10-03 20:28:37 +02:00
2f417fddcc feat(roads): road node with generated lanes, surface and markings 2026-10-03 17:35:08 +02:00
maj00r
78c4b9f6df feat(editor): add orthographic top view toggle 2026-10-03 02:41:34 +02:00
968594c3e9 feat(editor): include database, placing .inc templates from the node bank 2026-10-02 23:57:35 +02:00
3199f3796e feat(editor): layers window, scenery save and include descriptions 2026-10-02 22:40:52 +02:00
73f2f68aa0 feat(editor): edit session (-edit) and scenery layers 2026-10-02 21:29:18 +02:00
jerrrrycho
176427f96b refactor: sonar c++20 changes (#185) 2026-09-28 21:08:15 +02:00
jerrrrycho
4137f5504a fix: sonar sast fixes - sonar.yml, nosonar, linux chmod modification 2026-09-28 21:07:53 +02:00
jerrrrycho
8fbb482350 feat(materials): texture randomization for loads
* feat(materials): texture randomization for loads
2026-09-27 00:09:16 +02: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
1c2f397fc5 seed from ini can be word 2026-09-14 18:36: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
76eede79aa Merge pull request #154 from MaSzyna-EU07/uart-independent-dynamic-brake
Add independent dynamic brake support (eg. Vectron) to UART controllers
2026-09-05 20:04:34 +02:00
maj00r
0aceb120e2 make targetfps great again 2026-08-25 18:03:55 +02:00
Ryba04
72f932e5d9 Add independent dynamic brake support (eg. Vectron) to UART controllers 2026-08-16 21:34:22 +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
maj00r
5fce417a51 fix: guard Random/LocalRandom against inverted min>max bounds
std::uniform_real/int_distribution has UB when min>max. The old "fancy Random"
used interpolate(a,b,t) which tolerated a>b; the migration to
std::uniform_real_distribution did not, and only one inverted call site was
fixed by hand. Swap the bounds inside Random()/Random(int)/LocalRandom() so
every call site is safe, and reorder the two inverted literal calls in
Driver.cpp (fActionTime buzzer / departure delay) for readability.
2026-07-02 00:37:52 +02:00
maj00r
03bfbb1345 fix: restore min>max tolerance lost in clamp->std::clamp migration
The dumb3d->glm / utilities-simplification refactor replaced the old custom
clamp() (which tolerated Lo>Hi, returning the upper bound) with std::clamp,
where inverted bounds are undefined behaviour. Only a few sites were patched
afterwards, by hand, with std::minmax plumbing (incl. a stray `static` inside
a per-axle loop). Others silently produced wrong results in the AI braking /
acceleration path.

Add a safe_clamp() helper (normalizes inverted bounds) and use it ONLY where
Lo<=Hi cannot be proven at compile time (config min/max pairs, sign-dependent
expressions, container underflow). Sites with constant bounds or [0, x>=0]
keep std::clamp. Remove the manual std::minmax workarounds and rewrite the
damaged-track jolt code value-first.
2026-07-02 00:37:52 +02:00
80c3feac03 Merge branch 'master' of https://github.com/MaSzyna-EU07/maszyna 2026-06-30 23:35:46 +02:00
4867f60a65 parser: keep UTF-8 multibyte chars intact when lowercasing tokens 2026-06-30 23:35:33 +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
1aac9b4e76 Merge pull request #111 from MaSzyna-EU07/opengl-instancing
Some rendering improvements
2026-06-16 23:09:12 +02:00
306ed64f38 Merge pull request #110 from xwizard/macos-arm64-build
Add macOS ARM64 build support
2026-06-16 11:15:46 +02:00
1be56de0fa Add sleepermodel optional parameter for tracks 2026-05-19 22:10:47 +02:00
Mateusz Włodarczyk
dd412894bb Add macOS ARM64 build support
Three small source tweaks that let the OpenGL renderer build and run
on Apple Silicon without affecting the Windows/Linux paths:

- stdafx.h: use GLM_FORCE_NEON on ARM64 instead of GLM_FORCE_AVX2.
  AVX2 pulls <immintrin.h>, which clang on ARM64 rejects because
  the x86 intrinsics are unimplemented.
- utilities/utilities.cpp: provide an Apple libc++ fallback for
  Now() using localtime_r + strftime, since
  std::chrono::current_zone() is not yet implemented there.
- audio/audio.h: prefer Khronos-style <AL/al.h> headers when they
  are on the include path (brew openal-soft) and fall back to the
  deprecated Apple OpenAL.framework's <OpenAL/al.h> only otherwise.
2026-05-19 10:45:18 +02:00
Christopher Kwiatkowski
3707a7845b Merge pull request #1 from docentYT/fix-clamp-exception
Merge with fix-clamp-exception
2026-05-12 17:01:47 +02:00
docentYT
a787bdd77c fix min max in Random 2026-05-12 16:56:48 +02:00
docentYT
be91c4da70 Fix C4566 2026-05-12 16:36:32 +02:00
docentYT
6542021253 Optimize substr_path implementation and change return type to sd::string 2026-05-07 12:59:57 +02:00
f4f4897798 Revert substr_path function 2026-05-06 22:20:32 +02:00
cde62d42e3 Merge pull request #99 from docentYT/utilities-simplification
Utilities simplification
2026-05-06 18:35:29 +02:00
docentYT
5367cb9940 Merge remote-tracking branch 'upstream/master' into utilities-simplification 2026-05-05 23:08:43 +02:00
Christopher Kwiatkowski
112c714f79 Resolve conflict 2026-05-04 11:47:38 +02:00
docentYT
d75301f3c7 Add once again parser optimizations 2026-05-04 11:45:44 +02:00
Christopher Kwiatkowski
d64dfe29bf Merge branch 'master' into faster-parser 2026-05-04 11:39:19 +02:00
docentYT
e8335a316b Fix not all cars are loaded 2026-05-04 11:31:42 +02:00
3a42a8c158 Revert "Reduce string creations and deletions" 2026-05-04 01:24:11 +02:00
e7edf601c2 Merge pull request #100 from docentYT/faster-parser
Reduce string creations and deletions
2026-05-04 00:03:41 +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
cef6b258a1 Reduce string creations and deletions 2026-05-02 22:17:20 +02:00
docentYT
7081dab3c2 Replace RadToDeg and DegToRad with glm::degrees and glm::radians 2026-05-02 14:51:13 +02:00