Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
field_menu.h
Go to the documentation of this file.
1#ifndef STSTATUS_H
2#define STSTATUS_H
3
4/* STSTATUS.PRO: the field menu's screens. createFieldMenu (in main) lists
5 the options; picking one switches to this mode, which opens the screen of
6 FIELD_MENU_CHOICE (STSTATUS_screens) and goes back to the field menu when
7 it closes. Its strings are in files 0xB1, 0x6B, 0x64, 0x4F, 0x48, 0xA3 and
8 0x9C. */
9
10#include "engine/game.h"
11
12/* The name of this overlay's copy of a function of src/shared/ */
13#define OVL_NAME(name) STSTATUS_##name
14
15/* The menu's sprite sheet; the next file is its texture archive */
16#if VERSION_US || VERSION_JP
17#define FILE_STATUS_SPRITES 0x3F4
18#define FILE_STATUS_BG 0x78A /* +2 in the second half of the game */
19#elif VERSION_EU
20#define FILE_STATUS_SPRITES 0x404
21#define FILE_STATUS_BG 0x799
22#endif
23
24/* The mode's main task (STSTATUS_createMenu) */
25typedef struct FieldMenuScreen {
27 /* 0x50 */ s32 layer;
28 /* 0x54 */ s32 bgScroll;
29 /* 0x58 */ s32 bgTick;
30 /* 0x5C */ s32 pad; /* never read or written */
31 /* 0x60 */ s32 gameHalf; /* STSTATUS_getGameHalf */
32 /* 0x64 */ s32 bgFile;
33 /* 0x68 */ s32 bgFile2;
34 /* 0x6C */ s32 bgArchive;
35 /* 0x70 */ s32 bgArchive1;
36 /* 0x74 */ s32 bgArchive2;
38
43
44/* A screen of the field menu (STSTATUS_screens) */
45typedef struct StatusScreen {
47 /* 0x50 */ FieldMenuScreen *menu;
48 /* 0x54 */ s32 layer;
49 /* 0x58 */ s32 depth;
51
52/* The screens with the party's pages (STSTATUS_createCardScreen, STSTATUS_createDemoScreen) */
53typedef struct PartyScreen {
55 /* 0x50 */ FieldMenuScreen *menu;
56 /* 0x54 */ s32 layer;
57 /* 0x58 */ s32 depth;
58 /* 0x5C */ s32 count; /* party members */
59 /* 0x60 */ s32 frames[3]; /* of their portraits' animations */
60 /* 0x6C */ s32 frameTime;
61 /* 0x70 */ s32 choice; /* 0, 1: the options */
62 /* 0x74 */ PanelAnim pageFades[3];
63 /* 0xA4 */ PanelAnim fades[2];
64 /* 0xC4 */ PanelAnim fade;
66
67/* The field menu's first screen (STSTATUS_createItemScreen) */
68typedef struct ItemScreen {
70 /* 0x050 */ FieldMenuScreen *menu;
71 /* 0x054 */ s32 layer;
72 /* 0x058 */ s32 depth;
73 /* 0x05C */ s32 count; /* party members */
74 /* 0x060 */ s32 frames[3]; /* of the partners' portraits */
75 /* 0x06C */ s32 frameTime;
76 /* 0x070 */ s32 option;
77 /* 0x074 */ u8 pad74[4]; /* never read or written */
78 /* 0x078 */ s32 item; /* the chosen one */
79 /* 0x07C */ s32 itemIndex;
80 /* 0x080 */ s32 itemShown;
81 /* 0x084 */ s16 items[0x194]; /* of the chosen option's list */
82 /* 0x3AC */ s32 itemCount;
83 /* 0x3B0 */ s32 member; /* the one an item is used on */
84 /* 0x3B4 */ s32 cursorShown;
85 /* 0x3B8 */ s32 cursorFrame;
86 /* 0x3BC */ s32 cursorTime;
87 /* 0x3C0 */ s32 blink; /* the help arrow */
88 /* 0x3C4 */ s32 blinkFrame;
89 /* 0x3C8 */ s32 blinkTime;
90 /* 0x3CC */ PanelAnim pageFades[3];
91 /* 0x3FC */ PanelAnim fades[2];
92 /* 0x41C */ PanelAnim fades2[2];
93 /* 0x43C */ PanelAnim fade;
94 /* 0x44C */ u8 pad44C[0x45C - 0x44C]; /* never read or written: createTask allocates 0x45C bytes */
96
97typedef struct ItemScreenWindows {
98 /* 0x00 */ TextWindow *title;
99 /* 0x04 */ PartnerPage pages[3];
100 /* 0x88 */ TextWindow *help;
101 /* 0x8C */ TextWindow *kind;
102 /* 0x90 */ TextWindow *answers[2];
103 /* 0x98 */ Cursor *answerCursor;
104 /* 0x9C */ TextWindow *money;
106 /* 0xA4 */ TextWindow *options[5];
107 /* 0xB8 */ Cursor *optionCursor;
108 /* 0xBC */ TextWindow *itemName;
110 /* 0xC4 */ TextWindow *equipped; /* how many of the item are equipped */
112 /* 0xCC */ TextWindow *owned;
113 /* 0xD0 */ struct ItemList *panel; /* STSTATUS_createItemList's, while open */
115
116/* The field menu's fifth screen (STSTATUS_createStatusScreen) */
117typedef struct StatsScreen {
119 /* 0x050 */ FieldMenuScreen *menu;
120 /* 0x054 */ s32 layer;
121 /* 0x058 */ s32 depth;
122 /* 0x05C */ s32 count; /* party members */
123 /* 0x060 */ s32 frames[3]; /* of the partners' portraits */
124 /* 0x06C */ s32 frameTime;
125 /* 0x070 */ s32 unk70; /* only cleared, when the equipment panel closes */
126 /* 0x074 */ s32 option; /* the options' cursor */
127 /* 0x078 */ s32 cursorShown;
128 /* 0x07C */ s32 member; /* in the party */
129 /* 0x080 */ s32 cursorFrame;
130 /* 0x084 */ s32 cursorTime;
131 /* 0x088 */ PanelAnim pageFades[3];
132 /* 0x0B8 */ PanelAnim fades[2];
133 /* 0x0D8 */ PanelAnim panelFades[6];
134 /* 0x138 */ PanelAnim fade;
135 /* 0x148 */ void (*previewStats)(struct StatsScreen *screen, s32 slot, s32 item);
137
138typedef struct StatsScreenWindows {
139 /* 0x00 */ TextWindow *title;
140 /* 0x04 */ PartnerPage pages[3];
141 /* 0x88 */ TextWindow *help;
142 /* 0x8C */ TextWindow *help2;
143 /* 0x90 */ TextWindow *options[2];
144 /* 0x98 */ Cursor *cursor;
145 /* 0x9C */ TextWindow *exp;
146 /* 0xA0 */ TextWindow *expLabel;
148 /* 0xA8 */ TextWindow *slots[3]; /* the partner's getPartnerSlots entries */
150 /* 0xB8 */ TextWindow *equip[6];
151 /* 0xD0 */ TextWindow *values[13]; /* the stats of STSTATUS_equipStats */
152 /* 0x104 */ TextWindow *tp;
153 /* 0x108 */ TextWindow *tpLabel;
154 /* 0x10C */ void *panel; /* STSTATUS_createDigivolvePanel's or STSTATUS_createEquipPanel's, while open */
156
157/* A panel of the fifth screen (STSTATUS_createDigivolvePanel) */
158typedef struct DigivolvePanel {
160 /* 0x50 */ StatsScreen *screen;
161 /* 0x54 */ s32 layer;
162 /* 0x58 */ s32 depth;
163 /* 0x5C */ s32 slot; /* the cursors' rows */
164 /* 0x60 */ s32 option;
165 /* 0x64 */ s32 tech; /* the list's row */
166 /* 0x68 */ s32 techCount; /* the entry's techniques */
167 /* 0x6C */ s32 fromEntry; /* the list shows the slot's techniques, not the partner's */
168 /* 0x70 */ s32 member;
169 /* 0x74 */ s16 slots[4]; /* getPartnerSlots */
170 /* 0x7C */ s32 slotCount; /* the slots holding an entry (4 on) */
171 /* 0x80 */ s32 listShown;
172 /* 0x84 */ MenuLerp scroll; /* its value is added to the list's y */
173 /* 0xA0 */ s32 blink; /* the help arrow */
174 /* 0xA4 */ s32 blinkFrame;
175 /* 0xA8 */ s32 time;
176 /* 0xAC */ PanelAnim fades[5];
178
179typedef struct DigivolvePanelWindows {
180 /* 0x00 */ TextWindow *slots[3];
181 /* 0x0C */ Cursor *slotCursor;
184 /* 0x18 */ TextWindow *options[2];
185 /* 0x20 */ Cursor *optionCursor;
186 /* 0x24 */ Cursor *listCursor;
190 /* 0x34 */ TextWindow *list[13]; /* two columns: 6 and 7 */
191 /* 0x68 */ TextWindow *values[6];
192 /* 0x80 */ TextWindow *title;
193 /* 0x84 */ TextWindow *help;
194 /* 0x88 */ TextWindow *mpLabel;
195 /* 0x8C */ TextWindow *mp;
197
198/* A list of the fifth screen (STSTATUS_createEquipPanel) */
199typedef struct EquipPanel {
201 /* 0x050 */ StatsScreen *screen;
202 /* 0x054 */ s32 layer;
203 /* 0x058 */ s32 depth;
204 /* 0x05C */ s32 partner;
205 /* 0x060 */ s32 slot; /* the equipment slot being changed */
206 /* 0x064 */ s32 cursor; /* the list's row */
207 /* 0x068 */ s32 count; /* items */
208 /* 0x06C */ s32 scroll; /* the first one shown */
209 /* 0x070 */ s32 arrowShown; /* the scroll arrows blink */
210 /* 0x074 */ s32 arrowTime;
211 /* 0x078 */ s16 items[0x194]; /* those that fit the slot, -1: remove */
212 /* 0x3A0 */ s16 owned[0x194]; /* listItems' result, sorted into items */
213 /* 0x6C8 */ s32 showSlot; /* draw the slot's item icon */
214 /* 0x6CC */ PanelAnim panels[4];
215} EquipPanel;
216
217typedef struct EquipPanelWindows {
218 /* 0x00 */ TextWindow *title;
219 /* 0x04 */ TextWindow *slots[6]; /* the equipment */
220 /* 0x1C */ Cursor *cursor;
222 /* 0x24 */ Cursor *listCursor;
223 /* 0x28 */ struct {
225 TextWindow *times; /* the "x" before count */
226 TextWindow *count; /* how many are owned */
227 } rows[8];
228 /* 0x88 */ TextWindow *help;
229 /* 0x8C */ TextWindow *kind;
231 /* 0x94 */ TextWindow *slotItem;
232 /* 0x98 */ ScrollBar *scrollBar; /* for more than 8 items */
233 /* 0x9C */ u8 pad[0xA4 - 0x9C]; /* never read or written: createTask allocates 0xA4 bytes of children */
235
236/* A list of the first screen (STSTATUS_createItemList) */
237typedef struct ItemList {
239 /* 0x050 */ ItemScreen *screen;
240 /* 0x054 */ s32 layer;
241 /* 0x058 */ s32 depth;
242 /* 0x05C */ s32 list; /* into STSTATUS_itemLists */
243 /* 0x060 */ s32 startItem; /* an item to put the cursor on */
244 /* 0x064 */ s32 active; /* the player can move the cursor */
245 /* 0x068 */ s32 count;
246 /* 0x06C */ s16 items[0x194];
247 /* 0x394 */ s16 bag[0x194];
248 /* 0x6BC */ s32 cursor;
249 /* 0x6C0 */ s32 arrowFrame; /* the page arrows' palette */
250 /* 0x6C4 */ s32 time;
251 /* 0x6C8 */ s32 page; /* of 16 items */
252 /* 0x6CC */ s32 pageCount;
253 /* 0x6D0 */ s32 hasPrev; /* pages before and after this one */
254 /* 0x6D4 */ s32 hasNext;
255 /* 0x6D8 */ u8 pad[4]; /* never read or written */
256 /* 0x6DC */ PanelAnim fades[3];
257} ItemList;
258
259typedef struct ItemListWindows {
260 /* 0x00 */ TextWindow *title;
261 /* 0x04 */ TextWindow *items[8][2];
262 /* 0x44 */ TextWindow *page;
265 /* 0x50 */ TextWindow *prev; /* arrows */
266 /* 0x54 */ TextWindow *next;
267 /* 0x58 */ Cursor *cursor;
268 /* 0x5C */ u8 pad[0x6C - 0x5C]; /* never read or written: createTask allocates 0x6C bytes of children */
270
271/* The screens' helpers (STSTATUS_data.funcs) */
272typedef struct StatusFuncs {
273 /* 0x00 */ void (*loadFiles)(void);
274 /* 0x04 */ s32 (*filesLoading)(void);
275 /* 0x08 */ void (*startFade)(PanelAnim *fade, s32 fadeIn);
276 /* 0x0C */ s32 (*updateFade)(PanelAnim *fade);
277 /* 0x10 */ void (*startLerp)(MenuLerp *lerp, s32 from, s32 to, s32 frames);
278 /* 0x14 */ s32 (*updateLerp)(MenuLerp *lerp);
279 /* 0x18 */ s32 *(*getList)(s32 list, s32 index);
280 /* 0x1C */ s32 (*listItems)(s32 list, s16 *out); /* 6, 7: special lists; returns the count */
281 /* 0x20 */ s32 (*canEquip)(s32 partner, s32 slot, s32 item);
282 /* 0x24 */ void (*equip)(s32 partner, s32 slot, s32 item);
284
285/* Where the game is (STSTATUS_areaFuncs) */
286typedef struct StatusAreaFuncs {
287 /* 0x0 */ s32 (*getGameHalf)(void); /* 0, 1, or -1 outside of the field */
288 /* 0x4 */ s32 (*getArea)(void);
289 /* 0x8 */ void (*getVisitedAreas)(s32 *out);
291
292/* The windows of the screens STSTATUS_updateCardScreen and STSTATUS_updateDemoScreen */
293typedef struct PartyScreenWindows {
294 /* 0x00 */ PartnerPage pages[3];
295 /* 0x84 */ TextWindow *help; /* two lines */
296 /* 0x88 */ TextWindow *hint;
298 /* 0x90 */ TextWindow *options[2];
299 /* 0x98 */ Cursor *cursor;
300 /* 0x9C */ ScreenFade *fader;
302
303/* The map screen (STSTATUS_createMapScreen); the offsets are the European version's,
304 the USA version's are 4 more from 0x64 to 0x188 */
305typedef struct StatusMapScreen {
307 /* 0x050 */ FieldMenuScreen *menu;
308 /* 0x054 */ s32 layer;
309 /* 0x058 */ s32 depth;
310 /* 0x05C */ s32 height;
311 /* 0x060 */ s32 top; /* where the map starts */
312#if VERSION_US
313 /* 0x064 */ s32 hoverY;
314#endif
315 /* 0x064 */ u8 pad64[4]; /* never read or written */
316 /* 0x068 */ s32 file; /* FILE_STATUS_BG or the next one but one */
317 /* 0x06C */ u8 pad6C[0x78 - 0x6C]; /* never read or written */
318 /* 0x078 */ s32 gameHalf;
319 /* 0x07C */ s32 progress; /* which towns are drawn */
320 /* 0x080 */ s32 archive; /* entries of file: the map */
321 /* 0x084 */ s32 archive1; /* the towns */
322 /* 0x088 */ s32 archive2; /* the marks */
323 /* 0x08C */ s32 textFile;
324 /* 0x090 */ s32 scrollX;
325 /* 0x094 */ s32 scrollY;
326 /* 0x098 */ s32 homeX; /* the current area's mark */
327 /* 0x09C */ s32 homeY;
328 /* 0x0A0 */ s32 homeFrame;
329 /* 0x0A4 */ u8 padA4[4]; /* never read or written */
330 /* 0x0A8 */ s32 visited[47]; /* the areas, spot i at i - 1 */
331 /* 0x164 */ s32 cursorX;
332 /* 0x168 */ s32 cursorY;
333 /* 0x16C */ s32 ready;
334 /* 0x170 */ s32 cursorFrame;
335 /* 0x174 */ s32 time;
336 /* 0x178 */ s32 speedX;
337 /* 0x17C */ s32 speedY;
338 /* 0x180 */ s32 hovering;
339 /* 0x184 */ s32 spot; /* the area under the cursor */
340#if VERSION_EU || VERSION_JP
341 /* 0x188 */ s32 hoverX; /* where the cursor was when it got there */
342 /* 0x18C */ s32 hoverY;
343#endif
344 /* 0x190 */ PanelAnim fade;
346
347/* The screen of STSTATUS_createSortScreen */
348typedef struct SortScreen {
351 /* 0x54 */ s32 layer;
352 /* 0x58 */ s32 depth;
353 /* 0x5C */ s32 count; /* party members */
354 /* 0x60 */ s32 frames[3]; /* of the partners' portraits */
355 /* 0x6C */ s32 frameTime;
356 /* 0x70 */ s32 arrowShown; /* the swap's arrow */
357 /* 0x74 */ s32 arrowFrame;
358 /* 0x78 */ s32 arrowTime;
359 /* 0x7C */ s32 cursorShown;
360 /* 0x80 */ s32 cursor;
361 /* 0x84 */ s32 first; /* the members to swap */
362 /* 0x88 */ s32 second;
363 /* 0x8C */ s32 cursorFrame;
364 /* 0x90 */ s32 cursorTime;
365 /* 0x94 */ PanelAnim pageFades[3];
366 /* 0xC4 */ PanelAnim fades[2];
367 /* 0xE4 */ PanelAnim fade;
368} SortScreen;
369
370typedef struct SortScreenWindows {
371 /* 0x00 */ TextWindow *title;
372 /* 0x04 */ PartnerPage pages[3];
373 /* 0x88 */ TextWindow *help;
375
376/* A party member's techniques on the tech screen */
377typedef struct TechRow {
378 /* 0x00 */ s16 slots[4]; /* getPartnerSlots */
379 /* 0x08 */ PartnerEntry entries[3];
380 /* 0x44 */ s16 techs[5]; /* the ones it can use here */
381 /* 0x50 */ s32 techCount;
382} TechRow;
383
384/* The tech screen's windows */
385typedef struct TechScreenWindows {
386 /* 0x00 */ TextWindow *title;
387 /* 0x04 */ PartnerPage pages[3];
388 /* 0x88 */ TextWindow *help;
389 /* 0x8C */ TextWindow *help2;
390 /* 0x90 */ TextWindow *mpLabel;
391 /* 0x94 */ TextWindow *mp; /* the technique's cost */
393 /* 0x9C */ TextWindow *techs[5];
394 /* 0xB0 */ Cursor *cursor;
396
397/* The tech screen (STSTATUS_createTechScreen) */
398typedef struct TechScreen {
400 /* 0x050 */ FieldMenuScreen *menu;
401 /* 0x054 */ s32 layer;
402 /* 0x058 */ s32 depth;
403 /* 0x05C */ s32 count; /* party members */
404 /* 0x060 */ s32 frames[3]; /* of the partners' portraits */
405 /* 0x06C */ s32 frameTime;
406 /* 0x070 */ s32 cursorFrame;
407 /* 0x074 */ s32 cursorTime;
408 /* 0x078 */ s32 memberShown; /* the user's cursor */
409 /* 0x07C */ s32 member; /* who uses the technique */
410 /* 0x080 */ s32 targetShown; /* the target's cursor */
411 /* 0x084 */ s32 target;
412 /* 0x088 */ s32 cursor;
413 /* 0x08C */ TechRow rows[3];
414 /* 0x188 */ s32 blink; /* the help arrow */
415 /* 0x18C */ s32 blinkFrame;
416 /* 0x190 */ s32 blinkTime;
417 /* 0x194 */ PanelAnim pageFades[3];
418 /* 0x1C4 */ PanelAnim fades[2];
419 /* 0x1E4 */ PanelAnim fade;
420} TechScreen;
421
422/* An area on the map screen */
423typedef struct StatusMapSpot {
424 /* 0x0 */ s32 sprite;
425 /* 0x4 */ s32 x;
426 /* 0x8 */ s32 y;
428
429typedef struct StatusMapPoint {
430 /* 0x0 */ s32 x;
431 /* 0x4 */ s32 y;
433
434/* The screens' tables, item lists and helpers, in one object: the functions
435 that use two of them keep its address in a register */
436typedef struct StatusData {
437 /* 0x000 */ PartnerAnim *partnerAnims; /* the partners' portraits */
438 /* 0x004 */ WindowPos *layout; /* where the windows go, and their strings */
439 /* 0x008 */ StatusMapSpot *spots; /* the map's areas, from 1 */
440 /* 0x00C */ StatusMapPoint *towns; /* from 1 */
441 /* 0x010 */ s16 items[404]; /* ITEM_FUNCS.list(2) */
442 /* 0x338 */ s32 itemCount;
443 /* 0x33C */ s16 items2[404]; /* ITEM_FUNCS.list(3) */
444 /* 0x664 */ s32 item2Count;
445 /* 0x668 */ StatusFuncs funcs;
446} StatusData;
447
448/*
449 * Draws the panels of the party's pages (parts 0x15 to 0x17 of the menu's
450 * sprites), each stretched across by its page's fade while it opens or
451 * closes; five screens draw them with this loop. The match depends on both
452 * branches drawing the panel's last part: drawn once after the if, the saved
453 * registers change.
454 */
455#define DRAW_PAGE_PANELS(sprite, screen, i) \
456 for (i = 0; i < (screen)->count; i++) { \
457 if ((screen)->pageFades[i].level != 0) { \
458 if ((screen)->pageFades[i].level != ONE) { \
459 (sprite).setScale((screen)->pageFades[i].level, ONE, ONE); \
460 (sprite).setPivot(0, i * 0x2E + 0x25); \
461 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x15, 0, i * 0x2E + 0x11); \
462 (sprite).setScale((screen)->pageFades[i].level, (screen)->pageFades[i].level, ONE); \
463 (sprite).setPivot(0x7C, i * 0x2E + 0x27); \
464 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x16, 0x67, i * 0x2E + 0x13); \
465 (sprite).setScale((screen)->pageFades[i].level, ONE, ONE); \
466 (sprite).setPivot(0, i * 0x2E + 0x25); \
467 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x17, 0, i * 0x2E + 0x11); \
468 } else { \
469 (sprite).setScale(ONE, ONE, ONE); \
470 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x15, 0, i * 0x2E + 0x11); \
471 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x16, 0x67, i * 0x2E + 0x13); \
472 (sprite).draw(FILE_CACHE.getEntry(FILE_MENU_SPRITES << 16), 0x17, 0, i * 0x2E + 0x11); \
473 } \
474 } \
475 }
476
477/* card_screen.c */
480void STSTATUS_showCardPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show);
481void STSTATUS_showCardChoices(PartyScreen *screen, PartyScreenWindows *windows, s32 show);
486void STSTATUS_startFader(ScreenFade *task, s32 fadeIn, s32 duration);
490
491/* demo_screen.c */
493void STSTATUS_showDemoPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show);
494void STSTATUS_showDemoChoices(PartyScreen *screen, PartyScreenWindows *windows, s32 show);
499
500/* equip_panel.c */
502void STSTATUS_showEquipment(EquipPanel *panel, EquipPanelWindows *windows, s32 show);
503void STSTATUS_showEquipItem(EquipPanel *panel, EquipPanelWindows *windows, s32 item);
504void STSTATUS_showEquipList(EquipPanel *panel, EquipPanelWindows *windows, s32 show);
505void STSTATUS_showSlotItem(EquipPanel *panel, EquipPanelWindows *windows, s32 show);
510
511/* digivolve_panel.c */
522
523/* status_screen.c */
525void STSTATUS_showStatusPage(StatsScreen *screen, StatsScreenWindows *windows, s32 member, s32 show);
526void STSTATUS_showChosenPage(StatsScreen *screen, StatsScreenWindows *windows, s32 member, s32 show);
528void STSTATUS_showPartnerSlots(StatsScreen *screen, StatsScreenWindows *windows, s32 show);
530void STSTATUS_showPartnerStats(StatsScreen *screen, StatsScreenWindows *windows, s32 show);
531void STSTATUS_previewStats(StatsScreen *screen, s32 slot, s32 item);
537
538/* item_screen.c */
540void STSTATUS_showItemPage(ItemScreen *screen, ItemScreenWindows *windows, s32 member, s32 show);
541void STSTATUS_showMoney(ItemScreen *screen, ItemScreenWindows *windows, s32 show);
542void STSTATUS_showItemLists(ItemScreen *screen, ItemScreenWindows *windows, s32 show);
543void STSTATUS_showChosenItem(ItemScreen *screen, s32 show);
544void STSTATUS_showItemHelp(ItemScreen *screen, s32 mode);
545void STSTATUS_fadeItemInfo(ItemScreen *screen, s32 show);
547void STSTATUS_useItem(ItemScreen *screen, ItemScreenWindows *windows);
552
553/* item_list.c */
555void STSTATUS_showItemListPage(ItemList *panel, ItemListWindows *windows, s32 show);
558void STSTATUS_runItemList(ItemList *panel, ItemListWindows *windows);
562
563/* tech_screen.c */
567s32 STSTATUS_getTechHealing(s32 partner, s32 tech);
568s32 STSTATUS_useTech(TechScreen *screen, TechScreenWindows *windows, s32 failSound);
570void STSTATUS_showTechPage(TechScreen *screen, TechScreenWindows *windows, s32 member, s32 show);
571void STSTATUS_showTechList(TechScreen *screen, TechScreenWindows *windows, s32 show);
572void STSTATUS_showChosenTech(TechScreen *screen, TechScreenWindows *windows, s32 show);
577
578/* sort_screen.c */
580void STSTATUS_showSortPage(SortScreen *screen, SortScreenWindows *windows, s32 member, s32 show);
585
586/* map_screen.c */
587void STSTATUS_showMapArea(StatusMapScreen *screen, TextWindow **windows);
588void STSTATUS_moveMapCursor(StatusMapScreen *screen, s32 dx, s32 dy);
589void STSTATUS_runMapScreen(StatusMapScreen *screen, TextWindow **windows);
593
594/* menu.c */
597void STSTATUS_setScrollBarCount(ScrollBar *bar, s32 pageSize, s32 count);
605void STSTATUS_loadFiles(void);
607void STSTATUS_startFade(PanelAnim *fade, s32 fadeIn);
609void STSTATUS_startLerp(MenuLerp *lerp, s32 from, s32 to, s32 frames);
611
612/* helpers.c */
613s32 *STSTATUS_getTowns(s32 list, s32 index);
614s32 STSTATUS_listItems(s32 list, s16 *out);
617s32 STSTATUS_canEquip(s32 partner, s32 slot, s32 item);
618void STSTATUS_equip(s32 partner, s32 slot, s32 item);
622
623/* What the items that raise a stat raise (STSTATUS_statItems), up to a kind of -1 */
624typedef struct StatusStatItem {
625 /* 0x0 */ s16 kind; /* the item's second byte */
626 /* 0x2 */ s16 stat; /* in PartnerStats.stats */
627 /* 0x4 */ s16 max;
629
630/* STSTATUS's data, in its order: each object's tables, then the last one's
631 (helpers.c), which all the objects read */
632extern s32 STSTATUS_pageStats[]; /* the stats a page shows (one table a screen) */
633extern s32 STSTATUS_pageStats2[];
634extern s32 STSTATUS_slotStrings[]; /* the strings of the empty equipment slots */
635extern s32 STSTATUS_kindStrings[]; /* the strings of the item kinds, from 1 */
636extern s32 STSTATUS_slotLists[]; /* the item list of each equipment slot */
637extern s32 STSTATUS_panelStats[]; /* the stats the fifth screen's panel shows */
638extern s32 STSTATUS_pageStats4[];
639extern s32 STSTATUS_equipStats[]; /* the stats screen 4 shows */
641extern s32 STSTATUS_itemLists[]; /* the item lists of the first screen's options */
642extern s32 STSTATUS_pageStats0[];
643extern s32 STSTATUS_kindStrings0[]; /* the strings of the item kinds, from 0 */
645extern s32 STSTATUS_pageStats8[];
646extern s32 STSTATUS_techSprites[]; /* the sprites of the technique counts */
647extern s32 STSTATUS_pageStats9[];
648extern s32 STSTATUS_cursorFrames[]; /* the map cursor's frames */
649extern Task *(*STSTATUS_screens[2][7])(FieldMenuScreen *menu, s32 extra);
654extern s32 STSTATUS_townList0[]; /* the towns the map shows, up to 0 */
655extern s32 STSTATUS_townList1[];
656extern s32 STSTATUS_townList2[];
657extern s32 STSTATUS_townList3[];
658extern s32 STSTATUS_noTowns;
659extern s32 *STSTATUS_townLists[][5];
661extern u8 STSTATUS_equipKinds[]; /* the item kinds of item list 5 */
662extern u8 STSTATUS_mapAreas[]; /* the map's area of each field map */
664
665#endif /* STSTATUS_H */
signed int s32
Definition common.h:11
signed short s16
Definition common.h:9
unsigned char u8
Definition common.h:8
#define TASK_HEADER(Type)
Definition task.h:39
void STSTATUS_runScreens(FieldMenuScreen *menu, FieldMenuScreenChildren *children)
Opens the screen of FIELD_MENU_CHOICE (the item screen when it has none) and, once it closes,...
Definition menu.c:16
void STSTATUS_updateItemScreen(ItemScreen *screen, ItemScreenWindows *windows)
The first screen's task: counts the party, sets the fades and creates the windows,...
void STSTATUS_createDemoWindows(PartyScreen *screen, PartyScreenWindows *windows)
demo_screen.c
Definition demo_screen.c:8
void STSTATUS_useItem(ItemScreen *screen, ItemScreenWindows *windows)
Uses the chosen item on the chosen party member.
void STSTATUS_updateScrollBar(ScrollBar *bar)
void STSTATUS_updateDigivolvePanel(DigivolvePanel *panel, DigivolvePanelWindows *windows)
The digivolution panel's task: creates its windows and counts the partner's filled slots,...
s32 STSTATUS_noTowns
Definition helpers.c:350
void STSTATUS_startFader(ScreenFade *task, s32 fadeIn, s32 duration)
void STSTATUS_updateStatusScreen(StatsScreen *screen, StatsScreenWindows *windows)
The fifth screen's task: counts the party, starts the pages' fades and creates the windows,...
void STSTATUS_drawStatusScreen(StatsScreen *screen)
Draws the partners' portraits and frames, the chosen one's, its equipment and the panels' frames.
s32 STSTATUS_slotStrings[]
the strings of the empty equipment slots
Task * STSTATUS_createItemScreen(FieldMenuScreen *menu, s32 extra)
Creates the field menu's first screen (task), the items.
void STSTATUS_showPartnerStats(StatsScreen *screen, StatsScreenWindows *windows, s32 show)
Shows the party member's stats, in another palette the ones that are raised.
void STSTATUS_runDemoScreen(PartyScreen *screen, PartyScreenWindows *windows)
As STSTATUS_runCardScreen, for the second screen: the choice sets GAME.digivolveDemo.
void STSTATUS_updateMapScreen(StatusMapScreen *screen, TextWindow **windows)
The map screen's update.
Definition map_screen.c:273
s32 STSTATUS_cursorFrames[]
the map cursor's frames
Definition helpers.c:210
s32 STSTATUS_pageStats9[]
s32 STSTATUS_townList0[]
the towns the map shows, up to 0
Definition helpers.c:326
void STSTATUS_createStatusWindows(StatsScreen *screen, StatsScreenWindows *windows)
status_screen.c
void STSTATUS_showEquipList(EquipPanel *panel, EquipPanelWindows *windows, s32 show)
Fills the list of the items that fit the slot.
Definition equip_panel.c:72
void STSTATUS_showEquipItem(EquipPanel *panel, EquipPanelWindows *windows, s32 item)
An item's name and, for slots 2 and 3, its kind (none: string 0x51)
Definition equip_panel.c:55
void STSTATUS_runItemScreen(ItemScreen *screen, ItemScreenWindows *windows)
The first screen's update: opens the pages, picks an item list, then the party member to use the chos...
void STSTATUS_showChosenTech(TechScreen *screen, TechScreenWindows *windows, s32 show)
Shows or hides the chosen technique's name and MP cost.
void STSTATUS_showStatusPage(StatsScreen *screen, StatsScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
void STSTATUS_drawItemScreen(ItemScreen *screen)
Draws the partners' portraits and frames, the item, the cursor and the help arrow.
void STSTATUS_updateEquipPanel(EquipPanel *panel, EquipPanelWindows *windows)
The equipment panel's task: creates its windows, then runs and draws it; when killed it clears the fi...
void STSTATUS_showSlotItem(EquipPanel *panel, EquipPanelWindows *windows, s32 show)
The item in the slot being changed, or the slot's name if it's empty.
void STSTATUS_showCardPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show)
Shows or hides a party member's page: name and five stats (as showPartnerPage)
Definition card_screen.c:56
void STSTATUS_showPartnerEquipment(StatsScreen *screen, StatsScreenWindows *windows, s32 show)
The party member's equipment, or the slots' names where it has none.
void STSTATUS_runTechScreen(TechScreen *screen, TechScreenWindows *windows)
The technique screen's update: opens the pages, picks who uses a technique, which one and on whom,...
s32 STSTATUS_listItems(s32 list, s16 *out)
Puts the owned items of a list in OUT and returns how many: below 5 the item lists of ITEM_FUNCS,...
Definition helpers.c:16
s32 STSTATUS_useTech(TechScreen *screen, TechScreenWindows *windows, s32 failSound)
Uses the chosen healing technique on the target or on the whole party, then plays FAILSOUND and says ...
Definition tech_screen.c:96
ItemList * STSTATUS_createItemList(ItemScreen *screen, s32 list, s32 item)
Creates the first screen's list of the items of a list (task), the cursor on ITEM when it is not 0.
Definition item_list.c:358
void STSTATUS_startFade(PanelAnim *fade, s32 fadeIn)
void STSTATUS_moveMapCursor(StatusMapScreen *screen, s32 dx, s32 dy)
Moves the cursor, or the map when the cursor is in the middle.
Definition map_screen.c:53
Task * STSTATUS_createCardScreen(FieldMenuScreen *menu, s32 extra)
Creates the screen with the party's pages (task) whose two options go to the card album (MODE_CARD_AL...
void STSTATUS_scrollTechList(DigivolvePanel *panel, DigivolvePanelWindows *windows)
Moves the list to the panel's scroll position.
void STSTATUS_updateCardScreen(PartyScreen *screen, PartyScreenWindows *windows)
The screen's update: counts the party and opens the pages.
s32 STSTATUS_pageStats2[]
void STSTATUS_getVisitedAreas(s32 *out)
Sets OUT[area] to 1 for the map's areas of this half of the game that have a field map whose flag (0x...
Definition helpers.c:186
s32 STSTATUS_pageStats8[]
Task * STSTATUS_createTechScreen(FieldMenuScreen *menu, s32 extra)
Creates the field menu's technique screen (task)
void STSTATUS_showTechCost(DigivolvePanel *panel, DigivolvePanelWindows *windows, s32 show)
Shows the cost of the technique under the list's cursor.
ScrollBar * STSTATUS_createScrollBar(void)
void STSTATUS_showSortPage(SortScreen *screen, SortScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
Definition sort_screen.c:32
void STSTATUS_createTechWindows(TechScreen *screen, TechScreenWindows *windows)
Creates the technique screen's windows: the title, the party's pages, the help, the MP cost and the l...
u8 STSTATUS_equipKinds[]
the item kinds of item list 5
Definition helpers.c:371
void STSTATUS_showChosenPage(StatsScreen *screen, StatsScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showStatusPage, on the first page.
void STSTATUS_createItemListWindows(ItemList *panel, ItemListWindows *windows)
item_list.c
Definition item_list.c:8
void STSTATUS_runMapScreen(StatusMapScreen *screen, TextWindow **windows)
Moves the cursor faster while the pad is held; triangle closes.
Definition map_screen.c:134
s32 STSTATUS_listFieldTechs(TechScreen *screen, s32 member)
Lists the techniques of a party member that can be used here (0xB8-0xBC), each once,...
Definition tech_screen.c:23
void STSTATUS_showDigivolveChoices(DigivolvePanel *panel, DigivolvePanelWindows *windows, s32 show)
Shows or hides the question about the chosen slot: its Digimon's name, then to start battles as it (o...
FieldMenuScreen * STSTATUS_createMenu(void)
Creates the mode's main task and requests its background's files, the second half of the game's in th...
Definition menu.c:105
void STSTATUS_fadeItemInfo(ItemScreen *screen, s32 show)
Opens or closes the chosen item's panel (its icon and frame); closing it also hides the item's name,...
void STSTATUS_runSortScreen(SortScreen *screen, SortScreenWindows *windows)
The party order screen's steps: the pages fade in, two members are chosen and swapped,...
void STSTATUS_drawEquipPanel(EquipPanel *panel)
Draws the equipment panels: the partner's equipment, the list of items that fit the slot and the slot...
Task * STSTATUS_createStatusScreen(FieldMenuScreen *menu, s32 extra)
Creates the field menu's fifth screen (task), the party's stats, slots and equipment.
s32 STSTATUS_moveItemListCursor(ItemList *panel, ItemListWindows *windows)
Moves the item list's cursor: L1 and R1 turn the pages; returns whether it moved.
Definition item_list.c:107
void STSTATUS_updateSortScreen(SortScreen *screen, SortScreenWindows *windows)
The party order screen's task: counts the party, starts the fades and creates the windows,...
s32 STSTATUS_listEquipItems(s16 *out)
The items whose kind (WeaponData.kind) is one of STSTATUS_equipKinds's four.
Definition helpers.c:32
void STSTATUS_runDigivolvePanel(DigivolvePanel *panel, DigivolvePanelWindows *windows)
The panel's update: picks a slot, then shows its entry's techniques or makes the battle start as it.
s32 STSTATUS_updateFade(PanelAnim *fade)
void STSTATUS_runItemList(ItemList *panel, ItemListWindows *windows)
The item list's update: fades in, lets an item be chosen, fades out.
Definition item_list.c:178
void STSTATUS_showEquipment(EquipPanel *panel, EquipPanelWindows *windows, s32 show)
The partner's equipment, or the slots' names where it has none.
Definition equip_panel.c:32
EquipPanel * STSTATUS_createEquipPanel(StatsScreen *screen)
Creates the fifth screen's equipment panel (task) for its chosen party member.
void STSTATUS_setScrollBarPos(ScrollBar *bar, s32 pos)
void STSTATUS_updateTechScreen(TechScreen *screen, TechScreenWindows *windows)
The technique screen's task: counts the party, lists each member's techniques that can be used here a...
StatusAreaFuncs STSTATUS_areaFuncs
Where the game is.
Definition helpers.c:410
s32 STSTATUS_equipStats[]
the stats screen 4 shows
void STSTATUS_createDigivolveWindows(DigivolvePanel *panel, DigivolvePanelWindows *windows)
digivolve_panel.c
void STSTATUS_showCardChoices(PartyScreen *screen, PartyScreenWindows *windows, s32 show)
Shows or hides the help and the two options with their cursor.
Definition card_screen.c:87
void STSTATUS_updateItemList(ItemList *panel, ItemListWindows *windows)
The item list's task: fills the list, counts its pages of 16 and puts the cursor on the start item (e...
Definition item_list.c:308
void STSTATUS_createEquipWindows(EquipPanel *panel, EquipPanelWindows *windows)
equip_panel.c
Definition equip_panel.c:8
void STSTATUS_drawDigivolvePanel(DigivolvePanel *panel)
Draws the panel's frames, the technique icons and the help arrow.
Task * STSTATUS_createSortScreen(FieldMenuScreen *menu, s32 extra)
Creates the field menu's party order screen (task), where two members swap places.
PartnerAnim STSTATUS_partnerAnims[]
The partners' portrait animations.
Definition helpers.c:220
void STSTATUS_setScrollBarX(ScrollBar *bar, s32 x, s32 width)
menu.c
s32 STSTATUS_slotLists[]
the item list of each equipment slot
void STSTATUS_updateDemoScreen(PartyScreen *screen, PartyScreenWindows *windows)
As STSTATUS_updateCardScreen, for the second screen.
s32 STSTATUS_canEquip(s32 partner, s32 slot, s32 item)
Whether a partner can put an item in an equipment slot (-1: none): its partners has a bit per partner...
Definition helpers.c:83
void STSTATUS_refreshItemList(ItemList *panel, ItemListWindows *windows)
Shows the page with the arrows, the chosen item and the page number.
Definition item_list.c:79
void STSTATUS_updateFader(ScreenFade *task)
void STSTATUS_showTechList(TechScreen *screen, TechScreenWindows *windows, s32 show)
Shows or hides the list of the party member's techniques.
void STSTATUS_drawSortScreen(SortScreen *screen)
Draws the cursors, the partners' portraits and frames, the two being swapped squashed by the fade,...
void STSTATUS_drawBackground(FieldMenuScreen *menu)
Draws the scrolling background, sprite 0x1D at (bgScroll, bgScroll): it moves one pixel down and righ...
Definition menu.c:41
s32 STSTATUS_getArea(void)
The map's area of the current field map (STSTATUS_mapAreas)
Definition helpers.c:180
s32 STSTATUS_pageStats4[]
Task *(* STSTATUS_screens[2][7])(FieldMenuScreen *menu, s32 extra)
The field menu's screens, by FIELD_MENU_CHOICE.
Definition helpers.c:215
void STSTATUS_updateMenu(FieldMenuScreen *menu, FieldMenuScreenChildren *children)
The mode's main task: loads the files and the background's textures, then runs the screens (STSTATUS_...
Definition menu.c:60
void STSTATUS_previewStats(StatsScreen *screen, s32 slot, s32 item)
Shows the party member's stats as they would be with the item in the slot, in another palette the one...
s32 STSTATUS_techSprites[]
the sprites of the technique counts
void STSTATUS_drawItemList(ItemList *panel)
Draws the item list's icons, page arrows and frames.
Definition item_list.c:243
void STSTATUS_runCardScreen(PartyScreen *screen, PartyScreenWindows *windows)
Runs the screen: the pages come in one after the other, the cursor picks one of the two options,...
s32 STSTATUS_townList1[]
Definition helpers.c:330
void STSTATUS_showDigivolveStats(DigivolvePanel *panel, DigivolvePanelWindows *windows, s32 show)
The stats and techniques of the slot's entry (or of the partner itself), or hides them.
void STSTATUS_runStatusChoice(StatsScreen *screen, StatsScreenWindows *windows)
Runs the fifth screen's question: the panels come in, the cursor picks one of the two options and the...
void STSTATUS_fillItemList(ItemList *panel)
tech_screen.c
Definition tech_screen.c:8
void STSTATUS_createItemWindows(ItemScreen *screen, ItemScreenWindows *windows)
item_screen.c
Definition item_screen.c:7
s32 STSTATUS_updateLerp(MenuLerp *lerp)
void STSTATUS_showItemListPage(ItemList *panel, ItemListWindows *windows, s32 show)
Shows or hides the list's page and its arrows.
Definition item_list.c:32
s32 STSTATUS_itemLists[]
the item lists of the first screen's options
StatusStatItem STSTATUS_statItems[]
What the items that raise a stat raise.
Task * STSTATUS_createMapScreen(FieldMenuScreen *menu, s32 extra)
Creates the map screen (task): the map of the first half of the game or, in the late game,...
Definition map_screen.c:322
s32 STSTATUS_listItemsOfKind(s32 kind, s16 *out)
The items of one kind (WeaponData.kind)
Definition helpers.c:61
s32 STSTATUS_pageStats[]
STSTATUS's data, in its order: each object's tables, then the last one's (helpers....
void STSTATUS_setScrollBarRange(ScrollBar *bar, s32 top, s32 bottom)
s32 STSTATUS_kindStrings[]
the strings of the item kinds, from 1
u8 STSTATUS_mapAreas[]
the map's area of each field map
Definition helpers.c:377
s32 * STSTATUS_getTowns(s32 list, s32 index)
helpers.c
Definition helpers.c:9
void STSTATUS_createCardWindows(PartyScreen *screen, PartyScreenWindows *windows)
Creates the windows of a screen with the party's pages.
Definition card_screen.c:21
void STSTATUS_drawTechScreen(TechScreen *screen)
Draws the partners' portraits and frames, the cursors and the help arrow.
void STSTATUS_drawCardScreen(PartyScreen *screen)
Draws the party's portraits and their pages' panels.
void STSTATUS_startLerp(MenuLerp *lerp, s32 from, s32 to, s32 frames)
Starts moving a value from FROM to TO in FRAMES frames, playing SOUND_MENU_OPEN; nothing when they ar...
Definition menu.c:173
s32 STSTATUS_pageStats0[]
void STSTATUS_showStatusChoices(StatsScreen *screen, StatsScreenWindows *windows, s32 show)
Shows or hides the fifth screen's two options: the digivolution panel and the equipment panel.
void STSTATUS_setScrollBarCount(ScrollBar *bar, s32 pageSize, s32 count)
void STSTATUS_showItemPage(ItemScreen *screen, ItemScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
Definition item_screen.c:49
void STSTATUS_showDigivolveSlots(DigivolvePanel *panel, DigivolvePanelWindows *windows, s32 show)
The Digimon in the partner's three slots, the one it is highlighted, and the partner's own name.
ScreenFade * STSTATUS_createFader(void)
s32 STSTATUS_panelStats[]
the stats the fifth screen's panel shows
s32 STSTATUS_itemInfoFaded(ItemScreen *screen)
Moves the chosen item's panel on; 1 once it is fully open or closed.
void STSTATUS_drawDemoScreen(PartyScreen *screen)
As STSTATUS_drawCardScreen, for the second screen.
Definition demo_screen.c:98
s32 STSTATUS_getTechHealing(s32 partner, s32 tech)
A technique's healing: 64 times its power, plus its power times the partner's wisdom over 8.
Definition tech_screen.c:80
StatusMapPoint STSTATUS_towns[]
Where the map's towns are, from 1.
Definition helpers.c:300
StatusMapSpot STSTATUS_spots[]
The map's areas (STSTATUS_mapAreas), from 1.
Definition helpers.c:250
s32 STSTATUS_townList3[]
Definition helpers.c:342
void STSTATUS_runStatusScreen(StatsScreen *screen, StatsScreenWindows *windows)
The fifth screen's steps: the pages fade in, a party member is chosen and its panel opens,...
Task * STSTATUS_createDemoScreen(FieldMenuScreen *menu, s32 extra)
Creates the second screen with the party's pages (task), whose two options set GAME....
s32 STSTATUS_equipStrings[]
The strings of the empty equipment slots, as STSTATUS_slotStrings.
void STSTATUS_showDemoChoices(PartyScreen *screen, PartyScreenWindows *windows, s32 show)
As STSTATUS_showCardChoices, for the second screen: the options are GAME.digivolveDemo's two values,...
Definition demo_screen.c:70
void STSTATUS_updateScene(Task *task, FieldMenuScreen **child)
card_screen.c
s32 STSTATUS_kindStrings0[]
the strings of the item kinds, from 0
void STSTATUS_showDemoPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
Definition demo_screen.c:38
void STSTATUS_equip(s32 partner, s32 slot, s32 item)
Puts an item in a partner's equipment slot (0 or less: empties it), moving the counts between GAME....
Definition helpers.c:107
void STSTATUS_showItemHelp(ItemScreen *screen, s32 mode)
The help line: 1 the chosen item and the kind of a weapon, 2 a question with two answers,...
s32 * STSTATUS_townLists[][5]
The towns the map shows, by STSTATUS_getGameHalf and GAME.progress.
Definition helpers.c:352
s32 STSTATUS_getGameHalf(void)
1 on the field maps of the second half of the game (0x270 on), 0 on those of the first,...
Definition helpers.c:172
void STSTATUS_showMoney(ItemScreen *screen, ItemScreenWindows *windows, s32 show)
Shows or hides the player's money.
Definition item_screen.c:80
StatusData STSTATUS_data
Definition helpers.c:356
void STSTATUS_showTechPage(TechScreen *screen, TechScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
void STSTATUS_loadFiles(void)
Loads the menu's textures and requests its strings: the menu's, the items', the Digimon's and the ski...
Definition menu.c:130
void STSTATUS_drawFader(ScreenFade *task)
s32 STSTATUS_getChosenTech(TechScreen *screen)
The chosen technique, or 0 if its user hasn't the MP for it.
Definition tech_screen.c:68
void STSTATUS_runEquipPanel(EquipPanel *panel, EquipPanelWindows *windows)
The equipment panel's steps: a slot is chosen, then an item from the list of those that fit it,...
s32 STSTATUS_townList2[]
Definition helpers.c:335
DigivolvePanel * STSTATUS_createDigivolvePanel(StatsScreen *screen)
Creates the fifth screen's digivolution panel (task) for its chosen party member.
void STSTATUS_showMapArea(StatusMapScreen *screen, TextWindow **windows)
map_screen.c
Definition map_screen.c:7
void STSTATUS_drawMapScreen(StatusMapScreen *screen)
Draws the map, the visited areas, the towns and the cursor.
Definition map_screen.c:176
void STSTATUS_createSortWindows(SortScreen *screen, SortScreenWindows *windows)
sort_screen.c
Definition sort_screen.c:8
WindowPos STSTATUS_layout[]
Where the screens' windows go, and their strings.
Definition helpers.c:231
void STSTATUS_showChosenItem(ItemScreen *screen, s32 show)
Shows or hides the chosen item's name and how many are equipped and owned.
void STSTATUS_showPartnerSlots(StatsScreen *screen, StatsScreenWindows *windows, s32 show)
The partner's slots: the entries in it (getPartnerSlots), the one it starts battles as (battleDigivol...
s32 STSTATUS_filesLoading(void)
Whether the menu's strings are still loading.
Definition menu.c:146
void STSTATUS_showItemLists(ItemScreen *screen, ItemScreenWindows *windows, s32 show)
Shows or hides the first screen's five options, the item lists.
Definition item_screen.c:92
A menu cursor: a text window showing one of the CURSOR_FRAMES glyphs.
Definition text.h:19
TextWindow * skillLevel
Definition field_menu.h:188
TextWindow * list[13]
two columns: 6 and 7
Definition field_menu.h:190
TextWindow * skillLabel
Definition field_menu.h:189
TextWindow * entryName
Definition field_menu.h:187
TextWindow * partnerName
Definition field_menu.h:182
TextWindow * choiceTitle
Definition field_menu.h:183
TextWindow * mpLabel
Definition field_menu.h:194
TextWindow * options[2]
Definition field_menu.h:184
TextWindow * values[6]
Definition field_menu.h:191
TextWindow * slots[3]
Definition field_menu.h:180
A panel of the fifth screen (STSTATUS_createDigivolvePanel)
Definition field_menu.h:158
StatsScreen * screen
Definition field_menu.h:160
s32 slotCount
the slots holding an entry (4 on)
Definition field_menu.h:170
s32 blink
the help arrow
Definition field_menu.h:173
s32 slot
the cursors' rows
Definition field_menu.h:163
s32 tech
the list's row
Definition field_menu.h:165
PanelAnim fades[5]
Definition field_menu.h:176
s32 fromEntry
the list shows the slot's techniques, not the partner's
Definition field_menu.h:167
s32 techCount
the entry's techniques
Definition field_menu.h:166
s16 slots[4]
getPartnerSlots
Definition field_menu.h:169
MenuLerp scroll
its value is added to the list's y
Definition field_menu.h:172
struct EquipPanelWindows::@16 rows[8]
TextWindow * help
Definition field_menu.h:228
TextWindow * slotItem
Definition field_menu.h:231
TextWindow * slotTitle
Definition field_menu.h:230
TextWindow * listTitle
Definition field_menu.h:221
ScrollBar * scrollBar
for more than 8 items
Definition field_menu.h:232
TextWindow * kind
Definition field_menu.h:229
TextWindow * times
the "x" before count
Definition field_menu.h:225
TextWindow * name
Definition field_menu.h:224
TextWindow * title
Definition field_menu.h:218
u8 pad[0xA4 - 0x9C]
never read or written: createTask allocates 0xA4 bytes of children
Definition field_menu.h:233
TextWindow * slots[6]
the equipment
Definition field_menu.h:219
TextWindow * count
how many are owned
Definition field_menu.h:226
Cursor * listCursor
Definition field_menu.h:222
A list of the fifth screen (STSTATUS_createEquipPanel)
Definition field_menu.h:199
PanelAnim panels[4]
Definition field_menu.h:214
StatsScreen * screen
Definition field_menu.h:201
s32 slot
the equipment slot being changed
Definition field_menu.h:205
s32 arrowShown
the scroll arrows blink
Definition field_menu.h:209
s32 count
items
Definition field_menu.h:207
s16 items[0x194]
those that fit the slot, -1: remove
Definition field_menu.h:211
s32 showSlot
draw the slot's item icon
Definition field_menu.h:213
s32 cursor
the list's row
Definition field_menu.h:206
s32 scroll
the first one shown
Definition field_menu.h:208
s16 owned[0x194]
listItems' result, sorted into items
Definition field_menu.h:212
The mode's main task (STSTATUS_createMenu)
Definition field_menu.h:25
s32 gameHalf
STSTATUS_getGameHalf.
Definition field_menu.h:31
s32 pad
never read or written
Definition field_menu.h:30
The menu opened on the field: the three party members' pages, a list of options (FIELD_MENU_OPTIONS,...
Definition menu.h:116
TextWindow * prev
arrows
Definition field_menu.h:265
TextWindow * pageSeparator
Definition field_menu.h:263
Cursor * cursor
Definition field_menu.h:267
TextWindow * pageCount
Definition field_menu.h:264
TextWindow * next
Definition field_menu.h:266
u8 pad[0x6C - 0x5C]
never read or written: createTask allocates 0x6C bytes of children
Definition field_menu.h:268
TextWindow * page
Definition field_menu.h:262
TextWindow * items[8][2]
Definition field_menu.h:261
TextWindow * title
Definition field_menu.h:260
A list of the first screen (STSTATUS_createItemList)
Definition field_menu.h:237
PanelAnim fades[3]
Definition field_menu.h:256
s16 bag[0x194]
Definition field_menu.h:247
s32 arrowFrame
the page arrows' palette
Definition field_menu.h:249
ItemScreen * screen
Definition field_menu.h:239
s32 pageCount
Definition field_menu.h:252
s32 page
of 16 items
Definition field_menu.h:251
s32 hasPrev
pages before and after this one
Definition field_menu.h:253
s32 active
the player can move the cursor
Definition field_menu.h:244
s32 startItem
an item to put the cursor on
Definition field_menu.h:243
u8 pad[4]
never read or written
Definition field_menu.h:255
s16 items[0x194]
Definition field_menu.h:246
s32 list
into STSTATUS_itemLists
Definition field_menu.h:242
s32 hasNext
Definition field_menu.h:254
struct ItemList * panel
STSTATUS_createItemList's, while open.
Definition field_menu.h:113
TextWindow * equippedLabel
Definition field_menu.h:109
TextWindow * moneyLabel
Definition field_menu.h:105
TextWindow * help
Definition field_menu.h:100
TextWindow * ownedLabel
Definition field_menu.h:111
TextWindow * owned
Definition field_menu.h:112
TextWindow * options[5]
Definition field_menu.h:106
TextWindow * money
Definition field_menu.h:104
Cursor * answerCursor
Definition field_menu.h:103
PartnerPage pages[3]
Definition field_menu.h:99
TextWindow * itemName
Definition field_menu.h:108
Cursor * optionCursor
Definition field_menu.h:107
TextWindow * title
Definition field_menu.h:98
TextWindow * answers[2]
Definition field_menu.h:102
TextWindow * kind
Definition field_menu.h:101
TextWindow * equipped
how many of the item are equipped
Definition field_menu.h:110
The field menu's first screen (STSTATUS_createItemScreen)
Definition field_menu.h:68
s16 items[0x194]
of the chosen option's list
Definition field_menu.h:81
s32 blinkTime
Definition field_menu.h:89
FieldMenuScreen * menu
Definition field_menu.h:70
s32 cursorTime
Definition field_menu.h:86
s32 blink
the help arrow
Definition field_menu.h:87
u8 pad74[4]
never read or written
Definition field_menu.h:77
PanelAnim fades2[2]
Definition field_menu.h:92
s32 item
the chosen one
Definition field_menu.h:78
s32 blinkFrame
Definition field_menu.h:88
u8 pad44C[0x45C - 0x44C]
never read or written: createTask allocates 0x45C bytes
Definition field_menu.h:94
s32 cursorShown
Definition field_menu.h:84
PanelAnim fade
Definition field_menu.h:93
s32 itemIndex
Definition field_menu.h:79
s32 frameTime
Definition field_menu.h:75
s32 frames[3]
of the partners' portraits
Definition field_menu.h:74
s32 cursorFrame
Definition field_menu.h:85
s32 count
party members
Definition field_menu.h:73
s32 itemCount
Definition field_menu.h:82
s32 member
the one an item is used on
Definition field_menu.h:83
s32 itemShown
Definition field_menu.h:80
PanelAnim pageFades[3]
Definition field_menu.h:90
PanelAnim fades[2]
Definition field_menu.h:91
Moves a value towards a target in fixed point, as the menu overlays' startLerp and updateLerp do.
Definition menu.h:27
Opens or closes a menu panel: level goes 0 -> ONE in duration frames (or back at twice the speed),...
Definition menu.h:18
A partner Digimon's animation in a menu: up to seven sprite ids, -1 ending it early (the sprites are ...
Definition game_state.h:340
One of a partner's Digimon (getPartnerEntry, setPartnerEntry)
Definition game_state.h:247
One party member in the field menu: name and five stats.
Definition menu.h:85
The windows of the screens STSTATUS_updateCardScreen and STSTATUS_updateDemoScreen.
Definition field_menu.h:293
TextWindow * choiceTitle
Definition field_menu.h:297
ScreenFade * fader
Definition field_menu.h:300
PartnerPage pages[3]
Definition field_menu.h:294
TextWindow * options[2]
Definition field_menu.h:298
TextWindow * help
two lines
Definition field_menu.h:295
TextWindow * hint
Definition field_menu.h:296
The screens with the party's pages (STSTATUS_createCardScreen, STSTATUS_createDemoScreen)
Definition field_menu.h:53
s32 count
party members
Definition field_menu.h:58
FieldMenuScreen * menu
Definition field_menu.h:55
PanelAnim fades[2]
Definition field_menu.h:63
PanelAnim fade
Definition field_menu.h:64
s32 frames[3]
of their portraits' animations
Definition field_menu.h:59
s32 choice
0, 1: the options
Definition field_menu.h:61
PanelAnim pageFades[3]
Definition field_menu.h:62
Fades the whole screen to black and back with a subtractive rectangle.
Definition gfx.h:361
A vertical scroll bar, as the menu overlays (STSTATUS, STGDGLAB) draw one.
Definition menu.h:38
PartnerPage pages[3]
Definition field_menu.h:372
TextWindow * help
Definition field_menu.h:373
TextWindow * title
Definition field_menu.h:371
The screen of STSTATUS_createSortScreen.
Definition field_menu.h:348
PanelAnim fades[2]
Definition field_menu.h:366
s32 cursorFrame
Definition field_menu.h:363
s32 count
party members
Definition field_menu.h:353
PanelAnim pageFades[3]
Definition field_menu.h:365
s32 first
the members to swap
Definition field_menu.h:361
s32 cursorShown
Definition field_menu.h:359
s32 frames[3]
of the partners' portraits
Definition field_menu.h:354
FieldMenuScreen * menu
Definition field_menu.h:350
PanelAnim fade
Definition field_menu.h:367
s32 arrowShown
the swap's arrow
Definition field_menu.h:356
TextWindow * slotTitle
Definition field_menu.h:147
TextWindow * exp
Definition field_menu.h:145
TextWindow * title
Definition field_menu.h:139
TextWindow * tpLabel
Definition field_menu.h:153
PartnerPage pages[3]
Definition field_menu.h:140
TextWindow * values[13]
the stats of STSTATUS_equipStats
Definition field_menu.h:151
TextWindow * options[2]
Definition field_menu.h:143
void * panel
STSTATUS_createDigivolvePanel's or STSTATUS_createEquipPanel's, while open.
Definition field_menu.h:154
TextWindow * slots[3]
the partner's getPartnerSlots entries
Definition field_menu.h:148
TextWindow * help2
Definition field_menu.h:142
TextWindow * expLabel
Definition field_menu.h:146
TextWindow * equipTitle
Definition field_menu.h:149
TextWindow * equip[6]
Definition field_menu.h:150
TextWindow * tp
Definition field_menu.h:152
TextWindow * help
Definition field_menu.h:141
The field menu's fifth screen (STSTATUS_createStatusScreen)
Definition field_menu.h:117
void(* previewStats)(struct StatsScreen *screen, s32 slot, s32 item)
Definition field_menu.h:135
s32 unk70
only cleared, when the equipment panel closes
Definition field_menu.h:125
PanelAnim panelFades[6]
Definition field_menu.h:133
s32 member
in the party
Definition field_menu.h:128
s32 option
the options' cursor
Definition field_menu.h:126
PanelAnim fades[2]
Definition field_menu.h:132
PanelAnim pageFades[3]
Definition field_menu.h:131
FieldMenuScreen * menu
Definition field_menu.h:119
s32 frames[3]
of the partners' portraits
Definition field_menu.h:123
s32 count
party members
Definition field_menu.h:122
PanelAnim fade
Definition field_menu.h:134
Where the game is (STSTATUS_areaFuncs)
Definition field_menu.h:286
s32(* getGameHalf)(void)
0, 1, or -1 outside of the field
Definition field_menu.h:287
s32(* getArea)(void)
Definition field_menu.h:288
void(* getVisitedAreas)(s32 *out)
Definition field_menu.h:289
The screens' tables, item lists and helpers, in one object: the functions that use two of them keep i...
Definition field_menu.h:436
StatusMapPoint * towns
from 1
Definition field_menu.h:440
WindowPos * layout
where the windows go, and their strings
Definition field_menu.h:438
StatusMapSpot * spots
the map's areas, from 1
Definition field_menu.h:439
PartnerAnim * partnerAnims
the partners' portraits
Definition field_menu.h:437
s16 items[404]
ITEM_FUNCS.list(2)
Definition field_menu.h:441
StatusFuncs funcs
Definition field_menu.h:445
s16 items2[404]
ITEM_FUNCS.list(3)
Definition field_menu.h:443
The screens' helpers (STSTATUS_data.funcs)
Definition field_menu.h:272
s32(* updateFade)(PanelAnim *fade)
Definition field_menu.h:276
s32(* updateLerp)(MenuLerp *lerp)
Definition field_menu.h:278
s32(* canEquip)(s32 partner, s32 slot, s32 item)
Definition field_menu.h:281
void(* startLerp)(MenuLerp *lerp, s32 from, s32 to, s32 frames)
Definition field_menu.h:277
s32(* listItems)(s32 list, s16 *out)
6, 7: special lists; returns the count
Definition field_menu.h:280
void(* startFade)(PanelAnim *fade, s32 fadeIn)
Definition field_menu.h:275
s32(* filesLoading)(void)
Definition field_menu.h:274
void(* equip)(s32 partner, s32 slot, s32 item)
Definition field_menu.h:282
void(* loadFiles)(void)
Definition field_menu.h:273
The map screen (STSTATUS_createMapScreen); the offsets are the European version's,...
Definition field_menu.h:305
s32 homeX
the current area's mark
Definition field_menu.h:326
u8 padA4[4]
never read or written
Definition field_menu.h:329
s32 file
FILE_STATUS_BG or the next one but one.
Definition field_menu.h:316
s32 archive
entries of file: the map
Definition field_menu.h:320
PanelAnim fade
Definition field_menu.h:344
s32 archive1
the towns
Definition field_menu.h:321
u8 pad64[4]
never read or written
Definition field_menu.h:315
s32 hoverX
where the cursor was when it got there
Definition field_menu.h:341
s32 top
where the map starts
Definition field_menu.h:311
s32 archive2
the marks
Definition field_menu.h:322
FieldMenuScreen * menu
Definition field_menu.h:307
s32 spot
the area under the cursor
Definition field_menu.h:339
s32 visited[47]
the areas, spot i at i - 1
Definition field_menu.h:330
u8 pad6C[0x78 - 0x6C]
never read or written
Definition field_menu.h:317
s32 progress
which towns are drawn
Definition field_menu.h:319
An area on the map screen.
Definition field_menu.h:423
A screen of the field menu (STSTATUS_screens)
Definition field_menu.h:45
FieldMenuScreen * menu
Definition field_menu.h:47
What the items that raise a stat raise (STSTATUS_statItems), up to a kind of -1.
Definition field_menu.h:624
s16 kind
the item's second byte
Definition field_menu.h:625
s16 stat
in PartnerStats.stats
Definition field_menu.h:626
Any task, seen through its header.
Definition task.h:62
A party member's techniques on the tech screen.
Definition field_menu.h:377
s16 techs[5]
the ones it can use here
Definition field_menu.h:380
PartnerEntry entries[3]
Definition field_menu.h:379
s32 techCount
Definition field_menu.h:381
s16 slots[4]
getPartnerSlots
Definition field_menu.h:378
The tech screen's windows.
Definition field_menu.h:385
TextWindow * help
Definition field_menu.h:388
TextWindow * mpLabel
Definition field_menu.h:390
TextWindow * listTitle
Definition field_menu.h:392
TextWindow * title
Definition field_menu.h:386
TextWindow * help2
Definition field_menu.h:389
PartnerPage pages[3]
Definition field_menu.h:387
TextWindow * mp
the technique's cost
Definition field_menu.h:391
TextWindow * techs[5]
Definition field_menu.h:393
The tech screen (STSTATUS_createTechScreen)
Definition field_menu.h:398
s32 member
who uses the technique
Definition field_menu.h:409
s32 frames[3]
of the partners' portraits
Definition field_menu.h:404
PanelAnim pageFades[3]
Definition field_menu.h:417
PanelAnim fade
Definition field_menu.h:419
s32 blink
the help arrow
Definition field_menu.h:414
s32 cursorFrame
Definition field_menu.h:406
s32 targetShown
the target's cursor
Definition field_menu.h:410
PanelAnim fades[2]
Definition field_menu.h:418
s32 memberShown
the user's cursor
Definition field_menu.h:408
TechRow rows[3]
Definition field_menu.h:413
FieldMenuScreen * menu
Definition field_menu.h:400
s32 count
party members
Definition field_menu.h:403
A text window (createTextWindow): up to six text buffers (0 is shown, 1-5 are "work" buffers that con...
Definition text.h:131
Where a window goes, and the string it shows.
Definition menu.h:102