20 for (i = 1; i < 47; i++) {
24 if (spotX + 6 < x && x <= spotX + 0x12 && spotY + 6 < y && y <= spotY + 0x12) {
31 if (wasHovering != screen->
hovering) {
34#if VERSION_EU || VERSION_JP
44 windows[0]->
setPos(windows[0], 0x10, 0xB9);
46 windows[0]->
setPos(windows[0], 0x10, 0x19);
62 }
else if (screen->
cursorX < 0xA0) {
80 }
else if (screen->
cursorX > 0xA0) {
93 middle = screen->
height / 2;
100 }
else if (screen->
cursorY < middle) {
113 if (screen->
cursorY < middle) {
115 if (screen->
cursorY > middle) {
118 }
else if (screen->
cursorY > middle) {
179#if VERSION_EU || VERSION_JP
220#if VERSION_EU || VERSION_JP
228 if (x < screen->homeX + screen->
scrollX) {
240 for (i = 1; i < 47; i++) {
263 for (i = 0; towns[i] != 0; i++) {
276 switch (screen->
state) {
288 windows[0]->
setLines(windows[0], 2);
345 return (
Task *)screen;
GfxState GFX
GFX: the graphics state and its methods.
GameState GAME
The save data, the game mode and the methods.
#define TASK_INIT
Tasks: every game object is a task, a heap block that starts with this header and is updated once per...
#define TEXT_ASUKA_MAP
ASKMAP: the map screen's before.
#define TEXT_AMATERASU_MAP
The text files, by their USA disc names (US<name>.BIN), for TEXT_FILE()
FileCache FILE_CACHE
The file cache.
#define SCREEN_LAYER
The layer over the whole screen that most modes create first and draw their menus on (FIELDSTG and ST...
s32 STSTATUS_cursorFrames[]
The map cursor's frames.
StatusAreaFuncs STSTATUS_areaFuncs
Where the game is.
void STSTATUS_updateMapScreen(StatusMapScreen *screen, TextWindow **windows)
The map screen's update.
void STSTATUS_moveMapCursor(StatusMapScreen *screen, s32 dx, s32 dy)
Moves the cursor, or the map when the cursor is in the middle.
void STSTATUS_runMapScreen(StatusMapScreen *screen, TextWindow **windows)
Moves the cursor faster while the pad is held; triangle closes.
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,...
void STSTATUS_showMapArea(StatusMapScreen *screen, TextWindow **windows)
Finds the area under the cursor and shows its name.
void STSTATUS_drawMapScreen(StatusMapScreen *screen)
Draws the map, the visited areas, the towns and the cursor.
#define PAD_PRESSED(button)
One button of pad 1: newly pressed, auto-repeated while held, or held.
#define PAD_REPEATED(button)
SoundState SOUND
rsin and rcos (libgte) read rsin_tbl[a - 0x800] and the like: their addresses before the table fall i...
#define SOUND_MENU_CONFIRM
SYSTEM07.
#define SOUND_MENU_CANCEL
SYSTEM01.
void initSpriteDrawer(SpriteDrawer *obj)
Clears a sprite drawer to neutral (no scale, gray tint, follows the scroll), gives it its methods and...
@ STORY_JUNGLE_SOUND
WSTAG545 (Bug Maze Pit), event 711: Patamon heard a weird sound from the jungle, where its leader wen...
@ STORY_SOUTH_STATION_GHOST
WSTAG440 (South Station), event 152: a ghost's voice in the empty station.
@ STORY_DE_KNOWLEDGE
WSTAG526 (Zhu Que UG Lake), event 760: the fight with Zanbamon (the DE Knowledge)
@ STORY_DE_SINCERITY
WSTAG460 (Reliability Spot), event 370: the Qing Long Chief, asked for the Digi-Egg of Knowledge,...
s32(* isLoading)(s32 file)
void(* request)(s32 file)
void *(* getEntry)(u32 fileAndIndex)
short(* playSound)(s32 id)
returns the voice of a key-on
Draws sprites from a sprite sheet (such as file 0x277, the menu graphics): a sheet has a table of fra...
void(* setAltClut)()
(x, y)
void(* setLayerId)()
(id, depth)
void(* draw)()
(sheet, frame, x, y)
void(* setTexture)()
(x, y)
s32(* getGameHalf)(void)
0, 1, or -1 outside of the field
void(* getVisitedAreas)(s32 *out)
StatusMapPoint * towns
from 1
StatusMapSpot * spots
the map's areas, from 1
s32 *(* getList)(s32 list, s32 index)
The map screen (STSTATUS_createMapScreen); the offsets are the European version's,...
s32 homeX
the current area's mark
void(* nextState)(struct StatusMapScreen *task)
s32 file
FILE_STATUS_BG or the next one but one.
s32 archive
entries of file: the map
s32 hoverX
where the cursor was when it got there
s32 top
where the map starts
s32 spot
the area under the cursor
s32 visited[47]
the areas, spot i at i - 1
s32 progress
which towns are drawn
An area on the map screen.
Any task, seen through its header.
A text window (createTextWindow): up to six text buffers (0 is shown, 1-5 are "work" buffers that con...
void(* setLines)()
no prototype: callers would truncate u8 args
void(* setPos)(struct TextWindow *obj, s16 x, s16 y)
void(* setVisible)(struct TextWindow *obj, u8 arg)
void * createTask(void(*update)(), s32 size, s32 childrenSize)
createTaskWithId for a task nothing needs to find
TextWindow * createTextWindow(s16 layerId, s16 style, s16 x, s16 y)
A text window on a layer, in a font style, at (x, y)