Squashing the 960-wide board texture to a few px averaged the outline away and,
because the GPU picks the mip level from the larger axis, blurred every row too;
the cabinet scales a vector shape and stays sharp. draw_board now builds a
furled board from columns: both rounded corners at 1:1 and the band / panel /
band between them scaled in proportion, each drawn from an 8 px flat slice of
itself and magnified. Narrower than both corners it becomes a solid bar with
the outline columns on either side and the flat centre between them (squeezed
corners left two hollow strokes with nothing between).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Closing a folder (もどる) had no wheel motion at all: the fly table only
covered the open leg (clip f27..150), fly_offset only ran for kind "open", and
the engine's 166 ms fade took the song boxes and the back board out right
after the press -- the cabinet keeps them solid until they fly out (f184..204)
and the board furls (f205..217).
- anim/wheel_decide now spans f27..255 (open leg + `return` leg, straight from
the cabinet clip); fly_offset plays the return half on the close leg: song
boxes fly out, wait off screen across the swap (f219) and the genre boxes
fly back in f234..254. f255 re-bases the clip, so the leg stops before it.
- The engine's box fade is ignored during the pre-swap half of the close leg
(box_fade); the clip channels already drive the back board's title fade and
furl.
Verified with captures: press -> boxes stay -> contents fade / boxes fly out ->
back board furls -> genre board unfurls -> contents return -> boxes fly in.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Opening a folder on this engine differs from the cabinet in one way that
matters for the animation: the cabinet swaps the content 69 frames into the
decide leg, this engine swaps when its loader is done, which can be a couple
of seconds for a big folder. The leg clock parked one frame short of the swap
(f113), i.e. with the decided board already furled away and the neighbours
flown out, so the screen sat empty for the whole load -- and before that the
engine re-grows the decided box's yellow frame, which made the board close
and reopen right after the press.
- The open leg now parks one frame short of the furl (f99): the decided board
stays up, contents faded per the clip, as the loading state. On the swap the
clock resumes from the furl, so furl (f100..113) and the new board's unfurl
(f114..) play back to back; a swap that lands before the park point just lets
the clock run.
- The neighbours' fly-out (f86..99) plays before the swap as on the cabinet;
it used to wait for the swap and then jump straight to the off-screen hold.
- The decided board is remembered at OPEN_BEGIN and drawn fully open for the
whole leg, past the engine's closed re-grow and past the moment the engine
takes the box off the wheel for the loader (draw_overlays bridges it from the
still-live box handle until it has furled).
- The new content's song / back board is not drawn before the swap frame.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>