Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
demo_screen.c
Go to the documentation of this file.
1/* The second object of STSTATUS.PRO (see card_screen.c), the second screen
2 with the party's pages (STSTATUS_createDemoScreen): its rodata starts at 0x800825E4
3 (USA). */
4
5#include "menus/field_menu.h"
6
7/* As STSTATUS_createCardWindows, without moving the children above the screen */
9 s32 i;
10 s32 j;
11 WindowPos *pos;
12
13 for (j = 0; j < 3; j++) {
14 pos = &STSTATUS_data.layout[0];
15 windows->pages[j].name = createTextWindow(screen->layer, 1, pos->x, pos->y + j * 46);
16 pos = &STSTATUS_data.layout[1];
17 for (i = 0; i < 5; i++, pos++) {
18 windows->pages[j].labels[i] = createTextWindow(screen->layer, 3, pos->x, pos->y + j * 46);
19 }
20 pos = &STSTATUS_data.layout[6];
21 for (i = 0; i < 5; i++, pos++) {
22 windows->pages[j].values[i] = createTextWindow(screen->layer, 3, pos->x, pos->y + j * 46);
23 }
24 }
25 pos = &STSTATUS_data.layout[12];
26 windows->help = createTextWindow(screen->layer, 1, pos->x, pos->y);
27 windows->help->setLines(windows->help, 2);
28 windows->hint = createTextWindow(screen->layer, 1, pos->x, pos->y + 14);
29 windows->choiceTitle = createTextWindow(screen->layer, 1, 0xB2, 0x2A);
30 for (i = 0; i < 2; i++) {
31 windows->options[i] = createTextWindow(screen->layer, 1, 0xC5, 0x3A + i * 14);
32 }
33 windows->cursor = createCursor(screen->layer, screen->depth - 1, 0xB8, 0x3A);
34 windows->cursor->setVisible(windows->cursor, 0);
35}
36
37/* As STSTATUS_showCardPage */
38void STSTATUS_showDemoPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show) {
39 PartnerTotals stats;
40 WindowPos *layout;
41 s32 id;
42 s32 i;
43
44 if (show) {
45 id = GAME.funcs.getPartyMember(member);
46 GAME.funcs.computeStats(id, &stats);
47 windows->pages[member].name->setString(windows->pages[member].name, GAME.funcs.getPartnerStats(id), -1);
48 layout = &STSTATUS_data.layout[1];
49 for (i = 0; i < 5; i++, layout++) {
50 windows->pages[member].labels[i]->setString(windows->pages[member].labels[i],
52 }
53 for (i = 0; i < 5; i++) {
54 windows->pages[member].values[i]->setNumber(windows->pages[member].values[i], 0, stats.stats[STSTATUS_pageStats2[i]]);
55 windows->pages[member].values[i]->setRightAlign(windows->pages[member].values[i], 1);
56 }
57 } else {
58 windows->pages[member].name->setVisible(windows->pages[member].name, 0);
59 for (i = 0; i < 5; i++) {
60 windows->pages[member].labels[i]->setVisible(windows->pages[member].labels[i], 0);
61 }
62 for (i = 0; i < 5; i++) {
63 windows->pages[member].values[i]->setVisible(windows->pages[member].values[i], 0);
64 }
65 }
66}
67
68/* As STSTATUS_showCardChoices, for the second screen: the options are GAME.digivolveDemo's two
69 values, the current one highlighted */
71 s32 i;
72
73 if (show) {
75 for (i = 0; i < 2; i++) {
76 windows->options[i]->setString(windows->options[i], FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), i + 0x47);
77 }
78 screen->choice = 1 - GAME.digivolveDemo;
79 windows->cursor->setPos(windows->cursor, 0xB8, screen->choice * 14 + 0x3A);
80 if (screen->choice == 0) {
81 windows->options[0]->setPalette(windows->options[0], PALETTE_BLUE);
82 windows->options[1]->setPalette(windows->options[1], PALETTE_WHITE);
83 } else {
84 windows->options[0]->setPalette(windows->options[0], PALETTE_WHITE);
85 windows->options[1]->setPalette(windows->options[1], PALETTE_BLUE);
86 }
87 windows->cursor->setVisible(windows->cursor, 1);
88 } else {
89 windows->choiceTitle->setVisible(windows->choiceTitle, 0);
90 for (i = 0; i < 2; i++) {
91 windows->options[i]->setVisible(windows->options[i], 0);
92 }
93 windows->cursor->setVisible(windows->cursor, 0);
94 }
95}
96
97/* As STSTATUS_drawCardScreen, for the second screen */
99 SpriteDrawer sprite;
100 s32 member;
101 s32 level;
102 s32 i;
103
104 initSpriteDrawer(&sprite);
105 sprite.setLayerId(screen->layer, screen->depth);
106 if (GFX.funcs.getTime() - screen->frameTime >= 13) {
107 screen->frameTime = GFX.funcs.getTime();
108 for (i = 0; i < screen->count; i++) {
109 member = GAME.funcs.getPartyMember(i);
110 screen->frames[i]++;
111 if (STSTATUS_data.partnerAnims[member].frames[screen->frames[i]] == -1 || screen->frames[i] >= 7) {
112 screen->frames[i] = 0;
113 }
114 }
115 }
116 for (i = 0; i < screen->count; i++) {
117 level = screen->pageFades[i].level;
118 if (level != 0) {
119 ZOOM_SPRITE(sprite, level, 0x7C, i * 46 + 0x27);
120 member = GAME.funcs.getPartyMember(i);
121 sprite.setTexture(0x280, 0x100);
123 STSTATUS_data.partnerAnims[member].frames[screen->frames[i]], 0x6B, i * 46 + 0x13);
124 }
125 }
126 sprite.setTexture(0x140, 0);
127 DRAW_PAGE_PANELS(sprite, screen, i);
128 level = screen->fades[1].level;
129 if (level != 0) {
130 STRETCH_SPRITE(sprite, level, 0, 0xD3);
131 sprite.setTexture(0x280, 0x100);
132 sprite.draw(FILE_CACHE.getEntry(FILE_STATUS_SPRITES << 16), 0x20, 0, 0xC2);
133 }
134 if (screen->fade.level != 0) {
135 initSpriteDrawer(&sprite);
136 sprite.setLayerId(screen->layer, screen->depth);
137 sprite.setTexture(0x280, 0x100);
138 level = screen->fade.level;
139 if (level != ONE) {
140 sprite.setScale(level, ONE, ONE);
141 sprite.setPivot(0x140, 0x40);
142 }
143 sprite.draw(FILE_CACHE.getEntry(FILE_STATUS_SPRITES << 16), 0x3A, 0xA8, 0x28);
144 }
145}
146
147/* Starts the fade of the first page (and, with one party member, of the
148 panels); the next substate is the party's size */
149static inline void STSTATUS_startDemoScreen(PartyScreen *screen) {
150 STSTATUS_data.funcs.startFade(&screen->pageFades[0], 1);
151 if (screen->count == 1) {
152 STSTATUS_data.funcs.startFade(&screen->fades[1], 1);
153 STSTATUS_data.funcs.startFade(&screen->fade, 1);
154 }
155 screen->substate = screen->count;
156}
157
158/* One member: once the page and the panels are in, shows the page, the help,
159 the hint and the options */
160static inline void STSTATUS_openDemoScreenAlone(PartyScreen *screen, PartyScreenWindows *windows) {
163 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
164 STSTATUS_showDemoPage(screen, windows, 0, 1);
165 windows->help->setString(windows->help, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x49);
166 windows->hint->setString(windows->hint, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x15);
167 STSTATUS_showDemoChoices(screen, windows, 1);
168 screen->substate = 10;
169 }
170}
171
172/* Two members: once the first page is in, shows it and starts the second
173 page and the help's panel */
175 if (STSTATUS_data.funcs.updateFade(&screen->pageFades[0])) {
176 STSTATUS_data.funcs.startFade(&screen->pageFades[1], 1);
177 STSTATUS_data.funcs.startFade(&screen->fades[1], 1);
178 STSTATUS_showDemoPage(screen, windows, 0, 1);
179 screen->substate = 4;
180 }
181}
182
183/* Two members: once the second page and the panels are in, shows the page,
184 the help, the hint and the options */
188 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
189 STSTATUS_showDemoPage(screen, windows, 1, 1);
190 windows->help->setString(windows->help, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x49);
191 windows->hint->setString(windows->hint, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x15);
192 STSTATUS_showDemoChoices(screen, windows, 1);
193 screen->substate = 10;
194 }
195}
196
197/* Three members: once the first page is in, shows it and starts the second */
199 if (STSTATUS_data.funcs.updateFade(&screen->pageFades[0])) {
200 STSTATUS_data.funcs.startFade(&screen->pageFades[1], 1);
201 STSTATUS_showDemoPage(screen, windows, 0, 1);
202 screen->substate = 5;
203 }
204}
205
206/* Three members: once the second page is in, shows it and starts the third
207 and the help's panel */
209 if (STSTATUS_data.funcs.updateFade(&screen->pageFades[1])) {
210 STSTATUS_data.funcs.startFade(&screen->pageFades[2], 1);
211 STSTATUS_data.funcs.startFade(&screen->fades[1], 1);
212 STSTATUS_showDemoPage(screen, windows, 1, 1);
213 screen->substate++;
214 }
215}
216
217/* Three members: once the third page and the panels are in, shows the page,
218 the help, the hint and the options */
219static inline void STSTATUS_openThirdDemoPage(PartyScreen *screen, PartyScreenWindows *windows) {
222 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
223 STSTATUS_showDemoPage(screen, windows, 2, 1);
224 windows->help->setString(windows->help, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x49);
225 windows->hint->setString(windows->hint, FILE_CACHE.load(TEXT_FILE(TEXT_STATUS)), 0x15);
226 STSTATUS_showDemoChoices(screen, windows, 1);
227 screen->substate = 10;
228 }
229}
230
231/* Choosing an option: up and down move the cursor, cross turns the
232 digivolution demo on or off, both cross and triangle close the screen */
233static inline void STSTATUS_chooseDemoOption(PartyScreen *screen, PartyScreenWindows *windows) {
234 s32 choice;
235
236 choice = screen->choice;
237 if (PAD_PRESSED(PAD_UP)) {
238 screen->choice = 0;
239 } else if (PAD_PRESSED(PAD_DOWN)) {
240 screen->choice = 1;
241 }
242 if (choice != screen->choice) {
244 windows->cursor->setPos(windows->cursor, 0xB8, screen->choice * 14 + 0x3A);
245 }
246 if (PAD_PRESSED(PAD_CROSS)) {
248 if (screen->choice == 0) {
250 } else {
252 }
253 screen->substate = 0x32;
254 } else if (PAD_PRESSED(PAD_TRIANGLE)) {
256 screen->substate = 0x32;
257 }
258}
259
260/* Starts closing the screen: the last page, the panels, the help, the hint
261 and the options */
262static inline void STSTATUS_closeDemoScreen(PartyScreen *screen, PartyScreenWindows *windows) {
263 STSTATUS_data.funcs.startFade(&screen->pageFades[screen->count - 1], 0);
264 STSTATUS_showDemoPage(screen, windows, screen->count - 1, 0);
265 STSTATUS_data.funcs.startFade(&screen->fades[1], 0);
266 windows->help->setVisible(windows->help, 0);
267 windows->hint->setVisible(windows->hint, 0);
268 STSTATUS_data.funcs.startFade(&screen->fade, 0);
269 STSTATUS_showDemoChoices(screen, windows, 0);
270 screen->substate = screen->count + 0x32;
271}
272
273/* One member: once the page and the panels are closed, goes on to the end */
274static inline void STSTATUS_closeDemoScreenAlone(PartyScreen *screen) {
277 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
278 screen->substate = 0x39;
279 }
280}
281
282/* Two members: once the second page and the panels are closed, starts
283 closing the first */
287 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
288 STSTATUS_data.funcs.startFade(&screen->pageFades[0], 0);
289 STSTATUS_showDemoPage(screen, windows, 0, 0);
290 screen->substate = 0x36;
291 }
292}
293
294/* Three members: once the third page and the panels are closed, starts
295 closing the second */
296static inline void STSTATUS_closeThirdDemoPage(PartyScreen *screen, PartyScreenWindows *windows) {
299 if (STSTATUS_data.funcs.updateFade(&screen->fades[1])) {
300 STSTATUS_data.funcs.startFade(&screen->pageFades[1], 0);
301 STSTATUS_showDemoPage(screen, windows, 1, 0);
302 screen->substate = 0x37;
303 }
304}
305
306/* Three members: once the second page is closed, starts closing the first */
308 if (STSTATUS_data.funcs.updateFade(&screen->pageFades[1])) {
309 STSTATUS_data.funcs.startFade(&screen->pageFades[0], 0);
310 STSTATUS_showDemoPage(screen, windows, 0, 0);
311 screen->substate++;
312 }
313}
314
315/* As STSTATUS_runCardScreen, for the second screen: the choice sets GAME.digivolveDemo */
317 switch (screen->substate) {
318 case 0:
319 default:
321 break;
322 case 1:
323 STSTATUS_openDemoScreenAlone(screen, windows);
324 break;
325 case 2:
326 STSTATUS_openFirstOfTwoDemoPages(screen, windows);
327 break;
328 case 4:
329 STSTATUS_openSecondOfTwoDemoPages(screen, windows);
330 break;
331 case 3:
332 STSTATUS_openFirstOfThreeDemoPages(screen, windows);
333 break;
334 case 5:
336 break;
337 case 6:
338 STSTATUS_openThirdDemoPage(screen, windows);
339 break;
340 case 10:
341 STSTATUS_chooseDemoOption(screen, windows);
342 break;
343 case 0x32:
344 STSTATUS_closeDemoScreen(screen, windows);
345 break;
346 case 0x33:
348 break;
349 case 0x34:
350 STSTATUS_closeSecondOfTwoDemoPages(screen, windows);
351 break;
352 case 0x35:
353 STSTATUS_closeThirdDemoPage(screen, windows);
354 break;
355 case 0x37:
357 break;
358 case 0x36:
359 case 0x38:
360 if (STSTATUS_data.funcs.updateFade(&screen->pageFades[0])) {
361 screen->substate = 0x39;
362 }
363 break;
364 case 0x39:
365 screen->state = 3;
366 break;
367 }
368}
369
370/* As STSTATUS_updateCardScreen, for the second screen */
372 s32 i;
373
374 switch (screen->state) {
375 case TASK_INIT:
376 default:
377 screen->nextState(screen);
378 for (i = 0; i < 3; i++) {
379 if (GAME.funcs.getPartyMember(i) >= 0) {
380 screen->count++;
381 }
382 }
383 for (i = 0; i < screen->count; i++) {
384 screen->pageFades[i].duration = 10;
385 STSTATUS_data.funcs.startFade(&screen->pageFades[i], 1);
386 }
387 for (i = 0; i < 2; i++) {
388 screen->fades[i].duration = 10;
389 STSTATUS_data.funcs.startFade(&screen->fades[i], 1);
390 }
391 screen->fade.duration = 10;
392 STSTATUS_data.funcs.startFade(&screen->fade, 1);
393 STSTATUS_createDemoWindows(screen, windows);
394 break;
395 case TASK_RUN:
396 STSTATUS_runDemoScreen(screen, windows);
398 break;
399 case TASK_DONE:
400 case TASK_KILL:
401 break;
402 }
403}
404
405/* Creates the second screen with the party's pages (task), whose two options
406 set GAME.digivolveDemo */
408 /* its windows are PartyScreenWindows without the fader */
410
411 screen->layer = SCREEN_LAYER;
412 screen->depth = 6;
413 screen->menu = menu;
414 return (Task *)screen;
415}
416
signed int s32
Definition common.h:11
void STSTATUS_createDemoWindows(PartyScreen *screen, PartyScreenWindows *windows)
As STSTATUS_createCardWindows, without moving the children above the screen.
Definition demo_screen.c:8
void STSTATUS_runDemoScreen(PartyScreen *screen, PartyScreenWindows *windows)
As STSTATUS_runCardScreen, for the second screen: the choice sets GAME.digivolveDemo.
static void STSTATUS_startDemoScreen(PartyScreen *screen)
Starts the fade of the first page (and, with one party member, of the panels); the next substate is t...
static void STSTATUS_closeThirdDemoPage(PartyScreen *screen, PartyScreenWindows *windows)
Three members: once the third page and the panels are closed, starts closing the second.
s32 STSTATUS_pageStats2[]
static void STSTATUS_openSecondOfTwoDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Two members: once the second page and the panels are in, shows the page, the help,...
static void STSTATUS_closeSecondOfTwoDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Two members: once the second page and the panels are closed, starts closing the first.
static void STSTATUS_openThirdDemoPage(PartyScreen *screen, PartyScreenWindows *windows)
Three members: once the third page and the panels are in, shows the page, the help,...
static void STSTATUS_openSecondOfThreeDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Three members: once the second page is in, shows it and starts the third and the help's panel.
static void STSTATUS_openDemoScreenAlone(PartyScreen *screen, PartyScreenWindows *windows)
One member: once the page and the panels are in, shows the page, the help, the hint and the options.
void STSTATUS_updateDemoScreen(PartyScreen *screen, PartyScreenWindows *windows)
As STSTATUS_updateCardScreen, for the second screen.
static void STSTATUS_openFirstOfTwoDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Two members: once the first page is in, shows it and starts the second page and the help's panel.
static void STSTATUS_openFirstOfThreeDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Three members: once the first page is in, shows it and starts the second.
static void STSTATUS_closeDemoScreenAlone(PartyScreen *screen)
One member: once the page and the panels are closed, goes on to the end.
static void STSTATUS_closeSecondOfThreeDemoPages(PartyScreen *screen, PartyScreenWindows *windows)
Three members: once the second page is closed, starts closing the first.
void STSTATUS_drawDemoScreen(PartyScreen *screen)
As STSTATUS_drawCardScreen, for the second screen.
Definition demo_screen.c:98
Task * STSTATUS_createDemoScreen(FieldMenuScreen *menu, s32 extra)
Creates the second screen with the party's pages (task), whose two options set GAME....
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_showDemoPage(PartyScreen *screen, PartyScreenWindows *windows, s32 member, s32 show)
As STSTATUS_showCardPage.
Definition demo_screen.c:38
static void STSTATUS_closeDemoScreen(PartyScreen *screen, PartyScreenWindows *windows)
Starts closing the screen: the last page, the panels, the help, the hint and the options.
static void STSTATUS_chooseDemoOption(PartyScreen *screen, PartyScreenWindows *windows)
Choosing an option: up and down move the cursor, cross turns the digivolution demo on or off,...
GfxState GFX
GFX: the graphics state and its methods.
Definition display.c:209
GameState GAME
The save data, the game mode and the methods.
Definition state.c:64
#define TASK_RUN
Definition task.h:35
#define TASK_KILL
Definition task.h:37
#define TASK_INIT
Tasks: every game object is a task, a heap block that starts with this header and is updated once per...
Definition task.h:34
#define TASK_DONE
Definition task.h:36
Cursor * createCursor(s16 layerId, s32 depth, s16 x, s16 y)
A menu cursor on a layer at (x, y)
Definition cursor.c:92
STSTATUS.PRO: the field menu's screens.
#define DRAW_PAGE_PANELS(sprite, screen, i)
Draws the panels of the party's pages (parts 0x15 to 0x17 of the menu's sprites), each stretched acro...
Definition field_menu.h:455
#define FILE_STATUS_SPRITES
The menu's sprite sheet; the next file is its texture archive.
Definition field_menu.h:20
#define TEXT_FILE(file)
Definition file.h:190
#define TEXT_STATUS
STATUS: the field menu's and STSTATUS's.
Definition file.h:225
FileCache FILE_CACHE
The file cache.
Definition file_cache.c:7
#define STAT_MP
Definition game_state.h:283
#define STAT_MAX_HP
Definition game_state.h:282
#define STAT_HP
Definition game_state.h:281
#define STAT_LEVEL
Indices of a partner's stats (PartnerStats.stats, computeStats, setStat)
Definition game_state.h:279
#define STAT_MAX_MP
Definition game_state.h:284
#define STRETCH_SPRITE(sprite, level, x, y)
Definition gfx.h:273
#define ZOOM_SPRITE(sprite, level, x, y)
Definition gfx.h:275
#define SCREEN_LAYER
The layer over the whole screen that most modes create first and draw their menus on (FIELDSTG and ST...
Definition gfx.h:45
StatusData STSTATUS_data
Definition helpers.c:356
#define PAD_CROSS
Definition pad.h:31
#define PAD_DOWN
Definition pad.h:24
#define PAD_TRIANGLE
Definition pad.h:32
#define PAD_PRESSED(button)
One button of pad 1: newly pressed, auto-repeated while held, or held.
Definition pad.h:140
#define PAD_UP
Definition pad.h:22
SoundState SOUND
rsin and rcos (libgte) read rsin_tbl[a - 0x800] and the like: their addresses before the table fall i...
Definition sound.c:180
#define SOUND_SELECT
Sounds the overlays share, with SOUNDTST's names.
Definition sound.h:38
#define SOUND_MENU_CANCEL
SYSTEM01.
Definition sound.h:39
#define SOUND_CURSOR
SYSTEM02: a cursor moves.
Definition sound.h:40
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)
Definition text.h:34
void(* setVisible)()
(cursor, visible)
Definition text.h:33
The mode's main task (STSTATUS_createMenu)
Definition field_menu.h:25
void *(* load)(u32 file)
Definition file.h:92
void *(* getEntry)(u32 fileAndIndex)
Definition file.h:96
struct PartnerStats *(* getPartnerStats)(s32 partner)
Definition game_state.h:38
void(* computeStats)(s32 partner, union PartnerTotals *out)
Definition game_state.h:31
s32(* getPartyMember)(u32 index)
Definition game_state.h:24
u8 digivolveDemo
Definition game_state.h:496
GameFuncs funcs
Definition game_state.h:582
s32(* getTime)(void)
Definition gfx.h:31
GfxFuncs funcs
Definition gfx.h:77
s32 level
Definition menu.h:21
s32 duration
Definition menu.h:19
s32 frames[7]
Definition game_state.h:341
TextWindow * values[5]
Definition menu.h:88
TextWindow * labels[5]
Definition menu.h:87
TextWindow * name
Definition menu.h:86
The windows of the screens STSTATUS_updateCardScreen and STSTATUS_updateDemoScreen.
Definition field_menu.h:293
TextWindow * choiceTitle
Definition field_menu.h:297
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
void(* nextState)(struct PartyScreen *task)
Definition field_menu.h:54
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
short(* playSound)(s32 id)
returns the voice of a key-on
Definition sound.h:187
Draws sprites from a sprite sheet (such as file 0x277, the menu graphics): a sheet has a table of fra...
Definition gfx.h:223
void(* setPivot)()
(x, y)
Definition gfx.h:250
void(* setScale)()
(x, y, z), ONE = 1.0
Definition gfx.h:248
void(* setLayerId)()
(id, depth)
Definition gfx.h:244
void(* draw)()
(sheet, frame, x, y)
Definition gfx.h:246
void(* setTexture)()
(x, y)
Definition gfx.h:242
WindowPos * layout
where the windows go, and their strings
Definition field_menu.h:438
PartnerAnim * partnerAnims
the partners' portraits
Definition field_menu.h:437
StatusFuncs funcs
Definition field_menu.h:445
s32(* updateFade)(PanelAnim *fade)
Definition field_menu.h:276
void(* startFade)(PanelAnim *fade, s32 fadeIn)
Definition field_menu.h:275
Any task, seen through its header.
Definition task.h:62
void(* setPalette)(struct TextWindow *obj, u8 arg)
Definition text.h:174
void(* setRightAlign)()
no prototype: callers would truncate u8 args
Definition text.h:178
void(* setLines)()
no prototype: callers would truncate u8 args
Definition text.h:184
void(* setNumber)()
Definition text.h:166
void(* setString)()
Definition text.h:165
void(* setVisible)(struct TextWindow *obj, u8 arg)
Definition text.h:177
Where a window goes, and the string it shows.
Definition menu.h:102
s16 y
Definition menu.h:106
s32 string
Definition menu.h:103
s16 x
Definition menu.h:104
void * createTask(void(*update)(), s32 size, s32 childrenSize)
createTaskWithId for a task nothing needs to find
Definition task.c:105
#define PALETTE_BLUE
a light blue: what is highlighted or current
Definition text.h:113
#define PALETTE_WHITE
The text windows' palettes (TextWindow.palette, setPalette): rows of the font's CLUTs,...
Definition text.h:112
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.
Definition game_state.h:409
s16 stats[24]
Definition game_state.h:410