Skip to content

Editor 0.8.9-pre: openOMSI 0.3.45, bus stops and route authoring - #9

Merged
DarkBat2709 merged 958 commits into
codex/editor-0.8.0-prefrom
codex/editor-0.3.45-lines
Oct 30, 2026
Merged

DarkBat2709 merged 958 commits into
codex/editor-0.8.0-prefrom
codex/editor-0.3.45-lines

Conversation

@DarkBat2709

@DarkBat2709 DarkBat2709 commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Updates the standalone editor from openOMSI 0.3.33 to 0.3.45 and adds bus stops, entry points, and basic route/line authoring. Users can place and name stops, save and reload the map, then choose stops in travel order and create native TTData with departure/duration and an optional existing AI group. Existing duties are preserved and disconnected paths are rejected.

Both PDF guides now contain 41 pages with current German/English screenshots, the new launcher navigation and route workflow. Release packages use version 0.8.9-pre.

Validation: local app (640), simulation (853), scene (230) and launcher-core (116) tests passed; Linux release build, self-test, route UI GPU snapshots, Grundorf rendering, translation and package checks passed. Windows CI packaging and renderer checks are required before publication.

Limitations: no HOF/IBIS or announcement generation, no editing existing routes, alternative waypoints or automatic full-day schedules. A full manual route drive and Windows gameplay test remain pending.

Release audit corrections: zstd is updated to 0.14.3 (zstd-safe 8.2.0, zstd-sys 2.1.2); 159 related LAN/protocol tests pass. Ten secret-scan findings are SHA-256 source-file hashes verified against their historical blobs; only exact fingerprints are ignored. Size baselines are explicitly adjusted for the merged 0.3.45 + retained editor code (including model/lib.rs unchanged from upstream); dependency boundaries and growth limits remain enforced. Full rationale is in docs/PRUEFUNG_0.3.45.md.

trolley813 and others added 30 commits October 21, 2026 12:00
…her-parity

feat: the iPhone, iPad and Mac app launcher has everything the desktop launcher has
…avigation-pr

feat(navigation): add map waypoint routing and entry markers
…layer-tolerance-pr

fix: a layered dashboard display no longer covers the graphic just behind it
… traffic table gating and TACK limits, mirror and vsync defaults, trolley wire caching, server list rules, translations
…g-1020

# Conflicts:
#	crates/omsi-app/locales/app.yml
Signed-off-by: Isaac S. <107325320+isaacsa2@users.noreply.github.com>
…apped

fix: the game takes much less memory again: the navigator's map is read from its cache file as needed
…s-voice-players-round

Trolleybuses, voice chat, player list, public server list, beam shadows and fixes
turbo-devv and others added 29 commits October 25, 2026 14:57
* A flashlight on Alt+F: a lamp held beside the eye that shines where the view looks, in the Vanilla and the Enhanced pictures

F alone is the bus's high beam, so the key is Alt+F; `flashlight` in keyboard.cfg's [game] and a controller button switch it too. The light is a 14/42 degree spot of 50 m in a warm white, put first among the lights so the light grid never drops it, and as bright by day as by night. OMSI_FLASHLIGHT=1 turns it on in offscreen runs.

* Flashlight: its messages go through the translations and no longer name a key the player may have changed

