Port the options screen
Checks / web (push) Canceled after 0s

OPTION in the start menu runs _Option with the ROM's labels and settings,
OptionsControl's cursor wrapping and each option's bit handling. The four
option bytes live in the script state and saves, defaulting to
DefaultOptions. The battle style now decides whether a trainer's next
Pokémon brings an offer to switch, and the menu account whether the start
menu describes its items; the other settings are kept for later.

Closes #24

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-10-02 10:47:11 +02:00
1 parent 47698565ab
commit c4cc0e756c
19 files changed
+732 -21

No files matched your search

+37 -1
View File
@@ -540,7 +540,8 @@ dialog h2 {
}
.intro-screen:not([hidden]) ~ .minimap-overlay,
.pokegear:not([hidden]) ~ .minimap-overlay,
.trainer-card:not([hidden]) ~ .minimap-overlay {
.trainer-card:not([hidden]) ~ .minimap-overlay,
.options-screen:not([hidden]) ~ .minimap-overlay {
display: none;
}
.pokepic {
@@ -1326,3 +1327,38 @@ dialog dd {
aspect-ratio: 128 / 48;
image-rendering: pixelated;
}
/* _Option: one framed box of options, settings beside their labels. */
.options-screen {
position: absolute;
inset: 0;
z-index: 2;
display: grid;
padding: 10px;
overflow-y: auto;
color: var(--ink);
background: var(--cream);
}
.options-screen ol {
margin: 0;
padding: 10px 14px;
list-style: none;
border: 5px double var(--ink);
display: grid;
align-content: start;
gap: 8px;
}
.options-screen li {
display: grid;
grid-template-columns: 1.4em 13ch auto;
justify-content: start;
gap: 8px;
}
.options-screen li::before {
content: attr(data-mark);
}
.options-screen strong {
min-width: 9ch;
font-weight: normal;
white-space: pre;
}