• 0.9 9585746ea2

    0.9 Stable

    patricus released this 2026-09-01 12:13:43 +02:00 | 9 commits to master since this release

    0.9

    Conversations behave. A line is read once, when it has finished appearing,
    without the box announcing itself over the top of it and without the whole thing
    being echoed back at you a few seconds after you dismiss it.

    Auto-walk stops declaring failure over things that worked. Landing on the
    shopkeeper you walked to is arriving, not "she is about two metres below you and
    may need stairs" - it asks what the interact key is actually pointing at rather
    than guessing from heights. When something really is out of reach it says so,
    and when the ground runs out it names what it ran out at instead of advising you
    to go and find somewhere more open. Long walks also stopped freezing every
    fifteen seconds: the ground ahead is mapped while you walk it, which is roughly
    four times quicker per leg.

    The list of things to walk to is more honest. An emptied chest leaves it, a
    floor button names the machinery it works and how far off that is, lifts are
    somewhere you can be sent - which in the Outskirts is the only way onward - and
    a tracked quest with nowhere to send you says as much rather than silently
    dropping its whole category.

    Saying when a quest has nowhere to send you

    Tracking a quest with no map marker made the Markers category vanish from the
    cycle entirely, with nothing said about why - and from inside that there is no
    telling "this quest has no marker" apart from "the mod is broken".

    "Land of Confusion" is exactly that quest. It only puts a chunk on the map once
    you have visited the region that reveals that Archangel, so at nought of eight
    song parts it points nowhere at all, by the game's own design - a sighted player
    sees an empty map and knows where they stand.

    Tracking one now says so: "Quest tracked: Land of Confusion. Collected 0 of 8
    song parts. No area on the map for this one - nothing to navigate to." Not "not
    yet", because plenty of quests never have a place at all, being satisfied by a
    counter or a conversation, and promising one would be worse than saying nothing.

    Conversations stop echoing their own last line

    Every conversation ended by repeating the line it had just finished on, three to
    seven seconds later - long enough to sound like a second speaker rather than a
    stutter.

    The message box slides in on a child Control of its own, and dismissing a line
    leaves the keyboard focus sitting on that Control with the box itself hidden.
    The dialogue reader bows out there, correctly - a hidden box has nothing to read

    • and the general-purpose focus reader took over, found the line still sitting
      in the label underneath, and said it again. The repeat guard could not catch it,
      because moving the focus is meant to re-read: an option list changes its value
      under a focus that never moves, so the same control saying the same words has to
      stay readable.

    Dialogue has one reader and it has already had its turn. While the focus is
    anywhere inside that box - shown or hidden - the general reader now says
    nothing.

    Being told when you have arrived at something you still cannot touch

    "Arrived at Wood" three times over, a teleport in the middle, and not once did
    anything get picked up. The player was finishing each attempt about a metre
    ABOVE the item, stood on whatever was beside it - inside the arrival radius,
    inside the height gate, and out of the interact key's reach the whole time. The
    arrival was true and useless, and the item stayed in the list, which read as the
    list being wrong.

    The game already answers this: the interactor picks the closest overlapping
    thing every frame, and that is exactly what the interact key acts on. So it gets
    asked. A moment after arriving - long enough for the last of the deceleration,
    which is often what brings something into range - anything still out of reach
    says so, with the height when the height is the reason:

    "Wood is out of reach from here - it's about 1 meter below you."

    Only for things you actually interact with, and only when the question can be
    answered at all. A door is walked through, a floor button is stood on, and an
    interactor switched off for a cutscene knows nothing about anything - none of
    those get a sentence.

    An emptied chest stops being offered as its own contents

    Take the wood and the wood is still in the list. The chest was the wood.

    A chest is found by the same test a dropped item is - it carries an item
    resource - so one holding Wood lists as "Wood", which is fine right up until you
    open it. Dropped items leave the list properly: the first thing picking one up
    does is set disabled, which the scan already looked at. A chest has no
    disabled on it at all. The flag that says its contents are gone is opened,
    which nothing was reading, so an emptied chest went on being offered - under the
    name of the item it no longer had - for the rest of the session, and after a
    reload too, since that flag is restored from the save.

    A chest that is merely shut still lists. Locked is not empty, and "there is a
    chest here I cannot open yet" is worth knowing.

    Switches say what they switch, and lifts are somewhere you can go

    Stepping on a floor button got you "Switch (Floor Button) activated" and nothing
    else - not what it did, not where the thing it did it to was. The plate in the
    Harbourtown Outskirts powers a lift twenty-one metres away, and that lift is the
    only way up out of the lower Outskirts and onward to New Wirral Park. From the
    logs: stand on the plate, hear it activate, ask to walk to the quest area, get
    told the ground stops. Nothing anywhere joined those three facts up.

    The game's wiring turns out to be readable, so it is read now. A switch names
    the machinery it drives and how far off it is - "Floor Button activated. It
    works the Elevator, 21 meters away." - following the wires through the relays in
    between to whatever has a body on the end.

    Those relays have also stopped talking. "Switch (Wire) activated" was two lines
    in every three this used to say, about a node with no position worth reading.

    And lifts are navigable. A WiredElevator had been filed with the relay icons,
    which was wrong in the way that mattered: it is a platform you stand on, and
    often the only way onto the storey above. It lists under Switches and the walk
    aims at the bottom of its travel, since its own position is wherever the
    platform happens to be in its cycle.

    Long walks stop freezing at every staging post

    A walk across the map is planned a leg at a time - the goal is pulled in to keep
    the search local, you walk to it, and the next leg is planned from there. That
    part was fine. What was not is that the mapper which fills the ground cache was
    switched off for the whole of every walk, so each re-plan profiled its ground
    from cold after fifteen seconds of walking in which nothing had looked at it.
    From the logs, three legs of one walk:

    leg 1 (planned standing still)    23 cache misses      416ms
    leg 2 (planned mid-walk)        5385 cache misses     1806ms
    leg 3 (planned mid-walk)        5770 cache misses     1759ms
    

    The mapper now runs during a walk too, on a smaller slice of the frame, and aims
    at where the walk is going rather than circling where it is - the next leg's
    search is a box drawn on the line to the goal, and a ring around the player only
    ever covered its first twenty metres. Measured on a 58m leg: 1382ms cold, 947ms
    after the old ring, 330ms after the aimed one, with not a single ground probe
    left for the build to pay and the same route out of it either way.

    Landing on somebody's head still counts as arriving

    The other half of the Clemence walk, and the half that survived the first fix.
    Told to hold while airborne, the pawn duly waited - and then landed on top of
    her. Feet down, horizontally aligned, target two and a half metres below: from
    the inside that is indistinguishable from standing on the rim of a hole, so the
    mod said she needed "stairs, a ramp, or a path around the edge" and offered the
    teleport. You could talk to her perfectly well from up there.

    The height check was only ever a proxy - it exists for the front door six metres
    up a balcony, where standing in the street underneath is not arriving. There is
    no need to guess from geometry when the game answers directly, so it asks now:
    if the interact key is aimed at the thing that was walked to, the walk is over,
    whatever the heights say. Nothing extra is announced, because nothing went
    wrong.

    Doors, markers and floor buttons are not interacted with at all, so those still
    rest on the height check. And when the target really is out of reach up there,
    the route is planned again from where the pawn stands - two and a half metres is
    an ordinary step down - rather than the walk simply ending.

    Walking to somebody no longer stops a metre short of them

    Three walks to Clemence in a row ended "she is unreachable on foot - it's about
    2 meters below the nearest ground I could path to", from 1.8m away on the same
    floor she was standing on, and offered the teleport for a shop counter.

    The last step to a target is very often a hop - the walker jumps at anything it
    bumps into, and a counter, a kerb or the person themselves is enough - and the
    jump clears 2.2m. Arrival is decided on horizontal distance, so it fired on the
    way up, and the check that verifies the target is not on some other storey
    measured the height of the JUMP and reported it as the height of the ground.
    Being in the air is now no answer at all: the walk holds, waits for the landing,
    and asks again with the player's feet down.

    Being told what the ground actually stopped at

    A walk to the New Wirral Park quest area ended at the south end of the
    Outskirts with "I got as close as the ground I can reach allows, about 173
    meters short", and then, from that same spot, "the ground I can reach doesn't
    connect to it. Try moving somewhere more open first."

    The second is bad advice. Every column a metre north of there sits 6m higher -
    that pocket's entire northern boundary is one sheer step, with no ramp in it
    anywhere - so no amount of moving about opens a route. The mod had that in its
    own lattice and threw it away.

    It now describes the lip it stopped at: a step so many metres up, a drop so many
    metres down, an edge with nothing beyond it, or ground it can see but cannot get
    onto. Both the shortfall and the outright refusal carry it, and both now point
    at Shift+End, which is the answer when the ground genuinely does not go there.

    Dialogue boxes stop cutting off what was being said

    "Message Dialog menu". "Menu Dialog menu". "Spooky Dialog menu". None of those
    tell you anything - the line inside the box is the whole content, and it is read
    on its own. Worse, a menu name is announced over the top of whatever is being
    spoken, so these arrived mid-sentence and took the line with them. A conversation
    flips between the message box and the list of things you can say back at every
    turn, so it happened constantly: one line from the logs was 78 characters long
    and got cut off 3.7 seconds in, leaving nothing to go on.

    The boxes are no longer announced by name. What they do keep is the pause that
    made the announcement half-useful in the first place, so the line or the option
    that lands next waits for the current one to finish instead of wiping it.

    A line of dialogue really is read once now

    Two ways it was still doubling up.

    A menu opening on top of the message box - the full-screen shaking one an
    Archangel speaks through is the case that showed it - left the box still holding
    the keyboard focus underneath. The reader that knows about dialogue only looked
    at whichever box was on top, so the line came through the general-purpose reader
    as well, in different words, which is exactly what the "have I already said
    this?" check cannot catch. It now asks who has the focus rather than what is on
    top.

    And coming back to the message box after picking something from a choice list
    re-read the line you had already heard, just before the new one arrived. That was
    a fault in 0.8's own dialogue change: the check for "already said" was sharing a
    note with every other readout, and the option you had just chosen had overwritten
    it. Dialogue keeps its own note now.

    Related: the shaking Archangel box types its words out a character at a time like
    every other, and was being read the instant it appeared rather than when the
    words had arrived. It now waits, as the message box does.

    Bestiary rows you have not met are told apart

    Moving down a run of unrecorded species read the same sentence over and over -
    "???, Bio 2, Raise this monster's tape to 5 stars to unlock more information" -
    with nothing to say you had moved, or where you were. The info panel hides its
    number for a species you have not seen, but the row in the list still shows one,
    so the number is read from there. A recorded species is unchanged.

    Downloads