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

743 Commits

Author SHA1 Message Date
jerrrrycho
b6349b76e3 refactor(sonar): use structured bindings for pair access (cpp:S6005)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:06:32 +02:00
jerrrrycho
9c7043d013 refactor(sonar): remove unused variables, captures and private fields (cpp:S1481, cpp:S1068)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:03:19 +02:00
jerrrrycho
ce786c22ce refactor(sonar): remove dead stores (cpp:S1854)
Side effects (e.g. LISTLINE++) are kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:58:05 +02:00
jerrrrycho
5a806223e7 refactor(sonar): document intentionally empty functions (cpp:S1186)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:56:34 +02:00
jerrrrycho
41e802eb7a refactor(sonar): remove redundant parentheses (cpp:S1110)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:55:46 +02:00
jerrrrycho
8f89dcefcd refactor(sonar): use auto where the type is spelled out on the right (cpp:S5827)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:52:25 +02:00
jerrrrycho
95bc9bd511 refactor(sonar): use try_emplace for map insertion (cpp:S6030)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:51:29 +02:00
jerrrrycho
6547f7e967 fix(sonar): give polymorphic base classes virtual destructors (cpp:S1235)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:48:07 +02:00
jerrrrycho
9b89a5d887 refactor(sonar): scope single-use variables in if init-statements (cpp:S6004)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:44:18 +02:00
jerrrrycho
f8104bd0dd refactor(sonar): merge collapsible nested if statements (cpp:S1066)
Comments that preceded the inner if are kept above the merged statement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:39:11 +02:00
jerrrrycho
3198cabc78 refactor(sonar): declare non-mutating member functions const (cpp:S5817)
Virtual functions are left untouched so overrides keep matching.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:26:48 +02:00
jerrrrycho
1f256e9593 refactor(sonar): mark unused parameters (cpp:S1172)
Unused names are commented out; parameters used only on some platforms
are marked [[maybe_unused]].

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:18:45 +02:00
jerrrrycho
8c23c1fe2b refactor(sonar): make narrowing conversions explicit (cpp:S5276)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:16:28 +02:00
jerrrrycho
c831bb543c refactor(sonar): remove redundant access specifiers (cpp:S3539)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:05:48 +02:00
jerrrrycho
3d7a06f425 refactor(sonar): prefer using over typedef (cpp:S5416)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:05:42 +02:00
jerrrrycho
65ded920d2 refactor(sonar): remove empty statements, one declaration per statement (cpp:S1116, cpp:S1659)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:03:30 +02:00
jerrrrycho
8ce68e3d41 refactor(sonar): use override instead of redundant virtual (cpp:S3471)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:55:56 +02:00
jerrrrycho
79bd0c8e91 fix(sonar): addressing reliability/security issues (#202) 2026-10-04 20:00:13 +02:00
jerrrrycho
76a39af8c2 fix: bound MotorParam and MPTRelay indices (#196) 2026-10-01 20:21:01 +02:00
jerrrrycho
06078ddab9 fix: other sonar sast fixes (#193) 2026-10-01 13:30:25 +02:00
jerrrrycho
f05b58b0e9 Revert "fix: yet other sonar sast fixes"
This reverts commit 403a6d1f9f.
2026-10-01 08:01:23 +02:00
jerrrrycho
403a6d1f9f fix: yet other sonar sast fixes 2026-10-01 07:58:28 +02:00
pwarszawski
96be688d13 Send the reverser position, not the absolute direction, when activating a cab
CabActivisation() passed DirAbsolute (DirActive * CabActive) as the value of the
"Direction" command, which every receiving vehicle stores as its own DirActive.
Every other sender passes DirActive. With the cab at the rear end (CabActive = -1)
the two have opposite signs, so the other units got their reverser flipped
against the controlling one.

It shows whenever a rear cab is activated after the reverser has been set:
- the AI takes over an occupied cab (TakeControl() calls CabActivisation(true)),
  e.g. an EN57 inserted with reardriver and a starting velocity: the motor car
  drives the train backwards;
- a vehicle without automatic cab activation (SA134) driven by the AI from the
  start: the cab is activated by a driver hint after the reverser is set, and
  the two units pull against each other.

Fixes #169.
2026-09-30 15:00:12 +02:00
6befd69968 Merge pull request #149 from combolek/getpf
state_manager: Optimize computation of pressure flow for Oerlikon ESt valves
2026-09-04 16:39:49 +02:00
jakubg1
f8cb5e4431 Fix EP fuse auto-(dis)engaging
When the Autorewident function is enabled, the EP fuse switch will no longer automatically engage or disengage if the player is controlling the train. This would happen for example when approaching a station.
2026-08-24 00:24:15 +02:00
Ryba04
7cc6a67399 Followed sonar's suggestions 2026-08-18 20:34:37 +02:00
Ryba04
7d3b9a7360 Fix "Traxx" local brake 2026-08-18 00:04:31 +02:00
combolek
19441b5e91 Convert Przekladniki to std::array 2026-07-28 09:28:10 -07:00
combolek
12c583f418 Fix some SonarQube warnings 2026-07-28 08:54:33 -07:00
combolek
00bb44a789 state_manager: Optimize computation of pressure flow for Oerlikon ESt valves
TNESt3::GetPF() is a *major* hotspot in simulation state update. The leading cause is the use of typeid (RTTI) which is implemented in the C++ runtime essentially as a string compare. This change eliminates the use of typeid and instead caches statically typed pointers for the few TPrzekladnik subclass objects that need their parameters adjusted in TNESt3::GetPF(). As a bonus some virtual methods on TPrzekladnik can now be removed. Overall this change reduces the TNESt3::GetPF() contribution from about 25% to 16%.
2026-07-26 21:19:38 -07: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
jerrrrycho
d85096f64d reformat: remove redundant parentheses 2026-06-30 21:19:46 +02:00
jerrrrycho
bf147dd155 refactor: replace null with nullptr 2026-06-29 02:48:25 +02:00
docentYT
e06ae37f47 replace new clamps with std::clamp and to_string with std::string 2026-05-05 23:40:59 +02:00
docentYT
5367cb9940 Merge remote-tracking branch 'upstream/master' into utilities-simplification 2026-05-05 23:08:43 +02:00
cb4b6b9a4f Separate electrodynamic and localbrake levers 2026-05-03 21:51:16 +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
59347af5a0 Replace some std::min and std::max combinations with std::clamp 2026-05-02 19:38:14 +02:00
docentYT
ca699d117f Remove not needed includes 2026-05-02 14:40:31 +02:00
docentYT
3628eb0fc3 Replace interpolate with std::lerp and glm::mix 2026-05-02 01:31:38 +02:00
docentYT
d1f16411a1 Replace clamp with std::clamp 2026-05-01 22:14:29 +02:00
docentYT
ec1dfae953 Replace starts_with and ends_with with string class methods 2026-05-01 17:31:11 +02:00
docentYT
337e750ed1 Replace Max0R and Min0R with std::max and std::min 2026-04-30 23:47:32 +02:00
7acc34df3e Merge pull request #97 from docentYT/migrate-from-dumb3d-to-glm
Migrate from dumb3d to glm
2026-04-28 19:46:46 +02:00
docentYT
d5d1825e38 Remove dumb3d 2026-04-27 23:03:47 +02:00
129924315d Cleanup hamulce.cpp/h with Mover.cpp/h 2026-04-27 18:21:55 +02:00
dcfd34908a Revert "Add power smoothing for inverter based vehicles"
This reverts commit 40bbbc6210.
For some reason it broke SA13x controllers lol
2026-04-17 20:08:04 +02:00
593e4bcf36 Merge branch 'master' into master 2026-04-14 21:01:04 +02:00
ae056f2bbd Merge pull request #79 from xingzihai/engine-overheat
feat: add EngineMaxTemperature support for diesel locomotive overheat detection
2026-04-14 20:49:37 +02:00
jakubg1
0d010e8c6a Simplify derailing logic, derail reason enum
- The `TMoverParameters::derail()` function has been renamed to `::Derail()`, with a capital D.
- All derail events now use that function.
  - Simplified and unified the logic behind different derail types.
  - The `dtrack_freerail` track type is now slightly increasing the chance of derailing on a tight curve, as it was the intention.
- A new `DerailReason` enum has been created which holds all derail types.
- The `DerailReason` field in the `TMoverParameters` class has been removed.
  - This was a transient field which is not necessary anymore.
  - The logging functionality as such has been moved from `DynObj.cpp` to `Mover.cpp`.
2026-04-04 02:05:49 +02:00