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];
24static s32 gPauseSpiritsIndexes[7];
25static s32 gPauseSpiritsNumSpirits;
29 .vscale = { 640, 480, 511, 0 },
30 .vtrans = { 640, 480, 511, 0 },
82 { .
x = 120, .y = -5 },
83 { .x = 179, .y = -2 },
84 { .x = 222, .y = 28 },
85 { .x = 165, .y = 45 },
92 { .
x = 120, .y = 50 },
93 { .x = 180, .y = 55 },
94 { .x = 220, .y = 90 },
95 { .x = 165, .y = 110 },
96 { .x = 75, .y = 110 },
104 .pos = { .x = 3, .y = 16 },
118 .pos = { .x = 86, .y = 124 },
163 for (i = 0; i < 5; i++) {
165 0, i * 22, 127, i * 22 + 21, 0,
171 guOrthoF(
matrix1, 0.0f, 320.0f, 240.0f, 0.0f, -1000.0f, 1000.0f, 1.0f);
178 for (i = 0; i < gPauseSpiritsNumSpirits; i++) {
191 offsetY =
sin_deg(index * index * index + frameCounter * 0.4321 + frameCounter * (index * 0.02 + 0.1324))
193 *
sin_deg(index * 0.25 + frameCounter + frameCounter * (0.0432 - index * 0.01));
202 if (index == 1 || index == 2 || index == 3) {
238 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);
261 gPauseSpiritsNumSpirits = 0;
263 for (i = 0; i <
ARRAY_COUNT(gPauseSpiritsIndexes); i++) {
264 gPauseSpiritsIndexes[gPauseSpiritsNumSpirits] = i;
265 gPauseSpiritsNumSpirits++;
285 if (
panel->col < 0) {
311 if (
panel->selected == 2) {
314 }
else if (
panel->selected == 5) {
320 if (
panel->row < 0) {
332 if (
panel->selected == 2) {
335 }
else if (
panel->selected == 5) {
354 if (
panel->selected == 4) {
381 for (i = 0; i < gPauseSpiritsNumSpirits; i++) {
393 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_draw_npc_sprite(s32 spriteInstanceID, s32 yaw, s32 arg2, PAL_PTR *paletteList, Matrix4f mtx)
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_load_npc_sprite(s32 animID, u32 *extraAnimList)
#define ANIM_LIST_END
Terminates an extraAnimationList.
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext