spiritsnails
46bd0f6709
fix: battle screens keep their composition when they open a menu or prompt
...
BATTLE SIZE "fixed" draws the battle as a discrete letterbox rather than
filling the window, and BATTLE BG "world" composes it over the live map.
Everything the battle then opens broke out of that composition, because
each piece of the frame's geometry was read off a fact about THIS FRAME
instead of about the battle:
* Renderer:uiScale follows the survey zoom only while a world is behind
the UI, gated on worldActive -- this frame's world pass. PartyMenu and
ListMenu are opaque, so pushing one makes StateStack:visibleBase skip
the map, no world pass runs, and the menu loses the step-down and blits
a whole integer scale larger than the battle it just covered. Held
with uiWorldHold, the same whole-stack rule uiFill and the battle dim
already use. ("fill" hid this: it overrides the scale outright.)
* Game:draw started the frame at visibleBase, so that same opaque menu
cut the overworld -- and the world pass with it -- out of the frame
entirely, collapsing a "world" backdrop to endFrame's flat black clear.
A world-bg battle now keeps the frame starting from underneath itself
(drawBaseInStack). Only the START of the draw moves; the clear stays
keyed to the real visibleBase, so the menu still gets its opaque canvas
and draws exactly as before.
* worldZones was keyed to that same clear base, so it came out nil for a
frame whose world pass HAD run -- dropping endFrame's world blit onto
the UI zone list instead, smearing the party menu's own HP-bar palettes
across a world-canvas-sized image. Keyed to whether the map drew.
* endFrame's letterbox clear read letterboxWhite off visibleBase alone,
so an opaque menu over a BG "white" battle flipped its surround to
black the same way. Same whole-stack hold.
* ChoiceBox bottom-anchored unconditionally, docking it to the WINDOW
edge. That is only right when it rides the dialogue box beneath it,
which is anchored there too; TextBox now passes the anchor and nothing
else does, so the battle's switch offer and the shop/PC confirms stay
over the screen that pushed them.
* TextBox anchors likewise: a battle is a self-contained SCREEN, not the
window, and pokered prints its text box in the same 160x144 tilemap as
the HUD. The caught-mon nickname prompt was landing a whole letterbox
below the blanked battle field it is printed on. BattleState.holdsUI-
Anchors holds setUIAnchor off while a battle is in the stack; the
overworld's own dialogue box still docks to the screen edge.
2026-08-01 22:55:58 -06:00
..
2026-08-01 16:04:22 -06:00
2026-08-01 21:36:30 -06:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
2026-08-01 15:52:34 -06:00
2026-08-01 22:55:58 -06:00
2026-07-25 15:21:49 -04:00
2026-08-01 15:52:34 -06:00
2026-07-30 07:41:41 -04:00
2026-07-19 16:18:18 -04:00
2026-07-19 16:18:18 -04:00
2026-07-19 16:18:18 -04:00
2026-07-19 16:18:18 -04:00
2026-07-30 11:44:16 -04:00
2026-07-19 16:18:18 -04:00
2026-07-27 13:37:05 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
2026-07-30 07:41:41 -04:00
2026-08-01 12:56:13 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-07-30 11:35:57 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-08-01 14:22:30 -04:00
2026-07-29 12:53:24 -03:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-08-01 12:56:13 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
2026-07-31 11:58:21 -04:00
2026-07-31 10:19:51 -04:00
2026-07-30 07:41:41 -04:00
2026-07-31 14:34:58 +00:00
2026-08-01 20:55:31 +01:00
2026-08-01 11:01:19 -04:00
2026-07-25 15:21:49 -04:00
2026-07-25 15:21:49 -04:00
2026-07-31 01:44:17 +00:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
2026-07-30 07:41:41 -04:00
2026-08-01 12:56:13 -04:00
2026-08-01 19:13:03 -06:00
2026-08-01 09:35:24 +02:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-07-30 07:41:41 -04:00
2026-07-29 14:01:19 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-07-28 09:25:55 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-08-01 15:52:34 -06:00
2026-08-01 15:52:34 -06:00
2026-07-30 07:41:41 -04:00
2026-07-31 10:45:12 -04:00
2026-07-28 13:33:53 -07:00
2026-07-25 15:21:49 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
2026-07-28 06:16:21 -04:00
2026-07-28 06:16:21 -04:00
CLOSES #339 , CLOSES #354 , CLOSES #360 , CLOSES #372 , CLOSES #373 , CLOSES #374 , CLOSES #375 , CLOSES #378 , CLOSES #379 , CLOSES #383 , CLOSES #384 , CLOSES #385 , CLOSES #391 , CLOSES #392 , CLOSES #393 , CLOSES #394 , CLOSES #395 , CLOSES #396 , CLOSES #397 , CLOSES #398 , CLOSES #413 , CLOSES #420 , CLOSES #423 , CLOSES #424 , CLOSES #425 , CLOSES #426 , CLOSES #427 , CLOSES #429 , CLOSES #430 , CLOSES #431 , CLOSES #433 , CLOSES #435 , CLOSES #436 , CLOSES #438 , CLOSES #439 , CLOSES #441 , CLOSES #442 , CLOSES #444
2026-07-30 11:14:51 -04:00
2026-07-29 13:14:56 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00
CLOSES #415 , CLOSES #484 , CLOSES #488 , CLOSES #492 , CLOSES #497 , CLOSES #541 , CLOSES #559 , CLOSES #562 , CLOSES #563 , CLOSES #564 , CLOSES #565 , CLOSES #566 , CLOSES #567 , CLOSES #568 , CLOSES #569 , CLOSES #570 , CLOSES #571 , CLOSES #572
2026-08-01 08:10:20 -04:00