Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
scene.c
Go to the documentation of this file.
1/* STDWTITL's scene: the mode's root task, which starts the title screen, a
2 movie or the still screen; and the still screen's loader */
3
4#include "menus/title.h"
5
6/* The still screen's loader task: sets up the display and its layer, loads the
7 still screen's images and creates the still screen, then idles */
9 TimLoader loader;
10 Layer *layer;
11
12 switch (task->state) {
13 case TASK_INIT:
14 default:
15 GFX.funcs.reset();
18 initTimLoader(&loader);
19 loader.setImagePos(0x280, 0);
22 layer->setBgColor(layer, 0x1F, 0x1F, 0x1F);
23 *splash = STDWTITL_startSplashTask();
24 task->nextState(task);
25 break;
26 case TASK_RUN:
27 case TASK_DONE:
28 case TASK_KILL:
29 break;
30 }
31}
32
33/* Creates the still screen's loader (task), for STDWTITL_SPLASH_MODE */
37
38/* The overlay's main task: by the low byte of the game mode, starts the title screen
39 (0), the still screen (STDWTITL_SPLASH_MODE) or movie n-1 (any other) */
41 RECT rect;
42 Layer *layer;
43
44 switch (task->state) {
45 case TASK_INIT:
46 default:
47 switch (GAME.funcs.getMode() & 0xFF) {
48 case 0:
49 GFX.funcs.reset();
50 GFX.funcs.allocPrimBuffers(0x14000);
52 rect.x = 0;
53 rect.y = 0;
54 rect.w = 320;
55 rect.h = 240;
56 layer = GFX.funcs.createLayer(&rect, 2, STDWTITL_TITLE_LAYER);
57 layer->setBgColor(layer, 0, 0, 0);
59 break;
62 break;
63 default:
64 children->movie = STDWTITL_startMovieTask((GAME.funcs.getMode() & 0xFF) - 1);
65 break;
66 }
67 task->nextState(task);
68 break;
69 case TASK_RUN:
70 case TASK_DONE:
71 case TASK_KILL:
72 break;
73 }
74}
75
76/* The overlay's entry: creates its main task (STDWTITL_tickScreen) */
78 return createTask(STDWTITL_tickScreen, sizeof(Task), sizeof(TitleModeChildren));
79}
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
FileCache FILE_CACHE
The file cache.
Definition file_cache.c:7
#define SCREEN_WIDTH
The screen the modes draw on (setDisplayMode, their layers' rects)
Definition gfx.h:36
#define SCREEN_HEIGHT
Definition gfx.h:37
void STDWTITL_tickScreen(Task *task, TitleModeChildren *children)
The overlay's main task: by the low byte of the game mode, starts the title screen (0),...
Definition scene.c:40
Task * STDWTITL_start(void)
The overlay's entry: creates its main task (STDWTITL_tickScreen)
Definition scene.c:77
void STDWTITL_tickSplashLoader(Task *task, SplashTask **splash)
The still screen's loader task: sets up the display and its layer, loads the still screen's images an...
Definition scene.c:8
Task * STDWTITL_startSplashLoaderTask(void)
Creates the still screen's loader (task), for STDWTITL_SPLASH_MODE.
Definition scene.c:34
MovieTask * STDWTITL_startMovieTask(s32 movie)
Creates the task that plays STDWTITL_movies[movie].
Definition movie.c:275
SplashTask * STDWTITL_startSplashTask(void)
Creates the still screen (task)
Definition splash.c:111
RECT STDWTITL_screenRect
STDWTITL's data, in its order: data/stdwtitl.c's, data/title.c's and data/movie.c's.
Definition stdwtitl.c:9
void *(* getEntry)(u32 fileAndIndex)
Definition file.h:96
s32(* getMode)(void)
Definition game_state.h:19
GameFuncs funcs
Definition game_state.h:582
void(* reset)(void)
Definition gfx.h:17
void(* allocPrimBuffers)(s32 size)
Definition gfx.h:18
struct Layer *(* createLayer)(RECT *rect, s32 otShift, s32 id)
Definition gfx.h:24
void(* setDisplayMode)(s32 w, s32 h, s32 hires, s32 interlace)
Definition gfx.h:26
GfxFuncs funcs
Definition gfx.h:77
A drawing layer (GFX.funcs.createLayer): a DRAWENV with a pair of ordering tables,...
Definition gfx.h:128
void(* setBgColor)()
no prototype: callers would truncate u8 args
Definition gfx.h:152
Mode 12.
Definition title.h:72
Any task, seen through its header.
Definition task.h:62
void(* nextState)(struct Task *task)
Definition task.h:63
s32 state
Definition task.h:63
Uploads TIM images to VRAM (initTimLoader); acts on TIM_LOADER.
Definition gfx.h:325
void(* setImagePos)()
(x, y)
Definition gfx.h:336
void(* loadArchive)()
(archive): each image 64 halfwords to the right
Definition gfx.h:338
STDWTITL_tickScreen's children.
Definition title.h:65
struct MovieTask * movie
Definition title.h:67
Task * splash
Definition title.h:68
struct TitleLoaderTask * title
Definition title.h:66
void * createTask(void(*update)(), s32 size, s32 childrenSize)
createTaskWithId for a task nothing needs to find
Definition task.c:105
void initTimLoader(TimLoader *obj)
Clears a TIM loader, gives it its methods and binds it.
Definition tim_loader.c:119
STDWTITL.PRO: the title screen, the opening movies and a notice screen.
#define STDWTITL_SPLASH_MODE
The low byte of the game mode that shows the still screen, after the movies'.
Definition title.h:61
#define SPLASH_IMAGES
Definition title.h:42
#define STDWTITL_TITLE_LAYER
Definition title.h:30
#define STDWTITL_SPLASH_LAYER
Draw layers of the screens.
Definition title.h:29
TitleLoaderTask * STDWTITL_startTitleLoaderTask(void)
Creates the title loader (task) and starts loading the title's sound bank.