4#define TABS_CURSOR_OFFSET_X (-4)
6#define TABS_CURSOR_OFFSET_X (0)
22static s32 gPauseTabsIconIDs[6];
23static s32 gPauseTabsPreviousTab;
24static s32 gPauseTabsHorizScrollPos;
56 &HES_HeaderStats_de, &HES_HeaderBadges_de, &HES_HeaderItems_de,
57 &HES_HeaderParty_de, &HES_HeaderSpirits_de, &HES_HeaderMap_de
60 &HES_HeaderStats_fr, &HES_HeaderBadges_fr, &HES_HeaderItems_fr,
61 &HES_HeaderParty_fr, &HES_HeaderSpirits_fr, &HES_HeaderMap_fr
64 &HES_HeaderStats_es, &HES_HeaderBadges_es, &HES_HeaderItems_es,
65 &HES_HeaderParty_es, &HES_HeaderSpirits_es, &HES_HeaderMap_es
78 .pos = { .x = 0, .y = 7 },
92 .pos = { .x = 0, .y = 7 },
106 .pos = { .x = 0, .y = 7 },
120 .pos = { .x = 0, .y = 7 },
134 .pos = { .x = 0, .y = 7 },
148 .pos = { .x = 0, .y = 7 },
162 .pos = { .x = 8, .y = 8 },
183u8
gPauseTabsInterpTable[] = { 0, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8 };
205 if (darkening != 0) {
223 if (darkening != 0) {
241 if (darkening != 0) {
259 if (darkening != 0) {
277 if (darkening != 0) {
295 if (darkening != 0) {
331 gPauseTabsHorizScrollPos = 0;
333 gPauseTabsPreviousTab = 5;
342 if (--tab->
col < 0) {
344 if (gPauseTabsHorizScrollPos < 1800) {
345 gPauseTabsHorizScrollPos += 1800;
353 if (++tab->
col >= 6) {
355 if (gPauseTabsHorizScrollPos > 0) {
356 gPauseTabsHorizScrollPos -= 1800;
367 x = pauseWindows[tab->
col].
pos.
x;
389 void (*fpUpdateInactive)(s32 windowIndex, s32*
flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
390 f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
391 void (*fpUpdateActive)(s32 windowIndex, s32*
flags, s32* posX, s32* posY, s32* posZ, f32* scaleX, f32* scaleY,
392 f32* rotX, f32* rotY, f32* rotZ, s32* darkening, s32* opacity);
398 deltaBefore = tab->
col * 300 - gPauseTabsHorizScrollPos;
399 absValue = abs(deltaBefore);
400 sgn =
sign(deltaBefore);
402 if (absValue >= 16) {
403 delta = absValue * 0.5;
412 gPauseTabsHorizScrollPos += delta;
414 if ((gPauseTabsPreviousTab != 0 || tab->
col != 5) && (gPauseTabsPreviousTab < tab->col || gPauseTabsPreviousTab == 5 && tab->
col == 0)) {
462 for (i = 0; i <
ARRAY_COUNT(gPauseTabsIconIDs); i++) {
void replace_window_update(s32 idx, s8 arg1, WindowUpdateFunc pendingFunc)
void set_window_update(s32 panelID, s32)
void basic_window_update(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void setup_pause_menu_tab(MenuWindowBP *bpArray, s32 arraySize)
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
s32 hud_element_create(HudScript *anim)
Creates a new HUD element and returns its ID.
void hud_element_set_flags(s32 id, s32 flags)
Turns on the given flags.
void hud_element_clear_flags(s32 id, s32 flags)
Turns off the given flags.
void hud_element_free(s32 id)
@ HUD_ELEMENT_FLAG_TRANSPARENT
HudScript * gPauseCurrentDescIconScript
void pause_update_page_active_2(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
WindowStyleCustom gPauseWS_5
WindowStyleCustom gPauseWS_6
WindowStyleCustom gPauseWS_4
void pause_update_page_inactive_2(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void pause_update_tab_inactive(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
s32 pause_get_menu_msg(s32 index)
void pause_update_tab_active(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
void pause_update_page_inactive_1(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
WindowStyleCustom gPauseWS_3
void pause_update_tab_default(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
WindowStyleCustom gPauseWS_7
void pause_update_page_active_1(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)
WindowStyleCustom gPauseWS_9
WindowStyleCustom gPauseWS_8
void pause_set_cursor_pos(s32 windowID, s32 posX, s32 posY)
u8 gPauseTabsInterpTable[]
void pause_tabs_draw_map(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
MenuPanel gPausePanelTabs
void pause_tabs_draw_badges(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void pause_tabs_draw_stats(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void pause_tabs_cleanup(MenuPanel *tab)
void pause_tabs_draw_spirits(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
MenuWindowBP gPauseTabsWindowBPs[]
MenuPanel * gPausePanels[]
void pause_tabs_draw_items(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
#define TABS_CURSOR_OFFSET_X
void pause_tabs_handle_input(MenuPanel *tab)
void pause_tabs_update(MenuPanel *tab)
void pause_tabs_draw_invis(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
void pause_tabs_init(MenuPanel *tab)
s32 gPauseDoBasicWindowUpdate
void pause_tabs_draw_party(MenuPanel *menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening)
u8 gPauseTabsPageWindowIDs[]
HudScript * gPauseTabsHudScripts[][6]
void sfx_play_sound(s32 soundID)
WindowUpdateFunc fpUpdate
void(* func)(s32 windowIndex, s32 *flags, s32 *posX, s32 *posY, s32 *posZ, f32 *scaleX, f32 *scaleY, f32 *rotX, f32 *rotY, f32 *rotZ, s32 *darkening, s32 *opacity)