2#include "message_ids.h"
4#include "sprite/npc/WorldEldstar.h"
5#include "sprite/npc/WorldMamar.h"
6#include "sprite/npc/WorldSkolar.h"
7#include "sprite/npc/WorldMuskular.h"
8#include "sprite/npc/WorldMisstar.h"
9#include "sprite/npc/WorldKlevar.h"
10#include "sprite/npc/WorldKalmar.h"
22static s32 gPauseSpiritsSpriteIDs[7];
23static s32 gPauseSpiritsIndexes[7];
24static s32 gPauseSpiritsNumSpirits;
28 .vscale = { 640, 480, 511, 0 },
29 .vtrans = { 640, 480, 511, 0 },
81 { .
x = 120, .y = -5 },
82 { .x = 179, .y = -2 },
83 { .x = 222, .y = 28 },
84 { .x = 165, .y = 45 },
91 { .
x = 120, .y = 50 },
92 { .x = 180, .y = 55 },
93 { .x = 220, .y = 90 },
94 { .x = 165, .y = 110 },
95 { .x = 75, .y = 110 },
103 .pos = { .x = 3, .y = 16 },
117 .pos = { .x = 86, .y = 124 },
161 for (i = 0; i < 5; i++) {
163 0, i * 22, 127, i * 22 + 21, 0,
169 guOrthoF(
matrix1, 0.0f, 320.0f, 240.0f, 0.0f, -1000.0f, 1000.0f, 1.0f);
176 for (i = 0; i < gPauseSpiritsNumSpirits; i++) {
189 offsetY =
sin_deg(index * index * index + frameCounter * 0.4321 + frameCounter * (index * 0.02 + 0.1324))
191 *
sin_deg(index * 0.25 + frameCounter + frameCounter * (0.0432 - index * 0.01));
200 if (index == 1 || index == 2 || index == 3) {
236 draw_box(0, &
gPauseWS_25,
baseX + 7,
baseY + 14, 0, 272, 126, opacity, darkening, 1.0f, 1.0f, 0, 0, 0, 0, 0, 0, width, height, 0);
259 gPauseSpiritsNumSpirits = 0;
261 for (i = 0; i <
ARRAY_COUNT(gPauseSpiritsIndexes); i++) {
262 gPauseSpiritsIndexes[gPauseSpiritsNumSpirits] = i;
263 gPauseSpiritsNumSpirits++;
274 panel->initialized =
true;
283 if (
panel->col < 0) {
309 if (
panel->selected == 2) {
312 }
else if (
panel->selected == 5) {
318 if (
panel->row < 0) {
330 if (
panel->selected == 2) {
333 }
else if (
panel->selected == 5) {
352 if (
panel->selected == 4) {
379 for (i = 0; i < gPauseSpiritsNumSpirits; i++) {
391 for (i = 0; i <
ARRAY_COUNT(gPauseSpiritsSpriteIDs); i++) {
BSS s32 PopupMenu_SelectedIndex
@ SOUND_MENU_CHANGE_SELECTION
@ WIN_PAUSE_SPIRITS_TITLE
void setup_pause_menu_tab(MenuWindowBP *bpArray, s32 arraySize)
HudScript * gPauseCurrentDescIconScript
s32 pause_get_menu_msg(s32 index)
@ PAUSE_MSG_UNKNOWN_SPIRIT
WindowStyleCustom gPauseWS_23
void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY)
void pause_draw_rect(s32 ulx, s32 uly, s32 lrx, s32 lry, s32 tileIdx, s32 uls, s32 ult, s32 dsdx, s32 dtdy)
WindowStyleCustom gPauseWS_25
WindowStyleCustom gPauseWS_24
void pause_spirits_init(MenuPanel *panel)
void pause_spirits_handle_input(MenuPanel *panel)
MenuPanel gPausePanelSpirits
s8 pause_spirits_bg_png[]
s8 gPauseSpiritsGridData[]
s32 gPauseSpiritsSpriteAnims[][4]
s32 gPauseSpiritsDrawOrder[]
Vec2i gPauseSpiritsPositions[]
void pause_spirits_draw_title(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void pause_spirits_draw_contents(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void pause_spirits_cleanup(MenuPanel *panel)
MenuWindowBP gPauseSpiritsWindowsBPs[]
Vec2i gPauseSpiritsCursorPositions[]
void pause_spirits_update(MenuPanel *panel)
void sfx_play_sound(s32 soundID)
#define MENU_PANEL_SELECTED_GRID_DATA(panel)
s32 spr_update_sprite(s32 spriteInstanceID, s32 animID, f32 timeScale)
s32 spr_free_sprite(s32 spriteInstanceID)
void set_npc_imgfx_all(s32 spriteIdx, ImgFXType imgfxType, s32 imgfxArg1, s32 imgfxArg2, s32 imgfxArg3, s32 imgfxArg4, s32 imgfxArg5)
s32 spr_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 alphaIn, PAL_PTR *paletteList, Matrix4f mtx)
s32 spr_load_npc_sprite(s32 animID, u32 *extraAnimList)
#define ANIM_LIST_END
Terminates an extraAnimationList.
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext