more boss actors (#1117)

* common actors

* tubba and huff

* chapter 2

* fix ruff / tuff puff names

* bloopers

* slight

* everything except omo2

* format py

* fix pal

---------

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2023-09-23 01:57:29 -04:00 committed by GitHub
parent bde8f70e3f
commit 46b2f11a59
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
222 changed files with 44347 additions and 44282 deletions

View File

@ -864,7 +864,7 @@ typedef struct BattleStatus {
/* */ };
/* 0x048 */ s8 curSubmenu;
/* 0x049 */ s8 unk_49;
/* 0x04A */ s8 unk_4A;
/* 0x04A */ s8 curPartnerSubmenu;
/* 0x04B */ s8 unk_4B;
/* 0x04C */ s8 lastPlayerMenuSelection[16];
/* 0x05C */ s8 lastPartnerMenuSelection[16];

View File

@ -486,18 +486,25 @@ typedef struct PurpleRingFXData {
/* 0x7A */ char unk_7A[2];
} PurpleRingFXData; // size = 0x7C
enum FlameFXTypes {
FX_FLAME_BLUE = 0,
FX_FLAME_RED = 1,
FX_FLAME_SMALL_BLUE = 2,
FX_FLAME_PINK = 3,
};
typedef struct FlameFXData {
/* 0x00 */ s32 unk_00;
/* 0x00 */ s32 type;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x10 */ f32 baseScale;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x2C */ f32 scaleH;
/* 0x30 */ f32 scaleW;
} FlameFXData; // size = 0x34
typedef struct StarsBurstFXData {
@ -881,17 +888,17 @@ typedef struct FireBreathFXData {
/* 0x0C */ Vec3f pos;
/* 0x18 */ Vec3f initPos;
/* 0x24 */ Vec3f endPos;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x30 */ f32 initialScale;
/* 0x34 */ f32 targetScale;
/* 0x38 */ f32 scale;
/* 0x3C */ f32 scaleChangeFactor;
/* 0x3C */ f32 scaleChangeRate;
/* 0x40 */ s32 alpha;
/* 0x44 */ s32 lifeTime;
/* 0x44 */ s32 duration;
/* 0x48 */ s32 timeLeft;
/* 0x4C */ s32 spawnTimer;
/* 0x50 */ Vec3f unk_50;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ f32 unk_60;
/* 0x4C */ s32 lifetime;
/* 0x50 */ Vec3f offsetPos;
/* 0x5C */ f32 animTime; // each integer value corresponds to a new frame
/* 0x60 */ f32 velY;
/* 0x64 */ s32 primR;
/* 0x68 */ s32 primG;
/* 0x6C */ s32 primB;

View File

@ -4,7 +4,7 @@
#include "effects.h"
s32 effect_rand_int(s32);
s32 func_E0200044(s32, s32);
s32 effect_simple_rand(s32, s32);
#include "effect_shims.h"

View File

@ -3547,7 +3547,7 @@ enum BattleStatusFlags1 {
BS_FLAGS1_SP_EVT_ACTIVE = 0x00000020, // enable special events (other than hit/death/immune?)
BS_FLAGS1_40 = 0x00000040,
BS_FLAGS1_80 = 0x00000080,
BS_FLAGS1_100 = 0x00000100,
BS_FLAGS1_EXECUTING_MOVE = 0x00000100,
BS_FLAGS1_200 = 0x00000200,
BS_FLAGS1_400 = 0x00000400, // UNUSED
BS_FLAGS1_FORCE_HIT_IMMUNE = 0x00000800,
@ -3948,7 +3948,7 @@ enum BattlePlayerMenuSubstates {
BTL_SUBSTATE_PLAYER_MENU_DIPPING_5 = 74,
BTL_SUBSTATE_PLAYER_MENU_DIPPING_6 = 75,
// Berserker
BTL_SUBSTATE_PLAYER_MENU_BERSERKER_1 = 100,
BTL_SUBSTATE_PLAYER_MENU_BERSERKER_CHOOSE = 100,
// Strategies
BTL_SUBSTATE_PLAYER_MENU_BUILD_STRATEGIES = 200,
BTL_SUBSTATE_PLAYER_MENU_STRATEGIES_2 = 201,
@ -4145,6 +4145,21 @@ enum BattleMoveSubmenuStates {
BTL_SUBMENU_MOVES_STATE_UNK_2A = 42,
};
enum BattleStratsSubmenuStates {
BTL_SUBMENU_STRATS_STATE_CANCEL = -2, // go back
BTL_SUBMENU_STRATS_STATE_SELECT = -1, // approve choice
BTL_SUBMENU_STRATS_STATE_INIT = 0,
BTL_SUBMENU_STRATS_STATE_CHOOSE = 1,
BTL_SUBMENU_STRATS_STATE_UNK_10 = 10,
BTL_SUBMENU_STRATS_STATE_UNK_11 = 11,
BTL_SUBMENU_STRATS_STATE_UNK_20 = 20,
BTL_SUBMENU_STRATS_STATE_UNK_30 = 30,
BTL_SUBMENU_STRATS_STATE_ERROR_INIT = 40,
BTL_SUBMENU_STRATS_STATE_ERROR_SHOW = 41,
BTL_SUBMENU_STRATS_STATE_ERROR_DONE = 42,
};
enum BattleMenuIndex {
BTL_MENU_IDX_MAIN = 0,
BTL_MENU_IDX_JUMP = 1,

View File

@ -375,7 +375,7 @@ extern EvtScript EVS_Enemy_DeathWithoutRemove;
extern EvtScript EVS_Enemy_ScareAway;
extern EvtScript EVS_Enemy_SpinSmashHit;
extern EvtScript EVS_Enemy_FlipBackUp;
extern EvtScript EVS_Enemy_JumpBack;
extern EvtScript EVS_Enemy_Knockback;
extern EvtScript EVS_Enemy_ReturnHome;
extern EvtScript EVS_Enemy_Recover;
extern EvtScript EVS_Enemy_HopHome;

View File

@ -124,6 +124,7 @@ ApiStatus AdjustCam(Evt* script, s32 isInitialCall);
ApiStatus ResetCam(Evt* script, s32 isInitialCall);
ApiStatus LoadAnimatedModel(Evt* script, s32 isInitialCall);
ApiStatus PlayModelAnimation(Evt* script, s32 isInitialCall);
ApiStatus SetAnimatorFlags(Evt* script, s32 isInitialCall);
ApiStatus SetAnimatedModelRootPosition(Evt* script, s32 isInitialCall);
ApiStatus ChangeModelAnimation(Evt* script, s32 isInitialCall);
ApiStatus DeleteNpc(Evt* script, s32 isInitialCall);

View File

@ -250,7 +250,7 @@ void btl_state_update_normal_start(void) {
battleStatus->initBattleCallback = NULL;
battleStatus->curSubmenu = 0;
battleStatus->unk_49 = 0;
battleStatus->unk_4A = 0;
battleStatus->curPartnerSubmenu = 0;
battleStatus->unk_4B = 0;
battleStatus->totalStarPoints = 0;
battleStatus->pendingStarPoints = 0;
@ -2683,7 +2683,7 @@ void btl_state_update_player_move(void) {
gBattleStatus.flags1 &= ~BS_FLAGS1_4000;
gBattleStatus.flags1 &= ~BS_FLAGS1_10000;
increment_status_bar_disabled();
gBattleStatus.flags1 |= BS_FLAGS1_100;
gBattleStatus.flags1 |= BS_FLAGS1_EXECUTING_MOVE;
reset_all_actor_sounds(player);
battleStatus->battlePhase = PHASE_EXECUTE_ACTION;
if (gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) {
@ -2705,7 +2705,7 @@ void btl_state_update_player_move(void) {
player->takeTurnScript = NULL;
}
gBattleStatus.flags1 &= ~BS_FLAGS1_100;
gBattleStatus.flags1 &= ~BS_FLAGS1_EXECUTING_MOVE;
// wait for player battle event script to finish
if (player->handleEventScript != NULL && does_script_exist(player->handleEventScriptID)) {
@ -3189,7 +3189,7 @@ void btl_state_update_partner_move(void) {
}
increment_status_bar_disabled();
gBattleStatus.flags1 |= BS_FLAGS1_100;
gBattleStatus.flags1 |= BS_FLAGS1_EXECUTING_MOVE;
reset_actor_turn_info();
reset_all_actor_sounds(partner);
battleStatus->battlePhase = PHASE_EXECUTE_ACTION;
@ -3206,7 +3206,7 @@ void btl_state_update_partner_move(void) {
}
partner->takeTurnScript = NULL;
}
gBattleStatus.flags1 &= ~BS_FLAGS1_100;
gBattleStatus.flags1 &= ~BS_FLAGS1_EXECUTING_MOVE;
if (partner->handleEventScript != NULL && does_script_exist(partner->handleEventScriptID)) {
break;
@ -3587,7 +3587,7 @@ void btl_state_update_enemy_move(void) {
battleStatus->blockResult = BLOCK_RESULT_NONE;
battleStatus->curDamageSource = DMG_SRC_DEFAULT;
reset_actor_turn_info();
gBattleStatus.flags1 |= BS_FLAGS1_100;
gBattleStatus.flags1 |= BS_FLAGS1_EXECUTING_MOVE;
player->statusAfflicted = 0;
if (partner != NULL) {
partner->statusAfflicted = 0;
@ -3670,58 +3670,62 @@ void btl_state_update_enemy_move(void) {
}
}
if (!waitingForEnemyScript || (gBattleStatus.flags1 & BS_FLAGS1_YIELD_TURN)) {
gBattleStatus.flags1 &= ~BS_FLAGS1_100;
gBattleStatus.flags2 &= ~BS_FLAGS2_4000;
if (btl_check_enemies_defeated()) {
return;
}
if (waitingForEnemyScript && !(gBattleStatus.flags1 & BS_FLAGS1_YIELD_TURN)) {
break;
}
if (battleStatus->stateFreezeCount == 0) {
if (gGameStatusPtr->demoBattleFlags & DEMO_BTL_FLAG_ENABLED) {
btl_set_state(BATTLE_STATE_END_DEMO_BATTLE);
} else {
btl_update_ko_status();
if (player->statusAfflicted != 0) {
player->flags |= ACTOR_FLAG_8000000 | ACTOR_FLAG_4000000;
if (partner != NULL) {
partner->flags |= ACTOR_FLAG_8000000 | ACTOR_FLAG_4000000;
}
btl_cam_use_preset(BTL_CAM_PLAYER_STATUS_AFFLICTED);
gBattleStatus.flags1 &= ~BS_FLAGS1_EXECUTING_MOVE;
gBattleStatus.flags2 &= ~BS_FLAGS2_4000;
if (btl_check_enemies_defeated()) {
return;
}
switch (player->statusAfflicted) {
case STATUS_KEY_DIZZY:
messageIndex = BTL_MSG_PLAYER_DAZED;
break;
case STATUS_KEY_SLEEP:
messageIndex = BTL_MSG_PLAYER_ASLEEP;
break;
case STATUS_KEY_FROZEN:
messageIndex = BTL_MSG_PLAYER_FROZEN;
break;
case STATUS_KEY_POISON:
messageIndex = BTL_MSG_PLAYER_POISONED;
break;
case STATUS_KEY_SHRINK:
messageIndex = BTL_MSG_PLAYER_SHRUNK;
break;
case STATUS_KEY_PARALYZE:
messageIndex = BTL_MSG_PLAYER_PARALYZED;
break;
default:
messageIndex = 0;
gBattleSubState = BTL_SUBSTATE_ENEMY_MOVE_CHECK_PARTNER;
break;
}
btl_show_battle_message(messageIndex, 60);
player->statusAfflicted = 0;
gBattleSubState = BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PLAYER_POPUP_DONE;
if (battleStatus->stateFreezeCount != 0) {
break;
}
if (gGameStatusPtr->demoBattleFlags & DEMO_BTL_FLAG_ENABLED) {
btl_set_state(BATTLE_STATE_END_DEMO_BATTLE);
} else {
btl_update_ko_status();
if (player->statusAfflicted != 0) {
player->flags |= ACTOR_FLAG_8000000 | ACTOR_FLAG_4000000;
if (partner != NULL) {
partner->flags |= ACTOR_FLAG_8000000 | ACTOR_FLAG_4000000;
}
btl_cam_use_preset(BTL_CAM_PLAYER_STATUS_AFFLICTED);
switch (player->statusAfflicted) {
case STATUS_KEY_DIZZY:
messageIndex = BTL_MSG_PLAYER_DAZED;
break;
} else {
case STATUS_KEY_SLEEP:
messageIndex = BTL_MSG_PLAYER_ASLEEP;
break;
case STATUS_KEY_FROZEN:
messageIndex = BTL_MSG_PLAYER_FROZEN;
break;
case STATUS_KEY_POISON:
messageIndex = BTL_MSG_PLAYER_POISONED;
break;
case STATUS_KEY_SHRINK:
messageIndex = BTL_MSG_PLAYER_SHRUNK;
break;
case STATUS_KEY_PARALYZE:
messageIndex = BTL_MSG_PLAYER_PARALYZED;
break;
default:
messageIndex = 0;
gBattleSubState = BTL_SUBSTATE_ENEMY_MOVE_CHECK_PARTNER;
break;
}
}
btl_show_battle_message(messageIndex, 60);
player->statusAfflicted = 0;
gBattleSubState = BTL_SUBSTATE_ENEMY_MOVE_AWAIT_PLAYER_POPUP_DONE;
break;
} else {
gBattleSubState = BTL_SUBSTATE_ENEMY_MOVE_CHECK_PARTNER;
break;
}
}
break;
@ -3896,7 +3900,7 @@ void btl_state_update_first_strike(void) {
player->takeTurnScript = NULL;
}
gBattleStatus.flags1 &= ~BS_FLAGS1_100;
gBattleStatus.flags1 &= ~BS_FLAGS1_EXECUTING_MOVE;
// wait for player handle event script
if (player->handleEventScript != NULL && does_script_exist(player->handleEventScriptID)) {

View File

@ -481,7 +481,7 @@ void btl_draw_ui(void) {
s32 changed = FALSE;
s32 state;
do { } while (0); // TODO required to match (probably can be removed with some sort of control flow inversion)
do {} while (0); // TODO required to match (probably can be removed with some sort of control flow inversion)
// do not draw UI during the frame of a state change
state = gBattleState;

View File

@ -207,12 +207,12 @@ s32 bActorNames[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_LEE_SUSHIE] MSG_Menus_Party_Sushie,
[ACTOR_TYPE_LEE_LAKILESTER] MSG_Menus_Party_Lakilester,
[ACTOR_TYPE_KAMMY_KOOPA] MSG_EnemyName_KammyKoopa,
[ACTOR_TYPE_JR_TROOPA_1] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_2] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_3] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_4] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_5] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_6] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_1] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_2] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_3] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_4] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_5] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_6] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_DUP1] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_JR_TROOPA_DUP2] MSG_EnemyName_JrTroopa,
[ACTOR_TYPE_BLUE_GOOMBA_BOSS] MSG_EnemyName_BlueGoombaBoss,
@ -228,7 +228,7 @@ s32 bActorNames[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_KOOPA_BROS] MSG_EnemyName_KoopaBros,
[ACTOR_TYPE_GREEN_NINJAKOOPA] MSG_EnemyName_GreenNinjakoopa,
[ACTOR_TYPE_RED_NINJAKOOPA] MSG_EnemyName_RedNinjakoopa,
[ACTOR_TYPE_BLACK_NINJAKOOPA] MSG_EnemyName_BlueNinjakoopa,
[ACTOR_TYPE_BLACK_NINJAKOOPA] MSG_EnemyName_BlueNinjakoopa,
[ACTOR_TYPE_YELLOW_NINJAKOOPA] MSG_EnemyName_YellowNinjakoopa,
[ACTOR_TYPE_ELDSTAR] MSG_Menus_Party_Goombario,
[ACTOR_TYPE_BUZZAR] MSG_EnemyName_Buzzar,
@ -246,7 +246,7 @@ s32 bActorNames[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_SIGNAL_GUY] MSG_EnemyName_ShyGuy,
[ACTOR_TYPE_SHY_SQUAD_DUP] MSG_EnemyName_ShySquadDup,
[ACTOR_TYPE_SHY_GUY_DUP] MSG_EnemyName_ShyGuy,
[ACTOR_TYPE_ANTI_GUY_OMO] MSG_EnemyName_AntiGuy,
[ACTOR_TYPE_ANTI_GUY_OMO] MSG_EnemyName_AntiGuy,
[ACTOR_TYPE_ANTI_GUY_KPA] MSG_EnemyName_AntiGuy,
[ACTOR_TYPE_BIG_LANTERN_GHOST] MSG_EnemyName_BigLanternGhost,
[ACTOR_TYPE_GOOMBA_KING_DUP] MSG_EnemyName_GoombaKing,
@ -264,12 +264,12 @@ s32 bActorNames[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_CRYSTAL_CLONE] MSG_EnemyName_CrystalKing,
[ACTOR_TYPE_CRYSTAL_BIT] MSG_EnemyName_CrystalBit,
[ACTOR_TYPE_INTRO_BOWSER] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_PHASE_1] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_DUP1] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_PHASE_2] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_DUP2] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_PHASE_3] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BOWSER_DUP3] MSG_EnemyName_Bowser,
[ACTOR_TYPE_HALLWAY_BOWSER] MSG_EnemyName_Bowser,
[ACTOR_TYPE_HALLWAY_BOWSER_DUP] MSG_EnemyName_Bowser,
[ACTOR_TYPE_FINAL_BOWSER_1] MSG_EnemyName_Bowser,
[ACTOR_TYPE_FINAL_BOWSER_1_DUP] MSG_EnemyName_Bowser,
[ACTOR_TYPE_FINAL_BOWSER_2] MSG_EnemyName_Bowser,
[ACTOR_TYPE_FINAL_BOWSER_2_DUP] MSG_EnemyName_Bowser,
[ACTOR_TYPE_BLOOPER] MSG_EnemyName_Blooper,
[ACTOR_TYPE_ELECTRO_BLOOPER1] MSG_EnemyName_ElectroBlooper,
[ACTOR_TYPE_ELECTRO_BLOOPER2] MSG_EnemyName_ElectroBlooper,
@ -1646,42 +1646,42 @@ ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT] = {
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_PHASE_1] = {
[ACTOR_TYPE_HALLWAY_BOWSER] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_LARGE_ACTOR_JUMP,
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_DUP1] = {
[ACTOR_TYPE_HALLWAY_BOWSER_DUP] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_NONE,
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_PHASE_2] = {
[ACTOR_TYPE_FINAL_BOWSER_1] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_LARGE_ACTOR_JUMP,
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_DUP2] = {
[ACTOR_TYPE_FINAL_BOWSER_1_DUP] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_NONE,
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_PHASE_3] = {
[ACTOR_TYPE_FINAL_BOWSER_2] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_LARGE_ACTOR_JUMP,
.hurt = SOUND_NONE,
.delay = { 30, 30 }
},
[ACTOR_TYPE_BOWSER_DUP3] = {
[ACTOR_TYPE_FINAL_BOWSER_2_DUP] = {
.walk = { SOUND_NONE, SOUND_NONE },
.fly = { SOUND_NONE, SOUND_NONE },
.jump = SOUND_NONE,
@ -1782,218 +1782,218 @@ ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT] = {
};
s32 bActorTattles[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_RED_GOOMBA] = MSG_NONE,
[ACTOR_TYPE_RED_PARAGOOMBA] = MSG_NONE,
[ACTOR_TYPE_GLOOMBA] = MSG_EnemyTattle_Gloomba,
[ACTOR_TYPE_PARAGLOOMBA] = MSG_EnemyTattle_Paragloomba,
[ACTOR_TYPE_SPIKED_GLOOMBA] = MSG_EnemyTattle_SpikedGloomba,
[ACTOR_TYPE_DARK_KOOPA] = MSG_EnemyTattle_DarkKoopa,
[ACTOR_TYPE_DARK_PARATROOPA] = MSG_EnemyTattle_DarkParatroopa,
[ACTOR_TYPE_GOOMBA] = MSG_EnemyTattle_Goomba,
[ACTOR_TYPE_PARAGOOMBA] = MSG_EnemyTattle_Paragoomba,
[ACTOR_TYPE_SPIKED_GOOMBA] = MSG_EnemyTattle_SpikedGoomba,
[ACTOR_TYPE_FUZZY] = MSG_EnemyTattle_Fuzzy,
[ACTOR_TYPE_KOOPA_TROOPA] = MSG_EnemyTattle_KoopaTroopa,
[ACTOR_TYPE_PARATROOPA] = MSG_EnemyTattle_Paratroopa,
[ACTOR_TYPE_BOB_OMB] = MSG_EnemyTattle_BobOmb,
[ACTOR_TYPE_BOB_OMB_DUP] = MSG_EnemyTattle_BobOmb,
[ACTOR_TYPE_BULLET_BILL] = MSG_EnemyTattle_BulletBill,
[ACTOR_TYPE_BILL_BLASTER] = MSG_EnemyTattle_BillBlaster,
[ACTOR_TYPE_CLEFT] = MSG_EnemyTattle_Cleft,
[ACTOR_TYPE_MONTY_MOLE] = MSG_EnemyTattle_MontyMole,
[ACTOR_TYPE_BANDIT] = MSG_EnemyTattle_Bandit,
[ACTOR_TYPE_POKEY] = MSG_EnemyTattle_Pokey,
[ACTOR_TYPE_POKEY_MUMMY] = MSG_EnemyTattle_PokeyMummy,
[ACTOR_TYPE_SWOOPER] = MSG_EnemyTattle_Swooper,
[ACTOR_TYPE_BUZZY_BEETLE] = MSG_EnemyTattle_BuzzyBeetle,
[ACTOR_TYPE_STONE_CHOMP] = MSG_EnemyTattle_StoneChomp,
[ACTOR_TYPE_PIRANHA_PLANT] = MSG_EnemyTattle_PiranhaPlant,
[ACTOR_TYPE_FOREST_FUZZY] = MSG_EnemyTattle_ForestFuzzy,
[ACTOR_TYPE_HYPER_GOOMBA] = MSG_EnemyTattle_HyperGoomba,
[ACTOR_TYPE_HYPER_PARAGOOMBA] = MSG_EnemyTattle_HyperParagoomba,
[ACTOR_TYPE_HYPER_CLEFT] = MSG_EnemyTattle_HyperCleft,
[ACTOR_TYPE_CLUBBA] = MSG_EnemyTattle_Clubba,
[ACTOR_TYPE_SHY_GUY] = MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_GROOVE_GUY] = MSG_EnemyTattle_GrooveGuy,
[ACTOR_TYPE_SKY_GUY] = MSG_EnemyTattle_SkyGuy,
[ACTOR_TYPE_MEDI_GUY] = MSG_EnemyTattle_MediGuy,
[ACTOR_TYPE_PYRO_GUY] = MSG_EnemyTattle_PyroGuy,
[ACTOR_TYPE_SPY_GUY] = MSG_EnemyTattle_SpyGuy,
[ACTOR_TYPE_FUZZIPEDE] = MSG_NONE,
[ACTOR_TYPE_HURT_PLANT] = MSG_EnemyTattle_HurtPlant,
[ACTOR_TYPE_M_BUSH] = MSG_EnemyTattle_MBush,
[ACTOR_TYPE_AQUA_FUZZY] = MSG_NONE,
[ACTOR_TYPE_JUNGLE_FUZZY] = MSG_EnemyTattle_JungleFuzzy,
[ACTOR_TYPE_SPEAR_GUY] = MSG_EnemyTattle_SpearGuy,
[ACTOR_TYPE_LAVA_BUBBLE] = MSG_EnemyTattle_LavaBubble,
[ACTOR_TYPE_SPIKE_TOP] = MSG_EnemyTattle_SpikeTop,
[ACTOR_TYPE_PUTRID_PIRANHA] = MSG_EnemyTattle_PutridPiranha,
[ACTOR_TYPE_LAKITU] = MSG_EnemyTattle_Lakitu,
[ACTOR_TYPE_SPINY] = MSG_EnemyTattle_Spiny,
[ACTOR_TYPE_MONTY_MOLE_BOSS] = MSG_EnemyTattle_MontyMoleBoss,
[ACTOR_TYPE_BZZAP] = MSG_EnemyTattle_Bzzap,
[ACTOR_TYPE_CRAZEE_DAYZEE] = MSG_EnemyTattle_CrazeeDayzee,
[ACTOR_TYPE_AMAZY_DAYZEE] = MSG_EnemyTattle_AmazyDayzee,
[ACTOR_TYPE_RUFF_PUFF] = MSG_EnemyTattle_RuffPuff,
[ACTOR_TYPE_SPIKE] = MSG_EnemyTattle_Spike,
[ACTOR_TYPE_GULPIT] = MSG_EnemyTattle_Gulpit,
[ACTOR_TYPE_GULPIT_ROCKS] = MSG_EnemyTattle_GulpitRocks,
[ACTOR_TYPE_WHITE_CLUBBA] = MSG_EnemyTattle_WhiteClubba,
[ACTOR_TYPE_FROST_PIRANHA] = MSG_EnemyTattle_FrostPiranha,
[ACTOR_TYPE_SWOOPULA] = MSG_EnemyTattle_Swoopula,
[ACTOR_TYPE_DUPLIGHOST] = MSG_EnemyTattle_Duplighost,
[ACTOR_TYPE_GHOST_GOOMBARIO] = MSG_EnemyTattle_GhostGoombario,
[ACTOR_TYPE_GHOST_KOOPER] = MSG_EnemyTattle_GhostKooper,
[ACTOR_TYPE_GHOST_BOMBETTE] = MSG_EnemyTattle_GhostBombette,
[ACTOR_TYPE_GHOST_PARAKARRY] = MSG_EnemyTattle_GhostParakarry,
[ACTOR_TYPE_GHOST_BOW] = MSG_EnemyTattle_GhostBow,
[ACTOR_TYPE_GHOST_WATT] = MSG_EnemyTattle_GhostWatt,
[ACTOR_TYPE_GHOST_SUSHIE] = MSG_EnemyTattle_GhostSushie,
[ACTOR_TYPE_GHOST_LAKILESTER] = MSG_EnemyTattle_GhostLakilester,
[ACTOR_TYPE_ALBINO_DINO] = MSG_EnemyTattle_AlbinoDino,
[ACTOR_TYPE_EMBER] = MSG_EnemyTattle_Ember,
[ACTOR_TYPE_BONY_BEETLE] = MSG_EnemyTattle_BonyBeetle,
[ACTOR_TYPE_DRY_BONES] = MSG_EnemyTattle_DryBones,
[ACTOR_TYPE_DRY_BONES2] = MSG_EnemyTattle_DryBones,
[ACTOR_TYPE_BOMBSHELL_BLASTER] = MSG_EnemyTattle_BombshellBlaster,
[ACTOR_TYPE_BOMBSHELL_BILL] = MSG_EnemyTattle_BombshellBill,
[ACTOR_TYPE_HAMMER_BROS] = MSG_EnemyTattle_HammerBros,
[ACTOR_TYPE_KOOPATROL] = MSG_EnemyTattle_Koopatrol,
[ACTOR_TYPE_MAGIKOOPA] = MSG_EnemyTattle_Magikoopa,
[ACTOR_TYPE_FLYING_MAGIKOOPA] = MSG_EnemyTattle_MagikoopaDup,
[ACTOR_TYPE_MAGICLONE] = MSG_EnemyTattle_Magiclone,
[ACTOR_TYPE_FLYING_MAGICLONE] = MSG_EnemyTattle_MagicloneDup,
[ACTOR_TYPE_RED_MAGIKOOPA] = MSG_EnemyTattle_RedMagikoopa,
[ACTOR_TYPE_FLYING_RED_MAGIKOOPA] = MSG_EnemyTattle_FlyingRedMagikoopa,
[ACTOR_TYPE_GREEN_MAGIKOOPA] = MSG_EnemyTattle_GreenMagikoopa,
[ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA] = MSG_EnemyTattle_FlyingGreenMagikoopa,
[ACTOR_TYPE_YELLOW_MAGIKOOPA] = MSG_EnemyTattle_YellowMagikoopa,
[ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA] = MSG_EnemyTattle_FlyingYellowMagikoopa,
[ACTOR_TYPE_GRAY_MAGIKOOPA] = MSG_EnemyTattle_GrayMagikoopa,
[ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA] = MSG_EnemyTattle_FlyingGrayMagikoopa,
[ACTOR_TYPE_WHITE_MAGIKOOPA] = MSG_EnemyTattle_FlyingWhiteMagikoopa,
[ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA] = MSG_EnemyTattle_WhiteMagikoopa,
[ACTOR_TYPE_UNUSED_5B] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5C] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5D] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5E] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5F] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_60] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_61] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_62] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_63] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_64] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_65] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_66] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_67] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_68] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_69] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6A] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_MONTY_HOLE] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6C] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6D] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_PLAYER] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_GOOMBARIO] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_KOOPER] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_BOMBETTE] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_PARAKARRY] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_BOW] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_WATT] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_SUSHIE] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_LAKILESTER] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_TWINK] = MSG_NONE,
[ACTOR_TYPE_UNUSED_78] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_79] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_THE_MASTER_1] = MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_THE_MASTER_2] = MSG_EnemyTattle_TheMaster2,
[ACTOR_TYPE_THE_MASTER_3] = MSG_EnemyTattle_TheMaster3,
[ACTOR_TYPE_CHAN] = MSG_EnemyTattle_Chan,
[ACTOR_TYPE_LEE] = MSG_EnemyTattle_Lee,
[ACTOR_TYPE_LEE_GOOMBARIO] = MSG_EnemyTattle_LeeGoombario,
[ACTOR_TYPE_LEE_KOOPER] = MSG_EnemyTattle_LeeKooper,
[ACTOR_TYPE_LEE_BOMBETTE] = MSG_EnemyTattle_LeeBombette,
[ACTOR_TYPE_LEE_PARAKARRY] = MSG_EnemyTattle_LeeParakarry,
[ACTOR_TYPE_LEE_BOW] = MSG_EnemyTattle_LeeBow,
[ACTOR_TYPE_LEE_WATT] = MSG_EnemyTattle_LeeWatt,
[ACTOR_TYPE_LEE_SUSHIE] = MSG_EnemyTattle_LeeSushie,
[ACTOR_TYPE_LEE_LAKILESTER] = MSG_EnemyTattle_LeeLakilester,
[ACTOR_TYPE_KAMMY_KOOPA] = MSG_NONE,
[ACTOR_TYPE_JR_TROOPA_1] = MSG_NONE,
[ACTOR_TYPE_JR_TROOPA_2] = MSG_EnemyTattle_JrTroopa1,
[ACTOR_TYPE_JR_TROOPA_3] = MSG_EnemyTattle_JrTroopa2,
[ACTOR_TYPE_JR_TROOPA_4] = MSG_EnemyTattle_JrTroopa3,
[ACTOR_TYPE_JR_TROOPA_5] = MSG_EnemyTattle_JrTroopa4,
[ACTOR_TYPE_JR_TROOPA_6] = MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_JR_TROOPA_DUP1] = MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_JR_TROOPA_DUP2] = MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_BLUE_GOOMBA_BOSS] = MSG_EnemyTattle_BlueGoombaBoss,
[ACTOR_TYPE_RED_GOOMBA_BOSS] = MSG_EnemyTattle_RedGoombaBoss,
[ACTOR_TYPE_GOOMBA_KING] = MSG_EnemyTattle_GoombaKing,
[ACTOR_TYPE_GOOMNUT_TREE] = MSG_EnemyTattle_GoomnutTree,
[ACTOR_TYPE_GOOMBARIO_TUTOR1] = MSG_NONE,
[ACTOR_TYPE_MAGIKOOPA_BOSS] = MSG_EnemyTattle_MagikoopaBoss,
[ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS] = MSG_EnemyTattle_MagikoopaBossDup,
[ACTOR_TYPE_MAGIKOOPA_DUP1] = MSG_EnemyTattle_MagikoopaBoss,
[ACTOR_TYPE_MAGIKOOPA_DUP2] = MSG_EnemyTattle_MagikoopaBossDup,
[ACTOR_TYPE_FAKE_BOWSER] = MSG_EnemyTattle_FakeBowser,
[ACTOR_TYPE_KOOPA_BROS] = MSG_EnemyTattle_KoopaBros,
[ACTOR_TYPE_GREEN_NINJAKOOPA] = MSG_EnemyTattle_GreenNinjakoopa,
[ACTOR_TYPE_RED_NINJAKOOPA] = MSG_EnemyTattle_RedNinjakoopa,
[ACTOR_TYPE_BLACK_NINJAKOOPA] = MSG_EnemyTattle_BlueNinjakoopa,
[ACTOR_TYPE_YELLOW_NINJAKOOPA] = MSG_EnemyTattle_YellowNinjakoopa,
[ACTOR_TYPE_ELDSTAR] = MSG_NONE,
[ACTOR_TYPE_BUZZAR] = MSG_EnemyTattle_Buzzar,
[ACTOR_TYPE_TUTANKOOPA] = MSG_EnemyTattle_Tutankoopa,
[ACTOR_TYPE_CHOMP] = MSG_EnemyTattle_Chomp,
[ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE] = MSG_EnemyTattle_TubbaBlubba,
[ACTOR_TYPE_TUBBA_BLUBBA] = MSG_EnemyTattle_TubbaBlubbaInvincible,
[ACTOR_TYPE_TUBBA_HEART] = MSG_EnemyTattle_TubbaHeart,
[ACTOR_TYPE_STILT_GUY] = MSG_EnemyTattle_StiltGuy,
[ACTOR_TYPE_SHY_STACK] = MSG_EnemyTattle_ShyStack,
[ACTOR_TYPE_SHY_SQUAD] = MSG_EnemyTattle_ShySquad,
[ACTOR_TYPE_GENERAL_GUY] = MSG_NONE,
[ACTOR_TYPE_TOY_TANK] = MSG_EnemyTattle_GeneralGuy,
[ACTOR_TYPE_LIGHT_BULB] = MSG_NONE,
[ACTOR_TYPE_SIGNAL_GUY] = MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_SHY_SQUAD_DUP] = MSG_NONE,
[ACTOR_TYPE_SHY_GUY_DUP] = MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_ANTI_GUY_OMO] = MSG_EnemyTattle_AntiGuy,
[ACTOR_TYPE_ANTI_GUY_KPA] = MSG_EnemyTattle_AntiGuy,
[ACTOR_TYPE_BIG_LANTERN_GHOST] = MSG_EnemyTattle_BigLanternGhost,
[ACTOR_TYPE_GOOMBA_KING_DUP] = MSG_EnemyTattle_GoombaKing,
[ACTOR_TYPE_LAVA_PIRANHA_PHASE_1] = MSG_EnemyTattle_LavaPiranhaPhase1,
[ACTOR_TYPE_LAVA_PIRANHA_PHASE_2] = MSG_EnemyTattle_LavaPiranhaPhase2,
[ACTOR_TYPE_LAVA_BUD_PHASE_1] = MSG_EnemyTattle_LavaBudPhase1,
[ACTOR_TYPE_LAVA_BUD_PHASE_2] = MSG_EnemyTattle_LavaBudPhase2,
[ACTOR_TYPE_PETIT_PIRANHA] = MSG_EnemyTattle_PetitPiranha,
[ACTOR_TYPE_PETIT_PIRANHA_BOMB] = MSG_EnemyTattle_LavaPiranhaPhase1,
[ACTOR_TYPE_KENT_C_KOOPA] = MSG_EnemyTattle_KentCKoopa,
[ACTOR_TYPE_HUFF_N_PUFF] = MSG_EnemyTattle_HuffNPuff,
[ACTOR_TYPE_TUFF_PUFF] = MSG_EnemyTattle_TuffPuff,
[ACTOR_TYPE_MONSTAR] = MSG_EnemyTattle_Monstar,
[ACTOR_TYPE_CRYSTAL_KING] = MSG_EnemyTattle_CrystalKing,
[ACTOR_TYPE_CRYSTAL_CLONE] = MSG_EnemyTattle_CrystalClone,
[ACTOR_TYPE_CRYSTAL_BIT] = MSG_EnemyTattle_CrystalBit,
[ACTOR_TYPE_INTRO_BOWSER] = MSG_NONE,
[ACTOR_TYPE_BOWSER_PHASE_1] = MSG_EnemyTattle_BowserPhase1,
[ACTOR_TYPE_BOWSER_DUP1] = MSG_EnemyTattle_BowserPhase1,
[ACTOR_TYPE_BOWSER_PHASE_2] = MSG_EnemyTattle_BowserPhase2,
[ACTOR_TYPE_BOWSER_DUP2] = MSG_EnemyTattle_BowserPhase2,
[ACTOR_TYPE_BOWSER_PHASE_3] = MSG_EnemyTattle_BowserPhase3,
[ACTOR_TYPE_BOWSER_DUP3] = MSG_EnemyTattle_BowserPhase3,
[ACTOR_TYPE_BLOOPER] = MSG_EnemyTattle_Blooper,
[ACTOR_TYPE_ELECTRO_BLOOPER1] = MSG_EnemyTattle_ElectroBlooper,
[ACTOR_TYPE_ELECTRO_BLOOPER2] = MSG_EnemyTattle_ElectroBlooper,
[ACTOR_TYPE_SUPER_BLOOPER1] = MSG_EnemyTattle_SuperBlooper,
[ACTOR_TYPE_SUPER_BLOOPER2] = MSG_EnemyTattle_SuperBlooper,
[ACTOR_TYPE_BLOOPER_BABY] = MSG_EnemyTattle_BlooperBaby,
[ACTOR_TYPE_LAKILESTER_DUP] = MSG_EnemyTattle_GhostLakilester,
[ACTOR_TYPE_SLOT_MACHINE_START] = MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_STOP] = MSG_EnemyTattle_SlotMachineStop,
[ACTOR_TYPE_WHACKA] = MSG_EnemyTattle_Whacka,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP1] = MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP2] = MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP3] = MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_RED_GOOMBA] MSG_NONE,
[ACTOR_TYPE_RED_PARAGOOMBA] MSG_NONE,
[ACTOR_TYPE_GLOOMBA] MSG_EnemyTattle_Gloomba,
[ACTOR_TYPE_PARAGLOOMBA] MSG_EnemyTattle_Paragloomba,
[ACTOR_TYPE_SPIKED_GLOOMBA] MSG_EnemyTattle_SpikedGloomba,
[ACTOR_TYPE_DARK_KOOPA] MSG_EnemyTattle_DarkKoopa,
[ACTOR_TYPE_DARK_PARATROOPA] MSG_EnemyTattle_DarkParatroopa,
[ACTOR_TYPE_GOOMBA] MSG_EnemyTattle_Goomba,
[ACTOR_TYPE_PARAGOOMBA] MSG_EnemyTattle_Paragoomba,
[ACTOR_TYPE_SPIKED_GOOMBA] MSG_EnemyTattle_SpikedGoomba,
[ACTOR_TYPE_FUZZY] MSG_EnemyTattle_Fuzzy,
[ACTOR_TYPE_KOOPA_TROOPA] MSG_EnemyTattle_KoopaTroopa,
[ACTOR_TYPE_PARATROOPA] MSG_EnemyTattle_Paratroopa,
[ACTOR_TYPE_BOB_OMB] MSG_EnemyTattle_BobOmb,
[ACTOR_TYPE_BOB_OMB_DUP] MSG_EnemyTattle_BobOmb,
[ACTOR_TYPE_BULLET_BILL] MSG_EnemyTattle_BulletBill,
[ACTOR_TYPE_BILL_BLASTER] MSG_EnemyTattle_BillBlaster,
[ACTOR_TYPE_CLEFT] MSG_EnemyTattle_Cleft,
[ACTOR_TYPE_MONTY_MOLE] MSG_EnemyTattle_MontyMole,
[ACTOR_TYPE_BANDIT] MSG_EnemyTattle_Bandit,
[ACTOR_TYPE_POKEY] MSG_EnemyTattle_Pokey,
[ACTOR_TYPE_POKEY_MUMMY] MSG_EnemyTattle_PokeyMummy,
[ACTOR_TYPE_SWOOPER] MSG_EnemyTattle_Swooper,
[ACTOR_TYPE_BUZZY_BEETLE] MSG_EnemyTattle_BuzzyBeetle,
[ACTOR_TYPE_STONE_CHOMP] MSG_EnemyTattle_StoneChomp,
[ACTOR_TYPE_PIRANHA_PLANT] MSG_EnemyTattle_PiranhaPlant,
[ACTOR_TYPE_FOREST_FUZZY] MSG_EnemyTattle_ForestFuzzy,
[ACTOR_TYPE_HYPER_GOOMBA] MSG_EnemyTattle_HyperGoomba,
[ACTOR_TYPE_HYPER_PARAGOOMBA] MSG_EnemyTattle_HyperParagoomba,
[ACTOR_TYPE_HYPER_CLEFT] MSG_EnemyTattle_HyperCleft,
[ACTOR_TYPE_CLUBBA] MSG_EnemyTattle_Clubba,
[ACTOR_TYPE_SHY_GUY] MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_GROOVE_GUY] MSG_EnemyTattle_GrooveGuy,
[ACTOR_TYPE_SKY_GUY] MSG_EnemyTattle_SkyGuy,
[ACTOR_TYPE_MEDI_GUY] MSG_EnemyTattle_MediGuy,
[ACTOR_TYPE_PYRO_GUY] MSG_EnemyTattle_PyroGuy,
[ACTOR_TYPE_SPY_GUY] MSG_EnemyTattle_SpyGuy,
[ACTOR_TYPE_FUZZIPEDE] MSG_NONE,
[ACTOR_TYPE_HURT_PLANT] MSG_EnemyTattle_HurtPlant,
[ACTOR_TYPE_M_BUSH] MSG_EnemyTattle_MBush,
[ACTOR_TYPE_AQUA_FUZZY] MSG_NONE,
[ACTOR_TYPE_JUNGLE_FUZZY] MSG_EnemyTattle_JungleFuzzy,
[ACTOR_TYPE_SPEAR_GUY] MSG_EnemyTattle_SpearGuy,
[ACTOR_TYPE_LAVA_BUBBLE] MSG_EnemyTattle_LavaBubble,
[ACTOR_TYPE_SPIKE_TOP] MSG_EnemyTattle_SpikeTop,
[ACTOR_TYPE_PUTRID_PIRANHA] MSG_EnemyTattle_PutridPiranha,
[ACTOR_TYPE_LAKITU] MSG_EnemyTattle_Lakitu,
[ACTOR_TYPE_SPINY] MSG_EnemyTattle_Spiny,
[ACTOR_TYPE_MONTY_MOLE_BOSS] MSG_EnemyTattle_MontyMoleBoss,
[ACTOR_TYPE_BZZAP] MSG_EnemyTattle_Bzzap,
[ACTOR_TYPE_CRAZEE_DAYZEE] MSG_EnemyTattle_CrazeeDayzee,
[ACTOR_TYPE_AMAZY_DAYZEE] MSG_EnemyTattle_AmazyDayzee,
[ACTOR_TYPE_RUFF_PUFF] MSG_EnemyTattle_RuffPuff,
[ACTOR_TYPE_SPIKE] MSG_EnemyTattle_Spike,
[ACTOR_TYPE_GULPIT] MSG_EnemyTattle_Gulpit,
[ACTOR_TYPE_GULPIT_ROCKS] MSG_EnemyTattle_GulpitRocks,
[ACTOR_TYPE_WHITE_CLUBBA] MSG_EnemyTattle_WhiteClubba,
[ACTOR_TYPE_FROST_PIRANHA] MSG_EnemyTattle_FrostPiranha,
[ACTOR_TYPE_SWOOPULA] MSG_EnemyTattle_Swoopula,
[ACTOR_TYPE_DUPLIGHOST] MSG_EnemyTattle_Duplighost,
[ACTOR_TYPE_GHOST_GOOMBARIO] MSG_EnemyTattle_GhostGoombario,
[ACTOR_TYPE_GHOST_KOOPER] MSG_EnemyTattle_GhostKooper,
[ACTOR_TYPE_GHOST_BOMBETTE] MSG_EnemyTattle_GhostBombette,
[ACTOR_TYPE_GHOST_PARAKARRY] MSG_EnemyTattle_GhostParakarry,
[ACTOR_TYPE_GHOST_BOW] MSG_EnemyTattle_GhostBow,
[ACTOR_TYPE_GHOST_WATT] MSG_EnemyTattle_GhostWatt,
[ACTOR_TYPE_GHOST_SUSHIE] MSG_EnemyTattle_GhostSushie,
[ACTOR_TYPE_GHOST_LAKILESTER] MSG_EnemyTattle_GhostLakilester,
[ACTOR_TYPE_ALBINO_DINO] MSG_EnemyTattle_AlbinoDino,
[ACTOR_TYPE_EMBER] MSG_EnemyTattle_Ember,
[ACTOR_TYPE_BONY_BEETLE] MSG_EnemyTattle_BonyBeetle,
[ACTOR_TYPE_DRY_BONES] MSG_EnemyTattle_DryBones,
[ACTOR_TYPE_DRY_BONES2] MSG_EnemyTattle_DryBones,
[ACTOR_TYPE_BOMBSHELL_BLASTER] MSG_EnemyTattle_BombshellBlaster,
[ACTOR_TYPE_BOMBSHELL_BILL] MSG_EnemyTattle_BombshellBill,
[ACTOR_TYPE_HAMMER_BROS] MSG_EnemyTattle_HammerBros,
[ACTOR_TYPE_KOOPATROL] MSG_EnemyTattle_Koopatrol,
[ACTOR_TYPE_MAGIKOOPA] MSG_EnemyTattle_Magikoopa,
[ACTOR_TYPE_FLYING_MAGIKOOPA] MSG_EnemyTattle_MagikoopaDup,
[ACTOR_TYPE_MAGICLONE] MSG_EnemyTattle_Magiclone,
[ACTOR_TYPE_FLYING_MAGICLONE] MSG_EnemyTattle_MagicloneDup,
[ACTOR_TYPE_RED_MAGIKOOPA] MSG_EnemyTattle_RedMagikoopa,
[ACTOR_TYPE_FLYING_RED_MAGIKOOPA] MSG_EnemyTattle_FlyingRedMagikoopa,
[ACTOR_TYPE_GREEN_MAGIKOOPA] MSG_EnemyTattle_GreenMagikoopa,
[ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA] MSG_EnemyTattle_FlyingGreenMagikoopa,
[ACTOR_TYPE_YELLOW_MAGIKOOPA] MSG_EnemyTattle_YellowMagikoopa,
[ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA] MSG_EnemyTattle_FlyingYellowMagikoopa,
[ACTOR_TYPE_GRAY_MAGIKOOPA] MSG_EnemyTattle_GrayMagikoopa,
[ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA] MSG_EnemyTattle_FlyingGrayMagikoopa,
[ACTOR_TYPE_WHITE_MAGIKOOPA] MSG_EnemyTattle_FlyingWhiteMagikoopa,
[ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA] MSG_EnemyTattle_WhiteMagikoopa,
[ACTOR_TYPE_UNUSED_5B] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5C] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5D] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5E] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_5F] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_60] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_61] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_62] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_63] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_64] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_65] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_66] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_67] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_68] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_69] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6A] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_MONTY_HOLE] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6C] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_6D] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_PLAYER] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_GOOMBARIO] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_KOOPER] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_BOMBETTE] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_PARAKARRY] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_BOW] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_WATT] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_SUSHIE] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_LAKILESTER] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_TWINK] MSG_NONE,
[ACTOR_TYPE_UNUSED_78] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_UNUSED_79] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_THE_MASTER_1] MSG_EnemyTattle_TheMaster1,
[ACTOR_TYPE_THE_MASTER_2] MSG_EnemyTattle_TheMaster2,
[ACTOR_TYPE_THE_MASTER_3] MSG_EnemyTattle_TheMaster3,
[ACTOR_TYPE_CHAN] MSG_EnemyTattle_Chan,
[ACTOR_TYPE_LEE] MSG_EnemyTattle_Lee,
[ACTOR_TYPE_LEE_GOOMBARIO] MSG_EnemyTattle_LeeGoombario,
[ACTOR_TYPE_LEE_KOOPER] MSG_EnemyTattle_LeeKooper,
[ACTOR_TYPE_LEE_BOMBETTE] MSG_EnemyTattle_LeeBombette,
[ACTOR_TYPE_LEE_PARAKARRY] MSG_EnemyTattle_LeeParakarry,
[ACTOR_TYPE_LEE_BOW] MSG_EnemyTattle_LeeBow,
[ACTOR_TYPE_LEE_WATT] MSG_EnemyTattle_LeeWatt,
[ACTOR_TYPE_LEE_SUSHIE] MSG_EnemyTattle_LeeSushie,
[ACTOR_TYPE_LEE_LAKILESTER] MSG_EnemyTattle_LeeLakilester,
[ACTOR_TYPE_KAMMY_KOOPA] MSG_NONE,
[ACTOR_TYPE_JR_TROOPA_1] MSG_NONE,
[ACTOR_TYPE_JR_TROOPA_2] MSG_EnemyTattle_JrTroopa1,
[ACTOR_TYPE_JR_TROOPA_3] MSG_EnemyTattle_JrTroopa2,
[ACTOR_TYPE_JR_TROOPA_4] MSG_EnemyTattle_JrTroopa3,
[ACTOR_TYPE_JR_TROOPA_5] MSG_EnemyTattle_JrTroopa4,
[ACTOR_TYPE_JR_TROOPA_6] MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_JR_TROOPA_DUP1] MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_JR_TROOPA_DUP2] MSG_EnemyTattle_JrTroopa5,
[ACTOR_TYPE_BLUE_GOOMBA_BOSS] MSG_EnemyTattle_BlueGoombaBoss,
[ACTOR_TYPE_RED_GOOMBA_BOSS] MSG_EnemyTattle_RedGoombaBoss,
[ACTOR_TYPE_GOOMBA_KING] MSG_EnemyTattle_GoombaKing,
[ACTOR_TYPE_GOOMNUT_TREE] MSG_EnemyTattle_GoomnutTree,
[ACTOR_TYPE_GOOMBARIO_TUTOR1] MSG_NONE,
[ACTOR_TYPE_MAGIKOOPA_BOSS] MSG_EnemyTattle_MagikoopaBoss,
[ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS] MSG_EnemyTattle_MagikoopaBossDup,
[ACTOR_TYPE_MAGIKOOPA_DUP1] MSG_EnemyTattle_MagikoopaBoss,
[ACTOR_TYPE_MAGIKOOPA_DUP2] MSG_EnemyTattle_MagikoopaBossDup,
[ACTOR_TYPE_FAKE_BOWSER] MSG_EnemyTattle_FakeBowser,
[ACTOR_TYPE_KOOPA_BROS] MSG_EnemyTattle_KoopaBros,
[ACTOR_TYPE_GREEN_NINJAKOOPA] MSG_EnemyTattle_GreenNinjakoopa,
[ACTOR_TYPE_RED_NINJAKOOPA] MSG_EnemyTattle_RedNinjakoopa,
[ACTOR_TYPE_BLACK_NINJAKOOPA] MSG_EnemyTattle_BlueNinjakoopa,
[ACTOR_TYPE_YELLOW_NINJAKOOPA] MSG_EnemyTattle_YellowNinjakoopa,
[ACTOR_TYPE_ELDSTAR] MSG_NONE,
[ACTOR_TYPE_BUZZAR] MSG_EnemyTattle_Buzzar,
[ACTOR_TYPE_TUTANKOOPA] MSG_EnemyTattle_Tutankoopa,
[ACTOR_TYPE_CHOMP] MSG_EnemyTattle_Chomp,
[ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE] MSG_EnemyTattle_TubbaBlubba,
[ACTOR_TYPE_TUBBA_BLUBBA] MSG_EnemyTattle_TubbaBlubbaInvincible,
[ACTOR_TYPE_TUBBA_HEART] MSG_EnemyTattle_TubbaHeart,
[ACTOR_TYPE_STILT_GUY] MSG_EnemyTattle_StiltGuy,
[ACTOR_TYPE_SHY_STACK] MSG_EnemyTattle_ShyStack,
[ACTOR_TYPE_SHY_SQUAD] MSG_EnemyTattle_ShySquad,
[ACTOR_TYPE_GENERAL_GUY] MSG_NONE,
[ACTOR_TYPE_TOY_TANK] MSG_EnemyTattle_GeneralGuy,
[ACTOR_TYPE_LIGHT_BULB] MSG_NONE,
[ACTOR_TYPE_SIGNAL_GUY] MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_SHY_SQUAD_DUP] MSG_NONE,
[ACTOR_TYPE_SHY_GUY_DUP] MSG_EnemyTattle_ShyGuy,
[ACTOR_TYPE_ANTI_GUY_OMO] MSG_EnemyTattle_AntiGuy,
[ACTOR_TYPE_ANTI_GUY_KPA] MSG_EnemyTattle_AntiGuy,
[ACTOR_TYPE_BIG_LANTERN_GHOST] MSG_EnemyTattle_BigLanternGhost,
[ACTOR_TYPE_GOOMBA_KING_DUP] MSG_EnemyTattle_GoombaKing,
[ACTOR_TYPE_LAVA_PIRANHA_PHASE_1] MSG_EnemyTattle_LavaPiranhaPhase1,
[ACTOR_TYPE_LAVA_PIRANHA_PHASE_2] MSG_EnemyTattle_LavaPiranhaPhase2,
[ACTOR_TYPE_LAVA_BUD_PHASE_1] MSG_EnemyTattle_LavaBudPhase1,
[ACTOR_TYPE_LAVA_BUD_PHASE_2] MSG_EnemyTattle_LavaBudPhase2,
[ACTOR_TYPE_PETIT_PIRANHA] MSG_EnemyTattle_PetitPiranha,
[ACTOR_TYPE_PETIT_PIRANHA_BOMB] MSG_EnemyTattle_LavaPiranhaPhase1,
[ACTOR_TYPE_KENT_C_KOOPA] MSG_EnemyTattle_KentCKoopa,
[ACTOR_TYPE_HUFF_N_PUFF] MSG_EnemyTattle_HuffNPuff,
[ACTOR_TYPE_TUFF_PUFF] MSG_EnemyTattle_TuffPuff,
[ACTOR_TYPE_MONSTAR] MSG_EnemyTattle_Monstar,
[ACTOR_TYPE_CRYSTAL_KING] MSG_EnemyTattle_CrystalKing,
[ACTOR_TYPE_CRYSTAL_CLONE] MSG_EnemyTattle_CrystalClone,
[ACTOR_TYPE_CRYSTAL_BIT] MSG_EnemyTattle_CrystalBit,
[ACTOR_TYPE_INTRO_BOWSER] MSG_NONE,
[ACTOR_TYPE_HALLWAY_BOWSER] MSG_EnemyTattle_HallwayBowser,
[ACTOR_TYPE_HALLWAY_BOWSER_DUP] MSG_EnemyTattle_HallwayBowser,
[ACTOR_TYPE_FINAL_BOWSER_1] MSG_EnemyTattle_FinalBowser1,
[ACTOR_TYPE_FINAL_BOWSER_1_DUP] MSG_EnemyTattle_FinalBowser1,
[ACTOR_TYPE_FINAL_BOWSER_2] MSG_EnemyTattle_FinalBowser2,
[ACTOR_TYPE_FINAL_BOWSER_2_DUP] MSG_EnemyTattle_FinalBowser2,
[ACTOR_TYPE_BLOOPER] MSG_EnemyTattle_Blooper,
[ACTOR_TYPE_ELECTRO_BLOOPER1] MSG_EnemyTattle_ElectroBlooper,
[ACTOR_TYPE_ELECTRO_BLOOPER2] MSG_EnemyTattle_ElectroBlooper,
[ACTOR_TYPE_SUPER_BLOOPER1] MSG_EnemyTattle_SuperBlooper,
[ACTOR_TYPE_SUPER_BLOOPER2] MSG_EnemyTattle_SuperBlooper,
[ACTOR_TYPE_BLOOPER_BABY] MSG_EnemyTattle_BlooperBaby,
[ACTOR_TYPE_LAKILESTER_DUP] MSG_EnemyTattle_GhostLakilester,
[ACTOR_TYPE_SLOT_MACHINE_START] MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_STOP] MSG_EnemyTattle_SlotMachineStop,
[ACTOR_TYPE_WHACKA] MSG_EnemyTattle_Whacka,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP1] MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP2] MSG_EnemyTattle_SlotMachineStart,
[ACTOR_TYPE_SLOT_MACHINE_START_DUP3] MSG_EnemyTattle_SlotMachineStart,
};
ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT] = {
@ -2190,12 +2190,12 @@ ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT] = {
[ACTOR_TYPE_CRYSTAL_CLONE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_CRYSTAL_BIT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_INTRO_BOWSER] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_PHASE_1] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_DUP1] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_PHASE_2] = { .tattleCam = { 241, 19, 45 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_DUP2] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_PHASE_3] = { .tattleCam = { 241, 19, 45 }, .shadow = 241 },
[ACTOR_TYPE_BOWSER_DUP3] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_HALLWAY_BOWSER] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_HALLWAY_BOWSER_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_FINAL_BOWSER_1] = { .tattleCam = { 241, 19, 45 }, .shadow = 241 },
[ACTOR_TYPE_FINAL_BOWSER_1_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_FINAL_BOWSER_2] = { .tattleCam = { 241, 19, 45 }, .shadow = 241 },
[ACTOR_TYPE_FINAL_BOWSER_2_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 241 },
[ACTOR_TYPE_BLOOPER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_ELECTRO_BLOOPER1] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },
[ACTOR_TYPE_ELECTRO_BLOOPER2] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 },

