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

3323 Commits

Author SHA1 Message Date
ceae93eec5 fix(roads): lane transitions drawn as road with an island or a closed zone, end faces and rounded island ends, closed zone stripes on curves, banks applied to the whole road; junction banks to the ground and pedestrian crossings 2026-10-04 03:25:32 +02:00
maj00r
9bd8226c51 Fix the GCC 13 and MSVC builds: no brace-initialised reference from reference_wrapper, no near/far names 2026-10-04 02:49:05 +02:00
maj00r
ac82db8178 Structure gauge: map scan in slices over the frames with progress and cancel, skip the triangles far from the lines 2026-10-04 02:35:00 +02:00
maj00r
818fc60e21 Structure gauge: no road gauge along the pavements 2026-10-04 02:33:11 +02:00
maj00r
e69601dfa0 Structure gauge: no red highlight of the intruding triangles 2026-10-04 02:27:52 +02:00
maj00r
1ab5e1e8c3 Structure gauge: camera along the track at the height of the hit, close to it 2026-10-04 02:25:12 +02:00
maj00r
ce0c311106 Structure gauge refactor: outline ring, tilt in the sections, outline choice, shared track line 2026-10-04 02:22:57 +02:00
maj00r
ae8a046f79 Structure gauge: wheel zone in the common lower part, depth as the distance from the outline 2026-10-04 02:17:50 +02:00
maj00r
7e78ca8714 Structure gauge: the lower part turns with the plane of the rail heads on cant 2026-10-04 02:12:14 +02:00
maj00r
0b5b69d76e Structure gauge button in the Track tab of the toolset 2026-10-04 02:05:31 +02:00
maj00r
e4e3aad853 Structure gauge: G1/G2/GA/GB/GC installation gauges, road clearance, Toolset button 2026-10-04 02:00:43 +02:00
27a94509c4 feat(roads): right of way and lane turns at junctions, road weights, kerbs, medians and forking roads, banks to the ground, roundabouts, pedestrian crossings, spawn sets by count; fix(editor): model skin export, placement on the ground under the orthophoto 2026-10-04 01:55:35 +02:00
maj00r
d57215877f feat: structure gauge window in the menu bar, gauge tunnel around the hit, fixed reach 2026-10-04 01:54:17 +02:00
maj00r
208ad3400d fix: structure gauge measured from the rail head, not the rail foot of the scenery points 2026-10-04 01:48:11 +02:00
maj00r
f2e727ce9a feat: structure gauge violations on the whole map, camera goes to them 2026-10-04 01:44:04 +02:00
maj00r
cf8062ea96 feat: GPL-1/GPL-2 structure gauges, widening run-in ahead of the curves 2026-10-04 01:40:25 +02:00
maj00r
b0c363b586 feat: structure gauge along the line of the selected path in the OpenGL view 2026-10-04 01:27:41 +02:00
maj00r
661c211b2e feat(editor): tooltips of the track fields, textures applied on leaving the field 2026-10-04 01:04:41 +02:00
maj00r
17725b6527 feat(editor): mode bar of the track window, key hints and values of the change at the cursor 2026-10-04 01:01:49 +02:00
maj00r
fc195880e1 refactor(editor): one place for the orthographic projection of the editor view 2026-10-04 00:52:14 +02:00
maj00r
7d87fef7a0 refactor(editor): anchor on the nearest place of a path 2026-10-04 00:51:05 +02:00
maj00r
07994a578c refactor(editor): stored bindings read apart from their registration, one way to open a profile route 2026-10-04 00:50:08 +02:00
maj00r
21082c4a5f refactor(editor): split the vertical profile window 2026-10-04 00:48:42 +02:00
maj00r
eb5b2e8919 refactor(editor): split the infrastructure window 2026-10-04 00:48:00 +02:00
maj00r
c95c374082 refactor(editor): split the route design panel 2026-10-04 00:47:00 +02:00
maj00r
1f381bbb48 refactor(editor): split the profile canvas into navigation, editing and drawing 2026-10-04 00:45:54 +02:00
maj00r
0879f1528e refactor(editor): named overlay colours 2026-10-04 00:43:41 +02:00
maj00r
20fa5613a7 refactor(editor): shared gizmo frame, screen picking and history trimming 2026-10-04 00:42:47 +02:00
maj00r
9cd0f0b1a7 refactor(editor): shared writers of the path definitions 2026-10-04 00:39:30 +02:00
maj00r
62f07c8fbb refactor(editor): one edit helper for the definitions rewritten on save 2026-10-04 00:39:30 +02:00
maj00r
c85a52d5b1 refactor(editor): track observer instead of the function hooks 2026-10-04 00:37:26 +02:00
maj00r
7b8d809078 refactor(editor): drop unused editor state and vertical leftovers of the route design 2026-10-04 00:35:40 +02:00
maj00r
e5c91d8a1a refactor(editor): shared plan geometry and formatting helpers 2026-10-04 00:33:44 +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
maj00r
8778353b22 feat(editor): infrastructure bound to the paths follows their changes 2026-10-04 00:14:03 +02:00
maj00r
7371b18910 feat(editor): vertical profile editor, grade lines kept in the scenery 2026-10-04 00:14:03 +02:00
maj00r
cdd5c242d1 feat(editor): curves take over the adjoining straights 2026-10-04 00:14:03 +02:00
d37dff11e1 fix(editor): ground lookups sorted once instead of walking every terrain model, orthophoto kept under the roads; feat(roads): junction sides, stop lines and junction options 2026-10-03 23:13:01 +02:00
502c609b13 feat(roads): single piece widening with generated transitions, point height tools, fix for the frame rate drop in the road tools 2026-10-03 22:18:53 +02:00
1d4c448e30 feat(roads): junctions made by leading a road out of another, width and height set at road points 2026-10-03 21:20:00 +02:00
daeed40f15 feat(roads): junctions, height above the ground and rounded profile following the terrain 2026-10-03 20:28:37 +02:00
e4083d507f feat(roads): editor menu and window for building roads, lanes shown as trajectories 2026-10-03 18:21:10 +02:00
2f417fddcc feat(roads): road node with generated lanes, surface and markings 2026-10-03 17:35:08 +02:00
3eb1f42e8e fix(editor): rename lambda clashing with the windows far macro 2026-10-03 17:34:48 +02:00
pawelw
51521a135a Text displays: accept characters above 127, in windows-1250 or utf-8 (#198)
* Text displays: accept characters above 127, in windows-1250 or utf-8

A text display (sub-model of type "text") looks up the sub-model of each character
in a 256 entry table, and indexed it with a plain char. With char being signed, any
character above 127 gave a negative index: reading the text went outside the table,
and so did filling the table if a character sub-model had such a name. In effect the
displays could only show ASCII, and a text with national characters could crash.

The lookup is now keyed by unicode code point. Both the displayed text and the names
of the character sub-models are decoded as utf-8 if they are valid utf-8, and as
windows-1250 otherwise, so legacy (ansi) sceneries and models work next to utf-8
ones, and the two can be mixed. A short ansi text can be valid utf-8 by accident
(two upper case accented letters in a row will do); when both readings are possible
the one which finds more of its characters in the model is used.

The rest is unchanged: the first character of the text still isn't displayed, the
characters are still drawn in the translucent pass only. A missing text pointer no
longer gets dereferenced.

* Text displays: prepare the characters once for each text

The sequence of character sub-models was cached for the last text only, so
displays of several instances drawn in turn decoded their texts again on
every draw. It is now kept for each text the display shows; the texts of the
instances don't change, so a draw costs a single lookup.

Also the comments added in the renderers are now in English.

* Text displays: move the text decoding to utilities

utf8_to_utf32() and win1250_to_utf32(), with the windows-1250 table, now sit
next to win1250_to_utf8(). The existing function maps only the Polish letters
and passes other bytes above 127 through, so it can't serve the displays.

* Text displays: address the SonarCloud findings

std::array instead of the C-style arrays, the utf-8 sequence length worked
out in a function of its own instead of nested conditional operators,
std::byte for the bit operations, std::ranges::count_if and contains().
The character loop of the renderers moved to Render_Alpha_text(), which
takes the nesting back to the limit, and the static pasText is accessed
through the class.
2026-10-03 12:05:32 +02:00
maj00r
676bf39136 feat(editor): track editor saves changed paths to scenery 2026-10-03 02:41:35 +02:00
maj00r
38161572b4 fix(editor): switches follow cant on curves 2026-10-03 02:41:35 +02:00
maj00r
acd2f8a28a feat(editor): switches bend along curves 2026-10-03 02:41:35 +02:00
maj00r
5fba2a4a68 feat(editor): double slip auto-fits radius, click to replace 2026-10-03 02:41:35 +02:00
maj00r
7825b92190 feat(editor): add R500 double slip 2026-10-03 02:41:35 +02:00