14 for (i = 0; i < 5; i++) {
27 for (i = 0; i < 5; i++) {
67 for (i = 0; i < screen->
childCount - 1; i++, windows++) {
107 if (screen->
clut >= 4) {
111 if (screen->
clut2 >= 6) {
123 screen->
pageRow * 0x7A + 0x16);
143 if (screen->
count >= 2) {
156 sprite.
setPivot(i * 0x30 + 0xB4, 0x4E);
209 if (screen->
count == 0) {
225 if (screen->
count >= 2) {
228 if (screen->
pick < 0) {
238 if (old != screen->
pick) {
303 if (screen->
step != 0) {
318 if (screen->
step == 1) {
322 if (screen->
step == 2) {
369 switch (screen->
state) {
379 for (i = 0; i < 3; i++) {
389 if (party[j] >= 0 &&
id == party[j]) {
423 return (
Task *)screen;
STGDGLAB.PRO: the Digimon Lab (MODE_DIGI_LAB; "デジモンラボ" in STAGSLCT's list of scenes),...
#define FILE_LAB_SPRITES
The lab's sprite sheet; the next file is its texture archive.
GfxState GFX
GFX: the graphics state and its methods.
GameState GAME
The save data, the game mode and the methods.
#define TASK_INIT
Tasks: every game object is a task, a heap block that starts with this header and is updated once per...
LabEntryList * STGDGLAB_createEntryList(s32 partner, s32 allEntries, s32 closable)
Creates the list of a partner's entries (task): only its slots unless ALLENTRIES; CLOSABLE lets trian...
#define TEXT_DIGI_LAB
DGLABO: STGDGLAB's.
#define FILE_MENU_SPRITES
Files the engine loads by number.
FileCache FILE_CACHE
The file cache.
#define STRETCH_SPRITE(sprite, level, x, y)
#define SCREEN_LAYER
The layer over the whole screen that most modes create first and draw their menus on (FIELDSTG and ST...
#define PAD_PRESSED(button)
One button of pad 1: newly pressed, auto-repeated while held, or held.
#define PAD_REPEATED(button)
void STGDGLAB_hideWindows(LabPartyScreen *screen)
Hides the first screen's text windows: all its children but the last, the entry list.
static void pickPartner(LabPartyScreen *screen, LabPartyScreenWindows *windows)
Left and right go through the partners outside the party; circle shows the picked one's entries,...
void STGDGLAB_runPartyScreen(LabPartyScreen *screen, LabPartyScreenWindows *windows)
The first screen's states: fades its panels in, picks a partner with left and right,...
void STGDGLAB_drawPartyScreen(LabPartyScreen *screen, void *children)
Draws the first screen's frames and the party's animations.
Task * STGDGLAB_createPartyScreen(Lab *lab)
Creates the main menu's first screen (task), where a partner joins the party in the member's place.
static void showPartyTitle(LabPartyScreen *screen, LabPartyScreenWindows *windows)
Once the first panels have faded in, fades in the page's and the party's panels and shows the title a...
void STGDGLAB_updatePartyScreen(LabPartyScreen *screen, void *children)
The first screen's task: lists the unlocked partners outside the party, plus an empty pick to take th...
void STGDGLAB_showPartyPage(LabPartyScreen *screen, LabPartyScreenWindows *windows)
Shows the first screen's page: the name and five stats (STGDGLAB_pageStats) of the picked partner,...
s32 STGDGLAB_pageStats[]
The stats the first screen's page shows, in PartnerTotals.stats.
SoundState SOUND
rsin and rcos (libgte) read rsin_tbl[a - 0x800] and the like: their addresses before the table fall i...
#define SOUND_MENU_CONFIRM
SYSTEM07.
#define SOUND_MENU_CANCEL
SYSTEM01.
#define SOUND_MENU_MOVE
SYSTEM06.
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
void *(* getEntry)(u32 fileAndIndex)
struct PartnerStats *(* getPartnerStats)(s32 partner)
void(* computeStats)(s32 partner, union PartnerTotals *out)
s32(* getPartyMember)(u32 index)
Partner partners[PARTNER_COUNT]
s32 party[3]
partner indices
PartnerAnim * anim
STGDGLAB_partnerAnims, by partner.
LabWindowPos * layout
STGDGLAB_layout.
s32(* updateFade)(PanelAnim *fade)
void(* startFade)(PanelAnim *fade, s32 fadeIn)
struct LabEntryList * panel
TextWindow * entriesHint
as LabMenuWindows'
The main menu's first screen (STGDGLAB_createPartyScreen)
void(* setSubstate)(struct LabPartyScreen *task, s32 substate)
s32 frames[3]
the party's animation frames
s32 partners[PARTNER_COUNT]
the unlocked partners outside the party, -1 for none
s32 pageRow
1: the page is 0x7A lower, 0 (at the top) while the entry list is open
void(* setState)(struct LabPartyScreen *task, s32 state)
s32 frame
the picked partner's
void(* nextState)(struct LabPartyScreen *task)
Where a window of the menu or the first screen goes, and its string.
s32 string
of TEXT_DIGI_LAB, -1: none
The mode's main task (STGDGLAB_createLab)
s32 partySize
the party's slots: PARTY_SIZE
void(* packParty)(struct Lab *lab)
s32(* openMenu)(struct Lab *lab)
s32(* closeMenu)(struct Lab *lab)
s32 member
the party member the screens show
s32(* menuOpen)(struct Lab *lab)
A partner Digimon's animation in a menu: up to seven sprite ids, -1 ending it early (the sprites are ...
s32 unlocked
partner id + 3, 0 while locked
short(* playSound)(s32 id)
returns the voice of a key-on
Draws sprites from a sprite sheet (such as file 0x277, the menu graphics): a sheet has a table of fra...
void(* setScale)()
(x, y, z), ONE = 1.0
void(* setLayerId)()
(id, depth)
void(* setClutRow)()
(row)
void(* draw)()
(sheet, frame, x, y)
void(* setTexture)()
(x, y)
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...
void(* setPalette)(struct TextWindow *obj, u8 arg)
void(* setRightAlign)()
no prototype: callers would truncate u8 args
void(* setPos)(struct TextWindow *obj, s16 x, s16 y)
void(* setVisible)(struct TextWindow *obj, u8 arg)
void * createTask(void(*update)(), s32 size, s32 childrenSize)
createTaskWithId for a task nothing needs to find
#define PALETTE_WHITE
The text windows' palettes (TextWindow.palette, setPalette): rows of the font's CLUTs,...
#define PALETTE_GREY
what is unavailable
TextWindow * createTextWindow(s16 layerId, s16 style, s16 x, s16 y)
A text window on a layer, in a font style, at (x, y)
computeStats' result: the stats with the equipment added, by STAT_* or by name.