13 for (i = 0; i < 6; i++) {
26 (*items)->setDepth(*items, panel->
depth - 1);
97 (*items)->setVisible(*items, 0);
116 for (i = 0; i < 6; i++) {
163 if (old != panel->
choice) {
209 if (old != panel->
cursor) {
227 }
else if (panel->
learned >= 3) {
252 switch (panel->
state) {
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.
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...
Cursor * createCursor(s16 layerId, s32 depth, s16 x, s16 y)
A menu cursor on a layer at (x, y)
#define TEXT_DIGI_LAB
DGLABO: STGDGLAB's.
#define TEXT_SKILL_NAMES
SKLNAM.
#define TEXT_DIGIMON_NAMES
DIGNAM.
#define TEXT_SKILL_INFO
SKLINF.
#define FILE_MENU_SPRITES
Files the engine loads by number.
FileCache FILE_CACHE
The file cache.
#define SKILL_MARKED
marked in the lab (STGDGLAB_updateSkillPanel)
#define SKILL_LAST
the sixth skill
#define SKILL_ID
PartnerEntry.skills.
DigimonData *(* GET_DIGIMON)(s32 id)
getDigimon for the overlays, in the small data (.sdata) between game/items.c's and file/file_table....
#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...
TechData TECHS[443]
The techniques, from 1: technique n is TECHS[n - 1].
#define PAD_PRESSED(button)
One button of pad 1: newly pressed, auto-repeated while held, or held.
#define PAD_REPEATED(button)
static void STGDGLAB_pickSkill(LabSkillPanel *panel, LabSkillPanelWindows *windows)
The skill list: up and down move the cursor; cross marks the skill or unmarks it, after a yes/no,...
LabSkillPanel * STGDGLAB_createSkillPanel(s32 member, s32 slot)
Creates the second screen's skill panel (task) for a slot of a partner (the MEMBER parameter is a par...
void STGDGLAB_showSkillPanel(LabSkillPanel *panel, LabSkillPanelWindows *windows, s32 show)
Shows the slot's Digimon's skills, each marked or not and in the palette of marked,...
void STGDGLAB_createSkillPanelWindows(LabSkillPanel *panel, LabSkillPanelWindows *windows)
Creates the panel's windows and cursors.
static void STGDGLAB_answerMark(LabSkillPanel *panel, LabSkillPanelWindows *windows, s32 mark)
The yes/no answer: yes marks the skill (or unmarks it), and either closes the question.
static void STGDGLAB_askMark(LabSkillPanel *panel, LabSkillPanelWindows *windows, s32 message)
Asks whether to unmark (message 7) or mark (8) the skill, yes first.
void STGDGLAB_updateSkillPanel(LabSkillPanel *panel, LabSkillPanelWindows *windows)
The panel of a partner's Digimon's skills: up and down pick one, cross marks it to pass on or unmarks...
static void STGDGLAB_drawSkillPanel(LabSkillPanel *panel)
Draws the panel, its skills' icons once it is open, and the yes/no box.
SoundState SOUND
rsin and rcos (libgte) read rsin_tbl[a - 0x800] and the like: their addresses before the table fall i...
#define SOUND_SELECT
Sounds the overlays share, with SOUNDTST's names.
#define SOUND_MENU_CANCEL
SYSTEM01.
#define SOUND_CURSOR
SYSTEM02: a cursor moves.
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
void(* setPos)()
(cursor, x, y)
void(* setVisible)()
(cursor, visible)
u8 nameId
string in file 0x4F
void *(* getEntry)(u32 fileAndIndex)
s32(* getPartnerEntry)()
-1 if it hasn't the Digimon
s32(* getPartnerSlots)()
(partner, s16 *out): the count
s32(* updateFade)(PanelAnim *fade)
void(* startFade)(PanelAnim *fade, s32 fadeIn)
TextWindow * learned
how many skills are marked
TextWindow * learnedLabel
TextWindow * mp
the picked skill's
A panel of the second screen (STGDGLAB_createSkillPanel)
void(* nextState)(struct LabSkillPanel *task)
void(* setState)(struct LabSkillPanel *task, s32 state)
void(* setStep)(struct LabSkillPanel *task, s32 step)
void(* setSubstate)(struct LabSkillPanel *task, s32 substate)
s16 skills[6]
SKILL_ID and the flags below, 0 for none.
s16 id
FIRST_ENTRY_ID and up.
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(* draw)()
(sheet, frame, x, y)
void(* setTexture)()
(x, y)
u8 icon
a frame of the menu sprites, from 0x37
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(* setLines)()
no prototype: callers would truncate u8 args
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)