draw popup menu (#956)

* shape misc

* new func

* popup stuff

---------

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2023-02-25 03:30:02 -05:00 committed by GitHub
parent ba42928a18
commit 07c314d8e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 581 additions and 1628 deletions

View File

@ -1044,7 +1044,7 @@ typedef struct CollisionData {
} CollisionData; // size = 0x10
typedef struct ModelGroupData {
/* 0x00 */ UNK_PTR transformMatrix;
/* 0x00 */ Mtx* transformMatrix;
/* 0x04 */ Lightsn* lightingGroup;
/* 0x08 */ s32 numLights;
/* 0x0C */ s32 numChildren;

View File

@ -101,7 +101,7 @@
#define fx_motion_blur_flame dead_fx_motion_blur_flame
#define wPartnerHudScripts dead_wPartnerHudScripts
#define wDisabledPartnerHudScripts dead_wDisabledPartnerHudScripts
#define create_popup_menu dead_create_popup_menu
#define create_standard_popup_menu dead_create_standard_popup_menu
#define hide_popup_menu dead_hide_popup_menu
#define destroy_popup_menu dead_destroy_popup_menu
#define heap_free dead_heap_free

View File

@ -3633,6 +3633,46 @@ enum PopupType {
POPUP_MENU_TRIPLE_DIP = 200,
};
enum PopupState {
POPUP_STATE_INIT = 0,
POPUP_STATE_CHOOSING = 1,
POPUP_STATE_10 = 10,
POPUP_STATE_11 = 11,
POPUP_STATE_20 = 20,
POPUP_STATE_ALREADY_HAVE_PARTNER_BEGIN = 30,
POPUP_STATE_ALREADY_HAVE_PARTNER_SHOW = 31,
POPUP_STATE_ALREADY_HAVE_PARTNER_AWAIT = 32,
POPUP_STATE_CANCEL_DIP = 100,
POPUP_STATE_CANCEL_DIP_AWAIT_CHOICE = 101,
POPUP_STATE_CANCEL_DIP_ACCEPT = 102,
POPUP_STATE_CANCEL_DIP_DECLINE = 103,
POPUP_STATE_104 = 104,
POPUP_STATE_105 = 105,
POPUP_STATE_CHOSE_WORLD = -1,
POPUP_STATE_CHOSE_BATTLE = -2,
POPUP_STATE_MINUS_3 = -3,
POPUP_STATE_MINUS_4 = -4,
POPUP_STATE_MINUS_5 = -5,
POPUP_STATE_MINUS_6 = -6,
POPUP_STATE_MINUS_7 = -7,
POPUP_STATE_MINUS_8 = -8,
};
enum PopupResult {
POPUP_RESULT_MINUS_1 = -1,
POPUP_RESULT_MINUS_2 = -2,
POPUP_RESULT_CHOOSING = 0,
POPUP_RESULT_CANCEL = 255,
};
enum WindowPriority {
WINDOW_PRIORITY_0 = 0,
WINDOW_PRIORITY_10 = 10,
WINDOW_PRIORITY_19 = 19,
WINDOW_PRIORITY_20 = 20,
WINDOW_PRIORITY_21 = 21,
};
/// not really
enum RenderMode {
RENDER_MODE_SURF_SOLID_AA_ZB_LAYER0 = 0x00000000,
@ -6025,9 +6065,10 @@ enum DrawMsgStyleFlags {
// used with draw_number
enum DrawNumberStyleFlags {
DRAW_NUMBER_STYLE_ALIGN_RIGHT = 1, ///< drawn to the left of posX
DRAW_NUMBER_STYLE_MONOSPACE = 2,
DRAW_NUMBER_STYLE_DROP_SHADOW = 4,
DRAW_NUMBER_STYLE_ALIGN_RIGHT = 1, ///< drawn to the left of posX
DRAW_NUMBER_STYLE_MONOSPACE = 2,
DRAW_NUMBER_STYLE_MONOSPACE_RIGHT = 3, // combination of MONOSPACE and ALIGN_RIGHT
DRAW_NUMBER_STYLE_DROP_SHADOW = 4,
};
enum DrawNumberCharsets {

View File

@ -6,7 +6,7 @@
typedef union ModelNodePropertyData {
s32 s;
f32 f;
s32* p;
void* p;
} ModelNodePropertyData;
// In memory this is a list of ModelNodeProperty, but due to the way it uses
@ -152,14 +152,17 @@ typedef enum ExtraTileTypes {
#define SHAPE_SIZE_LIMIT 0x8000
typedef struct ShapeFile {
typedef struct ShapeFileHeader {
/* 0x00 */ ModelNode* root;
/* 0x04 */ Vtx_t* vertexTable;
/* 0x08 */ char** modelNames;
/* 0x0C */ char** colliderNames;
/* 0x10 */ char** zoneNames;
/* 0x14 */ unsigned char pad_14[0xC];
// end header
} ShapeFileHeader; // size = 0x20
typedef struct ShapeFile {
/* 0x00 */ ShapeFileHeader header;
/* 0x20 */ u8 data[SHAPE_SIZE_LIMIT - 0x20];
} ShapeFile; // size = variable

View File

@ -224,7 +224,7 @@ void btl_state_update_normal_start(void) {
ASSERT(size <= 0x8000);
model = gMapShapeData.root;
model = gMapShapeData.header.root;
textureRom = get_asset_offset(stage->texture, &size);
if (model != NULL) {
load_data_for_models(model, textureRom, size);

View File

@ -3904,7 +3904,7 @@ void btl_show_message_popup(void* data) {
width = msgWidth;
numLines = get_msg_lines(messageID) - 1;
height = bMsgHeights[numLines];
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, 0, func_80250818, popup, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, WINDOW_PRIORITY_0, func_80250818, popup, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
}
break;
@ -3921,7 +3921,7 @@ void btl_show_message_popup(void* data) {
posX = 160 - (msgWidth / 2);
width = msgWidth;
height = 40;
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, 0, func_80250818, popup, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, WINDOW_PRIORITY_0, func_80250818, popup, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
}
break;
@ -3946,7 +3946,7 @@ void btl_show_message_popup(void* data) {
width = msgWidth;
numLines = get_msg_lines(messageID) - 1;
height = bMsgHeights[numLines];
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, 0, func_80250818, popup, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, WINDOW_PRIORITY_0, func_80250818, popup, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
}
break;
@ -3962,7 +3962,7 @@ void btl_show_message_popup(void* data) {
width = msgWidth;
numLines = get_msg_lines(messageID) - 1;
height = bMsgHeights[numLines];
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, 0, func_80250818, popup, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, WINDOW_PRIORITY_0, func_80250818, popup, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
}
break;
@ -4006,7 +4006,7 @@ void btl_show_message_popup(void* data) {
D_8029F650 = D_802835D8[numLines];
posY = D_8029F64E + D_8029F650;
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, 0, func_80250818, popup, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, posX, posY, width, height, WINDOW_PRIORITY_0, func_80250818, popup, -1);
if (popup->messageIndex == BTL_MSG_3B) {
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
} else {

View File

@ -971,7 +971,7 @@ void btl_state_update_celebration(void) {
hud_element_set_tint(id, 128, 128, 128);
x = 20;
y = 186;
set_window_properties(WINDOW_ID_8, 20, 186, 280, 32, 20, draw_content_level_up_textbox, NULL, -1);
set_window_properties(WINDOW_ID_8, 20, 186, 280, 32, WINDOW_PRIORITY_20, draw_content_level_up_textbox, NULL, -1);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW);
gBattleSubState = BTL_SUBSTATE_CELEBRATE_LEVEL_UP_CHOOSE;
}
@ -1122,7 +1122,7 @@ void btl_state_update_celebration(void) {
width = get_msg_width(MSG_Menus_CantIncrease, 0) + 31;
x = 160 - (width / 2);
y = 80;
set_window_properties(WINDOW_ID_BATTLE_POPUP, x, y, width, 28, 10, draw_content_cant_increase_popup, NULL, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, x, y, width, 28, WINDOW_PRIORITY_10, draw_content_cant_increase_popup, NULL, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
CelebrateSubstateTime = 60;
gBattleSubState = BTL_SUBSTATE_CELEBRATE_LEVEL_UP_INVALID_DELAY;

View File

@ -416,7 +416,7 @@ BSS s32 D_802AD6A8[6];
BSS s32 D_802AD6C0[5];
BSS s32 D_802AD6D4;
void func_800F513C(PopupMenu* popup);
void create_battle_popup_menu(PopupMenu* popup);
s32 func_80265D44(s32 animID);
void func_802A3C98(void* data, s32 x, s32 y);
@ -2892,17 +2892,17 @@ void btl_state_update_player_menu(void) {
if (battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP] < 0) {
battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP] = 0;
}
popup->popupType = 0;
popup->popupType = POPUP_MENU_USE_ITEM;
popup->numEntries = entryIdx;
initialPos = battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP];
popup->initialPos = initialPos;
func_800F513C(popup);
create_battle_popup_menu(popup);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_DIPPING_CHOOSE_TARGET;
break;
case BTL_SUBSTATE_PLAYER_MENU_DIPPING_CHOOSE_TARGET:
if (popup->result != 0) {
if (popup->result == 255) {
if (popup->result != POPUP_RESULT_CHOOSING) {
if (popup->result == POPUP_RESULT_CANCEL) {
func_802A2910();
battleStatus->selectedMoveID = 0;
battleStatus->itemUsesLeft = 0;
@ -2926,7 +2926,7 @@ void btl_state_update_player_menu(void) {
}
break;
case BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == 0) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == POPUP_RESULT_CHOOSING) {
func_800F16CC();
func_802A2C58();
func_802A1098();
@ -2988,18 +2988,18 @@ void btl_state_update_player_menu(void) {
battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP] = 0;
}
initialPos = battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP];
popup->popupType = 0;
popup->popupType = POPUP_MENU_USE_ITEM;
popup->numEntries = entryIdx;
popup->dipMode = 0;
popup->titleNumber = 0;
popup->initialPos = initialPos;
func_800F513C(popup);
create_battle_popup_menu(popup);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_ITEMS_2;
break;
case BTL_SUBSTATE_PLAYER_MENU_ITEMS_2:
if (popup->result != 0) {
if (popup->result == 255) {
if (popup->result != POPUP_RESULT_CHOOSING) {
if (popup->result == POPUP_RESULT_CANCEL) {
func_802A1050();
D_802ACC60 = 8;
D_802ACC6C = 4;
@ -3023,7 +3023,7 @@ void btl_state_update_player_menu(void) {
}
break;
case BTL_SUBSTATE_PLAYER_MENU_ITEMS_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == 0) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == POPUP_RESULT_CHOOSING) {
func_800F16CC();
func_802A1098();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_ITEMS_4;
@ -3187,7 +3187,7 @@ void btl_state_update_player_menu(void) {
battleStatus->itemUsesLeft = 1;
btl_set_state(BATTLE_STATE_END_PLAYER_TURN);
} else {
popup->popupType = 0;
popup->popupType = POPUP_MENU_USE_ITEM;
if (battleStatus->selectedMoveID == MOVE_DOUBLE_DIP) {
popup->popupType += POPUP_MENU_DOUBLE_DIP;
popup->dipMode = 1;
@ -3204,15 +3204,15 @@ void btl_state_update_player_menu(void) {
popup->numEntries = entryIdx;
initialPos = battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_DIP];
popup->initialPos = initialPos;
func_800F513C(popup);
create_battle_popup_menu(popup);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_DIPPING_2;
}
}
break;
case BTL_SUBSTATE_PLAYER_MENU_DIPPING_2:
if (popup->result != 0) {
if (popup->result == 255) {
if (popup->result != POPUP_RESULT_CHOOSING) {
if (popup->result == POPUP_RESULT_CANCEL) {
battleStatus->itemUsesLeft = 1;
btl_set_state(BATTLE_STATE_END_PLAYER_TURN);
} else {
@ -3451,20 +3451,20 @@ void btl_state_update_player_menu(void) {
if (battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_PARTNER] < 0) {
battleStatus->lastPlayerMenuSelection[BTL_MENU_IDX_PARTNER] = 0;
}
popup->popupType = 1;
popup->popupType = POPUP_MENU_SWITCH_PARTNER;
popup->numEntries = entryIdx;
popup->initialPos = D_8008EEF0[playerData->currentPartner] - 1;
popup->dipMode = 0;
popup->titleNumber = 0;
func_800F513C(popup);
create_battle_popup_menu(popup);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2;
break;
case BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2:
if (popup->result == -1) {
if (popup->result == POPUP_RESULT_MINUS_1) {
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_7;
} else if (popup->result != 0) {
if (popup->result == 255) {
} else if (popup->result != POPUP_RESULT_CHOOSING) {
if (popup->result == POPUP_RESULT_CANCEL) {
func_802A47E0();
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_2;
btl_state_update_player_menu();
@ -3486,7 +3486,7 @@ void btl_state_update_player_menu(void) {
}
break;
case BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == 0) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popup->result == POPUP_RESULT_CHOOSING) {
func_800F16CC();
func_802A4A10();
func_802A1098();
@ -3520,7 +3520,7 @@ void btl_state_update_player_menu(void) {
case BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_7:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_HIDE);
if (popup->result != -1) {
if (popup->result != POPUP_RESULT_MINUS_1) {
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_9);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_9);
gBattleSubState = BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2;
@ -3969,13 +3969,13 @@ void btl_state_update_partner_menu(void) {
popupMenu->titleNumber = 0;
initialPos = battleStatus->lastPartnerMenuSelection[BTL_MENU_IDX_PARTNER_ITEM];
popupMenu->initialPos = initialPos;
func_800F513C(popupMenu);
create_battle_popup_menu(popupMenu);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_ITEMS_2;
break;
case BTL_SUBSTATE_PARTNER_MENU_ITEMS_2:
if (popupMenu->result != 0) {
if (popupMenu->result == 255) {
if (popupMenu->result != POPUP_RESULT_CHOOSING) {
if (popupMenu->result == POPUP_RESULT_CANCEL) {
func_802A1050();
D_802ACC60 = 8;
D_802ACC6C = 4;
@ -3998,7 +3998,7 @@ void btl_state_update_partner_menu(void) {
}
break;
case BTL_SUBSTATE_PARTNER_MENU_ITEMS_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popupMenu->result == 0) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popupMenu->result == POPUP_RESULT_CHOOSING) {
func_800F16CC();
func_802A1098();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_ITEMS_4;
@ -4047,15 +4047,15 @@ void btl_state_update_partner_menu(void) {
popupMenu->initialPos = D_8008EEF0[playerData->currentPartner] - 1;
popupMenu->dipMode = 0;
popupMenu->titleNumber = 0;
func_800F513C(popupMenu);
create_battle_popup_menu(popupMenu);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_2;
break;
case BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_2:
if (popupMenu->result == -1) {
if (popupMenu->result == POPUP_RESULT_MINUS_1) {
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_7;
} else if (popupMenu->result != 0) {
if (popupMenu->result == 255) {
} else if (popupMenu->result != POPUP_RESULT_CHOOSING) {
if (popupMenu->result == POPUP_RESULT_CANCEL) {
func_802A1050();
D_802ACC60 = 8;
D_802ACC6C = 4;
@ -4078,7 +4078,7 @@ void btl_state_update_partner_menu(void) {
}
break;
case BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && (popupMenu->result == 0)) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && (popupMenu->result == POPUP_RESULT_CHOOSING)) {
func_800F16CC();
func_802A1098();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_4;
@ -4103,7 +4103,7 @@ void btl_state_update_partner_menu(void) {
btl_main_menu_destroy();
break;
case BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_7:
if (popupMenu->result != -1) {
if (popupMenu->result != POPUP_RESULT_MINUS_1) {
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_2;
}
break;
@ -4321,15 +4321,15 @@ void btl_state_update_partner_menu(void) {
popupMenu->initialPos = D_8008EEF0[playerData->currentPartner] - 1;
popupMenu->dipMode = 0;
popupMenu->titleNumber = 0;
func_800F513C(popupMenu);
create_battle_popup_menu(popupMenu);
func_800F52BC();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_2;
break;
case BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_2:
if (popupMenu->result == -1) {
if (popupMenu->result == POPUP_RESULT_MINUS_1) {
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_7;
} else if (popupMenu->result != 0) {
if (popupMenu->result == 255) {
} else if (popupMenu->result != POPUP_RESULT_CHOOSING) {
if (popupMenu->result == POPUP_RESULT_CANCEL) {
func_802A47E0();
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_2;
btl_state_update_partner_menu();
@ -4351,7 +4351,7 @@ void btl_state_update_partner_menu(void) {
}
break;
case BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_3:
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popupMenu->result == 0) {
if ((battleStatus->currentButtonsPressed & BUTTON_B) && popupMenu->result == POPUP_RESULT_CHOOSING) {
func_800F16CC();
func_802A4A10();
func_802A1098();
@ -4385,7 +4385,7 @@ void btl_state_update_partner_menu(void) {
case BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_7:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_HIDE);
if (popupMenu->result != -1) {
if (popupMenu->result != POPUP_RESULT_MINUS_1) {
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_9);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_9);
gBattleSubState = BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_2;

View File

@ -249,7 +249,7 @@ block_17:
return;
}
popup->numEntries = numEntries;
popup->popupType = 1;
popup->popupType = POPUP_MENU_SWITCH_PARTNER;
popup->initialPos = D_8008EEF0[playerData->currentPartner] - 1;
break;
}
@ -259,7 +259,7 @@ block_17:
if (numEntries == 0) {
return;
}
popup->popupType = 0;
popup->popupType = POPUP_MENU_USE_ITEM;
popup->numEntries = numEntries;
popup->initialPos = 0;
break;
@ -301,7 +301,7 @@ block_17:
D_8010CD00 = 10;
return;
}
create_popup_menu(popup);
create_standard_popup_menu(popup);
set_time_freeze_mode(TIME_FREEZE_POPUP_MENU);
if (*partnerActionState == PARTNER_ACTION_NONE) {
set_action_state(ACTION_STATE_IDLE);
@ -309,9 +309,9 @@ block_17:
D_8010CD00++;
break;
case 3:
if (popup->result != -1) {
if (popup->result != POPUP_RESULT_MINUS_1) {
D_8010CCFC = popup->result;
if (D_8010CCFC != 0) {
if (D_8010CCFC != POPUP_RESULT_CHOOSING) {
hide_popup_menu();
D_8010CCFA = 15;
D_8010CD00++;
@ -325,9 +325,9 @@ block_17:
D_8010CD00 = 0;
enable_player_input();
partner_enable_input();
if (D_8010CCFC == -2) {
if (D_8010CCFC == POPUP_RESULT_MINUS_2) {
if ((setup_partner_popup(popup) == 0) || (setup_item_popup(popup) == 0)) {
D_8010CCFC = 0xFF;
D_8010CCFC = POPUP_RESULT_CANCEL;
} else {
switch (D_8010CCF8) {
case 0:
@ -342,7 +342,7 @@ block_17:
}
}
if (D_8010CCFC != 0xFF) {
if (D_8010CCFC != POPUP_RESULT_CANCEL) {
switch (D_8010CCF8) {
case 0:
switch_to_partner(popup->userIndex[D_8010CCFC - 1]);

File diff suppressed because it is too large Load Diff

View File

@ -2800,7 +2800,7 @@ block_47: // TODO required to match
menu->popupType = POPUP_MENU_THROW_AWAY_ITEM;
menu->numEntries = numEntries;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
set_window_update(WINDOW_ID_12, (s32) basic_hidden_window_update);
set_window_update(WINDOW_ID_17, (s32) basic_hidden_window_update);
D_801568E4 = 0;
@ -2957,28 +2957,28 @@ void func_801363A0(ItemEntity* itemEntity) {
!(gItemTable[itemEntity->itemID].typeFlags & ITEM_TYPE_FLAG_GEAR) &&
!(itemEntity->pickupMsgFlags & 0x30)) {
set_window_properties(WINDOW_ID_12, s1, s3 - 24 + temp, offsetY,
temp2, 0, func_8013673C, itemEntity, -1);
temp2, WINDOW_PRIORITY_0, func_8013673C, itemEntity, -1);
} else if (gItemTable[itemEntity->itemID].typeFlags & 1){
set_window_properties(WINDOW_ID_12, s1, s3 - 24 + temp, offsetY,
temp2, 0, func_8013673C, itemEntity, -1);
temp2, WINDOW_PRIORITY_0, func_8013673C, itemEntity, -1);
} else {
set_window_properties(WINDOW_ID_12, s1, s3 - 24 + temp, offsetY,
temp2, 0, func_8013673C, itemEntity, -1);
temp2, WINDOW_PRIORITY_0, func_8013673C, itemEntity, -1);
}
if (itemEntity->itemID != ITEM_STAR_PIECE && itemEntity->itemID != ITEM_COIN) {
set_window_properties(WINDOW_ID_19, 20, 186, 280, 32, NULL, func_80136A08, itemEntity, -1);
set_window_properties(WINDOW_ID_19, 20, 186, 280, 32, WINDOW_PRIORITY_0, func_80136A08, itemEntity, -1);
}
if (itemEntity->state != 2) {
offsetY = get_msg_width(MSG_Menus_0060, 0) + 0x18;
s1 = 160 - offsetY / 2;
set_window_properties(WINDOW_ID_17, 160 - offsetY / 2, 36, offsetY, 40, NULL, func_801369D0, itemEntity, -1);
set_window_properties(WINDOW_ID_17, 160 - offsetY / 2, 36, offsetY, 40, WINDOW_PRIORITY_0, func_801369D0, itemEntity, -1);
}
break;
case 12:
set_message_msg(itemData->nameMsg, 0);
offsetY = get_msg_width(MSG_Menus_005F, 0) + 0x36;
s1 = 160 - offsetY / 2;
set_window_properties(WINDOW_ID_12, 160 - offsetY / 2, 76, offsetY, 40, NULL, func_8013673C, itemEntity, -1);
set_window_properties(WINDOW_ID_12, 160 - offsetY / 2, 76, offsetY, 40, WINDOW_PRIORITY_0, func_8013673C, itemEntity, -1);
break;
}
}

View File

@ -325,7 +325,7 @@ ApiStatus ShowKeyChoicePopup(Evt* script, s32 isInitialCall) {
menu->popupType = POPUP_MENU_USEKEY;
menu->numEntries = numEntries;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
script->functionTemp[1] = 0;
script->functionTemp[0] = 1;
break;
@ -416,7 +416,7 @@ ApiStatus ShowConsumableChoicePopup(Evt* script, s32 isInitialCall) {
menu->popupType = POPUP_MENU_USEKEY;
menu->numEntries = numEntries;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
script->functionTemp[1] = 0;
script->functionTemp[0] = 1;
break;

View File

@ -369,6 +369,6 @@ void copy_world_hud_element_ref_to_battle(s32 worldID, s32 battleID);
void hud_element_set_aux_cache(void* base, s32 size);
void create_popup_menu(PopupMenu*);
void create_standard_popup_menu(PopupMenu*);
#endif

View File

@ -113,14 +113,14 @@ API_CALLABLE(N(Merlow_ShopBadgesPopup)) {
menu->popupType = POPUP_MENU_TRADE_FOR_BADGE;
menu->numEntries = menuPos;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
script->functionTemp[0] = 0;
}
menu = script->functionTempPtr[2];
if (script->functionTemp[0] == 0) {
script->functionTemp[1] = menu->result;
if (script->functionTemp[1] != 0) {
if (script->functionTemp[1] != POPUP_RESULT_CHOOSING) {
hide_popup_menu();
} else {
return ApiStatus_BLOCK;
@ -133,7 +133,7 @@ API_CALLABLE(N(Merlow_ShopBadgesPopup)) {
destroy_popup_menu();
selected = script->functionTemp[1];
if (selected != 0xFF) {
if (selected != POPUP_RESULT_CANCEL) {
ShopItemData* selectedItem;
i = menu->userIndex[selected - 1];
selectedItem = &N(MerlowBadgeInventory)[i];

View File

@ -91,14 +91,14 @@ API_CALLABLE(N(ChestItemPrompt)) {
menu->numEntries = menuIdx;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
script->functionTemp[0] = 0;
}
menu = script->functionTempPtr[2];
if (script->functionTemp[0] == 0) {
script->functionTemp[1] = menu->result;
if (script->functionTemp[1] == 0) {
if (script->functionTemp[1] == POPUP_RESULT_CHOOSING) {
return ApiStatus_BLOCK;
}
hide_popup_menu();
@ -111,7 +111,7 @@ API_CALLABLE(N(ChestItemPrompt)) {
destroy_popup_menu();
if (script->functionTemp[1] == 255) {
if (script->functionTemp[1] == POPUP_RESULT_CANCEL) {
script->varTable[0] = -1;
} else {
selectIdx = menu->userIndex[script->functionTemp[1] - 1];

View File

@ -89,14 +89,14 @@ API_CALLABLE(N(ChestItemPrompt)) {
menu->numEntries = menuIdx;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
script->functionTemp[0] = 0;
}
menu = script->functionTempPtr[2];
if (script->functionTemp[0] == 0) {
script->functionTemp[1] = menu->result;
if (script->functionTemp[1] == 0) {
if (script->functionTemp[1] == POPUP_RESULT_CHOOSING) {
return ApiStatus_BLOCK;
}
hide_popup_menu();
@ -109,7 +109,7 @@ API_CALLABLE(N(ChestItemPrompt)) {
destroy_popup_menu();
if (script->functionTemp[1] == 255) {
if (script->functionTemp[1] == POPUP_RESULT_CANCEL) {
script->varTable[0] = -1;
} else {
selectIdx = menu->userIndex[script->functionTemp[1] - 1];

View File

@ -191,7 +191,7 @@ API_CALLABLE(N(ReadLetters)){
menu->popupType = POPUP_MENU_READ_POSTCARD;
menu->numEntries = numEntries;
menu->initialPos = script->functionTemp[3];
create_popup_menu(menu);
create_standard_popup_menu(menu);
status_menu_respond_to_changes();
close_status_menu();
script->functionTemp[1] = 0;
@ -200,7 +200,7 @@ API_CALLABLE(N(ReadLetters)){
case 1:
if (script->functionTemp[1] == 0) {
script->functionTemp[2] = menu->result;
if (script->functionTemp[2] != 0) {
if (script->functionTemp[2] != POPUP_RESULT_CHOOSING) {
hide_popup_menu();
} else {
break;
@ -210,7 +210,7 @@ API_CALLABLE(N(ReadLetters)){
script->functionTemp[1]++;
if (script->functionTemp[1] >= 15) {
destroy_popup_menu();
if (script->functionTemp[2] == 255) {
if (script->functionTemp[2] == POPUP_RESULT_CANCEL) {
script->varTable[0] = -1;
return ApiStatus_DONE2;
}
@ -372,7 +372,7 @@ API_CALLABLE(N(ReadDiary)){
menu->popupType = POPUP_MENU_READ_DIARY_PAGE;
menu->numEntries = numEntries;
menu->initialPos = script->functionTemp[3];
create_popup_menu(menu);
create_standard_popup_menu(menu);
status_menu_respond_to_changes();
close_status_menu();
script->functionTemp[1] = 0;
@ -381,7 +381,7 @@ API_CALLABLE(N(ReadDiary)){
case 1:
if (script->functionTemp[1] == 0) {
script->functionTemp[2] = menu->result;
if (script->functionTemp[2] != 0) {
if (script->functionTemp[2] != POPUP_RESULT_CHOOSING) {
hide_popup_menu();
} else {
break;
@ -390,7 +390,7 @@ API_CALLABLE(N(ReadDiary)){
script->functionTemp[1]++;
if (script->functionTemp[1] >= 15) {
destroy_popup_menu();
if (script->functionTemp[2] == 255) {
if (script->functionTemp[2] == POPUP_RESULT_CANCEL) {
script->varTable[0] = -1;
return ApiStatus_DONE2;
}

View File

@ -114,7 +114,7 @@ API_CALLABLE(N(func_80245028_8058A8)) {
menu->popupType = POPUP_MENU_POST_OFFICE;
menu->numEntries = numEntries;
menu->initialPos = D_80262F68;
create_popup_menu(menu);
create_standard_popup_menu(menu);
status_menu_respond_to_changes();
close_status_menu();
script->functionTemp[0] = 0;
@ -177,10 +177,10 @@ API_CALLABLE(N(func_8024522C_805AAC)) {
numEntries++;
}
}
menu->popupType = 8;
menu->popupType = POPUP_MENU_READ_LETTER;
menu->numEntries = numEntries;
menu->initialPos = 0;
create_popup_menu(menu);
create_standard_popup_menu(menu);
status_menu_respond_to_changes();
close_status_menu();
script->functionTemp[0] = 0;

View File

@ -158,7 +158,7 @@ API_CALLABLE(N(SuperBlock_ShowSelectPartnerMenu)) {
popupMenu->popupType = POPUP_MENU_UPGRADE_PARTNER;
popupMenu->numEntries = entryIndex;
popupMenu->initialPos = 0;
create_popup_menu(popupMenu);
create_standard_popup_menu(popupMenu);
script->functionTemp[0] = 0;
}
@ -166,7 +166,7 @@ API_CALLABLE(N(SuperBlock_ShowSelectPartnerMenu)) {
popupMenu = script->functionTempPtr[2];
if (script->functionTemp[0] == 0) {
script->functionTemp[1] = popupMenu->result;
if (script->functionTemp[1] == 0) {
if (script->functionTemp[1] == POPUP_RESULT_CHOOSING) {
return ApiStatus_BLOCK;
}
hide_popup_menu();
@ -179,7 +179,7 @@ API_CALLABLE(N(SuperBlock_ShowSelectPartnerMenu)) {
}
destroy_popup_menu();
if (script->functionTemp[1] != 255) {
if (script->functionTemp[1] != POPUP_RESULT_CANCEL) {
script->varTable[0] = gPartnerPopupProperties[popupMenu->userIndex[script->functionTemp[1] - 1]].nameMsg;
script->varTable[1] = popupMenu->userIndex[script->functionTemp[1] - 1];
} else {

View File

@ -363,7 +363,7 @@ API_CALLABLE(ShowShopPurchaseDialog) {
return ApiStatus_BLOCK;
}
void func_800F4FC4(PopupMenu* popup);
void create_shop_popup_menu(PopupMenu* popup);
// almost
#ifdef NON_EQUIVALENT
@ -421,7 +421,7 @@ void shop_open_item_select_popup(s32 mode) {
menu->popupType = popupType;
menu->numEntries = numEntries;
menu->initialPos = 0;
func_800F4FC4(menu);
create_shop_popup_menu(menu);
status_menu_ignore_changes();
func_800E98EC();
open_status_menu_short();
@ -435,13 +435,13 @@ s32 shop_update_item_select_popup(s32* selectedIndex) {
PopupMenu* menu = &shop->itemSelectMenu;
s16 menuResult = shop->itemSelectMenu.result;
if (menuResult == 0) {
if (menuResult == POPUP_RESULT_CHOOSING) {
return 0;
}
hide_popup_menu();
if (menuResult == 0xFF) {
if (menuResult == POPUP_RESULT_CANCEL) {
*selectedIndex = -1;
} else {
*selectedIndex = menu->userIndex[menuResult - 1];

View File

@ -142,10 +142,10 @@ void load_map_by_IDs(s16 areaID, s16 mapID, s16 loadType) {
decode_yay0(yay0Asset, shapeFile);
general_heap_free(yay0Asset);
mapSettings->modelTreeRoot = shapeFile->root;
mapSettings->modelNameList = shapeFile->modelNames;
mapSettings->colliderNameList = shapeFile->colliderNames;
mapSettings->zoneNameList = shapeFile->zoneNames;
mapSettings->modelTreeRoot = shapeFile->header.root;
mapSettings->modelNameList = shapeFile->header.modelNames;
mapSettings->colliderNameList = shapeFile->header.colliderNames;
mapSettings->zoneNameList = shapeFile->header.zoneNames;
}
if (mapConfig->bgName != NULL) {

View File

@ -264,7 +264,7 @@ dead_get_model_from_list_index = 0x80124F44;
dead_guTranslateF = 0x8006CAC0;
dead_fx_misc_particles = 0x800775D0;
dead_entity_upgrade_block_hide_content = 0x802F3B00;
dead_create_popup_menu = 0x800FCD0C;
dead_create_standard_popup_menu = 0x800FCD0C;
dead_hide_popup_menu = 0x800F9260;
dead_destroy_popup_menu = 0x800F93E8;
dead_switch_to_partner = 0x800F2D5C;

View File

@ -64,13 +64,13 @@ dlabel D_8010D000
dlabel D_8010D004
.space 0x63C
dlabel D_8010D640
dlabel gPopupState
.space 4
dlabel D_8010D644
.space 4
dlabel D_8010D648
dlabel PopupSelectedIdx
.space 4
dlabel D_8010D64C
@ -145,7 +145,7 @@ dlabel D_8010D68A
dlabel D_8010D68C
.space 2
dlabel D_8010D68E
dlabel PopupNotBattle
.space 1
dlabel D_8010D68F
@ -163,13 +163,13 @@ dlabel D_8010D692
dlabel D_8010D693
.space 1
dlabel D_8010D694
dlabel gPopupWorker
.space 4
dlabel D_8010D698
dlabel PopupNotDipping
.space 1
dlabel D_8010D699
dlabel PopupDipMode
.space 1
dlabel D_8010D69A

View File

@ -82,7 +82,7 @@ glabel shop_open_item_select_popup
/* 7E18E8 80280A68 8FA40010 */ lw $a0, 0x10($sp)
/* 7E18EC 80280A6C AC950318 */ sw $s5, 0x318($a0)
/* 7E18F0 80280A70 AC930324 */ sw $s3, 0x324($a0)
/* 7E18F4 80280A74 0C03D3F1 */ jal func_800F4FC4
/* 7E18F4 80280A74 0C03D3F1 */ jal create_shop_popup_menu
/* 7E18F8 80280A78 AC800328 */ sw $zero, 0x328($a0)
/* 7E18FC 80280A7C 0C03A625 */ jal status_menu_ignore_changes
/* 7E1900 80280A80 00000000 */ nop

View File

@ -3100,11 +3100,11 @@ func_800F48F4 = 0x800F48F4; // type:func rom:0x8DDA4
func_800F4944 = 0x800F4944; // type:func rom:0x8DDF4
func_800F4C1C = 0x800F4C1C; // type:func rom:0x8E0CC
func_800F4C6C = 0x800F4C6C; // type:func rom:0x8E11C
func_800F4CF0 = 0x800F4CF0; // type:func rom:0x8E1A0
popup_draw_already_have_partner = 0x800F4CF0; // type:func rom:0x8E1A0
func_800F4D28 = 0x800F4D28; // type:func rom:0x8E1D8
create_popup_menu = 0x800F4E40; // type:func rom:0x8E2F0
func_800F4FC4 = 0x800F4FC4; // type:func rom:0x8E474
func_800F513C = 0x800F513C; // type:func rom:0x8E5EC
create_standard_popup_menu = 0x800F4E40; // type:func rom:0x8E2F0
create_shop_popup_menu = 0x800F4FC4; // type:func rom:0x8E474
create_battle_popup_menu = 0x800F513C; // type:func rom:0x8E5EC
func_800F52BC = 0x800F52BC; // type:func rom:0x8E76C
draw_box = 0x800F52E0; // type:func rom:0x8E790
gCollisionData = 0x800B42E0; // type:data rom:0x8F6E0 size:0x10
@ -3879,9 +3879,9 @@ render_entities = 0x8010FEB4; // type:func rom:0xA65B4
render_shadows = 0x801100CC; // type:func rom:0xA67CC
update_entity_transform_matrix = 0x8011022C; // type:func rom:0xA692C
update_shadow_transform_matrix = 0x80110374; // type:func rom:0xA6A74
D_8010D640 = 0x8010D640; // type:data rom:0xA6AF0
gPopupState = 0x8010D640; // type:data rom:0xA6AF0
D_8010D644 = 0x8010D644; // type:data rom:0xA6AF4
D_8010D648 = 0x8010D648; // type:data rom:0xA6AF8
PopupSelectedIdx = 0x8010D648; // type:data rom:0xA6AF8
D_8010D64C = 0x8010D64C; // type:data rom:0xA6AFC
D_8010D650 = 0x8010D650; // type:data rom:0xA6B00
D_8010D654 = 0x8010D654; // type:data rom:0xA6B04
@ -3906,15 +3906,15 @@ D_8010D686 = 0x8010D686; // type:data rom:0xA6B36
D_8010D688 = 0x8010D688; // type:data rom:0xA6B38
D_8010D68A = 0x8010D68A; // type:data rom:0xA6B3A
D_8010D68C = 0x8010D68C; // type:data rom:0xA6B3C
D_8010D68E = 0x8010D68E; // type:data rom:0xA6B3E
PopupNotBattle = 0x8010D68E; // type:data rom:0xA6B3E
D_8010D68F = 0x8010D68F; // type:data rom:0xA6B3F
D_8010D690 = 0x8010D690; // type:data rom:0xA6B40
D_8010D691 = 0x8010D691; // type:data rom:0xA6B41
D_8010D692 = 0x8010D692; // type:data rom:0xA6B42
D_8010D693 = 0x8010D693; // type:data rom:0xA6B43
D_8010D694 = 0x8010D694; // type:data rom:0xA6B44
D_8010D698 = 0x8010D698; // type:data rom:0xA6B48
D_8010D699 = 0x8010D699; // type:data rom:0xA6B49
gPopupWorker = 0x8010D694; // type:data rom:0xA6B44
PopupNotDipping = 0x8010D698; // type:data rom:0xA6B48
PopupDipMode = 0x8010D699; // type:data rom:0xA6B49
D_8010D69A = 0x8010D69A; // type:data rom:0xA6B4A
gPopupMenu = 0x8010D69C; // type:data rom:0xA6B4C
D_8010D6A0 = 0x8010D6A0; // type:data rom:0xA6B50

View File

@ -239,7 +239,7 @@ dead_func_800EB2A4 = func_800EB2A4 + 0x7BF4;
dead_partner_clear_player_tracking = partner_clear_player_tracking + 0x7E1C;
dead_hide_popup_menu = hide_popup_menu + 0x7EB0;
dead_destroy_popup_menu = destroy_popup_menu + 0x7EB0;
dead_create_popup_menu = create_popup_menu + 0x7ECC;
dead_create_standard_popup_menu = create_standard_popup_menu + 0x7ECC;
dead_gPlayerStatusPtr = gPlayerStatusPtr + 0x8160;
dead_wPartnerHudScripts = wPartnerHudScripts + 0x8160;
dead_wDisabledPartnerHudScripts = wDisabledPartnerHudScripts + 0x8160;