Repository navigation
Editor 0.8.9-pre: openOMSI 0.3.45, bus stops and route authoring - #9
Merged
Merged
Conversation
…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
…d of being held in memory
… 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>
…MSI_PRESENT_MODE, not every frame
…6-0382 and RUSTSEC-2026-0381
…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
…der has chrono events too
* 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).
…ex/editor-0.3.45-lines
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.