ego_view() decided whether a game overrode the default party robot by
stat'ing sprites/ego.png on disk. A wasm build has no disk — the game is
baked into the binary with include_dir — so the check always failed and
every web player was a party robot regardless of what the game shipped.
Read the already-loaded sprite table instead, which both loaders populate
by file stem, so native and web now agree and native does one less read.
The transcript was drawn one draw_text per line with no wrapping, so any
line wider than the window ran off the right edge and was simply lost.
Room descriptions here are whole paragraphs, so this ate the end of most
of them. Greedy word-wrap on measured width, and the visible row count is
derived from the panel geometry rather than hardcoded at 5. Panel grows
150 -> 186 so a wrapped paragraph fits without pushing its own opening
line off the top.
Also: Game > Manual opened monsterrobot.games/engine/manual.html, which
has not served the manual since that domain moved hosts — it silently
returns the arcade index (200, so nothing looked wrong). Point native at
the repo's own web/manual.html, which always matches the build.
Verified: all 16 policesquadquest win paths still replay to max score,
and both fixes confirmed rendering in the native --shot and on the live
deploy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>