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

3252 Commits

Author SHA1 Message Date
maj00r
a52e92bd9a fix(models): animation container derived from enable_shared_from_this publicly, so shared_from_this can reach it 2026-10-08 00:51:29 +02:00
e335b89fcb perf(tracks): geometry of neighbouring tracks of a cell which share the material drawn together, with one material bind and one upload of model data; chunks of the same geometry bank sent to the gpu in a single multi draw call 2026-10-07 17:13:32 +02:00
398fdac6a1 perf(instancing): instances of scene cells culled by copies of their bounds kept with the buckets, before the instances themselves are fetched; instances past the range of the lod stages of their model left out; identity of the instance buffer restored once per bucket instead of after each batch 2026-10-07 16:29:15 +02:00
bc99b80191 perf(reflections): environment map drawn one face per frame from the place the update began at, the first update in one go; cells beyond the range of reflected instances left out; time of the reflection pass in the renderer statistics; tracks skipped in shadow passes no longer counted as drawn 2026-10-07 16:17:13 +02:00
7b15b9a017 perf(scenery): minimap semaphores matched against the named models of a group collected once, instead of a search through all nodes of the scenery for each semaphore 2026-10-07 16:10:38 +02:00
9d6aa24af4 Merge branch 'feat/modern-editor' of https://github.com/MaSzyna-EU07/maszyna into feat/modern-editor 2026-10-06 22:53:04 +02:00
8dd666d4d8 feat(editor): array of the selected model in the toolset, after the array modifier of Blender: fixed count or fit length, relative and constant offset along the axes of the model, turn per copy, copies following the ground; the array follows its settings until something else is selected or changed, and is a single step of the undo history 2026-10-06 22:52:42 +02:00
maj00r
d4271ea7c5 fix(editor): no variables named near or far, the Windows headers define them away 2026-10-06 22:37:00 +02:00
maj00r
24923dd472 feat(editor): track editor driven by what the cursor is over: the outline and a label show what a click or a drag does, snapping to free ends on the screen, handles and ends dragged directly, no rotation gizmo; laying from a free end the same in every mode, straight with Shift, the curve of a switch going on past its diverging end; height 0 where there's no terrain; placed switch leaves the switch mode, double slips listed apart, a drive of the switch placed with it by the //$e switch description of its template; compound curves of any number of radii; dragged end of a straight fits the curve beside it; name of a path, followed by the memory cells and the includes taking it; turntable placed from a template described as one, tracks led out of it and the tracks around fitted to it, its positions written to the include; infrastructure bound to the path whose events read its memory cell; terrain made where the route has none and shaped to the formation under the ballast; models along the track over the selected path and on along the joined ones while dragged, rarely used settings folded; vehicles and trainsets placed on any path, switches included, facing the way the arrow shows; joined paths spread into the selection; New scenery in the File menu starts the editor again with the wizard; ortho zoom towards the cursor; scripted self tests; Polish translation 2026-10-06 22:19:54 +02:00
maj00r
0a3cd55e59 feat(launcher): -edit without a scenery opens the wizard of a new scenery: file name, title and centre, picked on the OpenStreetMap map of geoportal.gov.pl in PUWG 1992 or given in degrees; the scenery is written with the centre as its //$g reference and opened in the editor; a bare -edit no longer loads the scenery of eu07.ini 2026-10-06 22:19:40 +02:00
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
maj00r
084a705452 fix(vehicles): vehicle placed with a switch as its first path no longer reads the direction of a previous path it doesn't have; vehicle put back on the track keeps the direction of its axles 2026-10-06 22:19:12 +02:00
maj00r
f5d328c3a5 ci: translations of lang/ packaged with the builds; each push of a branch publishes its Windows and Linux builds as the rolling pre-release build-<branch>, downloadable without a GitHub account and removed along with the branch 2026-10-06 22:19:12 +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
4e4cbdd052 feat(terrain): terrain directive can name any number of terrain files, each processed the way a single one was 2026-10-06 18:53:27 +02:00
c904f9628f Merge pull request #204 from MaSzyna-EU07/feat/improve-loading-times
Feat/improve loading times
2026-10-06 04:32:58 +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
3a05d0d649 perf(models): replacable skins of scenery models located once for a skin name; light and season variant submodels located once for a model instead of for each instance 2026-10-06 03:35:00 +02:00
4eb14a9419 perf(scenery): node or event added to a group without searching the whole group for a duplicate, unless it already was a member of it 2026-10-06 03:34:19 +02:00
7dd5005574 feat(scenery): SBT generated again for the sceneries which name no terrain files (.txtf, .btf); a scenery naming any gets no SBT 2026-10-06 02:36:04 +02:00
2e631dcbd6 feat(terrain): binary terrain files (.btf) made out of text terrain files (.txtf) named by terrain directives, checked against length and checksum of the text and loaded section by section when needed; -btf command line conversion; SBT files no longer generated, only loaded 2026-10-06 01:55:38 +02:00
e1b91c430b fix(scenery): triangles node cut short by the end of data no longer hangs the loader 2026-10-06 01:55:29 +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
a13a5548df feat(terrain): grade line fitted to the ground under the route within the limits; editor terrain shaped to the grade line with a formation and rounded slopes, with one step back; scenery ground triangles of chosen materials converted to editor terrain and taken out of the files on save, with a dated backup of each file; crack-free simplified terrain mesh, terrain streamed as far as the scenery is drawn, the nearest chunks first; smoothing brush 2026-10-05 02:21:55 +02:00
maj00r
3731520e33 feat(tracks): track editor in one movable Tracks window with exclusive modes, a guide of what can be done in the current step and the rarely used fields folded; vertical profile window with the ground of the scenery triangles; plain pieces added at a free end, freehand only on request; curve mode edits the single curve clicked 2026-10-05 01:21:11 +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
maj00r
b07050fa52 feat(tracks): switches keep their neighbours joined on replacing, flipping and moving; events copied on splitting; circuits, overhead line, sleepers and events of the paths; curve design through the switches of a line; changes in files included more than once or with parameters reported instead of written; split of a straight at the point found, not a share of its length 2026-10-05 01:21:11 +02:00
maj00r
8f050d9c3e feat(tracks): speed check of the paths against the speed their geometry allows: radius and cant, cant ramps, curves without transitions, switch branches 2026-10-05 01:21:11 +02:00
012ffc7470 Merge branch 'feat/modern-editor' of https://github.com/MaSzyna-EU07/maszyna into feat/modern-editor 2026-10-04 21:58:19 +02:00
444e89558b feat(roads): lanes change within a road piece (lanesto), junctions of two roads from earlier sceneries are loaded as such pieces and saved as roads; the editor leads the lanes of neighbouring pieces with them 2026-10-04 05:00:52 +02:00
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