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

3076 Commits

Author SHA1 Message Date
maj00r
3fbc1aaaaf Draw the track plan on the scenery instead of on a canvas
The plan panel had its own 2D canvas, which was the wrong place for it: the
layout is drawn on the scenery. The canvas is gone. Points are laid by
clicking the ground under the cursor, the solved geometry is painted over
the rendered world through the colour pass camera, and the panel keeps only
the controls - fits, storage and what is being edited.

The left button belongs to the plan tool while it is up, so a click no
longer also picks or places a scenery node. Clicks landing on a panel stay
with the panel.

With no georeference set the plan frame and the world share an origin, so
easting runs along world x and northing against world z.
2026-08-27 19:36:55 +02:00
maj00r
db49039b9d Put the editor viewport into a top-down orthographic plan view
Opening the Plan tool now switches the whole colour pass to an orthographic
projection and pins the camera looking straight down, so the plan is drawn
against the loaded scenery rather than in a window of its own. Closing the
tool hands the camera's orientation back; leaving the editor clears the view
outright. The wheel changes how much ground fits on screen instead of moving
the camera, which with no perspective would change nothing but the clipping.

Both configured backends follow: the experimental renderer swaps the pass
projection (and fits its shadow cascades to it), the modern GL renderer uses
its existing ortho helpers. Everything reading the pass projection - the
mouse ray, the frustum test - picks the change up on its own.

The experimental renderer also publishes its colour pass camera now, which
it previously left at the interface defaults, so overlays can place world
points on screen.
2026-08-27 19:36:55 +02:00
maj00r
4bef28cf94 Add a track layout drawing board to the editor
A "Plan" panel, opened from Track layout in the editor's menu bar, draws a
niweleta the way the web frontend did: click to lay chained straights, drag
a corner to move it, and pick a fit for each gap between them. The geometry
is entirely maj0sted's - the panel gathers the input, hands the document to
solve_project and paints the rails that come back, coloured by whether they
came from a straight, an arc or a clothoid. Scenery nodes are untouched.

A fit the library cannot produce is simply absent from its answer, so the
gap is labelled as not fitting rather than left looking as though its
parameters took effect. Save/load go through the library's own document
format, so a project written here opens in the same state.

Also translates the comments added with -editor into English, matching the
files they sit in.
2026-08-27 19:36:55 +02:00
maj00r
e3237034db Give the editor a camera when it starts on its own
The scenery camera is set up by the driver mode, which never runs when the
exe starts straight in the editor - the editor then copied an untouched
global camera and rendered a black view with only the UI on top. Entering
the editor as the startup mode now initialises the camera itself, falling
back on a view above the origin for sceneries that name no camera, and
resets the timers so the loading time does not land in the first frame.
2026-08-27 19:36:55 +02:00
maj00r
94b01c8ca3 Add -editor startup so the exe comes up straight in the editor
The editor was reachable only from the driver mode with F11, which meant
loading a scenario and starting the whole simulation first. With -editor
the scenario loader hands over to the editor instead of the driver, so
physics, AI and timetables never run - only the loaded world is there to
be worked on.

Without -s the scenery from eu07.ini is used, falling back to pusta.scn
when the ini names none. F11 quits instead of popping the mode, since the
editor is now the bottom of the mode stack and popping it would leave the
rest of the frame reading an empty one. Editor entry forces free-fly even
with no vehicle to leave.
2026-08-27 19:36:55 +02:00
maj00r
a083269867 Vendor the maj0sted track layout library and link it into the editor
Drop-in copy of C:\Users\maj00r\Projects\maj0sted-master minus its web/
directory - the WASM frontend is not being ported, the editor drives the
same C++ API natively. What is left is plain C++20 with no dependencies:
domain model (niweleta, plan and profile geometry, fitting, parallelism),
project serialization, rail sampling and the editor document.

