4#include "sprite/player.h"
6#include "sprite/npc/Goompa.h"
7#include "sprite/npc/BattleGoombario.h"
8#include "sprite/npc/BattleKooper.h"
9#include "sprite/npc/BattleBombette.h"
10#include "sprite/npc/BattleParakarry.h"
11#include "sprite/npc/BattleBow.h"
12#include "sprite/npc/BattleWatt.h"
13#include "sprite/npc/BattleSushie.h"
14#include "sprite/npc/BattleLakilester.h"
15#include "sprite/npc/Twink.h"
188 MSG_Menus_ChangeMember,
190 MSG_Menus_Strategies,
191 MSG_Menus_StarSpirits,
198 MSG_Menus_Jump_Centered,
199 MSG_Menus_Hammer_Centered,
200 MSG_Menus_Items_Centered,
201 MSG_Menus_RunAway_Centered,
202 MSG_Menus_Defense_Centered,
203 MSG_Menus_ChangeMember_Centered,
204 MSG_Menus_Abilities_Centered,
205 MSG_Menus_Strategies_Centered,
206 MSG_Menus_StarSpirits_Centered,
207 MSG_Menus_DoNothing_Centered,
208 MSG_Menus_ActLater_Centered,
209 MSG_Menus_Focus_Centered,
260 [
PARTNER_GOOMBARIO] { &
HES_Goombario, &
HES_GoombarioDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
261 [
PARTNER_KOOPER] { &
HES_Kooper, &
HES_KooperDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
262 [
PARTNER_BOMBETTE] { &
HES_Bombette, &
HES_BombetteDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
263 [
PARTNER_PARAKARRY] { &
HES_Parakarry, &
HES_ParakarryDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
264 [
PARTNER_GOOMPA] { &
HES_Partner0, &
HES_Partner0Disabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
265 [
PARTNER_WATT] { &
HES_Watt, &
HES_WattDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
266 [
PARTNER_SUSHIE] { &
HES_Sushie, &
HES_SushieDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
267 [
PARTNER_LAKILESTER] { &
HES_Lakilester, &
HES_LakilesterDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
268 [
PARTNER_BOW] { &
HES_Bow, &
HES_BowDisabled, &
HES_MoveDiamond, &
HES_MoveDiamond_disabled, &
HES_MoveBlueOrb, &
HES_MoveBlueOrbDisabled, &
HES_MoveGreenOrb, &
HES_MoveGreenOrbDisabled, &
HES_MoveRedOrb, &
HES_MoveRedOrbDisabled },
274 MSG_Menus_Focus_Centered,
280 MSG_Menus_Dash_Centered,
285 MSG_Menus_Party_Goombario,
286 MSG_Menus_Party_Kooper,
287 MSG_Menus_Party_Bombette,
288 MSG_Menus_Party_Parakarry,
289 MSG_Menus_Party_Goompa,
290 MSG_Menus_Party_Watt,
291 MSG_Menus_Party_Sushie,
292 MSG_Menus_Party_Lakilester,
294 MSG_Menus_Party_Goombaria,
295 MSG_Menus_Party_Twink,
296 MSG_Menus_Party_Peach,
807 if (theta == 56.0f && cond == TRUE) {
985 s32* moveOptionIconIDs;
986 s32* moveOptionCostUnitIconIDs;
1025 s32* moveOptionIconIDs;
1026 s32* moveOptionCostUnitIconIDs;
1399 msgID = MSG_Menus_Battle_CantSelectNow;
1402 msgID = MSG_Menus_NotEnoughFP;
1404 msgID = MSG_Menus_NotEnoughStarPower;
1472 temp_f6 = (yPos - var_t0) * 0.5;
1519 if (v0 != 0 && num <= 0) {
1571 yRenderPos = yPos + 7;
1581 yRenderPos = yPos + 7;
1659 msgID = MSG_Menus_Abilities;
1665 msgID = MSG_Menus_StarSpirits;
1706 msgID = MSG_Menus_Battle_CantSelectNow;
1708 msgID = MSG_Menus_NotEnoughFP;
1710 msgID = MSG_Menus_NotEnoughStarPower;
1976 msgID = MSG_Menus_Battle_CantSwitch2;
1979 msgID = MSG_Menus_Battle_CantRunAway;
1982 msgID = MSG_Menus_Battle_CantRunAway;
2033 temp_f6 = (yPos - var_t0) * 0.5;
2044 gDPSetScissor(
gMainGfxPos++, G_SC_NON_INTERLACE, xPos, yPos, x + 142, var_t0);
2077 temp_f6 = (yPos - var_t0) * 1.0;
2133 msgID = MSG_Menus_Battle_CantSwitch2;
2136 msgID = MSG_Menus_Battle_CantRunAway;
2139 msgID = MSG_Menus_Battle_CantRunAway;
2152 s8 debuff = player->
debuff;
2153 s32 playerCantMove = FALSE;
2156 playerCantMove = TRUE;
2159 playerCantMove = FALSE;
2162 playerCantMove = FALSE;
2165 playerCantMove = TRUE;
2168 playerCantMove = TRUE;
2171 playerCantMove = TRUE;
2174 playerCantMove = TRUE;
2177 playerCantMove = TRUE;
2180 playerCantMove = TRUE;
2183 playerCantMove = TRUE;
2186 playerCantMove = TRUE;
2188 return !playerCantMove;
2198 s32 partnerCantMove;
2204 partnerDebuff = partner->
debuff;
2205 partnerCantMove = FALSE;
2208 partnerCantMove = TRUE;
2211 partnerCantMove = FALSE;
2214 partnerCantMove = FALSE;
2217 partnerCantMove = TRUE;
2220 partnerCantMove = TRUE;
2223 partnerCantMove = TRUE;
2226 partnerCantMove = TRUE;
2229 partnerCantMove = TRUE;
2232 partnerCantMove = TRUE;
2234 return !partnerCantMove;
2244 s32 entryIdx, initialPos;
2247 s32 jumpTargetCount, hammerTargetCount, jumpChance;
2251 s32 currentSubmenu2;
2302 battleStatus->
flags1 &= ~BS_FLAGS1_PLAYER_IN_BACK;
2310 playerActor->
flags &= ~ACTOR_FLAG_USING_IDLE_ANIM;
2312 if (partnerActor != NULL) {
2346 initialPos = entryIdx;
2376 initialPos = entryIdx;
2404 initialPos = entryIdx;
2430 initialPos = entryIdx;
2448 initialPos = entryIdx;
2494 if (submenuResult == 0) {
2512 if (playerData->
invItems[i] == ITEM_NONE) {
2528 s32 cost = moveData->
costFP;
2536 if (playerData->
curFP < cost) {
2544 if (entryIdx == 1) {
2574 battleStatus->
submenuMoves[entryIdx] = MOVE_REFRESH + i;
2584 if (playerData->
starPower / SP_PER_BAR < moveData->costFP) {
2593 if (starBeamLevel == 1) {
2605 if (playerData->
starPower / SP_PER_BAR < moveData->costFP) {
2615 battleStatus->
submenuMoves[entryIdx] = MOVE_PEACH_BEAM;
2625 if (playerData->
starPower / SP_PER_BAR < moveData->costFP) {
2747 if (submenuResult == -1) {
2749 }
else if (submenuResult == 0) {
2750 }
else if (submenuResult == 255) {
2769 if (battleStatus->
curSubmenu == currentSubmenu2) {
2797 switch (currentSubmenu) {
2864 }
else if (submenuResult != 0) {
2912 if (playerData->
invItems[i] == ITEM_NONE) {
2926 popup->
enabled[entryIdx] = TRUE;
3016 if (playerData->
invItems[i] == ITEM_NONE) {
3151 if (submenuResult == -1) {
3153 }
else if (submenuResult == 0) {
3154 }
else if (submenuResult == 255) {
3215 if (playerData->
invItems[i] == ITEM_NONE) {
3230 popup->
enabled[entryIdx] = TRUE;
3235 popup->
enabled[entryIdx] = FALSE;
3239 if (entryIdx == 0) {
3314 jumpTargetCount = 0;
3322 hammerTargetCount = 0;
3325 if (jumpTargetCount <= 0 && hammerTargetCount <= 0) {
3331 if (jumpTargetCount <= 0) {
3334 if (hammerTargetCount <= 0) {
3363 D_802AD6C0[entryIdx] = MSG_Menus_Action_ChangePartner;
3377 D_802AD6C0[entryIdx] = MSG_Menus_Action_DoNothing;
3385 D_802AD6C0[entryIdx] = MSG_Menus_Action_RunAway;
3404 if (submenuResult == -1) {
3406 }
else if (submenuResult == 0) {
3407 }
else if (submenuResult == 255) {
3710 partnerActor->
flags &= ~ACTOR_FLAG_USING_IDLE_ANIM;
3735 initialPos = entryIdx;
3755 initialPos = entryIdx;
3772 initialPos = entryIdx;
3814 }
else if (entryIdx != 0) {
3852 if (entryIdx != 0) {
3944 if (entryIdx == -1) {
3946 }
else if (entryIdx != 0) {
3947 if (entryIdx == 255) {
3955 battleStatus->
unk_4B = entryIdx - 1;
4003 if (playerData->
invItems[i] == ITEM_NONE) {
4012 popupMenu->
ptrIcon[popupIndex] = hudScript[0];
4014 popupMenu->
enabled[popupIndex] = TRUE;
4086 popupMenu->
userIndex[popupIndex] = partnerId;
4087 popupMenu->
enabled[popupIndex] = 1;
4092 popupMenu->
enabled[popupIndex] = 0;
4200 if (entryIdx != 0) {
4201 if (entryIdx == 255) {
4258 D_802AD6C0[popupIndex] = MSG_Menus_Action_ChangePartner;
4272 D_802AD6C0[popupIndex] = MSG_Menus_Action_DoNothing;
4286 if (entryIdx == 0) {
4287 }
else if (entryIdx == 255) {
4363 popupMenu->
userIndex[popupIndex] = partnerId;
4364 popupMenu->
enabled[popupIndex] = 1;
4369 popupMenu->
enabled[popupIndex] = 0;
4574 player->
flags &= ~ACTOR_FLAG_USING_IDLE_ANIM;
4576 if (partner != NULL) {
4618 if (selectedOption != 0) {
4634 battleStatus->
moveArgument = STAR_POWER_INDEX(MOVE_PEACH_FOCUS);
4708 shouldSkipTurn = FALSE;
4710 shouldSkipTurn = TRUE;
4713 shouldSkipTurn = TRUE;
4716 shouldSkipTurn = TRUE;
4719 shouldSkipTurn = TRUE;
4722 shouldSkipTurn = TRUE;
4725 shouldSkipTurn = TRUE;
4728 shouldSkipTurn = TRUE;
4731 shouldSkipTurn = TRUE;
4734 if (shouldSkipTurn) {
4780 player->
flags &= ~ACTOR_FLAG_USING_IDLE_ANIM;
4782 if (partner != NULL) {
4824 if (selection != 0) {
4897 s32 targetListLength;
4898 s32 selectedTargetIndex;
4900 s8* targetIndexList;
4912 actor->
flags &= ~ACTOR_FLAG_SHOW_STATUS_ICONS;
4925 if (actionTip >= 0) {
4936 for (i = 0; i < targetListLength; i++) {
4937 target = &actor->
targetData[targetIndexList[i]];
4968 if (targetListLength == 0) {
4990 for (i = 0; i < targetListLength; i++) {
5028 s32 oldSelectedTargetIndex = selectedTargetIndex;
5031 selectedTargetIndex--;
5034 selectedTargetIndex++;
5036 if (selectedTargetIndex < 0) {
5037 selectedTargetIndex = targetListLength - 1;
5039 if (selectedTargetIndex >= targetListLength) {
5040 selectedTargetIndex = 0;
5042 if (selectedTargetIndex != oldSelectedTargetIndex) {
5045 target = &actor->
targetData[targetIndexList[selectedTargetIndex]];
5066 for (i = 0; i < targetListLength; i++) {
5091 for (i = 0; i < targetListLength; i++) {
5133 s32 targetListLength;
5137 Actor* choosingActor;
5142 s32 xOffset, yOffset;
5143 f32 targetX, targetY, targetZ;
5144 s32 screenX, screenY, screenZ;
5145 s32 selectedTargetIndex;
5146 s8* targetIndexList;
5162 if (targetListLength == 0) {
5168 target = &choosingActor->
targetData[targetIndexList[selectedTargetIndex]];
5194 for (i = 0; i < targetListLength; i++) {
5195 target = &choosingActor->
targetData[targetIndexList[i]];
5234 nameWidth =
get_msg_width(MSG_Menus_Battle_TargetMario, 0) + 10;
5238 target = &choosingActor->
targetData[targetIndexList[selectedTargetIndex]];
5241 if (msgID == MSG_NONE) {
5247 target = &choosingActor->
targetData[targetIndexList[selectedTargetIndex]];
5250 nameWidth =
get_msg_width(MSG_Menus_Battle_TargetMario, 0) + 10;
5254 nameWidth =
get_msg_width(MSG_Menus_Battle_TargetAllEnemies, 0) + 10;
5260 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL,
SCREEN_WIDTH,
SCREEN_HEIGHT, NULL);
5272 target = &choosingActor->
targetData[targetIndexList[selectedTargetIndex]];
5275 if (msgID == MSG_NONE) {
5281 target = &choosingActor->
targetData[targetIndexList[selectedTargetIndex]];
PartnerPopupProperties gPartnerPopupProperties[]
ActorPartBlueprint * staticData
struct SelectableTarget targetData[24]
@ DRAW_NUMBER_STYLE_ALIGN_RIGHT
drawn to the left of posX
@ DRAW_NUMBER_STYLE_MONOSPACE
@ BTL_MENU_STATE_SHOW_DISABLED_POPUP
@ BTL_MENU_STATE_ACCEPT_INPUT
@ BTL_MENU_STATE_OPENED_SUBMENU
@ BTL_MENU_STATE_AWAIT_DISABLED_POPUP
@ BS_FLAGS1_TUTORIAL_BATTLE
@ BS_FLAGS1_PLAYER_IN_BACK
@ BS_FLAGS1_PARTNER_ACTING
@ BTL_MSG_CANT_SELECT_NOW
@ BTL_MSG_CANT_SELECT_NOW_ALT
@ BTL_MSG_NO_HAMMER_TARGET
@ BTL_MSG_ACTION_TIP_PRESS_BEFORE_LANDING
@ POPUP_MENU_SWITCH_PARTNER
@ WINDOW_UPDATE_TRANSPARENT
@ BTL_SUBMENU_STRATS_STATE_ERROR_INIT
@ BTL_SUBMENU_STRATS_STATE_CANCEL
@ BTL_SUBMENU_STRATS_STATE_UNK_20
@ BTL_SUBMENU_STRATS_STATE_SELECT
@ BTL_SUBMENU_STRATS_STATE_UNK_30
@ BTL_SUBMENU_STRATS_STATE_INIT
@ BTL_SUBMENU_STRATS_STATE_ERROR_SHOW
@ BTL_SUBMENU_STRATS_STATE_UNK_10
@ BTL_SUBMENU_STRATS_STATE_ERROR_DONE
@ BTL_SUBMENU_STRATS_STATE_CHOOSE
@ BTL_SUBMENU_STRATS_STATE_UNK_11
@ BTL_MENU_TYPE_CHANGE_PARTNER
@ BTL_MENU_TYPE_STAR_POWERS
@ BTL_MENU_TYPE_ACT_LATER
@ BTL_MENU_TYPE_PARTNER_FOCUS
@ BTL_MENU_TYPE_STRATEGIES
@ BTL_MENU_TYPE_DO_NOTHING
@ BS_FLAGS2_PLAYER_TURN_USED
@ BS_FLAGS2_NO_TARGET_AVAILABLE
@ BS_FLAGS2_PARTNER_TURN_USED
@ DRAW_NUMBER_CHARSET_THIN
@ BTL_SUBMENU_MOVES_STATE_UNK_2A
@ BTL_SUBMENU_MOVES_STATE_UNK_NEGATIVE_ONE
@ BTL_SUBMENU_MOVES_STATE_UNK_14
@ BTL_SUBMENU_MOVES_STATE_UNK_1
@ BTL_SUBMENU_MOVES_STATE_UNK_0
@ BTL_SUBMENU_MOVES_STATE_UNK_B
@ BTL_SUBMENU_MOVES_STATE_UNK_1E
@ BTL_SUBMENU_MOVES_STATE_UNK_28
@ BTL_SUBMENU_MOVES_STATE_UNK_A
@ BTL_SUBMENU_MOVES_STATE_UNK_29
@ BTL_SUBMENU_MOVES_STATE_UNK_NEGATIVE_TWO
@ ITEM_TYPE_FLAG_BATTLE_USABLE
@ TARGET_FLAG_PRIMARY_ONLY
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_5
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_1
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_2
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_SHOW_CANT_SWAP
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_2
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_6
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_3
@ BTL_SUBSTATE_PARTNER_MENU_NONE
@ BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_5
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_2
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_3
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_3
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_AWAIT_CANT_SWAP
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_1
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_4
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_5
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_3
@ BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_1
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_3
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_7
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_2
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_1
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_4
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_5
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_4
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_2
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_2
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_1
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_6
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_4
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_7
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_6
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_3
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_4
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_4
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_6
@ BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_4
@ BTL_SUBSTATE_PARTNER_MENU_CHANGE_PARTNER_6
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_2
@ BTL_SUBSTATE_PARTNER_MENU_12D
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_6
@ BTL_SUBSTATE_PARTNER_MENU_FOCUS_1
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_3
@ BTL_SUBSTATE_PARTNER_MENU_INIT_MENU
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_5
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_5
@ BTL_SUBSTATE_PARTNER_MENU_STRATEGIES_4
@ BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_3
@ BTL_SUBSTATE_PARTNER_MENU_MAIN_MENU_5
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_6
@ BTL_SUBSTATE_PARTNER_MENU_UNKNOWN_2
@ BTL_SUBSTATE_PARTNER_MENU_ABILITIES_7
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_1
@ BTL_SUBSTATE_PARTNER_MENU_UNUSED_CHANGE_PARTNER_1
@ BTL_SUBSTATE_PARTNER_MENU_ITEMS_5
@ BTL_SUBSTATE_TWINK_MENU_CREATE_MAIN_MENU
@ BTL_SUBSTATE_PEACH_MENU_TARGET_CHOSEN
@ BTL_SUBSTATE_PEACH_MENU_TARGET_CANCEL
@ BTL_SUBSTATE_PEACH_MENU_UNUSED_6
@ BTL_SUBSTATE_SELECT_TARGET_INIT
@ BTL_SUBSTATE_TWINK_MENU_AWAIT_CANT_SWITCH_POPUP
@ BTL_SUBSTATE_PEACH_MENU_UNUSED_7
@ BTL_SUBSTATE_TWINK_MENU_TARGET_CANCEL
@ BTL_SUBSTATE_PEACH_MENU_CHOOSE_CATEGORY
@ BTL_SUBSTATE_SELECT_TARGET_CHOOSE
@ BTL_SUBSTATE_PEACH_CREATE_MAIN_MENU
@ BTL_SUBSTATE_PEACH_MENU_UNUSED_3
@ BTL_SUBSTATE_TWINK_MENU_UNUSED_3
@ BTL_SUBSTATE_TWINK_MENU_INIT
@ BTL_SUBSTATE_PEACH_MENU_SHOW_CANT_SWITCH
@ BTL_SUBSTATE_PEACH_MENU_PERFORM_SWAP
@ BTL_SUBSTATE_SELECT_TARGET_DONE
@ BTL_SUBSTATE_TWINK_MENU_PERFORM_SWAP
@ BTL_SUBSTATE_SELECT_TARGET_CANCEL
@ BTL_SUBSTATE_TWINK_MENU_CHOOSE_TARGET
@ BTL_SUBSTATE_TWINK_MENU_UNUSED_6
@ BTL_SUBSTATE_PEACH_MENU_AWAIT_CANT_SWITCH_POPUP
@ BTL_SUBSTATE_PEACH_MENU_CHOOSE_TARGET
@ BTL_SUBSTATE_TWINK_MENU_UNUSED_7
@ BTL_SUBSTATE_TWINK_MENU_TARGET_CHOSEN
@ BTL_SUBSTATE_TWINK_MENU_CHOOSE_CATEGORY
@ BTL_SUBSTATE_PEACH_MENU_INIT
@ BTL_SUBSTATE_TWINK_MENU_SHOW_CANT_SWITCH
@ BATTLE_STATE_SWITCH_TO_PARTNER
@ BATTLE_STATE_PLAYER_MENU
@ BATTLE_STATE_PLAYER_MOVE
@ BATTLE_STATE_SWITCH_TO_PLAYER
@ BATTLE_STATE_END_PARTNER_TURN
@ BATTLE_STATE_END_PLAYER_TURN
@ BATTLE_STATE_PARTNER_MOVE
@ BATTLE_STATE_PARTNER_MENU
@ BATTLE_STATE_SELECT_TARGET
@ BATTLE_STATE_CHANGE_PARTNER
@ SOUND_PARTNER_SWAP_BATTLE_POS
@ SOUND_MENU_CHANGE_SELECTION
@ BTL_MENU_ENABLED_PARTNER_FOCUS
@ BTL_MENU_ENABLED_STAR_POWERS
@ BTL_MENU_ENABLED_ABILITIES
@ BTL_MENU_ENABLED_STRATEGIES
@ ACTOR_FLAG_SHOW_STATUS_ICONS
@ ACTOR_FLAG_UPSIDE_DOWN
HP bar offset below actor (e.g. Swooper when upside-down).
@ ACTOR_FLAG_NO_ATTACK
Skip attack turn.
@ ACTOR_FLAG_USING_IDLE_ANIM
@ BTL_MENU_IDX_PARTNER_ITEM
@ BTL_MENU_IDX_STAR_POWER
@ ACTOR_PART_FLAG_DEFAULT_TARGET
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_4
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_3
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_5
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_SHOW_CANT_SWAP
@ BTL_SUBSTATE_PLAYER_MENU_BERSERKER_CHOOSE
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_2
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_5
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_AWAIT_CANT_SWAP
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_7
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CANCEL
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_1
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_4
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_2
@ BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_3
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_4
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_4
@ BTL_SUBSTATE_PLAYER_MENU_CHOOSE_CATEGORY
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_4
@ BTL_SUBSTATE_PLAYER_MENU_CREATE_MAIN_MENU
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_10
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_TARGET_CHOSEN
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_1
@ BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CHOSEN
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_13
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_3
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_6
@ BTL_SUBSTATE_PLAYER_MENU_MOVE_CHOOSE_TARGET
@ BTL_SUBSTATE_PLAYER_MENU_PERFORM_SWAP
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_2
@ BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_4
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_7
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_2
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_CHOOSE_TARGET
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_2
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_6
@ BTL_SUBSTATE_PLAYER_MENU_UNKNOWN_1
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_3
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_7
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_5
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_6
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_4
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_8
@ BTL_SUBSTATE_PLAYER_MENU_MOVE_TARGET_CANCEL
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_6
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_12
@ BTL_SUBSTATE_PLAYER_MENU_BUILD_STRATEGIES
@ BTL_SUBSTATE_PLAYER_MENU_INIT
@ BTL_SUBSTATE_PLAYER_MENU_CHANGE_MEMBER_5
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_1
@ BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_5
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_14
@ BTL_SUBSTATE_PLAYER_MENU_MAIN_MENU_11
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_3
@ BTL_SUBSTATE_PLAYER_MENU_DIPPING_6
@ BTL_SUBSTATE_PLAYER_MENU_ITEMS_2
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_1
@ BTL_SUBSTATE_PLAYER_MENU_STAR_SPIRITS_3
void btl_show_variable_battle_message(s32, s32, s32)
s32 is_ability_active(s32 arg0)
s32 player_team_is_ability_active(Actor *actor, s32 ability)
void get_screen_coords(s32 camID, f32 x, f32 y, f32 z, s32 *screenX, s32 *screenY, s32 *screenZ)
void hide_popup_menu(void)
void set_window_update(s32 panelID, s32)
void status_bar_start_blinking_fp(void)
void status_bar_stop_blinking_sp(void)
void destroy_popup_menu(void)
void btl_cam_use_preset(s32)
ActorPart * get_actor_part(Actor *actor, s32 partID)
void set_actor_anim(s32 actorID, s32 partID, AnimID animID)
Actor * get_actor(s32 actorID)
void status_bar_stop_blinking_fp(void)
void btl_show_battle_message(s32 messageIndex, s32 duration)
void btl_draw_prim_quad(u8 r, u8 g, u8 b, u8 a, u16 left, u16 top, u16 arg6, u16 arg7)
void set_window_properties(s32 panelID, s32 posX, s32 posY, s32 width, s32 height, u8, void *drawContents, void *drawContentsArg, s8 parent)
void btl_set_state(s32 battleState)
s32 btl_is_popup_displayed(void)
void create_current_pos_target_list(Actor *actor)
void add_vec2D_polar(f32 *x, f32 *y, f32 r, f32 theta)
void draw_number(s32 value, s32 x, s32 y, s32 variableWidthChars, s32 palette, s32 opacity, u16 style)
s32 get_msg_lines(s32 messageID)
void status_bar_start_blinking_sp_bars(s32 numBarsToBlink)
HudScript HES_AnimatedHandPointer
void func_80144238(s32 id)
void hud_element_set_scale(s32 index, f32 scale)
void hud_element_set_alpha(s32 id, s32 opacity)
void hud_element_draw_without_clipping(s32 id)
void hud_element_set_script(s32 id, HudScript *anim)
void hud_element_set_render_depth(s32 id, s32 z)
void hud_element_create_transform_B(s32 id)
HudScript * hud_element_get_script(s32 id)
void hud_element_set_transform_pos(s32 id, f32 x, f32 y, f32 z)
void hud_element_set_tint(s32 id, s32 r, s32 g, s32 b)
void hud_element_set_transform_rotation(s32 id, f32 x, f32 y, f32 z)
void hud_element_set_render_pos(s32 id, s32 x, s32 y)
void hud_element_set_transform_rotation_pivot(s32 id, s32 dx, s32 dy)
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_draw_clipped(s32 id)
void hud_element_set_transform_scale(s32 id, f32 x, f32 y, f32 z)
void hud_element_free(s32 id)
void func_80144218(s32 id)
@ HUD_ELEMENT_FLAG_DISABLED
@ HUD_ELEMENT_FLAG_DROP_SHADOW
@ HUD_ELEMENT_FLAG_FILTER_TEX
void sfx_play_sound(s32 soundID)
s8 moveCategory
0 = jump, 1 = hammer, 5 = partner, ...
s8 lastPlayerMenuSelection[16]
struct Actor * partnerActor
s16 cancelTargetMenuSubstate
struct Actor * playerActor
s8 lastPartnerMenuSelection[16]
s8 menuStatus[4]
-1 = automatically pick the first move, 0 = disabled, 1 = enabled
s32 enabledStarPowersFlags
s16 acceptTargetMenuSubstate
s32 PartnerIDFromMenuIndex[12]
GameStatus * gGameStatusPtr
BattleStatus gBattleStatus