maj00r
978b99b7e5
feat(scenery): models laid along curves (sweep nodes), bent to follow the paths or repeated along them, loaded and saved with the scenery; trainsets put on a path while the simulation runs; trainset turned around by reversed after its header: the first vehicle stays at the offset and leads towards point 1, the rest stands behind it; launcher keeps reversed trainsets and can turn one around; memory cells saved with the new name of the path they name; events tell their targets and the events of a multiple event; renderer tells whether the cursor is over a surface; vehicle placed in the editor entered when the driving goes on
2026-10-06 22:19:32 +02:00
c4a22eabd5
feat(editor): nodes placed with the brush and the area fill go without names; name of a model instance set in the node properties and written to its definition on save; redo of a deletion finds nodes which have no name
2026-10-06 21:58:57 +02:00
90c5420396
perf(scenery): runs of model instances read straight from the text by a reader made for them, shared between threads; anything the reader doesn't cover left to the parser; model and skin located once for a run of instances; lookup of nodes by uuid filled on load only for a scenery opened for editing
2026-10-06 21:58:49 +02:00
96cd3e32ef
feat(terrain): file.binary.terrain.checksum setting for the check of binary terrain files against their text: full (length and checksum), simple (length, the default), off
2026-10-06 19:11:48 +02:00
e8c00b8a2d
perf(uuid): text form of an uuid made without a string stream, same output
2026-10-06 03:35:06 +02:00
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