Skip to content

feat: the Scene view maps a mission's ships, markers, ranges and routes - #31

Merged
vdmkenny merged 1 commit into
mainfrom
feat/scene-view
Oct 15, 2026
Merged

vdmkenny merged 1 commit into
mainfrom
feat/scene-view

Conversation

@vdmkenny

Copy link
Copy Markdown
Contributor

The Scene view: the mission's map, as the design's Scene screen shows it.

  • Ships and markers where they start, in their flight groups' colours, from above, the side or the front. Dragging one rewrites its position as one step of Undo.
  • The game's missions spread over areas millions of units apart, so a mission opens fitted to its ships and markers, and things that would overlap on the screen gather into a numbered mark that opens with a click. Names keep clear of the marks, of each other and of the routes.
  • Ranges rings each ShipReached trigger's marker and each flyback marker the script sets. Routes links the places the script's SetAI orders and SetPatrolRoute send each ship and group, read in source order (Routes says what that means).
  • The wheel zooms around the pointer, over markers too. ImPlot v1.0 comes in through a C shim.
  • Go to code and the other go-to actions switch to the Script view, and the commands that act on the hidden source's cursor are greyed out on the map.
  • The design's Scene page gains the Routes chip, and its picture is taken again.

Left: where ships are in the running game and their orders, with the Live and Orders chips (#21), and moving them in the running game (#22). The profile repeats the 4000 that ShipReached watches within, since OpenReliant's reached_reach isn't public.

Closes #2

The Scene view was planned in the design and greyed out. It now shows the
mission's map, drawn with ImPlot through a C shim: each ship and marker where
it starts, in its flight group's colour, from above, the side or the front.
Dragging one rewrites its position in the source as one step of Undo.

The game's missions spread over areas millions of units apart, so a mission
opens fitted to its ships and markers, and things that would overlap on the
screen gather into one numbered mark that opens with a click. Names go where
they have room and keep off the routes, and the wheel zooms around the pointer
over markers too, which ImPlot's own zoom didn't.

Ranges ring each ShipReached trigger's marker and each flyback marker the
script sets. Routes link the places the script's SetAI orders and
SetPatrolRoute send each ship and group, read from the syntax tree with
OpenReliant's command catalogue and order table, so the map shows where a
mission's ships come in, go and leave.

Go to code and the other go-to actions switch to the Script view, since they
moved a cursor the map hides, and the commands that act on that cursor are
greyed out on the map.
vdmkenny added a commit to OpenReliant/openreliant that referenced this pull request Oct 15, 2026
`reached_reach`, how far ShipReached's watches look, becomes public, so
that tools can read it rather than keep a copy.

The editor's map rings each marker a ShipReached trigger watches at this
distance, and keeps its own 4000 for now
(OpenReliant/openreliant-editor#31). Once a release includes this, the
editor reads `mission.events.reached_reach` and drops its copy.

One local test run had a failure in the platform tests' binary, which
passed on every rerun, also with the same seed; this change doesn't
touch them.
@vdmkenny
vdmkenny merged commit 4e5061e into main Oct 15, 2026
3 checks passed
@vdmkenny
vdmkenny deleted the feat/scene-view branch October 15, 2026 12:42
vdmkenny pushed a commit that referenced this pull request Oct 15, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](v0.1.1...v0.2.0)
(2026-10-15)


### Features

* edit a mission's records in the inspector, and add new ones
([#28](#28))
([104aac1](104aac1)),
closes [#8](#8)
* the Scene view maps a mission's ships, markers, ranges and routes
([#31](#31))
([4e5061e](4e5061e)),
closes [#2](#2)


### Fixes

* icons on their own sit in the middle of their boxes
([#30](#30))
([58c23a4](58c23a4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

The Scene view

1 participant