* Flashlight: its classic spot is set up as the headlights' now are, a Direct3D spot attenuated by its range (main changed push_spot under it)
…hadows from every light, glare and mirroring wet roads (openOMSI-org#3208)

* Enhanced light: the clouds' shadow over the land, shadows from every kind of light, glare, wet roads and water that mirror the street

The sun is no longer one number for the whole picture: a field of the clouds' shadow, worked out from the heaps the sky shows, makes patches of sun and shade on the ground that the wind moves, and the air scatters the sun's shafts through the gaps of a broken sky as far as seven kilometres.

A spot that is no headlamp gets a shadow map along its own axis over its cone, and the two strongest lamps that shine every way a cube map of six tiles (fifty-six lamp tiles now, in seven rows under the far map): a wall to the side of a low lamp keeps its light off what lies behind it.

Bright lights have a lens glare round them that falls as the cube of the distance, and the lamps a halo in the night air. The sheen of a wet road and still water trace what stands round them in screen space at their Fresnel share, not only the pools: the lit windows and lamps of a street stream down a wet road at night.

Which lights have shadows, the clouds' shadow and the glare are options of the renderer (RenderOptions light_shadows, cloud_shadows, light_glow).

* Graphics: Enhanced+ is Enhanced with Real-Time Ray Tracing, Enhanced has options of its own, and the quality presets run from Low (Vanilla) to Ultra

Enhanced+ is no longer a mode. Graphics has three modes and, in Enhanced, Real-Time Ray Tracing as a switch (ray_tracing=1; a graphics=enhanced_plus file reads as that, --enhanced-plus still asks for it for a run). New Enhanced options: Light has shadows (off, street lamps and vehicles, every light), Cloud shadows and light shafts, Glow of lights; Real-Time Reflections is the puddles' setting and Reflective objects reflect the reflection maps.

The presets are Low, Medium, High, Extra, Max and Ultra and each sets the graphics mode too: Low is Vanilla, Medium Vanilla+ (the defaults), High to Max Enhanced with more switched on at each step, Ultra Enhanced with ray tracing and everything on. The launcher, the game's options, the Apple app and the quality optimiser follow it; every new text is translated into all the languages.

* Enhanced: a road that is barely wet no longer goes dark near the camera, and a headlamp's beam in clear air is not drawn in the haze

The traced reflection of a wet road's sheen now needs a really wet road (a smooth rise between 55 and 95 per cent wetness), not any dampness: it reaches only the first hundred metres, so a slightly damp road turned dark up close and grey beyond a line across it.

A headlamp's or a spot's beam in the night air is lit by the weather's fog alone again; the clear air's ground haze, which showed the beam's sliver of jittered half-size steps as shimmer and soap, lights only the street lamps' halo.

* Review of the Enhanced light and graphics options: the costly options off by default, the optimiser and the presets know them, the atlas is six rows unless Every light is asked for

Glow of lights and Cloud shadows are off by default and in the presets below Extra; the glare's quad is 8 times the sprite (64 times the pixels) instead of 14 (196), the sky's shafts follow in 8 steps instead of 12, the CPU check of the shafts uses the reach the shader does, a clouds' field is made again after about a degree of the sun, by at most two threads, and the first one on a helper thread too. The fog pass runs in clear night air only with the glow on (tested).

Optimise for my PC turns off ray tracing, Every light's shadows, the clouds' shadow and the glow, and the street lamps' shadows last. Low leaves the ambient occlusion, sun shadows and detail grain as they are (tested: Low and back to Vanilla+ keeps them on). The lamps' atlas is the old six rows unless the game started with Every light; the setting then takes the street lamps' level until the next start, and says so. RenderOptions defaults are the settings' defaults. The reflection of a wet road's sheen fades from a third of its reach, not three quarters of it. Puddles keeps its name in the plain modes: Real-Time Reflections is Enhanced's.

* Settings: Enhanced's light options are read by a function of their own, so that reading the file stays within the size budget

* Enhanced: with Glow of lights off a lamp's corona is drawn exactly as before; the glare's quad stays the sprite's size in mist, fog and rain

The glare tail is worked out only when the glow is on and the air is clear (a shared glare_scale() for the vertex and the fragment stage), so that the off option shows no faint square round a lamp. Headlamp beams in mist are tested against the weather's fog as before. The doc comments of take_strikes and shadow_coverage are back on them.
* Fix terrain continuity around aligned spline ditches

* Restore spline hole fallback and add terrain validation tools

* Limit terrain refinement to aligned spline influence regions

* Refine terrain adaptively while preserving saved slopes and tile seams

* Bound spline terrain fitting, isolate failed tiles and smooth terminal banks

* Keep original grid fast path when indexing terrain constraints

* Address review: keep cuttings and cutters as on main, trim duplicates and docs

- A spline whose rim lies more than 1 m under the saved ground (a cutting,
  a tunnel approach) keeps the original hole and soil walls; only troughs
  are fitted.
- Decide a tile's fit on rims as well as triangles, so a ditch that ends
  just short of a tile border moves both sides of the border alike.
- Object and tunnel cutters and tile streaming are back to main's behaviour.
- Rims are computed once in staging and passed to the profile builder; the
  plain terrain mesh is no longer built just to be replaced.
- Review tooling is removed from the repo, FORMATS.md is two sentences, the
  Omsi.exe notes in stage.rs are restored, spade is a workspace dependency.

* Launcher lockfile: add spade and its dependencies

---------

Co-authored-by: p3taomsi <346792611+p3taomsi@users.noreply.github.com>
Co-authored-by: turbo-devv <saveliybrother@gmail.com>
…rg#3301): the city map and the panel drew no roads or ground on large maps

On Berlin-Spandau the cap of 260000 ground vertices is reached and the painter drops everything it draws afterwards, so the in-game map showed only street names. Reverts d5dc801 and e7cb44b; openOMSI-org#3249 needs another fix.
…enOMSI-org#3310)

* restore money sound effects, manually take money before next sale

* ticket sale: in auto boarding the game takes the payment with the ticket and the next sale is not held

---------

Co-authored-by: turbo-devv <saveliybrother@gmail.com>
…nOMSI-org#3303)

* On foot, the player follows the same paths as the AI passengers (stairs, gates, doorways)

* on foot: a wall a people's path goes through is no wall only where the walker is on a path

* on foot: the ground under the feet in a function of its own (size budget of tick)

* on foot: the ground under the feet in a module of its own (file size budget)

* on foot: a wall is no wall only at the crossing of a people's path next to the step

* CHANGELOG: keep both entries
…rg#3267)

* feat(navigator): restore optional lightweight classic 2D map

* feat(navigator): restore optional lightweight classic 2D map

* feat(navigator): restore optional classic 2D map

* feat(navigator): restore optional classic 2D map

* feat(navigator): configure classic 2D navigator

* feat(navigator): configure classic 2D navigator

* feat(navigator): lightweight top-down map view

* feat(navigator): lightweight top-down map view

* feat(navigator): lightweight 2D option in launcher

* feat(navigator): expose classic 2D mode without reverting upstream changes

* feat(navigator): expose classic 2D mode without reverting upstream changes

* feat(navigator): classic city map independently of geometry OOM fix

---------

Co-authored-by: turbo-devv <saveliybrother@gmail.com>
0.3.42's launcher wrote a pointer file beside its program and copied data folders
at start, and some antivirus programs and browsers blocked it. The data folder
choice goes out again; the launcher keeps its data in ~/.openomsi as in 0.3.41.
…s, lighter restart, stuck-stage log

- A flood of "is invalid" GPU errors (1500 in five seconds) counts as the device lost, so the
  game restarts with lighter graphics instead of drawing nothing on the loading screen (openOMSI-org#3232)
- The restart switches off Enhanced's ray tracing, every-light and lamp shadows, cloud shadows
  and glow at once, and Enhanced itself at the second restart (openOMSI-org#3323, openOMSI-org#3328)
- The navigator's ground builder catches the panic of a buffer made invalid by the lost device
- A watchdog names the frame stage that has run for ten seconds in game.log (openOMSI-org#3326)
…nd keys (openOMSI-org#3335)

* feat: the Alt quick menu as OMSI 2's grid of icon tiles, with pages and keys

The quick menu shows 5x3 square tiles of the icon alone, in OMSI 2's order,
with the chosen tile's name under the grid and an arrow to the next page.
Lit tiles (route arrows on, a tour driven) are orange as in OMSI 2; tiles
the game menu does not offer now are greyed and take no clicks. The arrow
keys choose (across pages at the sides), Enter starts, Tab and the page
keys turn the page. The second page has the game menu's own lines (camera,
options, saving, screenshots, photo mode, skip stop, end the tour...),
run through the game menu's code, now game_menu_action.

* Size budget: the icon-only tile's fields are described in square.rs, ui.rs stays at 1500 lines
* perf: mirrors leave out small objects past 600 m

* test: the mirrors' reach keeps near, terrain-sized and main-view instances
…stance, minimum force, smoothing (openOMSI-org#3329)

One per-wheel "Steering force" scaled the self-centring, the parking resistance and
the damping together (openOMSI-org#2103, openOMSI-org#3289): the centring could not be softened on a T300
without losing the damping that stops the overshoot, and a direct-drive base could
not get more damping without more of everything else. Five tuning values per wheel,
saved in gamectrler.cfg under `[openOMSI.FFTuning]` (a section OMSI 2 ignores, left
out at the defaults), with sliders in the launcher's Controllers page and in the
game's controller menu, where they apply at once:

- Self-centring: the spring and the aligning torque of the moving bus (never when parked).
- Damping: the resistance to fast movement and the damped return.
- Parking resistance: the tyre scrub at a standstill, fading as the bus rolls.
- Minimum force: lifts the smallest steering forces above a belt or gear wheel's
  dead zone, eased in over the first 2 % of force so the centre does not chatter.
- Smoothing: a one-pole low-pass on the steering part only (not the vibrations),
  for strong wheels at low frame rates.

At the defaults the force is bit-identical to before (a sweep of 91,520 inputs
against the previous formula), and "Steering force" still scales the whole.

controllers.rs was at its size budget: the force model (`wheel_force`, the road
and engine micro-vibrations, the script shake, the bumps) moved to
controllers/ffb.rs with its tests in controllers/ffb_tests.rs, unchanged.

The help texts say that the engine buzz is felt at a standstill and that with the
feedback off any remaining resistance is the wheel driver's own (openOMSI-org#2890, openOMSI-org#1778).
… player's own (openOMSI-org#3327)

A new setting, "Cab wheel rotation" (settings.cfg `cab_wheel_rotation`, degrees lock
to lock, 180-1800 in steps of 30; 0 = the bus's own animation, the default), in the
launcher's Settings > Driving > Game controllers, on the Controllers page and in the
game's Options. A 900 or 1080 degree wheel on the desk and the one in the cab then
reach their locks together, where the cab's wheel turned several times over (a stock
SD202's 2171 degrees lock to lock: its model's factor of 1680 over a 37 degree lock).

The player's bus's steering-wheel animations (`anim_rot` on `Axle_Steering_*` with
a factor of 300 or more: the stock SD200's 1450, the SD202's 1680) are scaled once
at vehicle load so that their lock-to-lock rotation, taken from the bus's full
steering lock, equals the setting; the hub's buttons scale with the rim, the road
wheels are left alone, and the driver's hands follow the scaled factor. A bus that
turns its wheel from a script variable of its own keeps its own rotation, which the
log says. AI and other players' buses are not touched.

Tests: the scale, the animation detection, a synthetic bus (rim and button scale,
road wheel stays, repeated calls do not compound, 0 restores), model reload keeps
the setting, the settings default and clamp table, and the launcher round-trip.

Co-authored-by: openOMSI maintainer <forkornilova@gmail.com>
…d the control cables' signals

A coupled car with scripts of its own (the Konstal 105Na's second car) started from the
script's defaults and never got the paint scheme's [setvar]s, so its boards, numbers and
roof parts were missing (openOMSI-org#3343). The cars' [control_cable_*] plugs now carry what a car
writes down the train, car by car, with a coupler or bogie passing it on (openOMSI-org#3342); each car
measures the wire above its own pantograph, not the leading car's (openOMSI-org#3341).
@DarkBat2709
DarkBat2709 merged commit 0ddb394 into codex/editor-0.8.0-pre Oct 30, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.