View File

@ -53,8 +53,8 @@ u8 ActorTypesShyGuyBoss[] = {
};
u8 ActorTypesBowser[] = {
ACTOR_TYPE_BOWSER_PHASE_2,
ACTOR_TYPE_BOWSER_PHASE_3,
ACTOR_TYPE_FINAL_BOWSER_1,
ACTOR_TYPE_FINAL_BOWSER_2,
ACTOR_TYPE_LIST_END
};

View File

@ -846,7 +846,7 @@ EvtScript EVS_Player_HandleEvent = {
EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE)
EVT_END_SWITCH
EVT_CALL(CloseActionCommandInfo)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_100, FALSE)
EVT_CALL(SetBattleFlagBits, BS_FLAGS1_EXECUTING_MOVE, FALSE)
EVT_CALL(func_802693F0)
EVT_CALL(ForceDisablePlayerBlurImmediately)
EVT_CALL(GetLastEvent, ACTOR_PLAYER, LVarF)

View File

@ -77,7 +77,7 @@ void spawn_drops(Enemy* enemy) {
if (totalWeight >= dropCount) {
itemToDrop = drops->itemDrops[3 * i];
do { } while (0); // TODO required to match
do {} while (0); // TODO required to match
break;
}
}

View File

@ -13,7 +13,7 @@ void* effectFuncs[] = {
guFrustumF, draw_prev_frame_buffer_at_screen_pos, draw_box, draw_msg, get_msg_width, get_background_color_blend, sfx_play_sound_at_position
};
s32 D_E0200734[128] = {
s32 SimpleRandLUT[128] = {
0x100B2AF5, 0x45B59924, 0x35094B45, 0x4ABFA67A, 0x164F5371, 0x7B195845, 0x58562A56, 0x25733D41,
0x48008107, 0x0E004F28, 0x6963B8AD, 0x5B82AB71, 0x6BC1F51B, 0x3D947816, 0x39705175, 0x44409A59,
0x0ED99067, 0x5F70B6F8, 0x3225AEEE, 0x08B5E97C, 0x2CDE7594, 0x5E9E5B7D, 0x5B2A2888, 0x107F0F50,
@ -45,9 +45,9 @@ u32 effect_rand_int(s32 max) {
return effect_prng_seed % (max + 1);
}
// very simple 'random' number generator using a LUT
s32 func_E0200044(s32 max, s32 idx) {
s32 lookupVal = D_E0200734[idx % ARRAY_COUNT(D_E0200734)];
// very simple stateless 'random' number generator using a LUT
s32 effect_simple_rand(s32 max, s32 idx) {
s32 lookupVal = SimpleRandLUT[idx % ARRAY_COUNT(SimpleRandLUT)];
if (lookupVal < 0) {
lookupVal = -lookupVal;

View File

@ -385,12 +385,12 @@ BSS s8 BattleMenu_Moves_OptionSortPriority[24];
BSS s8 BattleMenu_Moves_OptionCantUseMessages[24];
BSS s32 battle_menu_moveOptionActive;
BSS s8 BattleSubmenuStratsState;
BSS s8 D_802AD605;
BSS s8 StratsMenuPos;
BSS s8 D_802AD606;
BSS s8 D_802AD607;
BSS s8 D_802AD608;
BSS s8 D_802AD609;
BSS s8 D_802AD60A;
BSS s8 StratsMenuLines;
BSS s8 D_802AD60B;
BSS s16 D_802AD60C;
BSS s16 D_802AD60E;
@ -407,7 +407,7 @@ BSS s16 D_802AD63E;
BSS HudScript* D_802AD640[6];
BSS s32 D_802AD658[5]; // msg IDs
BSS s32 D_802AD66C;
BSS s32 D_802AD670;
BSS s32 StratsMenuLastPos;
BSS s32 D_802AD674; // unused?
BSS s32 D_802AD678[6];
@ -424,10 +424,10 @@ void func_802A43DC(void* data, s32 x, s32 y);
void func_802A4448(void* data, s32 x, s32 y);
void func_802A4494(void* data, s32 x, s32 y);
void func_802A4534(void* data, s32 x, s32 y);
void func_802A5290(void* data, s32 x, s32 y);
void func_802A56F8(void* data, s32 x, s32 y);
void func_802A5738(void* data, s32 x, s32 y);
void func_802A57C8(void* data, s32 x, s32 y);
void btl_menu_strats_draw_content(void* data, s32 x, s32 y);
void btl_menu_strats_show_title(void* data, s32 x, s32 y);
void btl_menu_strats_show_desc(void* data, s32 x, s32 y);
void btl_menu_strats_show_error(void* data, s32 x, s32 y);
void func_80263300(void);
void func_80263268(void);
@ -1697,14 +1697,14 @@ void func_802A45D8(void) {
s32 sixTemp;
s8 temp802AD673;
BattleSubmenuStratsState = 0;
D_802AD605 = D_802AD670;
D_802AD606 = D_802AD670;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_INIT;
StratsMenuPos = StratsMenuLastPos;
D_802AD606 = StratsMenuLastPos;
D_802AD608 = 0;
D_802AD60A = D_802AD66C;
StratsMenuLines = D_802AD66C;
if (D_802AD60A > 6) {
D_802AD60A = 6;
if (StratsMenuLines > 6) {
StratsMenuLines = 6;
}
D_802AD609 = sixTemp = 6;
@ -1715,13 +1715,13 @@ void func_802A45D8(void) {
D_802AD624 = 255;
D_802AD60B = 1;
temp802AD673 = D_802AD670;
temp802AD673 = StratsMenuLastPos;
if ((s8) D_802AD670 < 0) {
D_802AD608 = D_802AD670;
if ((s8) StratsMenuLastPos < 0) {
D_802AD608 = StratsMenuLastPos;
}
if ((s8) D_802AD670 >= D_802AD609) {
D_802AD608 = (temp802AD673 + 1 - D_802AD60A);
if ((s8) StratsMenuLastPos >= D_802AD609) {
D_802AD608 = (temp802AD673 + 1 - StratsMenuLines);
}
D_802AD609 = D_802AD608 + sixTemp;
@ -1730,13 +1730,13 @@ void func_802A45D8(void) {
}
D_802AD60C = -D_802AD608 * 13;
D_802AD60E = ((s8) D_802AD670 - D_802AD608) * 13;
D_802AD60E = ((s8) StratsMenuLastPos - D_802AD608) * 13;
D_802AD607 = 0;
D_802AD6D4 = 0;
}
void func_802A4718(void) {
BattleSubmenuStratsState = 10;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_UNK_10;
}
void func_802A472C(void) {
@ -1772,7 +1772,7 @@ void func_802A47E0(void) {
D_802AD614 = MSG_PAL_STANDARD;
D_802AD60B = 1;
D_802AD624 = 255;
BattleSubmenuStratsState = 1;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_CHOOSE;
}
void func_802A48FC(void) {
@ -1792,17 +1792,17 @@ void func_802A48FC(void) {
hud_element_set_script(D_802AD618, &HES_AnimatedHandPointer);
D_802AD614 = MSG_PAL_STANDARD;
D_802AD60B = 1;
BattleSubmenuStratsState = 20;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_UNK_20;
}
void func_802A4A10(void) {
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_TRANSPARENT);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_TRANSPARENT);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW);
BattleSubmenuStratsState = 30;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_UNK_30;
}
s32 func_802A4A54(void) {
s32 btl_update_strats_menu(void) {
BattleStatus* battleStatus = &gBattleStatus;
s32 id;
s32 x, y;
@ -1811,11 +1811,11 @@ s32 func_802A4A54(void) {
s32 i;
switch (BattleSubmenuStratsState) {
case 0:
case BTL_SUBMENU_STRATS_STATE_INIT:
D_802AD63C = 20;
D_802AD63E = 68;
D_802AD60C = -D_802AD608 * 13;
D_802AD60E = (D_802AD605 - D_802AD608) * 13;
D_802AD60E = (StratsMenuPos - D_802AD608) * 13;
for (i = 0; i < D_802AD66C; i++) {
D_802AD628[i] = id = hud_element_create(D_802AD640[i]);
@ -1838,52 +1838,52 @@ s32 func_802A4A54(void) {
D_802AD614 = MSG_PAL_STANDARD;
x = D_802AD63C;
y = D_802AD63E;
set_window_properties(WINDOW_ID_6, x, y, 144, (D_802AD60A * 13) + 26, 0, func_802A5290, NULL, -1);
set_window_properties(WINDOW_ID_7, x + 18, y - 6, 108, 16, 1, func_802A56F8, NULL, -1);
set_window_properties(WINDOW_ID_6, x, y, 144, (StratsMenuLines * 13) + 26, 0, btl_menu_strats_draw_content, NULL, -1);
set_window_properties(WINDOW_ID_7, x + 18, y - 6, 108, 16, 1, btl_menu_strats_show_title, NULL, -1);
x = 20;
y = 186;
set_window_properties(WINDOW_ID_8, x, y, 280, 32, WINDOW_PRIORITY_20, func_802A5738, NULL, -1);
set_window_properties(WINDOW_ID_8, x, y, 280, 32, WINDOW_PRIORITY_20, btl_menu_strats_show_desc, NULL, -1);
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW);
BattleSubmenuStratsState = 1;
break;
case 1:
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_CHOOSE;
return 0;
case BTL_SUBMENU_STRATS_STATE_CHOOSE:
if (D_802AD607 == 0) {
D_802AD606 = D_802AD605;
D_802AD606 = StratsMenuPos;
if (battleStatus->curButtonsHeld & BUTTON_STICK_UP) {
if (D_802AD605 > 0) {
D_802AD605--;
if (StratsMenuPos > 0) {
StratsMenuPos--;
} else if (battleStatus->curButtonsPressed & BUTTON_STICK_UP) {
D_802AD605--;
StratsMenuPos--;
}
}
if (battleStatus->curButtonsHeld & BUTTON_STICK_DOWN) {
if (D_802AD605 < D_802AD66C - 1) {
D_802AD605++;
if (StratsMenuPos < D_802AD66C - 1) {
StratsMenuPos++;
} else if (battleStatus->curButtonsPressed & BUTTON_STICK_DOWN) {
D_802AD605++;
StratsMenuPos++;
}
}
if (D_802AD605 < 0) {
D_802AD605 = D_802AD66C - 1;
if (StratsMenuPos < 0) {
StratsMenuPos = D_802AD66C - 1;
}
if (D_802AD66C - 1 < D_802AD605) {
D_802AD605 = 0;
if (D_802AD66C - 1 < StratsMenuPos) {
StratsMenuPos = 0;
}
if (D_802AD606 != D_802AD605) {
if (D_802AD606 != StratsMenuPos) {
hud_element_set_scale(D_802AD628[D_802AD606], 0.45f);
sfx_play_sound(SOUND_MENU_CHANGE_SELECTION);
}
if (D_802AD605 < D_802AD608) {
D_802AD608 = D_802AD605;
if (StratsMenuPos < D_802AD608) {
D_802AD608 = StratsMenuPos;
}
if (D_802AD605 >= D_802AD609) {
D_802AD608 = D_802AD605 + 1 - D_802AD60A;
if (StratsMenuPos >= D_802AD609) {
D_802AD608 = StratsMenuPos + 1 - StratsMenuLines;
}
D_802AD609 = D_802AD608 + 6;
if (D_802AD609 > D_802AD66C) {
@ -1891,25 +1891,22 @@ s32 func_802A4A54(void) {
}
if (battleStatus->curButtonsPressed & BUTTON_A) {
if (D_802AD690[D_802AD605] == 1) {
if (D_802AD690[StratsMenuPos] == 1) {
sfx_play_sound(SOUND_MENU_NEXT);
BattleSubmenuStratsState = -1;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_SELECT;
} else {
sfx_play_sound(SOUND_MENU_ERROR);
BattleSubmenuStratsState = 40;
D_802AD610 = D_802AD6A8[D_802AD605];
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_ERROR_INIT;
D_802AD610 = D_802AD6A8[StratsMenuPos];
}
break;
}
if (battleStatus->curButtonsPressed & BUTTON_B) {
} else if (battleStatus->curButtonsPressed & BUTTON_B) {
sfx_play_sound(SOUND_MENU_BACK);
func_802A472C();
BattleSubmenuStratsState = -2;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_CANCEL;
}
}
break;
case -1:
return 0;
case BTL_SUBMENU_STRATS_STATE_SELECT:
for (i = 0; i < D_802AD66C; i++) {
hud_element_set_tint(D_802AD628[i], 160, 160, 160);
}
@ -1921,34 +1918,34 @@ s32 func_802A4A54(void) {
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_DARKENED);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_DARKENED);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_HIDE);
return D_802AD605 + 1;
case -2:
return StratsMenuPos + 1;
case BTL_SUBMENU_STRATS_STATE_CANCEL:
return 255;
case 10:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_HIDE);
BattleSubmenuStratsState = 11;
return D_802AD605 + 1;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_UNK_11;
return StratsMenuPos + 1;
case 11:
return D_802AD605 + 1;
return StratsMenuPos + 1;
case 20:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW);
BattleSubmenuStratsState = 1;
return D_802AD605 + 1;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_CHOOSE;
return StratsMenuPos + 1;
case 30:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_SHOW);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW);
BattleSubmenuStratsState = -1;
break;
case 40:
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_SELECT;
return 0;
case BTL_SUBMENU_STRATS_STATE_ERROR_INIT:
D_802AD6D4 = -1;
BattleSubmenuStratsState = 41;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_ERROR_SHOW;
return -1;
case 41:
case BTL_SUBMENU_STRATS_STATE_ERROR_SHOW:
set_window_update(WINDOW_ID_6, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_7, WINDOW_UPDATE_HIDE);
set_window_update(WINDOW_ID_8, WINDOW_UPDATE_HIDE);
@ -1964,12 +1961,12 @@ s32 func_802A4A54(void) {
break;
}
width = get_msg_width(msgID, 0) + 23;
set_window_properties(WINDOW_ID_BATTLE_POPUP, (SCREEN_WIDTH / 2) - (width / 2), 80, width, 28, 20, func_802A57C8, NULL, -1);
set_window_properties(WINDOW_ID_BATTLE_POPUP, (SCREEN_WIDTH / 2) - (width / 2), 80, width, 28, 20, btl_menu_strats_show_error, NULL, -1);
set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW);
D_802AD612 = 60;
BattleSubmenuStratsState = 42;
BattleSubmenuStratsState = BTL_SUBMENU_STRATS_STATE_ERROR_DONE;
return -1;
case 42:
case BTL_SUBMENU_STRATS_STATE_ERROR_DONE:
if (gGameStatusPtr->pressedButtons[0] & (BUTTON_A | BUTTON_B)) {
D_802AD612 = 0