Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
wstag924.c
Go to the documentation of this file.
1/*
2 * WSTAG924: Digimon Lab, Amaterasu City, in the extra chapter. The European
3 * version's: in its extra chapter (STORY_EXTRA), mode 629 starts it instead of
4 * WSTAG221.
5 */
6
7#include "common.h"
8#define STAGE_TWEEN /* stageFuncs is a StageFuncs (stage.h) */
9#include "field/stage.h"
10/* Defined below, after the code that uses them */
13
14/* The text file of the menus */
15#define MENU_TEXT EXTRA_TEXT
16
18
20
21#if VERSION_EU
22#define STAGE_TEXT TEXT_FILE(TEXT_TALKS_08)
23#define STAGE_FILE 0x8E7
24#define STAGE_FILE_8 0x19C
25#define STAGE_ARCHIVE 0x8E5
26#elif VERSION_JP
27#define STAGE_TEXT 0x89A
28#define STAGE_FILE 0x8A1
29#define STAGE_FILE_8 0x18E
30#define STAGE_ARCHIVE 0x8A0
31#endif
32/* Sets the stage up: its map, actors and events, playing the ambience ENV_0011 */
52
55
57
58/* A list of up to eight options that each open a message */
60 SpriteDrawer drawer;
61 s32 prev;
62
63 switch (task->state) {
64 case TASK_INIT:
65 default:
66 createListMenu(task, children);
67 break;
68 case TASK_RUN:
69 switch (task->substate) {
70 case 0:
71 default:
72 stageFuncs.start(&task->tweens[0], 1);
73 task->substate++;
74 break;
75 case 1:
76 if (stageFuncs.update(&task->tweens[0])) {
77 showListMenuOptions(task, children, 0x1);
78 task->substate++;
79 }
80 break;
81 case 2:
82 prev = task->cursor;
84 if (prev != task->cursor) {
86 children->cursor->setPos(children->cursor, 0xAF, task->cursor * 14 + 0x21);
87 break;
88 }
91 if (task->cursor == task->count - 1) {
92 task->substate = 10;
93 } else {
94 task->substate++;
95 }
96 } else if (PAD_PRESSED(PAD_TRIANGLE)) {
98 task->substate = 10;
99 }
100 break;
101 case 3:
102 children->cursor->setStill(children->cursor, 1);
103 children->cursor->setPalette(children->cursor, PALETTE_GREY);
104 stageFuncs.start(&task->tweens[1], 1);
105 task->substate++;
106 break;
107 case 4:
108 if (stageFuncs.update(&task->tweens[1])) {
109 openListMenuMessage(task, children, 0x1);
110 task->substate++;
111 }
112 break;
113 case 5:
114 readListMenuMessage(task, children);
115 break;
116 case 6:
117 stageFuncs.start(&task->tweens[1], 0);
118 children->message->setVisible(children->message, 0);
119 task->substate++;
120 break;
121 case 7:
122 if (stageFuncs.update(&task->tweens[1])) {
123 children->cursor->setStill(children->cursor, 0);
124 children->cursor->setPalette(children->cursor, PALETTE_WHITE);
125 task->substate = 2;
126 }
127 break;
128 case 10:
129 closeListMenu(task, children);
130 break;
131 case 11:
132 if (stageFuncs.update(&task->tweens[0])) {
133 task->state = TASK_KILL;
134 }
135 break;
136 }
137 initSpriteDrawer(&drawer);
138 drawer.setLayerId(FIELD_LAYER_MAP, 2);
139 drawer.setTexture(0x140, 0);
140 drawer.setFollowScroll(0);
141 if (task->showArrow) {
142 if (GFX.funcs.getTime() - task->arrowTime >= 4) {
143 task->arrowTime = GFX.funcs.getTime();
144 if (++task->arrowFrame >= 5) {
145 task->arrowFrame = 0;
146 }
147 }
148 drawer.setClutRow(task->arrowFrame);
149 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), 0xA, 0x124, 0xCD);
150 drawer.setClutRow(0);
151 }
152 if (task->tweens[0].level != 0) {
153 if (task->tweens[0].level != 0x1000) {
154 drawer.setScale(task->tweens[0].level, 0x1000, 0x1000);
155 drawer.setPivot(0x140, 0x56);
156 }
157 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), event1602WindowFrames[task->count - 5], 0xA8, 0x18);
158 }
159 if (task->tweens[1].level != 0) {
160 if (task->tweens[1].level != 0x1000) {
161 drawer.setScale(task->tweens[1].level, 0x1000, 0x1000);
162 drawer.setPivot(0x140, 0x56);
163 }
164 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), 0x45, 0, 0xAC);
165 }
166 break;
167 case TASK_DONE:
168 stageFuncs.start(&task->tweens[0], 1);
169 stageFuncs.update(&task->tweens[0]);
170 break;
171 case TASK_KILL:
172 break;
173 }
174}
175
176/*
177 * Starts event 1602, the starters' digivolutions: a list of Kotemon, Monmon,
178 * Kumamon, Renamon, Patamon, Agumon and Guilmon that each open a message
179 */
180void *startEvent1602(void) {
182}
183
184/* A list of up to eight options that each open a message */
186 SpriteDrawer drawer;
187 s32 prev;
188
189 switch (task->state) {
190 case TASK_INIT:
191 default:
192 createListMenu(task, children);
193 break;
194 case TASK_RUN:
195 switch (task->substate) {
196 case 0:
197 default:
198 stageFuncs.start(&task->tweens[0], 1);
199 task->substate++;
200 break;
201 case 1:
202 if (stageFuncs.update(&task->tweens[0])) {
203 showListMenuOptions(task, children, 0x2);
204 task->substate++;
205 }
206 break;
207 case 2:
208 prev = task->cursor;
209 moveListMenuCursor(task);
210 if (prev != task->cursor) {
212 children->cursor->setPos(children->cursor, 0xAF, task->cursor * 14 + 0x21);
213 break;
214 }
215 if (PAD_PRESSED(PAD_CROSS)) {
217 if (task->cursor == task->count - 1) {
218 task->substate = 10;
219 } else {
220 task->substate++;
221 }
222 } else if (PAD_PRESSED(PAD_TRIANGLE)) {
224 task->substate = 10;
225 }
226 break;
227 case 3:
228 children->cursor->setStill(children->cursor, 1);
229 children->cursor->setPalette(children->cursor, PALETTE_GREY);
230 stageFuncs.start(&task->tweens[1], 1);
231 task->substate++;
232 break;
233 case 4:
234 if (stageFuncs.update(&task->tweens[1])) {
235 openListMenuMessage(task, children, 0x2);
236 task->substate++;
237 }
238 break;
239 case 5:
240 readListMenuMessage(task, children);
241 break;
242 case 6:
243 stageFuncs.start(&task->tweens[1], 0);
244 children->message->setVisible(children->message, 0);
245 task->substate++;
246 break;
247 case 7:
248 if (stageFuncs.update(&task->tweens[1])) {
249 children->cursor->setStill(children->cursor, 0);
250 children->cursor->setPalette(children->cursor, PALETTE_WHITE);
251 task->substate = 2;
252 }
253 break;
254 case 10:
255 closeListMenu(task, children);
256 break;
257 case 11:
258 if (stageFuncs.update(&task->tweens[0])) {
259 task->state = TASK_KILL;
260 }
261 break;
262 }
263 initSpriteDrawer(&drawer);
264 drawer.setLayerId(FIELD_LAYER_MAP, 2);
265 drawer.setTexture(0x140, 0);
266 drawer.setFollowScroll(0);
267 if (task->showArrow) {
268 if (GFX.funcs.getTime() - task->arrowTime >= 4) {
269 task->arrowTime = GFX.funcs.getTime();
270 if (++task->arrowFrame >= 5) {
271 task->arrowFrame = 0;
272 }
273 }
274 drawer.setClutRow(task->arrowFrame);
275 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), 0xA, 0x124, 0xCD);
276 drawer.setClutRow(0);
277 }
278 if (task->tweens[0].level != 0) {
279 if (task->tweens[0].level != 0x1000) {
280 drawer.setScale(task->tweens[0].level, 0x1000, 0x1000);
281 drawer.setPivot(0x140, 0x56);
282 }
283 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), event1604WindowFrames[task->count - 5], 0xA8, 0x18);
284 }
285 if (task->tweens[1].level != 0) {
286 if (task->tweens[1].level != 0x1000) {
287 drawer.setScale(task->tweens[1].level, 0x1000, 0x1000);
288 drawer.setPivot(0x140, 0x56);
289 }
290 drawer.draw(FILE_CACHE.getEntry(MENU_SPRITES), 0x45, 0, 0xAC);
291 }
292 break;
293 case TASK_DONE:
294 stageFuncs.start(&task->tweens[0], 1);
295 stageFuncs.update(&task->tweens[0]);
296 break;
297 case TASK_KILL:
298 break;
299 }
300}
301
302/*
303 * Starts event 1604, tips on raising partners: a list of topics (Raise
304 * efficiently, Techniques, Growth limits...) that each open a message
305 */
306void *startEvent1604(void) {
308}
309
311 { 0x200, 0x100, 0x21C, 0x1A6, 0x70, 0xA6, 0x230, 0x1FE },
312 { 0x200, 0x100, 0x200, 0x100, 0, 0, 0x220, 0x1FE },
313 { 0x200, 0x100, 0x216, 0x138, 0x58, 0x38, 0x200, 0x1FD },
314 { 0x200, 0x100, 0x208, 0x1BC, 0x20, 0xBC, 0x210, 0x1FD },
315 { 0x200, 0x100, 0x210, 0x1BC, 0x40, 0xBC, 0x220, 0x1FD },
316 { 0x200, 0x100, 0x200, 0x1BC, 0, 0xBC, 0x230, 0x1FD },
317 { 0x140, 0x100, 0x166, 0x178, 0x98, 0x78, 0x150, 0x1F8 },
318 { 0x140, 0x100, 0x16E, 0x178, 0xB8, 0x78, 0x160, 0x1F8 },
319 { 0x140, 0x100, 0x176, 0x178, 0xD8, 0x78, 0x170, 0x1F8 },
320 { 0, 0, 0, 0, 0, 0, 0, 0 },
321 { 0, 0, 0, 0, 0, 0, 0, 0 },
322 { 0x140, 0x100, 0x152, 0x166, 0x48, 0x66, 0x150, 0x1F7 },
323 { 0x140, 0x100, 0x140, 0x17E, 0, 0x7E, 0x160, 0x1F7 },
324};
329 { NULL, actor0Talk0Actions, 0x23 },
330 { NULL, NULL, 0 },
331};
333 { NULL, actor1Talk0Actions, 0x22 },
334 { NULL, NULL, 0 },
335};
337 { NULL, actor5Talk0Actions, 0x24 },
338 { NULL, NULL, 0 },
339};
341 { NULL, NULL, 0x25 },
342 { NULL, NULL, 0 },
343};
344FieldActorEntry actor0 = { NULL, actor0Talks, 0x20, 4, 220, 232, 1 };
345FieldActorEntry actor1 = { NULL, actor1Talks, 0x24, 5, 187, 215, 1 };
346FieldActorEntry actor2 = { NULL, NULL, 0x59, 6, 300, 217, 5 };
347FieldActorEntry actor3 = { NULL, NULL, 0x70, 7, 202, 241, 1 };
348FieldActorEntry actor4 = { NULL, NULL, 0x71, 8, 169, 224, 1 };
349FieldActorEntry actor5 = { NULL, actor5Talks, 0xFE, 9, 399, 248, 1 };
350FieldActorEntry actor6 = { NULL, actor6Talks, 0x177, 0xA, 65, 263, 1 };
352 &actor0,
353 &actor1,
354 &actor2,
355 &actor3,
356 &actor4,
357 &actor5,
358 &actor6,
359 NULL,
360};
362 { 1, 0, 0x40, 2, 0x45, 2, 0, 2, 0xA, 0, 376, 237, 0, 0 },
363 { 1, 0, 0x40, 2, 5, 0, 0, 0, 0, 0, 368, 277, 0, 0 },
364 { 1, 0, 0x40, 2, 6, 0, 0, 0, 0, 0, 0, 204, 0, 0 },
365 { 1, 0, 0x40, 2, 0x46, 2, 0, 1, 4, 0, 38, 197, 0, 0 },
366 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 110, 341, 0, 0 },
367 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 198, 149, 0, 0 },
368 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 221, 148, 0, 0 },
369 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 235, 149, 0, 0 },
370 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 249, 297, 0, 0 },
371 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 271, 168, 0, 0 },
372 { 1, 0, 0x40, 6, 0x1F, 1, 0x1F, 0x24, 8, 0, 398, 350, 0, 0 },
373 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 102, 333, 0, 0 },
374 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 200, 134, 0, 0 },
375 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 213, 145, 0, 0 },
376 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 242, 167, 0, 0 },
377 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 248, 230, 0, 0 },
378 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 254, 280, 0, 0 },
379 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 265, 153, 0, 0 },
380 { 1, 0, 0x40, 6, 0x25, 1, 0x25, 0x2A, 8, 0, 391, 343, 0, 0 },
381 { 1, 0, 0x40, 6, 0x2B, 0, 0, 0, 0, 0, 213, 151, 0, 0 },
382 { 1, 0, 0x40, 6, 0x2B, 0, 0, 0, 0, 0, 248, 286, 0, 0 },
383 { 1, 0, 0x40, 6, 0x2C, 0, 0, 0, 0, 0, 104, 328, 0, 0 },
384 { 1, 0, 0x40, 6, 0x2C, 0, 0, 0, 0, 0, 197, 141, 0, 0 },
385 { 1, 0, 0x40, 6, 0x2C, 0, 0, 0, 0, 0, 264, 158, 0, 0 },
386 { 1, 0, 0x40, 6, 0x2D, 0, 0, 0, 0, 0, 236, 159, 0, 0 },
387 { 1, 0, 0x40, 6, 0x2D, 0, 0, 0, 0, 0, 391, 343, 0, 0 },
388 { 1, 0, 0x40, 6, 0x32, 1, 0x32, 0x39, 0xE, 0, 318, 172, 0, 0 },
389 { 1, 0, 0x40, 6, 0x2F, 1, 0x2F, 0x31, 4, 0, 305, 193, 0, 0 },
390 { 1, 0, 0x40, 6, 0x3B, 1, 0x3B, 0x3F, 8, 0, 354, 209, 0, 0 },
391 { 1, 0, 0x40, 6, 0x40, 2, 0, 9, 8, 0, 336, 217, 0, 0 },
392 { 1, 0, 0x40, 6, 0x41, 2, 0, 2, 0x10, 0, 328, 232, 0, 0 },
393 { 1, 0x64, 0x40, 6, 2, 0, 0, 0, 0, 0, 79, 186, 0, 0 },
394 { 1, 0, 0x40, 6, 0x42, 2, 0, 2, 6, 0, 136, 185, 0, 0 },
395 { 1, 0, 0x40, 6, 0x43, 2, 0, 2, 0x10, 0, 306, 231, 0, 0 },
396 { 1, 0, 0x40, 6, 0x44, 2, 0, 2, 0xA, 0, 321, 223, 0, 0 },
397 { 1, 0, 0x40, 6, 0x47, 2, 0, 1, 4, 0, 140, 123, 0, 0 },
398 { 1, 0, 0x40, 6, 0x48, 2, 0, 1, 4, 0, 307, 122, 0, 0 },
399 { 1, 0, 0x40, 6, 0x49, 2, 0, 1, 4, 0, 346, 144, 0, 0 },
400 { 1, 0, 0x40, 0xA, 0x4A, 1, 0x4A, 0x4C, 0xA, 0, 273, 297, 0, 0 },
401 { 1, 0, 0x40, 0xA, 0x56, 1, 0x56, 0x58, 0xA, 0, 215, 300, 0, 0 },
402 { 1, 0, 0x40, 0xA, 0x56, 1, 0x56, 0x58, 0xA, 0, 368, 358, 0, 0 },
403 { 1, 0, 0x40, 0xA, 0x59, 1, 0x59, 0x5B, 0xA, 0, 92, 347, 0, 0 },
404 { 1, 0, 0x40, 0xA, 0x59, 1, 0x59, 0x5B, 0xA, 0, 135, 312, 0, 0 },
405 { 1, 0, 0x40, 0xA, 0x59, 1, 0x59, 0x5B, 0xA, 0, 150, 375, 0, 0 },
406 { 1, 0, 0x40, 0xA, 0x59, 1, 0x59, 0x5B, 0xA, 0, 418, 326, 0, 0 },
407 { 1, 0, 0x40, 4, 0, 0, 0, 0, 0, 0, 143, 287, 340, 0 },
408 { 1, 0, 0x40, 4, 1, 0, 0, 0, 0, 0, 326, 288, 340, 0 },
409 { 1, 0, 0x40, 4, 4, 0, 0, 0, 0, 0, 398, 240, 263, 0 },
410 { 1, 0, 0x40, 4, 3, 0, 0, 0, 0, 0, 33, 201, 239, 0 },
411 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
412};
414 { { { CODES_END, 0 }, { CODES_END, 0 } }, SLOT_EXIT, 0x273, 0x2C8, 0x24C, 3, 0x64, 0, 0 },
415 { { { CODES_END, 0 }, { CODES_END, 0 } }, SLOT_EXIT, 0x270, 0x410, 0x200, 1, 0, 0, 0 },
416 { { { CODES_END, 0 }, { CODES_END, 0 } }, 0, 0, 0, 0, 0, 0, 0, 0 },
417};
419#define EVENT_TEXT_FILE EXTRA_TEXT
421 { 1602, NULL, EVENT_TEXT(1), startEvent1602, NULL },
422 { 1604, NULL, EVENT_TEXT(2), startEvent1604, NULL },
423 { -1, NULL, 0, NULL, NULL },
424};
425/* MENU_SPRITES' frame of the list's window, by the number of options (5 to 8) */
427 28, 27, 25, 36,
428};
429/* MENU_SPRITES' frame of the list's window, by the number of options (5 to 8) */
431 28, 27, 25, 36,
432};
#define NULL
Definition common.h:17
signed int s32
Definition common.h:11
unsigned short u16
Definition common.h:10
GfxState GFX
GFX: the graphics state and its methods.
Definition display.c:209
#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
The stage overlays (AAA/PRO/WSTAG###.PRO), loaded at 0x800A4CA4 on top of FIELDSTG.
#define MENU_SPRITES
The menu sprite sheet, and an entry of a text file: the European version numbers the disc's files dif...
Definition stage.h:702
#define EVENT_TEXT(n)
An entry of the stage's events' text file, for FieldEvent.text.
Definition stage.h:732
#define FIELD_LAYER_MAP
the map, its objects and characters, and the menus
Definition field_map.h:20
#define FIELD_MAP_FLOOR0
Some of FieldMap's maps (files): those of the floors the player walks on come first,...
Definition field_map.h:85
#define SLOT_EXIT
The kinds of StageSlot (type).
Definition field_map.h:255
#define FIELD_MAP_TRIGGERS
a cell's value: a direction (3 bits) and a StageSlot (5)
Definition field_map.h:88
FieldMap FIELDSTG_map
Definition fieldstg.c:3660
FieldState FIELDSTG_state
Definition fieldstg.c:2641
FileCache FILE_CACHE
The file cache.
Definition file_cache.c:7
#define START_EVENT(index)
action: FIELDSTG_startListedEvent
Definition game_state.h:81
#define CODES_END
Definition game_state.h:83
The parts of a list menu (StageListMenu), up to eight options that each open a message: WSTAG210's gu...
static void closeListMenu(StageListMenu *task, StageListMenuChildren *children)
Hides the options and the cursor and starts closing the list's window.
static void readListMenuMessage(StageListMenu *task, StageListMenuChildren *children)
Pages through the option's message with X, the arrow blinking while a page waits for it,...
static void moveListMenuCursor(StageListMenu *task)
Moves the cursor up or down the list, held buttons repeating, without leaving it.
static void showListMenuOptions(StageListMenu *task, StageListMenuChildren *children, s32 n)
Writes the options, lines 1 on of the menus' text entry n (each option's message is a line from 9 on)...
static void openListMenuMessage(StageListMenu *task, StageListMenuChildren *children, s32 n)
Starts typing the message of the option under the cursor, from the menus' text entry n.
static void createListMenu(StageListMenu *task, StageListMenuChildren *children)
Creates the menu's eight option lines, its hidden cursor and its message box.
#define PAD_CROSS
Definition pad.h:31
#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
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 MUSIC_DIGIMON_LAB
ENV_0011: Asuka's Digimon Lab and Login Room.
Definition sound.h:127
#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
#define MUSIC_BANK(music)
The sound bank of a music, which a stage loads for it (FieldState.soundBank)
Definition sound.h:148
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
FIELDSTG's start of the stage (StageEntry.init in FIELDSTG_stages): the stage's task,...
void startTween(PanelAnim *tween, s32 up)
Starts the menu stage's tween (stageFuncs.start) with its sound: up, from 0 to ONE over its duration,...
Where an actor's frames go in VRAM: one of the records after the FieldImage (Actor....
Definition field_map.h:114
void(* setPalette)()
Definition text.h:35
void(* setPos)()
(cursor, x, y)
Definition text.h:34
void(* setStill)()
Definition text.h:38
A character of the field (FieldState.actors, a list of pointers up to NULL), which FIELDSTG_updateFie...
Definition field_map.h:194
An event of the table FieldState.events, up to the first id -1, which FIELDSTG_startEvent starts.
Definition field_map.h:141
void(* setFile)(s32 index, s32 file)
FIELDSTG_setMapFile.
Definition field_map.h:100
void(* setFirstMap)(s32 index)
FIELDSTG_setFirstMap: the map the player starts on (GAME.mapIndex), when the mode is new.
Definition field_map.h:104
s32 sheetEntry
the stage's sprite sheet, loaded before the field starts, or 0
Definition field_map.h:445
FieldEvent * events
up to the first id -1
Definition field_map.h:451
s32 soundBank
SOUND.loadBank's, or 0.
Definition field_map.h:459
StageTile * objects
the map objects, up to the first margin 0
Definition field_map.h:446
s32 imageFile
or an image archive file, or 0
Definition field_map.h:449
Vec2 start
where the player starts
Definition field_map.h:456
StageSlot * slots
up to the first type 0
Definition field_map.h:447
ActorImage * actors
then the actors', from actors[2]
Definition field_map.h:454
s32 mapFile
the file of the map's tiles (FIELDSTG_createMapStreamer)
Definition field_map.h:444
s32 startDir
and its direction
Definition field_map.h:457
CVECTOR spriteColor
the field's sprites' color, unless cd is 0
Definition field_map.h:458
s32 textFile
the stage's text file, for the talks
Definition field_map.h:461
union FieldState::@12 images
s32 music
SOUND.playSound's, or 0.
Definition field_map.h:460
What a character says (FIELDSTG_runActorAction): the first whose conditions hold, or the last,...
Definition field_map.h:176
void *(* getEntry)(u32 fileAndIndex)
Definition file.h:96
s32(* getTime)(void)
Definition gfx.h:31
GfxFuncs funcs
Definition gfx.h:77
s32 level
Definition menu.h:21
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(* setFollowScroll)()
(on)
Definition gfx.h:251
void(* setClutRow)()
(row)
Definition gfx.h:247
void(* draw)()
(sheet, frame, x, y)
Definition gfx.h:246
void(* setTexture)()
(x, y)
Definition gfx.h:242
The table of a stage's functions: its setup, then the menu stages' tween (startTween and updateTween)...
Definition stage.h:95
void(* start)(PanelAnim *tween, s32 up)
Definition stage.h:97
s32(* update)(PanelAnim *tween)
whether it has ended
Definition stage.h:98
TextWindow * message
Definition stage.h:688
A list menu whose entries show a message.
Definition stage.h:675
s32 arrowFrame
Definition stage.h:680
PanelAnim tweens[2]
list, message box
Definition stage.h:682
s32 substate
Definition stage.h:676
s32 showArrow
Definition stage.h:679
s32 arrowTime
Definition stage.h:681
What the player can trigger on a map (FIELDSTG_updateTriggers): a record of the table at FieldState....
Definition field_map.h:276
An object of a map, which FIELDSTG draws: a record of the table at FieldState.objects,...
Definition field_map.h:208
void(* setVisible)(struct TextWindow *obj, u8 arg)
Definition text.h:177
Definition gfx.h:352
void * createTask(void(*update)(), s32 size, s32 childrenSize)
createTaskWithId for a task nothing needs to find
Definition task.c:105
#define PALETTE_WHITE
The text windows' palettes (TextWindow.palette, setPalette): rows of the font's CLUTs,...
Definition text.h:112
#define PALETTE_GREY
what is unavailable
Definition text.h:119
s32 updateTween(PanelAnim *tween)
Steps the tween (stageFuncs.update): whether it has ended.
const CVECTOR stageColor
Definition wstag211.c:23
u16 actor0Talk0Actions[]
Definition wstag924.c:325
FieldActorEntry actor0
Definition wstag924.c:344
FieldActorEntry actor6
Definition wstag924.c:350
void * startEvent1602(void)
Starts event 1602, the starters' digivolutions: a list of Kotemon, Monmon, Kumamon,...
Definition wstag924.c:180
FieldTalk actor5Talks[]
Definition wstag924.c:336
FieldActorEntry actor5
Definition wstag924.c:349
FieldActorEntry actor2
Definition wstag924.c:346
#define STAGE_FILE_8
Definition wstag924.c:24
void * startEvent1604(void)
Starts event 1604, tips on raising partners: a list of topics (Raise efficiently, Techniques,...
Definition wstag924.c:306
FieldActorEntry * stageActors[]
Definition wstag924.c:351
FieldTalk actor1Talks[]
Definition wstag924.c:332
s32 event1602WindowFrames[]
Defined below, after the code that uses them.
Definition wstag924.c:426
FieldTalk actor0Talks[]
Definition wstag924.c:328
#define STAGE_ARCHIVE
Definition wstag924.c:25
FieldActorEntry actor4
Definition wstag924.c:348
ActorImage stageImages[]
Definition wstag924.c:310
FieldTalk actor6Talks[]
Definition wstag924.c:340
void setupStage(void)
Sets the stage up: its map, actors and events, playing the ambience ENV_0011.
Definition wstag924.c:33
StageTile stageObjects[]
The tables and color setupStage gives FIELDSTG_state (FieldState)
Definition wstag924.c:361
u16 actor5Talk0Actions[]
Definition wstag924.c:327
s32 event1604WindowFrames[]
MENU_SPRITES' frame of the list's window, by the number of options (5 to 8)
Definition wstag924.c:430
StageSlot stageSlots[]
Definition wstag924.c:413
u16 actor1Talk0Actions[]
Definition wstag924.c:326
FieldActorEntry actor1
Definition wstag924.c:345
void updateEvent1602(StageListMenu *task, StageListMenuChildren *children)
A list of up to eight options that each open a message.
Definition wstag924.c:59
#define STAGE_FILE
Definition wstag924.c:23
#define STAGE_TEXT
Definition wstag924.c:22
void updateEvent1604(StageListMenu *task, StageListMenuChildren *children)
A list of up to eight options that each open a message.
Definition wstag924.c:185
FieldActorEntry actor3
Definition wstag924.c:347
FieldEvent stageEvents[]
Definition wstag924.c:420
StageFuncs stageFuncs
The stage's functions (common/start_stage.inc.c calls the first): a StageFuncs in the stages with a t...
Definition wstag924.c:418