42 }
else if (
start > from) {
53 }
else if (end > to) {
61 if (
start == from && end == to) {
78 }
else if (
start > from) {
89 }
else if (end > to) {
97 if (
start == from && end == to) {
110 *(
s32 *)&poly->r0 = color;
113 poly->x1 = pos.vx + size.vx;
115 poly->x3 = pos.vx + size.vx;
118 poly->y2 = pos.vy + size.vy;
119 poly->y3 = pos.vy + size.vy;
136 switch (task->
state) {
139 if (task->
key1 != 0) {
142 for (j = 0; j < 10; j++) {
199 if (task->
step < 60) {
216 if (task->
clip.h == 0) {
230 for (i = 0; i < 10; i++) {
void FIELDSTG_stretchBannerBox(AreaBanner *task, BannerBox *box)
Stretches a box toward from-to along one axis.
Task * FIELDSTG_createBanner(s32 show)
Creates the area name banner, which closes at once unless show; the player is frozen until it ends.
void FIELDSTG_showAreaName(AreaBanner *task, AreaNameWindows *windows)
Opens the banner's windows with the names of the mode's area and place (FIELDSTG_areaNames)
void FIELDSTG_drawBannerBox(AreaBanner *task, u_long *ot, DVECTOR pos, DVECTOR size, s32 color)
Draws one of the banner's boxes, a flat quad of a color.
void FIELDSTG_updateBanner(AreaBanner *task, AreaNameWindows *windows)
The area name banner: in TASK_INIT it copies its ten boxes from FIELDSTG_bannerBoxes and opens the ar...
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 FIELD_TASK_BANNER
the area name banner
#define FIELD_LAYER_BANNER
the area name banner
FIELDSTG.PRO: the field mode, where the player walks around the map.
BannerBox FIELDSTG_bannerBoxes[10]
FIELDSTG_updateBanner's boxes.
AreaName FIELDSTG_areaNames[]
FieldState FIELDSTG_state
#define TEXT_AREA_NAMES
STAREA.
#define TEXT_STAGE_NAMES
STNAME.
FileCache FILE_CACHE
The file cache.
Task * start(void)
The mode's entry point (MODE_ENTRY_POINTS): starts its root task (update_scene.inc....
The area name banner (FIELD_TASK_BANNER, FIELDSTG_createBanner)
void(* setState)(struct AreaBanner *task, s32 state)
void(* nextState)(struct AreaBanner *task)
void(* nextSubstate)(struct AreaBanner *task)
RECT clip
the layer's, closing in TASK_DONE
The windows of FIELDSTG_showAreaName.
A rectangle of an AreaBanner, which can stretch to a new range.
s32 stretch
1: horizontally, 2: vertically
s32 frozen
no control, triggers or encounters for the player: while the area name banner shows (FIELDSTG_createB...
s32(* getFrameTime)(void)
struct Layer *(* getLayer)(s32 id)
void(* setPrim)(void *next)
A drawing layer (GFX.funcs.createLayer): a DRAWENV with a pair of ordering tables,...
u_long *(* getOtEntry)(struct Layer *, s32 depth)
void(* setClipSize)()
no prototype: callers would truncate s16 args
void(* setClipPos)()
no prototype: callers would truncate s16 args
Any task, seen through its header.
s32(* isFinished)()
s32: callers don't truncate the result to a byte
void * createTaskWithId(void(*update)(), s32 size, s32 childrenSize, s32 id)
Allocates a zeroed task of size bytes (header included) with room for childrenSize / 4 child tasks.
TextWindow * createTextWindow(s16 layerId, s16 style, s16 x, s16 y)
A text window on a layer, in a font style, at (x, y)