12#define OVL_NAME(name) STCRDDEK_##name
15#define NAME_ENTRY_HAS_UNUSED98 0
16#define NAME_ENTRY_HAS_HIDE 0
17#define NAME_ENTRY_SPRITES STCRDDEK_KEY_SPRITES
18#define NAME_ENTRY_FILE_KEYBOARD STCRDDEK_FILE_KEYBOARD
21#if VERSION_US || VERSION_JP
22#define STCRDDEK_FILE_SPRITES 0x62E
23#define STCRDDEK_FILE_IMAGES 0x632
24#define STCRDDEK_FILE_CARDS 0x7E7
25#define STCRDDEK_FILE_KEYBOARD 0x762
26#define STCRDDEK_FILE_KEY_SPRITES 0x761
28#define STCRDDEK_FILE_SPRITES 0x63E
29#define STCRDDEK_FILE_IMAGES 0x642
30#define STCRDDEK_FILE_CARDS 0x7F6
31#define STCRDDEK_FILE_KEYBOARD 0x771
32#define STCRDDEK_FILE_KEY_SPRITES 0x770
34#define STCRDDEK_SPRITES (STCRDDEK_FILE_SPRITES << 16)
35#define STCRDDEK_IMAGES (STCRDDEK_FILE_IMAGES << 16)
36#define STCRDDEK_KEY_SPRITES (STCRDDEK_FILE_KEY_SPRITES << 16)
DeckCards * STCRDDEK_createDeckCards(DeckEditor *editor)
Creates the deck's cards (task) on the editor's grid.
void STCRDDEK_showEditorWindows(DeckEditor *task, DeckEditorChildren *children, s32 show)
Shows the title, the deck's name and counts of each kind, the hint (taking turns with another one) an...
Glyph STCRDDEK_glyphs[]
the name's font
s32 STCRDDEK_updateFade(PanelAnim *fade)
void STCRDDEK_setScrollBarX(ScrollBar *bar, s32 x, s32 width)
scroll_bar.c
void STCRDDEK_updateScreen(DeckScreen *task, DeckScreenChildren *children)
The screen's task: loads its files and creates its windows, then runs it; waits for the editor or the...
KeyTabs STCRDDEK_keyPagesJp[]
the European version reads these two for language 0
NameKeyboard STCRDDEK_keyboard
void STCRDDEK_stepIdle(DeckIdle *task, void *children)
Ends the idle task on triangle.
s32 STCRDDEK_filesLoading(void)
Whether the texts or the keyboard are still loading (the card images aren't waited for)
void STCRDDEK_startTween(PanelAnim *fade, s32 fadeIn)
name_entry.c
void STCRDDEK_setScrollBarRange(ScrollBar *bar, s32 top, s32 bottom)
void STCRDDEK_drawIdle(DeckIdle *task)
Only sets up a sprite drawer.
void STCRDDEK_drawEditor(DeckEditor *task)
Draws the editor: the cursor on the deck's grid, the info panel, the deck's panel,...
void STCRDDEK_showListCard(DeckEditor *task, DeckEditorChildren *children, s32 show)
Shows the list's card under the cursor: its name and its numbers or its text, or hides them.
void STCRDDEK_setScrollBarCount(ScrollBar *bar, s32 pageSize, s32 count)
ScrollBar * STCRDDEK_createScrollBar(void)
void STCRDDEK_updateIdle(DeckIdle *task, void *children)
A task that waits for triangle, then ends; nothing creates it.
void STCRDDEK_createScreenWindows(DeckScreen *task, DeckScreenChildren *children)
screen.c
void STCRDDEK_showCardList(DeckEditor *task, DeckEditorChildren *children, s32 show)
Shows the eight lines of the list of the cards owned from listTop (each card's name and how many are ...
void STCRDDEK_showNameWindows(NameEntry *task, NameEntryWindows *windows, s32 show)
void STCRDDEK_drawKeyboard(NameEntry *task)
void STCRDDEK_buildCardList(DeckEditor *task)
Lists the cards owned but not in the deck: owned holds each card's copies left over,...
void STCRDDEK_startLerp(MenuLerp *lerp, s32 from, s32 to, s32 frames)
void STCRDDEK_initIdle(DeckIdle *task, void *children)
Left empty.
void STCRDDEK_countCardKinds(DeckScreen *task)
Counts how many cards of each kind (their color) each of the three decks has.
KeyTabs STCRDDEK_keyPages[]
s32 STCRDDEK_updateLerp(MenuLerp *lerp)
void STCRDDEK_updateFader(ScreenFade *task)
BigKey STCRDDEK_bigKeys[]
void STCRDDEK_stepScreen(DeckScreen *task, DeckScreenChildren *children)
The screen's states: opens the title and the decks' rows; cross on a deck offers to edit or rename it...
void STCRDDEK_updateEditor(DeckEditor *task, DeckEditorChildren *children)
The editor's task: creates its windows, then runs and draws it.
DeckEditor * STCRDDEK_createEditor(DeckScreen *screen, s32 deck)
Creates the editor (task) of one of GAME.decks.
s32 STCRDDEK_keyArrowCluts[]
DeckScreen * STCRDDEK_createScreen(void)
Creates the deck screen (task)
void STCRDDEK_updateScrollBar(ScrollBar *bar)
NameEntry * STCRDDEK_createNameEntry(char *text)
Creates the name entry (task) to rename a deck, starting from its name: up to 10 characters.
void STCRDDEK_getName(NameEntry *task, char *out)
void STCRDDEK_startFader(ScreenFade *task, s32 fadeIn, s32 duration)
void STCRDDEK_updateScene(Task *task, DeckScreen **child)
scene.c
void STCRDDEK_updateDeckCards(DeckCards *task)
The deck cards' task: shows one more card each frame, then keeps drawing all 40 until the editor kill...
ScreenFade * STCRDDEK_createFader(void)
s32 STCRDDEK_cursorCluts[]
STCRDDEK's data (data/stcrddek.c), in its order.
void STCRDDEK_setName(NameEntry *task, char *name)
void STCRDDEK_createNameWindows(NameEntry *task, NameEntryWindows *windows)
void STCRDDEK_startFade(PanelAnim *fade, s32 fadeIn)
void STCRDDEK_drawDeckCards(DeckCards *task)
deck_cards.c
void STCRDDEK_closeNameEntry(NameEntry *task)
void STCRDDEK_drawFader(ScreenFade *task)
DeckIdle * STCRDDEK_createIdle(void *parent)
Creates the idle task; nothing calls it.
KeyPage STCRDDEK_keyChars[]
void STCRDDEK_createEditorWindows(DeckEditor *task, DeckEditorChildren *children)
editor.c
void STCRDDEK_setNameVram(NameEntry *task, s32 x, s32 y)
void STCRDDEK_updateNameEntry(NameEntry *task, NameEntryWindows *windows)
void STCRDDEK_stepEditor(DeckEditor *task, DeckEditorChildren *children)
The editor's states: picks a card of the deck (R1 its info panel, circle sorts the deck,...
TextStyle STCRDDEK_nameStyle
void STCRDDEK_updateKeyboard(NameEntry *task, NameEntryWindows *windows)
s32 STCRDDEK_updateTween(PanelAnim *fade)
s32 STCRDDEK_nameAnims[][7]
void STCRDDEK_drawScreen(DeckScreen *task)
Draws the screen: the background scrolling diagonally, the title panel, the decks' rows,...
KeyPage STCRDDEK_keyCharsJp[]
void STCRDDEK_setScrollBarPos(ScrollBar *bar, s32 pos)
void STCRDDEK_showDeckRow(DeckScreen *task, DeckScreenChildren *children, s32 deck, s32 show)
Shows a deck's row: its name and how many cards of each kind it has, or hides it.
void STCRDDEK_loadFiles(void)
Loads the screen's textures and requests the card images, the card texts and the keyboard.
void STCRDDEK_loadNextCard(DeckCards *task)
Shows one more of the deck's cards, loading its image into its cell of VRAM; TASK_DONE once all 40 ar...
#define TASK_HEADER(Type)
The on-screen keyboard that the overlays use to type a name (STCRDDEK's deck names,...
A key of the keyboard bigger than one cell: its sprite and where it goes.
A line of the list of the cards owned.
A menu cursor: a text window showing one of the CURSOR_FRAMES glyphs.
Draws the deck's cards, appearing one per frame.
u8 pad[0x10]
never read or written: createTask allocates 0x70 bytes
s32 count
cards shown so far
TextWindow * listCardName
TextWindow * listPointsLabel
s32 column
of the deck's grid, 9 cards a row
s8 owned[315]
how many of each card are not in the deck
s32 infoShown
the card's info panel
s16 list[315]
the cards owned and not in the deck
s32 listCursor
in the list of the cards owned
struct DeckScreen * screen
s32(* updateLerp)(MenuLerp *lerp)
void(* startLerp)(MenuLerp *lerp, s32 from, s32 to, s32 frames)
s32(* filesLoading)(void)
void(* startFade)(PanelAnim *fade, s32 fadeIn)
s32(* updateFade)(PanelAnim *fade)
A task that waits for triangle; nothing creates it.
u8 pad[0x10]
never read or written: createTask allocates 0x6C bytes
A deck's row on the screen: its name and how many cards of each kind it has.
union DeckScreenChildren::@8 child
NULL once it is gone.
The screen's controller: the three decks to choose from.
s32 kinds[3][6]
how many cards of each kind a deck has
void(* countKinds)(struct DeckScreen *task)
STCRDDEK_countCardKinds.
s32 scroll
of the background
One glyph of a font sheet.
A page of the keyboard: 7 rows of 15 cells.
The texts of a keyboard page's three tabs.
A name entry: the keyboard, the name typed so far and the panels that open and close.
The character pages of the keyboard (as STDGNAME's and STPLNMET's)
Opens or closes a menu panel: level goes 0 -> ONE in duration frames (or back at twice the speed),...
Fades the whole screen to black and back with a subtractive rectangle.
Any task, seen through its header.
A text window (createTextWindow): up to six text buffers (0 is shown, 1-5 are "work" buffers that con...