src/web/ribbon.cpp was missing from the library source list; added, since
without it the ribbon symbols never make it into the archive.
2026-08-27 19:36:55 +02:00
jakubg1
9a0b63a97c Merge pull request #133 from dos1/launcher-panel
launcher: Open on scenery list panel
2026-08-23 21:53:12 +02:00
df9ba73a88 Merge pull request #158 from MaSzyna-EU07/migrate-to-actions
Migrate to actions
2026-08-20 23:11:27 +02:00
66302bd88e Remove appveyor and update readme 2026-08-19 14:50:28 +02:00
8024c2be7b Revert "Delete appveyor.yml"
This reverts commit 8a22553e7c.
2026-08-19 14:48:03 +02:00
3c61168783 Revert "Delete azure-pipelines.yml"
This reverts commit 67bb6e1d3c.
2026-08-19 14:47:59 +02:00
67bb6e1d3c Delete azure-pipelines.yml eu07-2026.423-prerelease 2026-08-19 14:45:49 +02:00
8a22553e7c Delete appveyor.yml eu07-2026.422-prerelease 2026-08-19 14:45:33 +02:00
6b50a6aa68 Update CI configuration for Windows and Linux builds 2026-08-19 14:23:40 +02:00
1cfe44a9d3 Add Linux Python environment setup in workflow
Added a step to prepare a Linux Python environment with a virtual environment and install Pillow.
2026-08-19 14:07:30 +02:00
fee2dcea28 Fix path for vswhere.exe in build_bin.yml 2026-08-19 13:20:53 +02:00
af08beaaa8 Change push branch filter to include all branches 2026-08-19 13:17:00 +02:00
518ac093ac Rename workflow from 'Build' to 'Build binaries' 2026-08-19 13:15:29 +02:00
9d1a8244ed Add GitHub Actions workflow for building binaries 2026-08-19 13:14:53 +02:00
4dcf0abfa1 Merge pull request #157 from MaSzyna-EU07/python-add-dynamicbrakectrlpos
Add DynamicBrakeCtrlPos to python
2026-08-19 10:32:16 +02:00
4aa4918a36 Merge pull request #155 from MaSzyna-EU07/fix/default-shader-reflections
Fix default shader reflection
2026-08-19 10:03:45 +02:00
dcd87d8c80 Merge pull request #156 from MaSzyna-EU07/fix-traxx-independent-brake
Fix "Traxx" local brake
2026-08-19 10:03:11 +02:00
Ryba04
763a76d48c Expose dynamic brake controller position to python script dictionary 2026-08-19 00:55:24 +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
3b4df9bb6d Fix default shader reflection 2026-08-17 18:51:36 +02:00
Ryba04
1357afb9e1 Update C++ version in readme 2026-08-16 12:40:47 +02:00
Ryba04
7ed57d1b3b Fix assets license link in README
Updated the link for the assets license in the README.
2026-08-09 19:27:27 +02:00
Ryba04
8cd94859c3 Update assets license link in README.md 2026-08-09 19:26:24 +02:00
b70afe6a74 Merge pull request #152 from combolek/unc-path
mashadercompiler: Add support for UNC paths
2026-08-06 21:38:27 +02:00
e65b062721 Merge pull request #151 from combolek/smoke-fix
Disable GLM_FORCE_DEFAULT_ALIGNED_GENTYPES to fix graphics corruption
2026-08-06 21:23:03 +02:00
Sebastian Krzyszkowiak
f249781805 launcher: Open on scenery list panel
This is the panel that allow to quickly launch a selected scenario, so
it makes sense to show it by default.
2026-08-06 16:53:58 +02:00
combolek
1d08198d22 mashadercompiler: Add support for UNC paths
MS DXC on Windows (at least IDxcUtils::BuildArguments) does not support forward slashes in UNC paths. This change feeds it native format with backslashes.

