17 for (i = 0; i < info->
childCount; i++, windows++) {
18 if (*windows !=
NULL) {
19 (*windows)->setVisible(*windows, 0);
34 if (info->
shown == 0) {
35 for (i = 0, w = windows; i < info->
childCount; i++, w++) {
36 (*w)->setVisible(*w, 0);
38 }
else if (save->
name[0] == 0) {
39 for (i = 0, w = windows; i < info->
childCount; i++, w++) {
42 (*w)->setNumber(*w, 1, 0);
43 (*w)->setRightAlign(*w, 1);
48 windows[0]->
setString(windows[0], save, -1);
51 for (i = 0; i < 2; i++) {
59 for (i = 0, w = &windows[12]; i < 3; i++, w++) {
60 (*w)->setRightAlign(*w, 1);
63 windows[17]->
setNumber(windows[17], 0, 0);
65 windows[17]->
setPos(windows[17], 0x111, 0xB2);
70 windows[18]->
setNumber(windows[18], 0, 0);
72 windows[18]->
setPos(windows[18], 0x124, 0xB2);
76 for (i = 0; i < 2; i++) {
80 for (i = 0; i < 3; i++) {
82 if (partners[i] - 3 < 0) {
103 switch (info->
state) {
109#elif VERSION_EU || VERSION_JP
113 for (i = 0; i < info->
childCount; i++, windows++) {
114 if (*windows ==
NULL) {
130 switch (info->
step) {
144 switch (info->
step) {
174 for (j = 0; j < 3; j++) {
175 if (partners[j] - 3 >= 0) {
177 if (info->
frames[j] >= 8) {
186 for (j = 0; j < 3; j++) {
187 if (partners[j] - 3 >= 0) {
GfxState GFX
GFX: the graphics state and its methods.
#define TASK_INIT
Tasks: every game object is a task, a heap block that starts with this header and is updated once per...
s32 LANGUAGE
The European version's settings, in the small data (.sdata) between file/file_table....
#define TEXT_MEMORY_CARD
MEMCRD.
#define TEXT_AREA_NAMES
STAREA.
#define TEXT_SHOP_NAMES
SHPNAM.
FileCache FILE_CACHE
The file cache.
#define SCREEN_LAYER
The layer over the whole screen that most modes create first and draw their menus on (FIELDSTG and ST...
void STGMCARD_hideInfo(MemCardInfo *info)
Hides the details window's text and starts fading it out (info->hide)
void STGMCARD_showInfo(MemCardInfo *info)
Starts fading the details window in (info->show)
void STGMCARD_refreshInfo(MemCardInfo *info)
Fills the details window with the selected save, or hides it.
MemCardInfo * STGMCARD_createInfo(MemCardSaves *saves)
Creates the details window (task) of the save list.
void STGMCARD_updateInfo(MemCardInfo *info)
The details window's task: creates its text windows, fades it in and out, and draws the selected save...
STGMCARD.PRO: the memory card screen (MODE_CONTINUE).
#define FILE_GMCARD_SHEET
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
MemCardWindowSpec STGMCARD_detailWindows[]
the details' text windows: their text, type and place
MemCardScreenFuncs STGMCARD_funcs
STGMCARD's data (data/stgmcard.c)
s32 STGMCARD_partnerAnims[][7]
the partners' sprites while they wait, by partner (from 3): -1 ends a loop
void *(* getEntry)(u32 fileAndIndex)
The window with the selected save's details (STGMCARD_updateInfo)
s32 frames[3]
of the three partners' animations
void(* hide)(struct MemCardInfo *info)
void(* refresh)(struct MemCardInfo *info)
void(* nextState)(struct MemCardInfo *task)
void(* setSubstate)(struct MemCardInfo *task, s32 substate)
s32 drawing
the partners and frame are drawn
void(* show)(struct MemCardInfo *info)
A save of the memory card, as the list shows it.
u8 name[0x18]
empty for a free slot
s32 partners[3]
3 and up: a partner, whose animation the details show
The saves of a memory card (STGMCARD_updateSaves)
MemCardFile file
the card's
s32(* updateFade)(PanelAnim *fade)
void(* startFade)(PanelAnim *fade, s32 fadeIn)
s32 text
a string of text file 0x79
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)
A text window (createTextWindow): up to six text buffers (0 is shown, 1-5 are "work" buffers that con...
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_BLUE
a light blue: what is highlighted or current
TextWindow * createTextWindow(s16 layerId, s16 style, s16 x, s16 y)
A text window on a layer, in a font style, at (x, y)