This makes it possible to build Linux and Windows binaries from a single source on a network share.
2026-07-28 18:51:10 -07:00
combolek
a62c9d12f4 Disable GLM_FORCE_DEFAULT_ALIGNED_GENTYPES to fix graphics corruption
This is a regression introduced in 7525b54f (merged via df5a8a89), GLM_FORCE_DEFAULT_ALIGNED_GENTYPES causes visible screen corruption, particularly in the smoke from chimneys or vehicles.
2026-07-28 14:57:30 -07:00
d9eb705d4a Revert "Update GLM ref"
This reverts commit 38db27d3de.
2026-07-25 12:59:54 +02:00
38db27d3de Update GLM ref 2026-07-24 13:05:18 +02:00
8399f55e53 Enable GLM_FORCE_INLINE only for MSVC compiler
Fixes compilation under gcc 15
2026-07-24 12:53:55 +02:00
Sebastian Krzyszkowiak
8383472bbe stdafx: Only use GLM_FORCE_DEFAULT_ALIGNED_GENTYPES on MSVC (#136)
It causes the game to crash on launch while attempting to use SIMD
instructions when compiled with GCC or Clang.

Since it's known to work on MSVC and was enabled due to performance
improvement, leave it enabled there.
2026-07-21 22:57:00 +02:00
jakubg1
1929119db6 Simplify lamp logic, add new lights for 810 vehicles (#148)
Simplified lamp logic by reducing unnecessary brackets, `if` statements, ternary operators and boolean comparisons.
Added new lamps:
- `i-gear1` - 1st gear in the gearbox is active
- `i-gear2` - 2nd gear in the gearbox is active
- `i-hydrolockup` - The gearbox is locking the engine and wheels together

Additionally, fixed motor overload and differential relay lights not turning off when the battery is turned off.
2026-07-21 22:44:04 +02:00
combolek
c8e5360d87 state_manager: Optimize/unify track curve derivative computation (#147)
In TSegment there were two different formulas for a derivative. Most places called GetFirstDerivative() that used the direct formula from the curve points. However RaPositionGet() had its own calculation based on pre-computed cubic polynomial coefficients. This latter method is faster and simpler, so change GetFirstDerivative() to use it and change RaPositionGet() to just call GetFirstDerivative().
2026-07-20 00:02:02 +02:00
combolek
b17a86bc18 state_manager: Optimize computation of position from distance along the track (#141)
TSegment::GetTFromS() is a significant hotspot in the non-rendering part of the state_manager update (about 13%). This change introduces a FastGetTFromS() version that interpolates from precomputed values instead of doing the whole calculation on every call. Computing position from track distance is now done in constant time. This reduces the contribution to about 0.3%.
2026-07-19 15:06:56 +02:00
jerrrrycho
8fbdf21ab8 ci: remove potential script injection (#145) 2026-07-19 14:36:09 +02:00
jerrrrycho
f3881a2432 ci: create an individual check for sonar workflow in pull requests (#144) 2026-07-19 12:04:57 +02:00
jerrrrycho
44113e84de ci: fix sast from forked repos (#142) 2026-07-19 10:22:51 +02:00
Sebastian Krzyszkowiak
22361eec1d Fix compilation with discord-rpc turned off (#135)
Closes #55
2026-07-15 21:50:16 +02:00
Sebastian Krzyszkowiak
c58d218fe7 opengl33renderer: Don't render stars with strong fog (#134)
Stars aren't currently affected by fog. Band-aid it and don't render them
at all when fog is stronger than 500m.
2026-07-15 21:48:27 +02:00
Mateusz Włodarczyk
a961393df9 macOS: guard mipmap generation call on legacy GL path (#132)
glGenerateMipmap is null on the legacy GL path in some contexts; use the
GL_GENERATE_MIPMAP fallback instead of crashing.
2026-07-13 10:15:39 +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
jerrrrycho
8d3e10c93b Merge pull request #138 from MaSzyna-EU07/ci-incorporate-sonarcloud
ci: create github actions for sonar
2026-07-11 16:51:33 +02:00
jerrrrycho
9cfbbc567e ci: create github actions for sonarqube 2026-07-11 13:44:30 +02:00