diff --git a/include/common.h b/include/common.h index e69fd1ca5c3..12986500b82 100644 --- a/include/common.h +++ b/include/common.h @@ -13,7 +13,7 @@ #include "messages.h" #include "battle/formation_names.h" #include "battle/stage_names.h" -#include "battle/actor_levels.h" +#include "battle/actor_types.h" #ifdef PERMUTER extern int TEXEL0, TEXEL1, PRIMITIVE, PRIMITIVE_ALPHA; diff --git a/include/effects.h b/include/effects.h index 1912d449a1b..bd84b175904 100644 --- a/include/effects.h +++ b/include/effects.h @@ -742,7 +742,7 @@ typedef struct DebuffFXData { /* 0x30 */ f32 unk_30; /* 0x34 */ s32 alpha; /* 0x38 */ Color_RGB8 primCol; - /* 0x38 */ Color_RGB8 envCol; + /* 0x3B */ Color_RGB8 envCol; /* 0x3E */ char unk_3E[2]; } DebuffFXData; // size = 0x40 @@ -1024,12 +1024,12 @@ typedef struct AuraFXData { } AuraFXData; // size = 0x70 typedef struct BulbGlowFXData { - /* 0x00 */ s32 unk_00; + /* 0x00 */ s32 type; /* 0x04 */ Vec3f pos; - /* 0x10 */ s32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ s32 unk_18; - /* 0x1C */ s32 unk_1C; + /* 0x10 */ s32 brightness; + /* 0x14 */ s32 timeLeft; + /* 0x18 */ s32 lifetime; + /* 0x1C */ s32 depthQueryID; /* 0x20 */ s32 unk_20; } BulbGlowFXData; // size = 0x24 diff --git a/include/enums.h b/include/enums.h index 2b9e7b545e9..62576fa3404 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1851,7 +1851,7 @@ enum TargetFlags { TARGET_FLAG_200000 = 0x00200000, TARGET_FLAG_400000 = 0x00400000, TARGET_FLAG_800000 = 0x00800000, - TARGET_FLAG_80000000 = 0x80000000, + TARGET_FLAG_OVERRIDE = 0x80000000, // skip choosing a target }; enum ActorPartTargetFlags { @@ -3310,7 +3310,7 @@ enum ActorPartFlags { ACTOR_PART_FLAG_200000 = 0x00200000, ACTOR_PART_FLAG_400000 = 0x00400000, ACTOR_PART_FLAG_MULTI_TARGET = 0x00800000, ///< Can be targeted with multi-target attacks (e.g. Star Storm). - ACTOR_PART_FLAG_1000000 = 0x01000000, + ACTOR_PART_FLAG_HAS_PAL_EFFECT = 0x01000000, ACTOR_PART_FLAG_2000000 = 0x02000000, ACTOR_PART_FLAG_4000000 = 0x04000000, ACTOR_PART_FLAG_8000000 = 0x08000000, @@ -4061,8 +4061,8 @@ enum BattleMessages { BTL_MSG_STAR_POWER_FILLED = 0x1C, BTL_MSG_ATTACK_UP = 0x1D, BTL_MSG_DEFENCE_UP = 0x1E, - BTL_MSG_1F = 0x1F, - BTL_MSG_20 = 0x20, + BTL_MSG_HEAL_ONE = 0x1F, + BTL_MSG_HEAL_ALL = 0x20, BTL_MSG_ENEMY_TRANSPARENT = 0x21, BTL_MSG_ENEMY_CHARGED = 0x22, BTL_MSG_PARTNER_INJURED = 0x23, diff --git a/include/script_api/battle.h b/include/script_api/battle.h index 2862aec379d..89995a4856c 100644 --- a/include/script_api/battle.h +++ b/include/script_api/battle.h @@ -310,10 +310,10 @@ ApiStatus func_8027D434(Evt* script, s32 isInitialCall); ApiStatus func_8026F1A0(Evt* script, s32 isInitialCall); ApiStatus PlayLoopingSoundAtActor(Evt* script, s32 isInitialCall); ApiStatus StopLoopingSoundAtActor(Evt* script, s32 isInitialCall); -ApiStatus func_8026ED20(Evt* script, s32 isInitialCall); +ApiStatus EnableActorPaletteEffects(Evt* script, s32 isInitialCall); ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall); ApiStatus BattleCamTargetActorPart(Evt* script, s32 isInitialCall); -ApiStatus func_802537C0(Evt* script, s32 isInitialCall); +ApiStatus GetDarknessStatus(Evt* script, s32 isInitialCall); ApiStatus CancelEnemyTurn(Evt* script, s32 isInitialCall); ApiStatus GetAnimatedNodeRotation(Evt* script, s32 isInitialCall); ApiStatus GetAnimatedNodePosition(Evt* script, s32 isInitialCall); diff --git a/src/16F740.c b/src/16F740.c index ecb99f74e1e..846b58539bd 100644 --- a/src/16F740.c +++ b/src/16F740.c @@ -13,7 +13,7 @@ extern s16 D_802809F6; extern s16 DemoBattleBeginDelay; extern s32 BattleScreenFadeAmt; extern EvtScript EVS_OnBattleInit; -extern s32 D_80281454[]; +extern s32 bActorsIgnoreDuringCount[]; extern EvtScript EVS_Mario_OnActorCreate; extern EvtScript EVS_Peach_OnActorCreate; @@ -343,7 +343,7 @@ void btl_state_update_normal_start(void) { for (i = 0; i < BattleEnemiesCreated; i++) { create_actor(&(*battle->formation)[i]); - types = D_80281454; + types = bActorsIgnoreDuringCount; actor = battleStatus->enemyActors[i]; while (TRUE) { diff --git a/src/17D6A0.c b/src/17D6A0.c index a5f201b6f4f..326f275bf44 100644 --- a/src/17D6A0.c +++ b/src/17D6A0.c @@ -70,2146 +70,7 @@ PlayerCelebrationAnimOptions D_80280FC0 = { } }; -s32 bActorNames[ACTOR_TYPE_COUNT] = { - [ACTOR_TYPE_RED_GOOMBA] MSG_EnemyName_RedGoomba, - [ACTOR_TYPE_RED_PARAGOOMBA] MSG_EnemyName_RedParagoomba, - [ACTOR_TYPE_GLOOMBA] MSG_EnemyName_Gloomba, - [ACTOR_TYPE_PARAGLOOMBA] MSG_EnemyName_Paragloomba, - [ACTOR_TYPE_SPIKED_GLOOMBA] MSG_EnemyName_SpikedGloomba, - [ACTOR_TYPE_DARK_KOOPA] MSG_EnemyName_DarkKoopa, - [ACTOR_TYPE_DARK_PARATROOPA] MSG_EnemyName_DarkParatroopa, - [ACTOR_TYPE_GOOMBA] MSG_EnemyName_Goomba, - [ACTOR_TYPE_PARAGOOMBA] MSG_EnemyName_Paragoomba, - [ACTOR_TYPE_SPIKED_GOOMBA] MSG_EnemyName_SpikedGoomba, - [ACTOR_TYPE_FUZZY] MSG_EnemyName_Fuzzy, - [ACTOR_TYPE_KOOPA_TROOPA] MSG_EnemyName_KoopaTroopa, - [ACTOR_TYPE_PARATROOPA] MSG_EnemyName_Paratroopa, - [ACTOR_TYPE_BOB_OMB] MSG_EnemyName_BobOmb, - [ACTOR_TYPE_BOB_OMB_DUP] MSG_EnemyName_BobOmb, - [ACTOR_TYPE_BULLET_BILL] MSG_EnemyName_BulletBill, - [ACTOR_TYPE_BILL_BLASTER] MSG_EnemyName_BillBlaster, - [ACTOR_TYPE_CLEFT] MSG_EnemyName_Cleft, - [ACTOR_TYPE_MONTY_MOLE] MSG_EnemyName_MontyMole, - [ACTOR_TYPE_BANDIT] MSG_EnemyName_Bandit, - [ACTOR_TYPE_POKEY] MSG_EnemyName_Pokey, - [ACTOR_TYPE_POKEY_MUMMY] MSG_EnemyName_PokeyMummy, - [ACTOR_TYPE_SWOOPER] MSG_EnemyName_Swooper, - [ACTOR_TYPE_BUZZY_BEETLE] MSG_EnemyName_BuzzyBeetle, - [ACTOR_TYPE_STONE_CHOMP] MSG_EnemyName_StoneChomp, - [ACTOR_TYPE_PIRANHA_PLANT] MSG_EnemyName_PiranhaPlant, - [ACTOR_TYPE_FOREST_FUZZY] MSG_EnemyName_ForestFuzzy, - [ACTOR_TYPE_HYPER_GOOMBA] MSG_EnemyName_HyperGoomba, - [ACTOR_TYPE_HYPER_PARAGOOMBA] MSG_EnemyName_HyperParagoomba, - [ACTOR_TYPE_HYPER_CLEFT] MSG_EnemyName_HyperCleft, - [ACTOR_TYPE_CLUBBA] MSG_EnemyName_Clubba, - [ACTOR_TYPE_SHY_GUY] MSG_EnemyName_ShyGuy, - [ACTOR_TYPE_GROOVE_GUY] MSG_EnemyName_GrooveGuy, - [ACTOR_TYPE_SKY_GUY] MSG_EnemyName_SkyGuy, - [ACTOR_TYPE_MEDI_GUY] MSG_EnemyName_MediGuy, - [ACTOR_TYPE_PYRO_GUY] MSG_EnemyName_PyroGuy, - [ACTOR_TYPE_SPY_GUY] MSG_EnemyName_SpyGuy, - [ACTOR_TYPE_FUZZIPEDE] MSG_EnemyName_Fuzzipede, - [ACTOR_TYPE_HURT_PLANT] MSG_EnemyName_HurtPlant, - [ACTOR_TYPE_M_BUSH] MSG_EnemyName_MBush, - [ACTOR_TYPE_AQUA_FUZZY] MSG_EnemyName_AquaFuzzy, - [ACTOR_TYPE_JUNGLE_FUZZY] MSG_EnemyName_JungleFuzzy, - [ACTOR_TYPE_SPEAR_GUY] MSG_EnemyName_SpearGuy, - [ACTOR_TYPE_LAVA_BUBBLE] MSG_EnemyName_LavaBubble, - [ACTOR_TYPE_SPIKE_TOP] MSG_EnemyName_SpikeTop, - [ACTOR_TYPE_PUTRID_PIRANHA] MSG_EnemyName_PutridPiranha, - [ACTOR_TYPE_LAKITU] MSG_EnemyName_Lakitu, - [ACTOR_TYPE_SPINY] MSG_EnemyName_Spiny, - [ACTOR_TYPE_MONTY_MOLE_BOSS] MSG_EnemyName_MontyMoleBoss, - [ACTOR_TYPE_BZZAP] MSG_EnemyName_Bzzap, - [ACTOR_TYPE_CRAZEE_DAYZEE] MSG_EnemyName_CrazeeDayzee, - [ACTOR_TYPE_AMAZY_DAYZEE] MSG_EnemyName_AmazyDayzee, - [ACTOR_TYPE_RUFF_PUFF] MSG_EnemyName_RuffPuff, - [ACTOR_TYPE_SPIKE] MSG_EnemyName_Spike, - [ACTOR_TYPE_GULPIT] MSG_EnemyName_Gulpit, - [ACTOR_TYPE_GULPIT_ROCKS] MSG_EnemyName_GulpitRocks, - [ACTOR_TYPE_WHITE_CLUBBA] MSG_EnemyName_WhiteClubba, - [ACTOR_TYPE_FROST_PIRANHA] MSG_EnemyName_FrostPiranha, - [ACTOR_TYPE_SWOOPULA] MSG_EnemyName_Swoopula, - [ACTOR_TYPE_DUPLIGHOST] MSG_EnemyName_Duplighost, - [ACTOR_TYPE_GHOST_GOOMBARIO] MSG_EnemyName_GhostGoombario, - [ACTOR_TYPE_GHOST_KOOPER] MSG_EnemyName_GhostKooper, - [ACTOR_TYPE_GHOST_BOMBETTE] MSG_EnemyName_GhostBombette, - [ACTOR_TYPE_GHOST_PARAKARRY] MSG_EnemyName_GhostParakarry, - [ACTOR_TYPE_GHOST_BOW] MSG_EnemyName_GhostBow, - [ACTOR_TYPE_GHOST_WATT] MSG_EnemyName_GhostWatt, - [ACTOR_TYPE_GHOST_SUSHIE] MSG_EnemyName_GhostSushie, - [ACTOR_TYPE_GHOST_LAKILESTER] MSG_EnemyName_GhostLakilester, - [ACTOR_TYPE_ALBINO_DINO] MSG_EnemyName_AlbinoDino, - [ACTOR_TYPE_EMBER] MSG_EnemyName_Ember, - [ACTOR_TYPE_BONY_BEETLE] MSG_EnemyName_BonyBeetle, - [ACTOR_TYPE_DRY_BONES] MSG_EnemyName_DryBones, - [ACTOR_TYPE_DRY_BONES2] MSG_EnemyName_DryBones, - [ACTOR_TYPE_BOMBSHELL_BLASTER] MSG_EnemyName_BombshellBlaster, - [ACTOR_TYPE_BOMBSHELL_BILL] MSG_EnemyName_BombshellBill, - [ACTOR_TYPE_HAMMER_BROS] MSG_EnemyName_HammerBros, - [ACTOR_TYPE_KOOPATROL] MSG_EnemyName_Koopatrol, - [ACTOR_TYPE_MAGIKOOPA] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_FLYING_MAGIKOOPA] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_MAGICLONE] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_FLYING_MAGICLONE] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_RED_MAGIKOOPA] MSG_EnemyName_RedMagikoopa, - [ACTOR_TYPE_FLYING_RED_MAGIKOOPA] MSG_EnemyName_RedMagikoopa, - [ACTOR_TYPE_GREEN_MAGIKOOPA] MSG_EnemyName_GreenMagikoopa, - [ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA] MSG_EnemyName_GreenMagikoopa, - [ACTOR_TYPE_YELLOW_MAGIKOOPA] MSG_EnemyName_YellowMagikoopa, - [ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA] MSG_EnemyName_YellowMagikoopa, - [ACTOR_TYPE_GRAY_MAGIKOOPA] MSG_EnemyName_GrayMagikoopa, - [ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA] MSG_EnemyName_GrayMagikoopa, - [ACTOR_TYPE_WHITE_MAGIKOOPA] MSG_EnemyName_WhiteMagikoopa, - [ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA] MSG_EnemyName_WhiteMagikoopa, - [ACTOR_TYPE_UNUSED_5B] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_5C] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_5D] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_5E] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_5F] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_60] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_61] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_62] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_63] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_64] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_65] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_66] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_67] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_68] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_69] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_6A] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_MONTY_HOLE] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_6C] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_6D] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_PLAYER] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_GOOMBARIO] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_KOOPER] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_BOMBETTE] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_PARAKARRY] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_BOW] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_WATT] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_SUSHIE] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_LAKILESTER] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_TWINK] MSG_Menus_Party_Twink, - [ACTOR_TYPE_UNUSED_78] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_UNUSED_79] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_THE_MASTER_1] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_THE_MASTER_2] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_THE_MASTER_3] MSG_EnemyName_TheMaster, - [ACTOR_TYPE_CHAN] MSG_EnemyName_Chan, - [ACTOR_TYPE_LEE] MSG_EnemyName_Lee, - [ACTOR_TYPE_LEE_GOOMBARIO] MSG_Menus_Party_Goombario, - [ACTOR_TYPE_LEE_KOOPER] MSG_Menus_Party_Kooper, - [ACTOR_TYPE_LEE_BOMBETTE] MSG_Menus_Party_Bombette, - [ACTOR_TYPE_LEE_PARAKARRY] MSG_Menus_Party_Parakarry, - [ACTOR_TYPE_LEE_BOW] MSG_Menus_Party_Bow, - [ACTOR_TYPE_LEE_WATT] MSG_Menus_Party_Watt, - [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_DUP1] MSG_EnemyName_JrTroopa, - [ACTOR_TYPE_JR_TROOPA_DUP2] MSG_EnemyName_JrTroopa, - [ACTOR_TYPE_BLUE_GOOMBA_BOSS] MSG_EnemyName_BlueGoombaBoss, - [ACTOR_TYPE_RED_GOOMBA_BOSS] MSG_EnemyName_RedGoombaBoss, - [ACTOR_TYPE_GOOMBA_KING] MSG_EnemyName_GoombaKing, - [ACTOR_TYPE_GOOMNUT_TREE] MSG_EnemyName_GoomnutTree, - [ACTOR_TYPE_GOOMBARIO_TUTOR1] MSG_Menus_Party_Goombario, - [ACTOR_TYPE_MAGIKOOPA_BOSS] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_MAGIKOOPA_DUP1] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_MAGIKOOPA_DUP2] MSG_EnemyName_Magikoopa, - [ACTOR_TYPE_FAKE_BOWSER] MSG_EnemyName_FakeBowser, - [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_YELLOW_NINJAKOOPA] MSG_EnemyName_YellowNinjakoopa, - [ACTOR_TYPE_ELDSTAR] MSG_Menus_Party_Goombario, - [ACTOR_TYPE_BUZZAR] MSG_EnemyName_Buzzar, - [ACTOR_TYPE_TUTANKOOPA] MSG_EnemyName_Tutankoopa, - [ACTOR_TYPE_CHOMP] MSG_EnemyName_Chomp, - [ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE] MSG_EnemyName_TubbaBlubba, - [ACTOR_TYPE_TUBBA_BLUBBA] MSG_EnemyName_TubbaBlubba, - [ACTOR_TYPE_TUBBA_HEART] MSG_EnemyName_TubbaHeart, - [ACTOR_TYPE_STILT_GUY] MSG_EnemyName_StiltGuy, - [ACTOR_TYPE_SHY_STACK] MSG_EnemyName_ShyStack, - [ACTOR_TYPE_SHY_SQUAD] MSG_EnemyName_ShySquad, - [ACTOR_TYPE_GENERAL_GUY] MSG_EnemyName_GeneralGuyDup, - [ACTOR_TYPE_TOY_TANK] MSG_EnemyName_GeneralGuy, - [ACTOR_TYPE_LIGHT_BULB] MSG_EnemyName_Bulb, - [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_KPA] MSG_EnemyName_AntiGuy, - [ACTOR_TYPE_BIG_LANTERN_GHOST] MSG_EnemyName_BigLanternGhost, - [ACTOR_TYPE_GOOMBA_KING_DUP] MSG_EnemyName_GoombaKing, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_1] MSG_EnemyName_LavaPiranha, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_2] MSG_EnemyName_LavaPiranha, - [ACTOR_TYPE_LAVA_BUD_PHASE_1] MSG_EnemyName_LavaBud, - [ACTOR_TYPE_LAVA_BUD_PHASE_2] MSG_EnemyName_LavaBud, - [ACTOR_TYPE_PETIT_PIRANHA] MSG_EnemyName_PetitPiranha, - [ACTOR_TYPE_PETIT_PIRANHA_BOMB] MSG_EnemyName_LavaPiranha, - [ACTOR_TYPE_KENT_C_KOOPA] MSG_EnemyName_KentCKoopa, - [ACTOR_TYPE_HUFF_N_PUFF] MSG_EnemyName_HuffNPuff, - [ACTOR_TYPE_TUFF_PUFF] MSG_EnemyName_TuffPuff, - [ACTOR_TYPE_MONSTAR] MSG_EnemyName_Monstar, - [ACTOR_TYPE_CRYSTAL_KING] MSG_EnemyName_CrystalKing, - [ACTOR_TYPE_CRYSTAL_CLONE] MSG_EnemyName_CrystalKing, - [ACTOR_TYPE_CRYSTAL_BIT] MSG_EnemyName_CrystalBit, - [ACTOR_TYPE_INTRO_BOWSER] 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, - [ACTOR_TYPE_SUPER_BLOOPER1] MSG_EnemyName_SuperBlooper, - [ACTOR_TYPE_SUPER_BLOOPER2] MSG_EnemyName_SuperBlooper, - [ACTOR_TYPE_BLOOPER_BABY] MSG_EnemyName_BlooperBaby, - [ACTOR_TYPE_LAKILESTER_DUP] MSG_EnemyName_GhostLakilester, - [ACTOR_TYPE_SLOT_MACHINE_START] MSG_EnemyName_SlotMachineStart, - [ACTOR_TYPE_SLOT_MACHINE_STOP] MSG_EnemyName_SlotMachineStop, - [ACTOR_TYPE_WHACKA] MSG_EnemyName_Whacka, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP1] MSG_EnemyName_SlotMachineStart, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP2] MSG_EnemyName_SlotMachineStart, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP3] MSG_EnemyName_SlotMachineStart, -}; - -// enemy types to ignore when deciding initialEnemyCount -s32 D_80281454[] = { - ACTOR_TYPE_UNUSED_78, - ACTOR_TYPE_GOOMNUT_TREE, - ACTOR_TYPE_FAKE_BOWSER, - ACTOR_TYPE_GOOMBA_KING_DUP, - -1 -}; - -ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT] = { - [ACTOR_TYPE_RED_GOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_RED_PARAGOOMBA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GLOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PARAGLOOMBA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPIKED_GLOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_DARK_KOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_DARK_PARATROOPA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PARAGOOMBA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPIKED_GOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FUZZY] = { - .walk = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .fly = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .jump = SOUND_FUZZY_HOP_A, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_KOOPA_TROOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PARATROOPA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOB_OMB] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOB_OMB_DUP] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BULLET_BILL] = { - .walk = { SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION }, - .fly = { SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION }, - .jump = SOUND_BULLET_BILL_MOTION, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BILL_BLASTER] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CLEFT] = { - .walk = { SOUND_20D0, SOUND_20D0 }, - .fly = { SOUND_20D0, SOUND_20D0 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MONTY_MOLE] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BANDIT] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_20C1, SOUND_20C1 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_POKEY] = { - .walk = { SOUND_POKEY_WALK, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_POKEY_MUMMY] = { - .walk = { SOUND_POKEY_WALK, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SWOOPER] = { - .walk = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BUZZY_BEETLE] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_STONE_CHOMP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PIRANHA_PLANT] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FOREST_FUZZY] = { - .walk = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .fly = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .jump = SOUND_FUZZY_HOP_A, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HYPER_GOOMBA] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HYPER_PARAGOOMBA] = { - .walk = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .fly = { SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HYPER_CLEFT] = { - .walk = { SOUND_20D0, SOUND_20D0 }, - .fly = { SOUND_20D0, SOUND_20D0 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CLUBBA] = { - .walk = { SOUND_20C4, SOUND_20C4 }, - .fly = { SOUND_20C4, SOUND_20C4 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SHY_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GROOVE_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SKY_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MEDI_GUY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_SHYGUY_FLY, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PYRO_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPY_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FUZZIPEDE] = { - .walk = { SOUND_FUZZIPEDE_MOTION, SOUND_FUZZIPEDE_MOTION }, - .fly = { SOUND_FUZZIPEDE_MOTION, SOUND_FUZZIPEDE_MOTION }, - .jump = SOUND_FUZZIPEDE_MOTION, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HURT_PLANT] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_M_BUSH] = { - .walk = { SOUND_20C6, SOUND_20C6 }, - .fly = { SOUND_20C6, SOUND_20C6 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_AQUA_FUZZY] = { - .walk = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .fly = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .jump = SOUND_FUZZY_HOP_A, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JUNGLE_FUZZY] = { - .walk = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .fly = { SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A }, - .jump = SOUND_FUZZY_HOP_A, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPEAR_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAVA_BUBBLE] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPIKE_TOP] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PUTRID_PIRANHA] = { - .walk = { SOUND_03CE, SOUND_03CE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAKITU] = { - .walk = { SOUND_FLIGHT, SOUND_FLIGHT }, - .fly = { SOUND_FLIGHT, SOUND_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_SPINY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MONTY_MOLE_BOSS] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BZZAP] = { - .walk = { SOUND_0357, SOUND_NONE }, - .fly = { SOUND_0357, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CRAZEE_DAYZEE] = { - .walk = { SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP }, - .fly = { SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP }, - .jump = SOUND_DAYZEE_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_AMAZY_DAYZEE] = { - .walk = { SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP }, - .fly = { SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP }, - .jump = SOUND_DAYZEE_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_RUFF_PUFF] = { - .walk = { SOUND_FLIGHT, SOUND_NONE }, - .fly = { SOUND_FLIGHT, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SPIKE] = { - .walk = { SOUND_FLIGHT, SOUND_NONE }, - .fly = { SOUND_FLIGHT, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GULPIT] = { - .walk = { SOUND_20C4, SOUND_20C4 }, - .fly = { SOUND_20C4, SOUND_20C4 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GULPIT_ROCKS] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_WHITE_CLUBBA] = { - .walk = { SOUND_20C4, SOUND_20C4 }, - .fly = { SOUND_20C4, SOUND_20C4 }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FROST_PIRANHA] = { - .walk = { SOUND_03CE, SOUND_03CE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SWOOPULA] = { - .walk = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_DUPLIGHOST] = { - .walk = { SOUND_DUPLIGHOST_STEP, SOUND_DUPLIGHOST_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_GOOMBARIO] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_KOOPER] = { - .walk = { SOUND_KOOPER_STEP, SOUND_KOOPER_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_BOMBETTE] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_PARAKARRY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_BOW] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_WATT] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_SUSHIE] = { - .walk = { SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GHOST_LAKILESTER] = { - .walk = { SOUND_FLIGHT, SOUND_FLIGHT }, - .fly = { SOUND_FLIGHT, SOUND_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_ALBINO_DINO] = { - .walk = { SOUND_030B, SOUND_02FD }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_EMBER] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BONY_BEETLE] = { - .walk = { SOUND_20CD, SOUND_20CD }, - .fly = { SOUND_20CD, SOUND_20CD }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_DRY_BONES] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_DRY_BONES2] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOMBSHELL_BLASTER] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOMBSHELL_BILL] = { - .walk = { SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION }, - .fly = { SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION }, - .jump = SOUND_BULLET_BILL_MOTION, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HAMMER_BROS] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_KOOPATROL] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MAGICLONE] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_MAGICLONE] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_RED_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_RED_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GREEN_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_YELLOW_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GRAY_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_WHITE_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_5B] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_5C] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_5D] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_5E] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_5F] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_60] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_61] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_62] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_63] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_64] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_65] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_66] = { - .walk = { SOUND_FLIGHT, SOUND_FLIGHT }, - .fly = { SOUND_FLIGHT, SOUND_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_UNUSED_67] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_68] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_69] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_6A] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MONTY_HOLE] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_6C] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_6D] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PLAYER] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GOOMBARIO] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_KOOPER] = { - .walk = { SOUND_KOOPER_STEP, SOUND_KOOPER_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOMBETTE] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PARAKARRY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BOW] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_WATT] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SUSHIE] = { - .walk = { SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAKILESTER] = { - .walk = { SOUND_FLIGHT, SOUND_FLIGHT }, - .fly = { SOUND_FLIGHT, SOUND_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_TWINK] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_UNUSED_78] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_UNUSED_79] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_THE_MASTER_1] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_THE_MASTER_2] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_THE_MASTER_3] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CHAN] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE] = { - .walk = { SOUND_DUPLIGHOST_STEP, SOUND_DUPLIGHOST_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_GOOMBARIO] = { - .walk = { SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_KOOPER] = { - .walk = { SOUND_KOOPER_STEP, SOUND_KOOPER_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_BOMBETTE] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_PARAKARRY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_BOW] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_WATT] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_SUSHIE] = { - .walk = { SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LEE_LAKILESTER] = { - .walk = { SOUND_FLIGHT, SOUND_FLIGHT }, - .fly = { SOUND_FLIGHT, SOUND_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { -5, -5 } - }, - [ACTOR_TYPE_KAMMY_KOOPA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_1] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_2] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_3] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_4] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_5] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_6] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_DUP1] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_JR_TROOPA_DUP2] = { - .walk = { SOUND_20C1, SOUND_20C1 }, - .fly = { SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BLUE_GOOMBA_BOSS] = { - .walk = { SOUND_GOOMBA_BROS_STEP, SOUND_GOOMBA_BROS_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_HURT, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_RED_GOOMBA_BOSS] = { - .walk = { SOUND_GOOMBA_BROS_STEP, SOUND_GOOMBA_BROS_STEP }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_HURT, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GOOMBA_KING] = { - .walk = { SOUND_20EC, SOUND_20EC }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 22, 30 } - }, - [ACTOR_TYPE_GOOMNUT_TREE] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GOOMBARIO_TUTOR1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MAGIKOOPA_BOSS] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MAGIKOOPA_DUP1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MAGIKOOPA_DUP2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_FAKE_BOWSER] = { - .walk = { SOUND_03EA, SOUND_03EA }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_KOOPA_BROS] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GREEN_NINJAKOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_RED_NINJAKOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BLACK_NINJAKOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_YELLOW_NINJAKOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_ELDSTAR] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BUZZAR] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_20EF, SOUND_20EF }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { -14, -14 } - }, - [ACTOR_TYPE_TUTANKOOPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { -3, -3 } - }, - [ACTOR_TYPE_CHOMP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE] = { - .walk = { SOUND_20F6, SOUND_20F6 }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_TUBBA_BLUBBA] = { - .walk = { SOUND_20F6, SOUND_20F6 }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_TUBBA_HEART] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_TUBBA_HEART_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_STILT_GUY] = { - .walk = { SOUND_2066, SOUND_2066 }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SHY_STACK] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 10, 10 } - }, - [ACTOR_TYPE_SHY_SQUAD] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GENERAL_GUY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_TOY_TANK] = { - .walk = { SOUND_037E, SOUND_037E }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LIGHT_BULB] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SIGNAL_GUY] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SHY_SQUAD_DUP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SHY_GUY_DUP] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_A }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_ANTI_GUY_OMO] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_ANTI_GUY_KPA] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BIG_LANTERN_GHOST] = { - .walk = { SOUND_037D, SOUND_037D }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_GOOMBA_KING_DUP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAVA_BUD_PHASE_1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAVA_BUD_PHASE_2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PETIT_PIRANHA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_PETIT_PIRANHA_BOMB] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_KENT_C_KOOPA] = { - .walk = { SOUND_20EC, SOUND_20EC }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_HUFF_N_PUFF] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_HUFF_N_PUFF_FLY, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_TUFF_PUFF] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_MONSTAR] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CRYSTAL_KING] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CRYSTAL_CLONE] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_CRYSTAL_BIT] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_INTRO_BOWSER] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_LARGE_ACTOR_JUMP, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [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_HALLWAY_BOWSER_DUP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [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_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_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_FINAL_BOWSER_2_DUP] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_BLOOPER] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 25, 25 } - }, - [ACTOR_TYPE_ELECTRO_BLOOPER1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 25, 25 } - }, - [ACTOR_TYPE_ELECTRO_BLOOPER2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 25, 25 } - }, - [ACTOR_TYPE_SUPER_BLOOPER1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 25, 25 } - }, - [ACTOR_TYPE_SUPER_BLOOPER2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 25, 25 } - }, - [ACTOR_TYPE_BLOOPER_BABY] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_LAKILESTER_DUP] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SLOT_MACHINE_START] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SLOT_MACHINE_STOP] = { - .walk = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .fly = { SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B }, - .jump = SOUND_ACTOR_JUMP, - .hurt = SOUND_ACTOR_HURT, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_WHACKA] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP1] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP2] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP3] = { - .walk = { SOUND_NONE, SOUND_NONE }, - .fly = { SOUND_NONE, SOUND_NONE }, - .jump = SOUND_NONE, - .hurt = SOUND_NONE, - .delay = { 30, 30 } - }, -}; - -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_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] = { - [ACTOR_TYPE_RED_GOOMBA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_RED_PARAGOOMBA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GLOOMBA] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PARAGLOOMBA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPIKED_GLOOMBA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_DARK_KOOPA] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_DARK_PARATROOPA] = { .tattleCam = { 0, 3, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMBA] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PARAGOOMBA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPIKED_GOOMBA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FUZZY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KOOPA_TROOPA] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PARATROOPA] = { .tattleCam = { 0, 3, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOB_OMB] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOB_OMB_DUP] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BULLET_BILL] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BILL_BLASTER] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_CLEFT] = { .tattleCam = { 0, 254, 241 }, .shadow = 0 }, - [ACTOR_TYPE_MONTY_MOLE] = { .tattleCam = { 0, 14, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BANDIT] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_POKEY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_POKEY_MUMMY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SWOOPER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BUZZY_BEETLE] = { .tattleCam = { 0, 10, 0 }, .shadow = 0 }, - [ACTOR_TYPE_STONE_CHOMP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PIRANHA_PLANT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FOREST_FUZZY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HYPER_GOOMBA] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HYPER_PARAGOOMBA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HYPER_CLEFT] = { .tattleCam = { 0, 254, 241 }, .shadow = 0 }, - [ACTOR_TYPE_CLUBBA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SHY_GUY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GROOVE_GUY] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SKY_GUY] = { .tattleCam = { 0, 15, 23 }, .shadow = 0 }, - [ACTOR_TYPE_MEDI_GUY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PYRO_GUY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPY_GUY] = { .tattleCam = { 0, 3, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FUZZIPEDE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HURT_PLANT] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_M_BUSH] = { .tattleCam = { 0, 7, 0 }, .shadow = 0 }, - [ACTOR_TYPE_AQUA_FUZZY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JUNGLE_FUZZY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPEAR_GUY] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAVA_BUBBLE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPIKE_TOP] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PUTRID_PIRANHA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAKITU] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPINY] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MONTY_MOLE_BOSS] = { .tattleCam = { 0, 14, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BZZAP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_CRAZEE_DAYZEE] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_AMAZY_DAYZEE] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_RUFF_PUFF] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SPIKE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GULPIT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GULPIT_ROCKS] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_WHITE_CLUBBA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FROST_PIRANHA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SWOOPULA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_DUPLIGHOST] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_GOOMBARIO] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_KOOPER] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_BOMBETTE] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_PARAKARRY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_BOW] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_WATT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_SUSHIE] = { .tattleCam = { 0, 8, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GHOST_LAKILESTER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_ALBINO_DINO] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_EMBER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BONY_BEETLE] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_DRY_BONES] = { .tattleCam = { 0, 3, 0 }, .shadow = 0 }, - [ACTOR_TYPE_DRY_BONES2] = { .tattleCam = { 0, 3, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOMBSHELL_BLASTER] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOMBSHELL_BILL] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HAMMER_BROS] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KOOPATROL] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MAGICLONE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_MAGICLONE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_RED_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_RED_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GREEN_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_YELLOW_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GRAY_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_WHITE_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_5B] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_5C] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_5D] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_5E] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_5F] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_60] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_61] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_62] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_63] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_64] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_65] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_66] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_67] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_68] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_69] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_6A] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MONTY_HOLE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_6C] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_6D] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PLAYER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMBARIO] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KOOPER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOMBETTE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PARAKARRY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BOW] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_WATT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SUSHIE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAKILESTER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TWINK] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_78] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_UNUSED_79] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_THE_MASTER_1] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_THE_MASTER_2] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_THE_MASTER_3] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_CHAN] = { .tattleCam = { 0, 10, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_GOOMBARIO] = { .tattleCam = { 0, 6, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_KOOPER] = { .tattleCam = { 0, 2, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_BOMBETTE] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_PARAKARRY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_BOW] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_WATT] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_SUSHIE] = { .tattleCam = { 0, 8, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LEE_LAKILESTER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KAMMY_KOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_1] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_2] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_3] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_4] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_5] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_6] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_DUP1] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_JR_TROOPA_DUP2] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BLUE_GOOMBA_BOSS] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_RED_GOOMBA_BOSS] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMBA_KING] = { .tattleCam = { 0, 6, 10 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMNUT_TREE] = { .tattleCam = { 8, 12, 17 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMBARIO_TUTOR1] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MAGIKOOPA_BOSS] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MAGIKOOPA_DUP1] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MAGIKOOPA_DUP2] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_FAKE_BOWSER] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KOOPA_BROS] = { .tattleCam = { 0, 0, 26 }, .shadow = 26 }, - [ACTOR_TYPE_GREEN_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_RED_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BLACK_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_YELLOW_NINJAKOOPA] = { .tattleCam = { 0, 4, 0 }, .shadow = 0 }, - [ACTOR_TYPE_ELDSTAR] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BUZZAR] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TUTANKOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_CHOMP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TUBBA_BLUBBA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TUBBA_HEART] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_STILT_GUY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SHY_STACK] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SHY_SQUAD] = { .tattleCam = { 0, 5, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GENERAL_GUY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TOY_TANK] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LIGHT_BULB] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SIGNAL_GUY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SHY_SQUAD_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SHY_GUY_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_ANTI_GUY_OMO] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_ANTI_GUY_KPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BIG_LANTERN_GHOST] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_GOOMBA_KING_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_1] = { .tattleCam = { 25, 250, 60 }, .shadow = 0 }, - [ACTOR_TYPE_LAVA_PIRANHA_PHASE_2] = { .tattleCam = { 25, 250, 60 }, .shadow = 0 }, - [ACTOR_TYPE_LAVA_BUD_PHASE_1] = { .tattleCam = { 0, 233, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAVA_BUD_PHASE_2] = { .tattleCam = { 0, 233, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PETIT_PIRANHA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_PETIT_PIRANHA_BOMB] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_KENT_C_KOOPA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_HUFF_N_PUFF] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_TUFF_PUFF] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_MONSTAR] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_CRYSTAL_KING] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [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_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 }, - [ACTOR_TYPE_SUPER_BLOOPER1] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SUPER_BLOOPER2] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_BLOOPER_BABY] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_LAKILESTER_DUP] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SLOT_MACHINE_START] = { .tattleCam = { 0, 226, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SLOT_MACHINE_STOP] = { .tattleCam = { 0, 226, 0 }, .shadow = 0 }, - [ACTOR_TYPE_WHACKA] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP1] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP2] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, - [ACTOR_TYPE_SLOT_MACHINE_START_DUP3] = { .tattleCam = { 0, 0, 0 }, .shadow = 0 }, -}; +#include "battle/actor_types.inc.c" u32 bMarioIdleAnims[] = { STATUS_KEY_NORMAL, ANIM_Mario1_Walk, @@ -2458,8 +319,8 @@ s32 bMessages[] = { [BTL_MSG_STAR_POWER_FILLED] MSG_Menus_StarEnergyFilled, [BTL_MSG_ATTACK_UP] MSG_Menus_AttackUp, [BTL_MSG_DEFENCE_UP] MSG_Menus_DefenseUp, - [BTL_MSG_1F] MSG_Menus_0084, - [BTL_MSG_20] MSG_Menus_0085, + [BTL_MSG_HEAL_ONE] MSG_Menus_HealOne, + [BTL_MSG_HEAL_ALL] MSG_Menus_HealAll, [BTL_MSG_ENEMY_TRANSPARENT] MSG_Menus_EnemyTransparent, [BTL_MSG_ENEMY_CHARGED] MSG_Menus_EnemyElectricCharge, @@ -3140,8 +1001,8 @@ void btl_update_message_popup(void* data) { case BTL_MSG_STAR_POWER_FILLED: case BTL_MSG_ATTACK_UP: case BTL_MSG_DEFENCE_UP: - case BTL_MSG_1F: - case BTL_MSG_20: + case BTL_MSG_HEAL_ONE: + case BTL_MSG_HEAL_ALL: case BTL_MSG_ENEMY_TRANSPARENT: case BTL_MSG_ENEMY_CHARGED: case BTL_MSG_PARTNER_INJURED: @@ -3673,8 +1534,8 @@ void func_80250818(void* data, s32 x, s32 y) { case BTL_MSG_CHARGE_JUMP_MORE: case BTL_MSG_ATTACK_UP: case BTL_MSG_DEFENCE_UP: - case BTL_MSG_1F: - case BTL_MSG_20: + case BTL_MSG_HEAL_ONE: + case BTL_MSG_HEAL_ALL: case BTL_MSG_ENEMY_TRANSPARENT: case BTL_MSG_ENEMY_CHARGED: messageID = bMessages[popup->messageIndex]; @@ -3958,8 +1819,8 @@ void btl_show_message_popup(void* data) { case BTL_MSG_CHARGE_JUMP_MORE: case BTL_MSG_ATTACK_UP: case BTL_MSG_DEFENCE_UP: - case BTL_MSG_1F: - case BTL_MSG_20: + case BTL_MSG_HEAL_ONE: + case BTL_MSG_HEAL_ALL: case BTL_MSG_ENEMY_TRANSPARENT: case BTL_MSG_ENEMY_CHARGED: if (popup->needsInit) { diff --git a/src/181810.c b/src/181810.c index d433c5cd1ed..905c9c6892f 100644 --- a/src/181810.c +++ b/src/181810.c @@ -342,7 +342,6 @@ ApiStatus EnableBattleFloorReflections(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } - ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) { BattleStatus* battleStatus = &gBattleStatus; Bytecode* args = script->ptrReadPos; @@ -366,25 +365,25 @@ ApiStatus SetDarknessMode(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_802537C0(Evt* script, s32 isInitialCall) { +ApiStatus GetDarknessStatus(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - s32 a0 = *args++; - s32 a1 = *args++; - u8 t1; - f32 t2; - s32 t3; + s32 out1 = *args++; + s32 out2 = *args++; + u8 type; + f32 amt; + s32 isLight; // While loop may not be necessary in the future - do { get_screen_overlay_params(SCREEN_LAYER_BACK, &t1, &t2); } while (0); + do { get_screen_overlay_params(SCREEN_LAYER_BACK, &type, &amt); } while (0); - if (t2 < 128.0f) { - t3 = 0; + if (amt < 128.0f) { + isLight = FALSE; } else { - t3 = 1; + isLight = TRUE; } - evt_set_variable(script, a0, 1); - evt_set_variable(script, a1, t3); + evt_set_variable(script, out1, SCREEN_LAYER_BACK); + evt_set_variable(script, out2, isLight); return ApiStatus_DONE2; } diff --git a/src/182B30.c b/src/182B30.c index 8b34bb98355..81f6dbd347f 100644 --- a/src/182B30.c +++ b/src/182B30.c @@ -1056,10 +1056,10 @@ void appendGfx_npc_actor(b32 isPartner, s32 actorIndex) { } palChanged = TRUE; } - if ((!palChanged) && !(part->flags & ACTOR_PART_FLAG_1000000)) { + if (!palChanged && !(part->flags & ACTOR_PART_FLAG_HAS_PAL_EFFECT)) { set_actor_pal_adjustment(actor, PAL_ADJUST_NONE); } - if ((!decorChanged) && !(part->flags & ACTOR_PART_FLAG_1000000)) { + if (!decorChanged && !(part->flags & ACTOR_PART_FLAG_HAS_PAL_EFFECT)) { func_80266EE8(actor, UNK_PAL_EFFECT_0); } if (actor->flags & ACTOR_FLAG_4000000) { diff --git a/src/190B20.c b/src/190B20.c index 0189ff77562..ed3e712c433 100644 --- a/src/190B20.c +++ b/src/190B20.c @@ -88,7 +88,7 @@ void create_target_list(Actor* actor, s32 arg1) { s32 row; s32 skip; - if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) { + if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) { actor->targetListLength = -1; return; } @@ -247,7 +247,7 @@ void create_target_list(Actor* actor, s32 arg1) { if (targetData->actorID == ACTOR_PLAYER || targetData->actorID == ACTOR_PARTNER) { continue; } - if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) { + if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) { skip = TRUE; goto END2; } diff --git a/src/415D90.c b/src/415D90.c index 82967398539..5220975caf5 100644 --- a/src/415D90.c +++ b/src/415D90.c @@ -301,7 +301,7 @@ BSS s32 D_802ACC60; BSS s32 D_802ACC64; BSS s32 D_802ACC68; BSS s32 D_802ACC6C; -BSS s32 D_802ACC70[24]; +BSS s32 BattleMenu_TargetHudElems[24]; BSS PopupMenu D_802ACCD0; BSS s8 BattleMenuState; BSS s8 D_802AD001; @@ -4911,7 +4911,7 @@ void btl_state_update_select_target(void) { } } - if (battleStatus->curTargetListFlags & TARGET_FLAG_80000000) { + if (battleStatus->curTargetListFlags & TARGET_FLAG_OVERRIDE) { if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) { gBattleSubState = battleStatus->acceptTargetMenuSubstate; if (gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) { @@ -4955,7 +4955,7 @@ void btl_state_update_select_target(void) { for (i = 0; i < targetListLength; i++) { id = hud_element_create(&HES_HandPointDownLoop); - D_802ACC70[i] = id; + BattleMenu_TargetHudElems[i] = id; hud_element_set_render_depth(id, 0); hud_element_set_render_pos(id, 0, -100); } @@ -5009,7 +5009,7 @@ void btl_state_update_select_target(void) { target = &actor->targetData[targetIndexList[selectedTargetIndex]]; actorFlags = get_actor(target->actorID)->flags; - id = D_802ACC70[0]; + id = BattleMenu_TargetHudElems[0]; if (actorFlags & ACTOR_FLAG_UPSIDE_DOWN) { hud_element_set_script(id, &HES_HandPointLeftLoop); @@ -5027,7 +5027,7 @@ void btl_state_update_select_target(void) { actor->targetActorID = target->actorID; actor->targetPartIndex = target->partID; for (i = 0; i < targetListLength; i++) { - hud_element_free(D_802ACC70[i]); + hud_element_free(BattleMenu_TargetHudElems[i]); } if (!(gBattleStatus.flags1 & BS_FLAGS1_PARTNER_ACTING)) { @@ -5050,7 +5050,7 @@ void btl_state_update_select_target(void) { break; case BTL_SUBSTATE_SELECT_TARGET_CANCEL: for (i = 0; i < targetListLength; i++) { - hud_element_free(D_802ACC70[i]); + hud_element_free(BattleMenu_TargetHudElems[i]); } gBattleStatus.flags1 |= BS_FLAGS1_10000 | BS_FLAGS1_MENU_OPEN; actor->flags |= ACTOR_FLAG_8000000; @@ -5122,7 +5122,7 @@ void btl_state_draw_select_target(void) { if (battleStatus->curTargetListFlags & TARGET_FLAG_ENEMY) { target = &actor->targetData[targetIndexList[selectedTargetIndex]]; anotherActor = get_actor(target->actorID); - id = D_802ACC70[0]; + id = BattleMenu_TargetHudElems[0]; targetX = target->posA.x; targetY = target->posA.y; targetZ = target->posA.z; @@ -5150,7 +5150,7 @@ void btl_state_draw_select_target(void) { for (i = 0; i < targetListLength; i++) { target = &actor->targetData[targetIndexList[i]]; anotherActor = get_actor(target->actorID); - id = D_802ACC70[i]; + id = BattleMenu_TargetHudElems[i]; targetX = target->posA.x; targetY = target->posA.y; targetZ = target->posA.z; diff --git a/src/actor_api.c b/src/actor_api.c index 9956868f82e..5ced870c5b0 100644 --- a/src/actor_api.c +++ b/src/actor_api.c @@ -2,8 +2,8 @@ #include "effects.h" #include "battle/battle.h" -extern s32 D_8029FBD0; -extern s8 D_8029FBD4; +extern s32 IsGroupHeal; +extern s8 ApplyingBuff; s32 count_targets(Actor* actor, s32 targetHomeIndex, s32 targetSelectionFlags) { BattleStatus* battleStatus = &gBattleStatus; @@ -2655,7 +2655,7 @@ ApiStatus SetActorPaletteSwapParams(Evt* script, s32 isInitialCall) { return ApiStatus_DONE2; } -ApiStatus func_8026ED20(Evt* script, s32 isInitialCall) { +ApiStatus EnableActorPaletteEffects(Evt* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 actorID = evt_get_variable(script, *args++); s32 partID = evt_get_variable(script, *args++); @@ -2670,9 +2670,9 @@ ApiStatus func_8026ED20(Evt* script, s32 isInitialCall) { actorPart = get_actor_part(actor, partID); if (enable) { - actorPart->flags |= ACTOR_FLAG_1000000; + actorPart->flags |= ACTOR_PART_FLAG_HAS_PAL_EFFECT; } else { - actorPart->flags &= ~ACTOR_FLAG_1000000; + actorPart->flags &= ~ACTOR_PART_FLAG_HAS_PAL_EFFECT; } return ApiStatus_DONE2; @@ -3231,7 +3231,7 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) { if (actor->flags & ACTOR_FLAG_UPSIDE_DOWN) { btl_cam_set_zoffset(0); } - D_8029FBD4 = 1; + ApplyingBuff = TRUE; script->functionTemp[3] = 5; script->functionTemp[0] = 1; } @@ -3312,11 +3312,11 @@ ApiStatus BoostAttack(Evt* script, s32 isInitialCall) { script->functionTemp[3]--; break; } - if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) { - D_8029FBD4 = 0; - return ApiStatus_DONE2; + if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) { + break; } - break; + ApplyingBuff = FALSE; + return ApiStatus_DONE2; } return ApiStatus_BLOCK; } @@ -3355,7 +3355,7 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) { btl_cam_set_zoffset(0); } - D_8029FBD4 = 1; + ApplyingBuff = TRUE; script->functionTemp[3] = 5; script->functionTemp[0] = 1; } @@ -3436,11 +3436,11 @@ ApiStatus BoostDefense(Evt* script, s32 isInitialCall) { script->functionTemp[3]--; break; } - if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) { - D_8029FBD4 = 0; - return ApiStatus_DONE2; + if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) { + break; } - break; + ApplyingBuff = FALSE; + return ApiStatus_DONE2; } return ApiStatus_BLOCK; } @@ -3477,7 +3477,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) { btl_cam_set_zoffset(0); } - D_8029FBD4 = 1; + ApplyingBuff = TRUE; script->functionTemp[3] = 5; script->functionTemp[0] = 1; } @@ -3501,7 +3501,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) { if (script->functionTemp[3] == 0) { fx_radial_shimmer(3, x, y, z, 1.0f, 30); btl_cam_use_preset_immediately(BTL_CAM_PRESET_19); - script->functionTemp[3] = 0x1E; + script->functionTemp[3] = 30; script->functionTemp[0] = 2; } else { script->functionTemp[3]--; @@ -3513,7 +3513,7 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) { dispatch_event_actor(actor, EVENT_RECEIVE_BUFF); btl_cam_use_preset(BTL_CAM_DEFAULT); btl_cam_move(15); - inflict_status(actor, 0xE, vanished); + inflict_status(actor, STATUS_KEY_TRANSPARENT, vanished); script->functionTemp[3] = 15; script->functionTemp[0] = 3; } else { @@ -3542,11 +3542,11 @@ ApiStatus VanishActor(Evt* script, s32 isInitialCall) { script->functionTemp[3]--; break; } - if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) { - D_8029FBD4 = 0; - return ApiStatus_DONE2; + if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) { + break; } - break; + ApplyingBuff = FALSE; + return ApiStatus_DONE2; } return ApiStatus_BLOCK; } @@ -3583,7 +3583,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) { btl_cam_set_zoffset(0); } - D_8029FBD4 = 1; + ApplyingBuff = TRUE; script->functionTemp[3] = 5; script->functionTemp[0] = 1; } @@ -3607,7 +3607,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) { if (script->functionTemp[3] == 0) { fx_snaking_static(8, x, y, z, 1.0f, 30); btl_cam_use_preset_immediately(BTL_CAM_PRESET_19); - script->functionTemp[3] = 0x1E; + script->functionTemp[3] = 30; script->functionTemp[0] = 2; } else { script->functionTemp[3]--; @@ -3619,7 +3619,7 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) { dispatch_event_actor(actor, EVENT_RECEIVE_BUFF); btl_cam_use_preset(BTL_CAM_DEFAULT); btl_cam_move(15); - inflict_status(actor, 0xB, electrified); + inflict_status(actor, STATUS_KEY_STATIC, electrified); script->functionTemp[3] = 15; script->functionTemp[0] = 3; } else { @@ -3648,11 +3648,11 @@ ApiStatus ElectrifyActor(Evt* script, s32 isInitialCall) { script->functionTemp[3]--; break; } - if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) { - D_8029FBD4 = 0; - return ApiStatus_DONE2; + if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) { + break; } - break; + ApplyingBuff = FALSE; + return ApiStatus_DONE2; } return ApiStatus_BLOCK; } @@ -3678,7 +3678,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) { actorID = script->owner1.enemyID; } hpBoost = evt_get_variable(script, *args++); - D_8029FBD0 = evt_get_variable(script, *args++); + IsGroupHeal = evt_get_variable(script, *args++); actor = get_actor(actorID); script->functionTempPtr[1] = actor; script->functionTemp[2] = hpBoost; @@ -3689,7 +3689,7 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) { btl_cam_move(10); func_8024E60C(); - D_8029FBD4 = 1; + ApplyingBuff = TRUE; script->functionTemp[3] = 5; script->functionTemp[0] = 1; } @@ -3750,9 +3750,9 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) { break; case 3: if (script->functionTemp[3] == 0) { - message = 0x20; - if (D_8029FBD0 == 0) { - message = 0x1F; + message = BTL_MSG_HEAL_ALL; + if (!IsGroupHeal) { + message = BTL_MSG_HEAL_ONE; } btl_show_variable_battle_message(message, 60, hpBoost); script->functionTemp[0] = 4; @@ -3772,17 +3772,21 @@ ApiStatus HealActor(Evt* script, s32 isInitialCall) { script->functionTemp[3]--; break; } - if ((actor->handleEventScript == NULL) || !does_script_exist(actor->handleEventScriptID)) { - D_8029FBD4 = 0; - return ApiStatus_DONE2; + if ((actor->handleEventScript != NULL) && does_script_exist(actor->handleEventScriptID)) { + break; } - break; + ApplyingBuff = FALSE; + return ApiStatus_DONE2; } return ApiStatus_BLOCK; } ApiStatus WaitForBuffDone(Evt* script, s32 isInitialCall) { - return (D_8029FBD4 == 0) * ApiStatus_DONE2; + if (!ApplyingBuff) { + return ApiStatus_DONE2; + } else { + return ApiStatus_BLOCK; + } } ApiStatus CopyBuffs(Evt* script, s32 isInitialCall) { diff --git a/src/battle/action_cmd.c b/src/battle/action_cmd.c index c02fefe5f5e..0aa13c14bb6 100644 --- a/src/battle/action_cmd.c +++ b/src/battle/action_cmd.c @@ -82,8 +82,8 @@ void* actionCommandDmaTable[] = { BSS s32 sMashMeterSmoothDivisor; BSS s32 D_8029FBC4_pad[3]; // TODO move to actor_api -BSS s32 D_8029FBD0; -BSS s8 D_8029FBD4; +BSS s32 IsGroupHeal; +BSS s8 ApplyingBuff; BSS s32 D_8029FBD8_pad[2]; #include "action_cmd.h" diff --git a/src/battle/actor_levels.h b/src/battle/actor_levels.h deleted file mode 100644 index 81993c8bf5a..00000000000 --- a/src/battle/actor_levels.h +++ /dev/null @@ -1,191 +0,0 @@ -#ifndef _ACTOR_LEVELS_H_ -#define _ACTOR_LEVELS_H_ - -#define ACTOR_LEVEL_NONE 99 - -#define ACTOR_LEVEL_GOOMBA 5 -#define ACTOR_LEVEL_PARAGOOMBA 6 -#define ACTOR_LEVEL_SPIKED_GOOMBA 6 -#define ACTOR_LEVEL_RED_GOOMBA_BOSS 20 -#define ACTOR_LEVEL_BLUE_GOOMBA_BOSS 20 -#define ACTOR_LEVEL_GOOMBA_KING 49 -#define ACTOR_LEVEL_GOOMNUT_TREE 1 - -#define ACTOR_LEVEL_GOOMBARIO_TUTOR1 99 -#define ACTOR_LEVEL_MAGIKOOPA_BOSS 32 -#define ACTOR_LEVEL_FLYING_MAGIKOOPA_BOSS 32 - -#define ACTOR_LEVEL_KOOPA_TROOPA 6 -#define ACTOR_LEVEL_PARATROOPA 6 -#define ACTOR_LEVEL_FUZZY 6 -#define ACTOR_LEVEL_BOB_OMB 6 -#define ACTOR_LEVEL_BILL_BLASTER 10 -#define ACTOR_LEVEL_BULLET_BILL 5 -#define ACTOR_LEVEL_FAKE_BOWSER 0 -#define ACTOR_LEVEL_RED_NINJAKOOPA 17 -#define ACTOR_LEVEL_BLACK_NINJAKOOPA 17 -#define ACTOR_LEVEL_GREEN_NINJAKOOPA 16 -#define ACTOR_LEVEL_YELLOW_NINJAKOOPA 16 -#define ACTOR_LEVEL_ELDSTAR 99 - -#define ACTOR_LEVEL_MONTY_MOLE 8 -#define ACTOR_LEVEL_MONTY_HOLE 9 -#define ACTOR_LEVEL_CLEFT 10 -#define ACTOR_LEVEL_WHACKA 0 -#define ACTOR_LEVEL_BUZZAR 35 -#define ACTOR_LEVEL_BANDIT 9 -#define ACTOR_LEVEL_POKEY 9 -#define ACTOR_LEVEL_POKEY_MUMMY 10 -#define ACTOR_LEVEL_BUZZY_BEETLE 10 -#define ACTOR_LEVEL_SWOOPER 10 -#define ACTOR_LEVEL_STONE_CHOMP 14 -#define ACTOR_LEVEL_TUTANKOOPA 55 -#define ACTOR_LEVEL_CHOMP 14 - -#define ACTOR_LEVEL_GLOOMBA 11 -#define ACTOR_LEVEL_PARAGLOOMBA 11 -#define ACTOR_LEVEL_SPIKED_GLOOMBA 12 -#define ACTOR_LEVEL_DARK_KOOPA 18 -#define ACTOR_LEVEL_DARK_PARATROOPA 18 -#define ACTOR_LEVEL_BLOOPER_BABY 0 -#define ACTOR_LEVEL_BLOOPER 44 -#define ACTOR_LEVEL_ELECTRO_BLOOPER1 50 -#define ACTOR_LEVEL_SUPER_BLOOPER1 65 - -#define ACTOR_LEVEL_FOREST_FUZZY 11 -#define ACTOR_LEVEL_PIRANHA_PLANT 11 -#define ACTOR_LEVEL_HYPER_GOOMBA 12 -#define ACTOR_LEVEL_HYPER_PARAGOOMBA 12 -#define ACTOR_LEVEL_HYPER_CLEFT 15 -#define ACTOR_LEVEL_CLUBBA 13 -#define ACTOR_LEVEL_TUBBA_BLUBBA_INVINCIBLE 70 -#define ACTOR_LEVEL_TUBBA_BLUBBA 0 -#define ACTOR_LEVEL_TUBBA_HEART 0 - -#define ACTOR_LEVEL_SHY_GUY 14 -#define ACTOR_LEVEL_SKY_GUY 14 -#define ACTOR_LEVEL_MEDI_GUY 14 -#define ACTOR_LEVEL_GROOVE_GUY 15 -#define ACTOR_LEVEL_PYRO_GUY 15 -#define ACTOR_LEVEL_SPY_GUY 15 -#define ACTOR_LEVEL_ANTI_GUY 42 -#define ACTOR_LEVEL_SLOT_MACHINE_STOP 99 -#define ACTOR_LEVEL_SLOT_MACHINE_START 99 -#define ACTOR_LEVEL_BIG_LANTERN_GHOST 42 -#define ACTOR_LEVEL_GENERAL_GUY 73 -#define ACTOR_LEVEL_LIGHT_BULB 0 -#define ACTOR_LEVEL_TOY_TANK 0 -#define ACTOR_LEVEL_SHY_SQUAD 0 -#define ACTOR_LEVEL_STILT_GUY 0 -#define ACTOR_LEVEL_SHY_STACK 0 -#define ACTOR_LEVEL_SIGNAL_GUY 0 -#define ACTOR_LEVEL_SHY_SQUAD_DUP 0 -#define ACTOR_LEVEL_SHY_GUY_DUP 0 - -#define ACTOR_LEVEL_FUZZIPEDE 43 -#define ACTOR_LEVEL_JUNGLE_FUZZY 16 -#define ACTOR_LEVEL_SPEAR_GUY 16 -#define ACTOR_LEVEL_HURT_PLANT 16 -#define ACTOR_LEVEL_M_BUSH 16 -#define ACTOR_LEVEL_PUTRID_PIRANHA 17 -#define ACTOR_LEVEL_LAVA_BUBBLE 17 -#define ACTOR_LEVEL_SPIKE_TOP 17 -#define ACTOR_LEVEL_LAVA_PIRANHA_PHASE_1 45 -#define ACTOR_LEVEL_LAVA_BUD_PHASE_1 0 -#define ACTOR_LEVEL_PETIT_PIRANHA_BOMB 0 -#define ACTOR_LEVEL_PETIT_PIRANHA 0 - -#define ACTOR_LEVEL_BZZAP 19 -#define ACTOR_LEVEL_CRAZEE_DAYZEE 19 -#define ACTOR_LEVEL_AMAZY_DAYZEE 100 -#define ACTOR_LEVEL_MONTY_MOLE_BOSS 19 -#define ACTOR_LEVEL_RUFF_PUFF 19 -#define ACTOR_LEVEL_LAKITU 20 -#define ACTOR_LEVEL_SPINY 19 -#define ACTOR_LEVEL_SPIKE 40 -#define ACTOR_LEVEL_HUFF_N_PUFF 80 -#define ACTOR_LEVEL_TUFF_PUFF 0 - -#define ACTOR_LEVEL_FROST_PIRANHA 22 -#define ACTOR_LEVEL_GULPIT 22 -#define ACTOR_LEVEL_GULPIT_ROCKS 0 -#define ACTOR_LEVEL_MONSTAR 45 -#define ACTOR_LEVEL_SWOOPULA 22 -#define ACTOR_LEVEL_WHITE_CLUBBA 23 -#define ACTOR_LEVEL_DUPLIGHOST 23 -#define ACTOR_LEVEL_GHOST_GOOMBARIO 23 -#define ACTOR_LEVEL_GHOST_KOOPER 23 -#define ACTOR_LEVEL_GHOST_BOMBETTE 23 -#define ACTOR_LEVEL_GHOST_PARAKARRY 23 -#define ACTOR_LEVEL_GHOST_BOW 23 -#define ACTOR_LEVEL_GHOST_WATT 23 -#define ACTOR_LEVEL_GHOST_SUSHIE 23 -#define ACTOR_LEVEL_GHOST_LAKILESTER 23 -#define ACTOR_LEVEL_ALBINO_DINO 23 -#define ACTOR_LEVEL_CRYSTAL_KING 85 -#define ACTOR_LEVEL_CRYSTAL_BIT 0 -#define ACTOR_LEVEL_CRYSTAL_CLONE 0 - -#define ACTOR_LEVEL_EMBER 24 -#define ACTOR_LEVEL_KOOPATROL 25 -#define ACTOR_LEVEL_BONY_BEETLE 25 -#define ACTOR_LEVEL_HAMMER_BROS 27 -#define ACTOR_LEVEL_BOMBSHELL_BLASTER 27 -#define ACTOR_LEVEL_BOMBSHELL_BILL 24 -#define ACTOR_LEVEL_DRY_BONES 30 -#define ACTOR_LEVEL_MAGIKOOPA 26 -#define ACTOR_LEVEL_FLYING_MAGIKOOPA 26 -#define ACTOR_LEVEL_MAGICLONE 26 -#define ACTOR_LEVEL_FLYING_MAGICLONE 26 - -#define ACTOR_LEVEL_WHITE_MAGIKOOPA 21 -#define ACTOR_LEVEL_GRAY_MAGIKOOPA 21 -#define ACTOR_LEVEL_RED_MAGIKOOPA 21 -#define ACTOR_LEVEL_YELLOW_MAGIKOOPA 21 -#define ACTOR_LEVEL_GREEN_MAGIKOOPA 21 -#define ACTOR_LEVEL_FLYING_WHITE_MAGIKOOPA 21 -#define ACTOR_LEVEL_FLYING_GRAY_MAGIKOOPA 21 -#define ACTOR_LEVEL_FLYING_RED_MAGIKOOPA 21 -#define ACTOR_LEVEL_FLYING_YELLOW_MAGIKOOPA 21 -#define ACTOR_LEVEL_FLYING_GREEN_MAGIKOOPA 21 - -#define ACTOR_LEVEL_KAMMY_KOOPA 99 -#define ACTOR_LEVEL_INTRO_BOWSER 0 -#define ACTOR_LEVEL_HALLWAY_BOWSER 100 -#define ACTOR_LEVEL_FINAL_BOWSER_1 0 -#define ACTOR_LEVEL_FINAL_BOWSER_2 0 - -#define ACTOR_LEVEL_JR_TROOPA_1 41 -#define ACTOR_LEVEL_JR_TROOPA_2 44 -#define ACTOR_LEVEL_JR_TROOPA_3 52 -#define ACTOR_LEVEL_JR_TROOPA_4 59 -#define ACTOR_LEVEL_JR_TROOPA_5 65 -#define ACTOR_LEVEL_JR_TROOPA_6 74 - -#define ACTOR_LEVEL_KENT_C_KOOPA 55 - -#define ACTOR_LEVEL_CHAN 0 -#define ACTOR_LEVEL_LEE 0 -#define ACTOR_LEVEL_LEE_GOOMBARIO 0 -#define ACTOR_LEVEL_LEE_KOOPER 0 -#define ACTOR_LEVEL_LEE_BOMBETTE 0 -#define ACTOR_LEVEL_LEE_PARAKARRY 0 -#define ACTOR_LEVEL_LEE_BOW 0 -#define ACTOR_LEVEL_LEE_WATT 0 -#define ACTOR_LEVEL_LEE_SUSHIE 0 -#define ACTOR_LEVEL_LEE_LAKILESTER 0 -#define ACTOR_LEVEL_THE_MASTER_1 0 -#define ACTOR_LEVEL_THE_MASTER_2 0 -#define ACTOR_LEVEL_THE_MASTER_3 0 - -#define ACTOR_LEVEL_GOOMBARIO 0 -#define ACTOR_LEVEL_KOOPER 0 -#define ACTOR_LEVEL_BOMBETTE 0 -#define ACTOR_LEVEL_PARAKARRY 0 -#define ACTOR_LEVEL_BOW 0 -#define ACTOR_LEVEL_WATT 0 -#define ACTOR_LEVEL_SUSHIE 0 -#define ACTOR_LEVEL_LAKILESTER 0 -#define ACTOR_LEVEL_TWINK 0 - -#endif _ACTOR_LEVELS_H_ diff --git a/src/battle/actors.yaml b/src/battle/actors.yaml new file mode 100644 index 00000000000..7c4df3064dd --- /dev/null +++ b/src/battle/actors.yaml @@ -0,0 +1,2336 @@ +- RedGoomba: + level: 6 + nameMsg: MSG_EnemyName_RedGoomba + tattleMsg: MSG_NONE + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- RedParagoomba: + level: 6 + nameMsg: MSG_EnemyName_RedParagoomba + tattleMsg: MSG_NONE + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Gloomba: + level: 11 + nameMsg: MSG_EnemyName_Gloomba + tattleMsg: MSG_EnemyTattle_Gloomba + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- Paragloomba: + level: 11 + nameMsg: MSG_EnemyName_Paragloomba + tattleMsg: MSG_EnemyTattle_Paragloomba + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- SpikedGloomba: + level: 12 + nameMsg: MSG_EnemyName_SpikedGloomba + tattleMsg: MSG_EnemyTattle_SpikedGloomba + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- DarkKoopa: + level: 18 + nameMsg: MSG_EnemyName_DarkKoopa + tattleMsg: MSG_EnemyTattle_DarkKoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- DarkParatroopa: + level: 18 + nameMsg: MSG_EnemyName_DarkParatroopa + tattleMsg: MSG_EnemyTattle_DarkParatroopa + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 3, 0 ] + shadowOffset: 0 +- Goomba: + level: 5 + nameMsg: MSG_EnemyName_Goomba + tattleMsg: MSG_EnemyTattle_Goomba + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- Paragoomba: + level: 6 + nameMsg: MSG_EnemyName_Paragoomba + tattleMsg: MSG_EnemyTattle_Paragoomba + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- SpikedGoomba: + level: 6 + nameMsg: MSG_EnemyName_SpikedGoomba + tattleMsg: MSG_EnemyTattle_SpikedGoomba + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- Fuzzy: + level: 6 + nameMsg: MSG_EnemyName_Fuzzy + tattleMsg: MSG_EnemyTattle_Fuzzy + walkSound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + flySound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + jumpSound: SOUND_FUZZY_HOP_A + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- KoopaTroopa: + level: 6 + nameMsg: MSG_EnemyName_KoopaTroopa + tattleMsg: MSG_EnemyTattle_KoopaTroopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- Paratroopa: + level: 6 + nameMsg: MSG_EnemyName_Paratroopa + tattleMsg: MSG_EnemyTattle_Paratroopa + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 3, 0 ] + shadowOffset: 0 +- BobOmb: + level: 6 + nameMsg: MSG_EnemyName_BobOmb + tattleMsg: MSG_EnemyTattle_BobOmb + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- BobOmb_Dup: + level: 6 + nameMsg: MSG_EnemyName_BobOmb + tattleMsg: MSG_EnemyTattle_BobOmb + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- BulletBill: + level: 5 + nameMsg: MSG_EnemyName_BulletBill + tattleMsg: MSG_EnemyTattle_BulletBill + walkSound: [ SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION ] + flySound: [ SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION ] + jumpSound: SOUND_BULLET_BILL_MOTION + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- BillBlaster: + level: 10 + nameMsg: MSG_EnemyName_BillBlaster + tattleMsg: MSG_EnemyTattle_BillBlaster + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- Cleft: + level: 10 + nameMsg: MSG_EnemyName_Cleft + tattleMsg: MSG_EnemyTattle_Cleft + walkSound: [ SOUND_20D0, SOUND_20D0 ] + flySound: [ SOUND_20D0, SOUND_20D0 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 254, 241 ] + shadowOffset: 0 +- MontyMole: + level: 8 + nameMsg: MSG_EnemyName_MontyMole + tattleMsg: MSG_EnemyTattle_MontyMole + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 14, 0 ] + shadowOffset: 0 +- Bandit: + level: 9 + nameMsg: MSG_EnemyName_Bandit + tattleMsg: MSG_EnemyTattle_Bandit + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_20C1, SOUND_20C1 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- Pokey: + level: 9 + nameMsg: MSG_EnemyName_Pokey + tattleMsg: MSG_EnemyTattle_Pokey + walkSound: [ SOUND_POKEY_WALK, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- PokeyMummy: + level: 10 + nameMsg: MSG_EnemyName_PokeyMummy + tattleMsg: MSG_EnemyTattle_PokeyMummy + walkSound: [ SOUND_POKEY_WALK, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Swooper: + level: 10 + nameMsg: MSG_EnemyName_Swooper + tattleMsg: MSG_EnemyTattle_Swooper + walkSound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- BuzzyBeetle: + level: 10 + nameMsg: MSG_EnemyName_BuzzyBeetle + tattleMsg: MSG_EnemyTattle_BuzzyBeetle + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 10, 0 ] + shadowOffset: 0 +- StoneChomp: + level: 14 + nameMsg: MSG_EnemyName_StoneChomp + tattleMsg: MSG_EnemyTattle_StoneChomp + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- PiranhaPlant: + level: 11 + nameMsg: MSG_EnemyName_PiranhaPlant + tattleMsg: MSG_EnemyTattle_PiranhaPlant + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ForestFuzzy: + level: 11 + nameMsg: MSG_EnemyName_ForestFuzzy + tattleMsg: MSG_EnemyTattle_ForestFuzzy + walkSound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + flySound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + jumpSound: SOUND_FUZZY_HOP_A + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- HyperGoomba: + level: 12 + nameMsg: MSG_EnemyName_HyperGoomba + tattleMsg: MSG_EnemyTattle_HyperGoomba + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- HyperParagoomba: + level: 12 + nameMsg: MSG_EnemyName_HyperParagoomba + tattleMsg: MSG_EnemyTattle_HyperParagoomba + walkSound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + flySound: [ SOUND_PARAGOOMBA_FLY, SOUND_PARAGOOMBA_FLY ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- HyperCleft: + level: 15 + nameMsg: MSG_EnemyName_HyperCleft + tattleMsg: MSG_EnemyTattle_HyperCleft + walkSound: [ SOUND_20D0, SOUND_20D0 ] + flySound: [ SOUND_20D0, SOUND_20D0 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 254, 241 ] + shadowOffset: 0 +- Clubba: + level: 13 + nameMsg: MSG_EnemyName_Clubba + tattleMsg: MSG_EnemyTattle_Clubba + walkSound: [ SOUND_20C4, SOUND_20C4 ] + flySound: [ SOUND_20C4, SOUND_20C4 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ShyGuy: + level: 14 + nameMsg: MSG_EnemyName_ShyGuy + tattleMsg: MSG_EnemyTattle_ShyGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- GrooveGuy: + level: 15 + nameMsg: MSG_EnemyName_GrooveGuy + tattleMsg: MSG_EnemyTattle_GrooveGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- SkyGuy: + level: 14 + nameMsg: MSG_EnemyName_SkyGuy + tattleMsg: MSG_EnemyTattle_SkyGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 15, 23 ] + shadowOffset: 0 +- MediGuy: + level: 14 + nameMsg: MSG_EnemyName_MediGuy + tattleMsg: MSG_EnemyTattle_MediGuy + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_SHYGUY_FLY, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- PyroGuy: + level: 15 + nameMsg: MSG_EnemyName_PyroGuy + tattleMsg: MSG_EnemyTattle_PyroGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SpyGuy: + level: 15 + nameMsg: MSG_EnemyName_SpyGuy + tattleMsg: MSG_EnemyTattle_SpyGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 3, 0 ] + shadowOffset: 0 +- Fuzzipede: + level: 43 + nameMsg: MSG_EnemyName_Fuzzipede + tattleMsg: MSG_NONE + walkSound: [ SOUND_FUZZIPEDE_MOTION, SOUND_FUZZIPEDE_MOTION ] + flySound: [ SOUND_FUZZIPEDE_MOTION, SOUND_FUZZIPEDE_MOTION ] + jumpSound: SOUND_FUZZIPEDE_MOTION + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- HurtPlant: + level: 16 + nameMsg: MSG_EnemyName_HurtPlant + tattleMsg: MSG_EnemyTattle_HurtPlant + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- MBush: + level: 16 + nameMsg: MSG_EnemyName_MBush + tattleMsg: MSG_EnemyTattle_MBush + walkSound: [ SOUND_20C6, SOUND_20C6 ] + flySound: [ SOUND_20C6, SOUND_20C6 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 7, 0 ] + shadowOffset: 0 +- AquaFuzzy: + level: 16 + nameMsg: MSG_EnemyName_AquaFuzzy + tattleMsg: MSG_NONE + walkSound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + flySound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + jumpSound: SOUND_FUZZY_HOP_A + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- JungleFuzzy: + level: 16 + nameMsg: MSG_EnemyName_JungleFuzzy + tattleMsg: MSG_EnemyTattle_JungleFuzzy + walkSound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + flySound: [ SOUND_FUZZY_HOP_A, SOUND_FUZZY_HOP_A ] + jumpSound: SOUND_FUZZY_HOP_A + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- SpearGuy: + level: 16 + nameMsg: MSG_EnemyName_SpearGuy + tattleMsg: MSG_EnemyTattle_SpearGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- LavaBubble: + level: 17 + nameMsg: MSG_EnemyName_LavaBubble + tattleMsg: MSG_EnemyTattle_LavaBubble + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SpikeTop: + level: 17 + nameMsg: MSG_EnemyName_SpikeTop + tattleMsg: MSG_EnemyTattle_SpikeTop + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- PutridPiranha: + level: 17 + nameMsg: MSG_EnemyName_PutridPiranha + tattleMsg: MSG_EnemyTattle_PutridPiranha + walkSound: [ SOUND_03CE, SOUND_03CE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Lakitu: + level: 20 + nameMsg: MSG_EnemyName_Lakitu + tattleMsg: MSG_EnemyTattle_Lakitu + walkSound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + flySound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Spiny: + level: 19 + nameMsg: MSG_EnemyName_Spiny + tattleMsg: MSG_EnemyTattle_Spiny + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- MontyMoleBoss: + level: 19 + nameMsg: MSG_EnemyName_MontyMoleBoss + tattleMsg: MSG_EnemyTattle_MontyMoleBoss + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 14, 0 ] + shadowOffset: 0 +- Bzzap: + level: 19 + nameMsg: MSG_EnemyName_Bzzap + tattleMsg: MSG_EnemyTattle_Bzzap + walkSound: [ SOUND_0357, SOUND_NONE ] + flySound: [ SOUND_0357, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- CrazeeDayzee: + level: 19 + nameMsg: MSG_EnemyName_CrazeeDayzee + tattleMsg: MSG_EnemyTattle_CrazeeDayzee + walkSound: [ SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP ] + flySound: [ SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP ] + jumpSound: SOUND_DAYZEE_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- AmazyDayzee: + level: 100 + nameMsg: MSG_EnemyName_AmazyDayzee + tattleMsg: MSG_EnemyTattle_AmazyDayzee + walkSound: [ SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP ] + flySound: [ SOUND_DAYZEE_STEP, SOUND_DAYZEE_STEP ] + jumpSound: SOUND_DAYZEE_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- RuffPuff: + level: 19 + nameMsg: MSG_EnemyName_RuffPuff + tattleMsg: MSG_EnemyTattle_RuffPuff + walkSound: [ SOUND_FLIGHT, SOUND_NONE ] + flySound: [ SOUND_FLIGHT, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Spike: + level: 40 + nameMsg: MSG_EnemyName_Spike + tattleMsg: MSG_EnemyTattle_Spike + walkSound: [ SOUND_FLIGHT, SOUND_NONE ] + flySound: [ SOUND_FLIGHT, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Gulpit: + level: 22 + nameMsg: MSG_EnemyName_Gulpit + tattleMsg: MSG_EnemyTattle_Gulpit + walkSound: [ SOUND_20C4, SOUND_20C4 ] + flySound: [ SOUND_20C4, SOUND_20C4 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GulpitRocks: + level: 0 + nameMsg: MSG_EnemyName_GulpitRocks + tattleMsg: MSG_EnemyTattle_GulpitRocks + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- WhiteClubba: + level: 23 + nameMsg: MSG_EnemyName_WhiteClubba + tattleMsg: MSG_EnemyTattle_WhiteClubba + walkSound: [ SOUND_20C4, SOUND_20C4 ] + flySound: [ SOUND_20C4, SOUND_20C4 ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FrostPiranha: + level: 22 + nameMsg: MSG_EnemyName_FrostPiranha + tattleMsg: MSG_EnemyTattle_FrostPiranha + walkSound: [ SOUND_03CE, SOUND_03CE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Swoopula: + level: 22 + nameMsg: MSG_EnemyName_Swoopula + tattleMsg: MSG_EnemyTattle_Swoopula + walkSound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Duplighost: + level: 23 + nameMsg: MSG_EnemyName_Duplighost + tattleMsg: MSG_EnemyTattle_Duplighost + walkSound: [ SOUND_DUPLIGHOST_STEP, SOUND_DUPLIGHOST_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GhostGoombario: + level: 23 + nameMsg: MSG_EnemyName_GhostGoombario + tattleMsg: MSG_EnemyTattle_GhostGoombario + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- GhostKooper: + level: 23 + nameMsg: MSG_EnemyName_GhostKooper + tattleMsg: MSG_EnemyTattle_GhostKooper + walkSound: [ SOUND_KOOPER_STEP, SOUND_KOOPER_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- GhostBombette: + level: 23 + nameMsg: MSG_EnemyName_GhostBombette + tattleMsg: MSG_EnemyTattle_GhostBombette + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- GhostParakarry: + level: 23 + nameMsg: MSG_EnemyName_GhostParakarry + tattleMsg: MSG_EnemyTattle_GhostParakarry + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GhostBow: + level: 23 + nameMsg: MSG_EnemyName_GhostBow + tattleMsg: MSG_EnemyTattle_GhostBow + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GhostWatt: + level: 23 + nameMsg: MSG_EnemyName_GhostWatt + tattleMsg: MSG_EnemyTattle_GhostWatt + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GhostSushie: + level: 23 + nameMsg: MSG_EnemyName_GhostSushie + tattleMsg: MSG_EnemyTattle_GhostSushie + walkSound: [ SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 8, 0 ] + shadowOffset: 0 +- GhostLakilester: + level: 23 + nameMsg: MSG_EnemyName_GhostLakilester + tattleMsg: MSG_EnemyTattle_GhostLakilester + walkSound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + flySound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- AlbinoDino: + level: 23 + nameMsg: MSG_EnemyName_AlbinoDino + tattleMsg: MSG_EnemyTattle_AlbinoDino + walkSound: [ SOUND_030B, SOUND_02FD ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Ember: + level: 24 + nameMsg: MSG_EnemyName_Ember + tattleMsg: MSG_EnemyTattle_Ember + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- BonyBeetle: + level: 25 + nameMsg: MSG_EnemyName_BonyBeetle + tattleMsg: MSG_EnemyTattle_BonyBeetle + walkSound: [ SOUND_20CD, SOUND_20CD ] + flySound: [ SOUND_20CD, SOUND_20CD ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- DryBones: + level: 30 + nameMsg: MSG_EnemyName_DryBones + tattleMsg: MSG_EnemyTattle_DryBones + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 3, 0 ] + shadowOffset: 0 +- DryBones2: + level: 30 + nameMsg: MSG_EnemyName_DryBones + tattleMsg: MSG_EnemyTattle_DryBones + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 3, 0 ] + shadowOffset: 0 +- BombshellBlaster: + level: 27 + nameMsg: MSG_EnemyName_BombshellBlaster + tattleMsg: MSG_EnemyTattle_BombshellBlaster + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- BombshellBill: + level: 24 + nameMsg: MSG_EnemyName_BombshellBill + tattleMsg: MSG_EnemyTattle_BombshellBill + walkSound: [ SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION ] + flySound: [ SOUND_BULLET_BILL_MOTION, SOUND_BULLET_BILL_MOTION ] + jumpSound: SOUND_BULLET_BILL_MOTION + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- HammerBros: + level: 27 + nameMsg: MSG_EnemyName_HammerBros + tattleMsg: MSG_EnemyTattle_HammerBros + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- Koopatrol: + level: 25 + nameMsg: MSG_EnemyName_Koopatrol + tattleMsg: MSG_EnemyTattle_Koopatrol + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Magikoopa: + level: 26 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_Magikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingMagikoopa: + level: 26 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagikoopaDup + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Magiclone: + level: 26 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_Magiclone + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingMagiclone: + level: 26 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagicloneDup + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- RedMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_RedMagikoopa + tattleMsg: MSG_EnemyTattle_RedMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingRedMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_RedMagikoopa + tattleMsg: MSG_EnemyTattle_FlyingRedMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GreenMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_GreenMagikoopa + tattleMsg: MSG_EnemyTattle_GreenMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingGreenMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_GreenMagikoopa + tattleMsg: MSG_EnemyTattle_FlyingGreenMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- YellowMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_YellowMagikoopa + tattleMsg: MSG_EnemyTattle_YellowMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingYellowMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_YellowMagikoopa + tattleMsg: MSG_EnemyTattle_FlyingYellowMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GrayMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_GrayMagikoopa + tattleMsg: MSG_EnemyTattle_GrayMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingGrayMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_GrayMagikoopa + tattleMsg: MSG_EnemyTattle_FlyingGrayMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- WhiteMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_WhiteMagikoopa + tattleMsg: MSG_EnemyTattle_FlyingWhiteMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingWhiteMagikoopa: + level: 21 + nameMsg: MSG_EnemyName_WhiteMagikoopa + tattleMsg: MSG_EnemyTattle_WhiteMagikoopa + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_5b: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_5c: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_5d: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_5e: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_5f: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_60: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_61: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_62: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_63: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_64: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_65: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_66: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + flySound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_67: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- Unused_68: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_69: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_6a: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- MontyHole: + level: 9 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_6c: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_6d: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Player: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Goombario: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Kooper: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_KOOPER_STEP, SOUND_KOOPER_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Bombette: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Parakarry: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Bow: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Watt: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Sushie: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Lakilester: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + flySound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Twink: + level: 0 + nameMsg: MSG_Menus_Party_Twink + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_78: + ignoreDuringCount: TRUE + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Unused_79: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- TheMaster_1: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster1 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- TheMaster_2: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster2 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- TheMaster_3: + level: 0 + nameMsg: MSG_EnemyName_TheMaster + tattleMsg: MSG_EnemyTattle_TheMaster3 + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- Chan: + level: 0 + nameMsg: MSG_EnemyName_Chan + tattleMsg: MSG_EnemyTattle_Chan + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 10, 0 ] + shadowOffset: 0 +- Lee: + level: 0 + nameMsg: MSG_EnemyName_Lee + tattleMsg: MSG_EnemyTattle_Lee + walkSound: [ SOUND_DUPLIGHOST_STEP, SOUND_DUPLIGHOST_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LeeGoombario: + level: 0 + nameMsg: MSG_Menus_Party_Goombario + tattleMsg: MSG_EnemyTattle_LeeGoombario + walkSound: [ SOUND_GOOMBA_STEP, SOUND_GOOMBA_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 6, 0 ] + shadowOffset: 0 +- LeeKooper: + level: 0 + nameMsg: MSG_Menus_Party_Kooper + tattleMsg: MSG_EnemyTattle_LeeKooper + walkSound: [ SOUND_KOOPER_STEP, SOUND_KOOPER_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 2, 0 ] + shadowOffset: 0 +- LeeBombette: + level: 0 + nameMsg: MSG_Menus_Party_Bombette + tattleMsg: MSG_EnemyTattle_LeeBombette + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- LeeParakarry: + level: 0 + nameMsg: MSG_Menus_Party_Parakarry + tattleMsg: MSG_EnemyTattle_LeeParakarry + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LeeBow: + level: 0 + nameMsg: MSG_Menus_Party_Bow + tattleMsg: MSG_EnemyTattle_LeeBow + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LeeWatt: + level: 0 + nameMsg: MSG_Menus_Party_Watt + tattleMsg: MSG_EnemyTattle_LeeWatt + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LeeSushie: + level: 0 + nameMsg: MSG_Menus_Party_Sushie + tattleMsg: MSG_EnemyTattle_LeeSushie + walkSound: [ SOUND_SUSHIE_STEP, SOUND_SUSHIE_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 8, 0 ] + shadowOffset: 0 +- LeeLakilester: + level: 0 + nameMsg: MSG_Menus_Party_Lakilester + tattleMsg: MSG_EnemyTattle_LeeLakilester + walkSound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + flySound: [ SOUND_FLIGHT, SOUND_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ -5, -5 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- KammyKoopa: + level: 99 + nameMsg: MSG_EnemyName_KammyKoopa + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- JrTroopa_1: + level: 41 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_NONE + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopa_2: + level: 44 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa1 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopa_3: + level: 52 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa2 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopa_4: + level: 59 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa3 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopa_5: + level: 65 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa4 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopa_6: + level: 74 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa5 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopaDup1: + level: 74 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa5 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- JrTroopaDup2: + level: 74 + nameMsg: MSG_EnemyName_JrTroopa + tattleMsg: MSG_EnemyTattle_JrTroopa5 + walkSound: [ SOUND_20C1, SOUND_20C1 ] + flySound: [ SOUND_ACTOR_FLIGHT, SOUND_ACTOR_FLIGHT ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- BlueGoombaBoss: + level: 20 + nameMsg: MSG_EnemyName_BlueGoombaBoss + tattleMsg: MSG_EnemyTattle_BlueGoombaBoss + walkSound: [ SOUND_GOOMBA_BROS_STEP, SOUND_GOOMBA_BROS_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_HURT + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- RedGoombaBoss: + level: 20 + nameMsg: MSG_EnemyName_RedGoombaBoss + tattleMsg: MSG_EnemyTattle_RedGoombaBoss + walkSound: [ SOUND_GOOMBA_BROS_STEP, SOUND_GOOMBA_BROS_STEP ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_HURT + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- GoombaKing: + level: 49 + nameMsg: MSG_EnemyName_GoombaKing + tattleMsg: MSG_EnemyTattle_GoombaKing + walkSound: [ SOUND_20EC, SOUND_20EC ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 22, 30 ] + tattleCamOffset: [ 0, 6, 10 ] + shadowOffset: 0 +- GoomnutTree: + ignoreDuringCount: TRUE + level: 1 + nameMsg: MSG_EnemyName_GoomnutTree + tattleMsg: MSG_EnemyTattle_GoomnutTree + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 8, 12, 17 ] + shadowOffset: 0 +- GoombarioTutor1: + level: 99 + nameMsg: MSG_Menus_Party_Goombario + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- MagikoopaBoss: + level: 32 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagikoopaBoss + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FlyingMagikoopaBoss: + level: 32 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagikoopaBossDup + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- MagikoopaDup1: + level: 0 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagikoopaBoss + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- MagikoopaDup2: + level: 0 + nameMsg: MSG_EnemyName_Magikoopa + tattleMsg: MSG_EnemyTattle_MagikoopaBossDup + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- FakeBowser: + ignoreDuringCount: TRUE + level: 0 + nameMsg: MSG_EnemyName_FakeBowser + tattleMsg: MSG_EnemyTattle_FakeBowser + walkSound: [ SOUND_03EA, SOUND_03EA ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- KoopaBros: + level: 0 + nameMsg: MSG_EnemyName_KoopaBros + tattleMsg: MSG_EnemyTattle_KoopaBros + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 26 ] + shadowOffset: 26 +- GreenNinjakoopa: + level: 16 + nameMsg: MSG_EnemyName_GreenNinjakoopa + tattleMsg: MSG_EnemyTattle_GreenNinjakoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- RedNinjakoopa: + level: 17 + nameMsg: MSG_EnemyName_RedNinjakoopa + tattleMsg: MSG_EnemyTattle_RedNinjakoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- BlackNinjakoopa: + level: 17 + nameMsg: MSG_EnemyName_BlueNinjakoopa + tattleMsg: MSG_EnemyTattle_BlueNinjakoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- YellowNinjakoopa: + level: 16 + nameMsg: MSG_EnemyName_YellowNinjakoopa + tattleMsg: MSG_EnemyTattle_YellowNinjakoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 4, 0 ] + shadowOffset: 0 +- Eldstar: + level: 99 + nameMsg: MSG_Menus_Party_Goombario + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Buzzar: + level: 35 + nameMsg: MSG_EnemyName_Buzzar + tattleMsg: MSG_EnemyTattle_Buzzar + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_20EF, SOUND_20EF ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ -14, -14 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Tutankoopa: + level: 55 + nameMsg: MSG_EnemyName_Tutankoopa + tattleMsg: MSG_EnemyTattle_Tutankoopa + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ -3, -3 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Chomp: + level: 14 + nameMsg: MSG_EnemyName_Chomp + tattleMsg: MSG_EnemyTattle_Chomp + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- TubbaBlubbaInvincible: + level: 70 + nameMsg: MSG_EnemyName_TubbaBlubba + tattleMsg: MSG_EnemyTattle_TubbaBlubba + walkSound: [ SOUND_20F6, SOUND_20F6 ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- TubbaBlubba: + level: 0 + nameMsg: MSG_EnemyName_TubbaBlubba + tattleMsg: MSG_EnemyTattle_TubbaBlubbaInvincible + walkSound: [ SOUND_20F6, SOUND_20F6 ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- TubbaHeart: + level: 0 + nameMsg: MSG_EnemyName_TubbaHeart + tattleMsg: MSG_EnemyTattle_TubbaHeart + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_TUBBA_HEART_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- StiltGuy: + level: 0 + nameMsg: MSG_EnemyName_StiltGuy + tattleMsg: MSG_EnemyTattle_StiltGuy + walkSound: [ SOUND_2066, SOUND_2066 ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ShyStack: + level: 0 + nameMsg: MSG_EnemyName_ShyStack + tattleMsg: MSG_EnemyTattle_ShyStack + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 10, 10 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ShySquad: + level: 0 + nameMsg: MSG_EnemyName_ShySquad + tattleMsg: MSG_EnemyTattle_ShySquad + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 5, 0 ] + shadowOffset: 0 +- GeneralGuy: + level: 73 + nameMsg: MSG_EnemyName_GeneralGuyDup + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ToyTank: + level: 0 + nameMsg: MSG_EnemyName_GeneralGuy + tattleMsg: MSG_EnemyTattle_GeneralGuy + walkSound: [ SOUND_037E, SOUND_037E ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LightBulb: + level: 0 + nameMsg: MSG_EnemyName_Bulb + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SignalGuy: + level: 0 + nameMsg: MSG_EnemyName_ShyGuy + tattleMsg: MSG_EnemyTattle_ShyGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ShySquadRedux: + level: 0 + nameMsg: MSG_EnemyName_ShySquadRedux + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ShySquadStub: + level: 0 + nameMsg: MSG_EnemyName_ShyGuy + tattleMsg: MSG_EnemyTattle_ShyGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_A ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- AntiGuyOmo: + level: 42 + nameMsg: MSG_EnemyName_AntiGuy + tattleMsg: MSG_EnemyTattle_AntiGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- AntiGuyKpa: + level: 42 + nameMsg: MSG_EnemyName_AntiGuy + tattleMsg: MSG_EnemyTattle_AntiGuy + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- BigLanternGhost: + level: 42 + nameMsg: MSG_EnemyName_BigLanternGhost + tattleMsg: MSG_EnemyTattle_BigLanternGhost + walkSound: [ SOUND_037D, SOUND_037D ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- GoombaKing_Dup: + ignoreDuringCount: TRUE + level: 49 + nameMsg: MSG_EnemyName_GoombaKing + tattleMsg: MSG_EnemyTattle_GoombaKing + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- LavaPiranha_Phase_1: + level: 45 + nameMsg: MSG_EnemyName_LavaPiranha + tattleMsg: MSG_EnemyTattle_LavaPiranhaPhase1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 25, 250, 60 ] + shadowOffset: 0 +- LavaPiranha_Phase_2: + level: 45 + nameMsg: MSG_EnemyName_LavaPiranha + tattleMsg: MSG_EnemyTattle_LavaPiranhaPhase2 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 25, 250, 60 ] + shadowOffset: 0 +- LavaBud_Phase_1: + level: 0 + nameMsg: MSG_EnemyName_LavaBud + tattleMsg: MSG_EnemyTattle_LavaBudPhase1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 233, 0 ] + shadowOffset: 0 +- LavaBud_Phase_2: + level: 0 + nameMsg: MSG_EnemyName_LavaBud + tattleMsg: MSG_EnemyTattle_LavaBudPhase2 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 233, 0 ] + shadowOffset: 0 +- PetitPiranha: + level: 0 + nameMsg: MSG_EnemyName_PetitPiranha + tattleMsg: MSG_EnemyTattle_PetitPiranha + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- PetitPiranhaBomb: + level: 0 + nameMsg: MSG_EnemyName_LavaPiranha + tattleMsg: MSG_EnemyTattle_LavaPiranhaPhase1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- KentCKoopa: + level: 55 + nameMsg: MSG_EnemyName_KentCKoopa + tattleMsg: MSG_EnemyTattle_KentCKoopa + walkSound: [ SOUND_20EC, SOUND_20EC ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- HuffNPuff: + level: 80 + nameMsg: MSG_EnemyName_HuffNPuff + tattleMsg: MSG_EnemyTattle_HuffNPuff + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_HUFF_N_PUFF_FLY, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- TuffPuff: + level: 0 + nameMsg: MSG_EnemyName_TuffPuff + tattleMsg: MSG_EnemyTattle_TuffPuff + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Monstar: + level: 45 + nameMsg: MSG_EnemyName_Monstar + tattleMsg: MSG_EnemyTattle_Monstar + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- CrystalKing: + level: 85 + nameMsg: MSG_EnemyName_CrystalKing + tattleMsg: MSG_EnemyTattle_CrystalKing + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- CrystalClone: + level: 0 + nameMsg: MSG_EnemyName_CrystalKing + tattleMsg: MSG_EnemyTattle_CrystalClone + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- CrystalBit: + level: 0 + nameMsg: MSG_EnemyName_CrystalBit + tattleMsg: MSG_EnemyTattle_CrystalBit + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- IntroBowser: + level: 0 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_NONE + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_LARGE_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 241 +- HallwayBowser: + level: 100 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_HallwayBowser + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_LARGE_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 241 +- HallwayBowser_Dup: + level: 100 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_HallwayBowser + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 241 +- FinalBowser_1: + level: 0 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_FinalBowser1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_LARGE_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 241, 19, 45 ] + shadowOffset: 241 +- FinalBowser_1_Dup: + level: 0 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_FinalBowser1 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 241 +- FinalBowser_2: + level: 0 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_FinalBowser2 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_LARGE_ACTOR_JUMP + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 241, 19, 45 ] + shadowOffset: 241 +- FinalBowser_2_Dup: + level: 0 + nameMsg: MSG_EnemyName_Bowser + tattleMsg: MSG_EnemyTattle_FinalBowser2 + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 241 +- Blooper: + level: 44 + nameMsg: MSG_EnemyName_Blooper + tattleMsg: MSG_EnemyTattle_Blooper + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 25, 25 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ElectroBlooper1: + level: 50 + nameMsg: MSG_EnemyName_ElectroBlooper + tattleMsg: MSG_EnemyTattle_ElectroBlooper + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 25, 25 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- ElectroBlooper2: + level: 50 + nameMsg: MSG_EnemyName_ElectroBlooper + tattleMsg: MSG_EnemyTattle_ElectroBlooper + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 25, 25 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SuperBlooper1: + level: 65 + nameMsg: MSG_EnemyName_SuperBlooper + tattleMsg: MSG_EnemyTattle_SuperBlooper + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 25, 25 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SuperBlooper2: + level: 65 + nameMsg: MSG_EnemyName_SuperBlooper + tattleMsg: MSG_EnemyTattle_SuperBlooper + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 25, 25 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- BlooperBaby: + level: 0 + nameMsg: MSG_EnemyName_BlooperBaby + tattleMsg: MSG_EnemyTattle_BlooperBaby + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- Lakilester_Dup: + level: 0 + nameMsg: MSG_EnemyName_GhostLakilester + tattleMsg: MSG_EnemyTattle_GhostLakilester + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SlotMachineStart: + level: 99 + nameMsg: MSG_EnemyName_SlotMachineStart + tattleMsg: MSG_EnemyTattle_SlotMachineStart + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 226, 0 ] + shadowOffset: 0 +- SlotMachineStop: + level: 99 + nameMsg: MSG_EnemyName_SlotMachineStop + tattleMsg: MSG_EnemyTattle_SlotMachineStop + walkSound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + flySound: [ SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B ] + jumpSound: SOUND_ACTOR_JUMP + hurtSound: SOUND_ACTOR_HURT + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 226, 0 ] + shadowOffset: 0 +- Whacka: + level: 0 + nameMsg: MSG_EnemyName_Whacka + tattleMsg: MSG_EnemyTattle_Whacka + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SlotMachineStartDup1: + level: 0 + nameMsg: MSG_EnemyName_SlotMachineStart + tattleMsg: MSG_EnemyTattle_SlotMachineStart + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SlotMachineStartDup2: + level: 0 + nameMsg: MSG_EnemyName_SlotMachineStart + tattleMsg: MSG_EnemyTattle_SlotMachineStart + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 +- SlotMachineStartDup3: + level: 0 + nameMsg: MSG_EnemyName_SlotMachineStart + tattleMsg: MSG_EnemyTattle_SlotMachineStart + walkSound: [ SOUND_NONE, SOUND_NONE ] + flySound: [ SOUND_NONE, SOUND_NONE ] + jumpSound: SOUND_NONE + hurtSound: SOUND_NONE + stepDelay: [ 30, 30 ] + tattleCamOffset: [ 0, 0, 0 ] + shadowOffset: 0 diff --git a/src/battle/area/flo2/actor/huff_n_puff.c b/src/battle/area/flo2/actor/huff_n_puff.c index d243ee831a4..651a2c253b3 100644 --- a/src/battle/area/flo2/actor/huff_n_puff.c +++ b/src/battle/area/flo2/actor/huff_n_puff.c @@ -1456,15 +1456,15 @@ EvtScript N(EVS_Attack_BodySlam) = { EVT_DIV(LVar0, LVar1) EVT_SWITCH(LVar0) EVT_CASE_LE(20) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_LE(40) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_LE(60) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_LE(80) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_DEFAULT - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_SLAM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_END_SWITCH EVT_SWITCH(LVar0) EVT_CASE_OR_EQ(HIT_RESULT_HIT) diff --git a/src/battle/area/hos/actor/magikoopa.c b/src/battle/area/hos/actor/magikoopa.c index ab21469fb8a..e979241c7a0 100644 --- a/src/battle/area/hos/actor/magikoopa.c +++ b/src/battle/area/hos/actor/magikoopa.c @@ -419,9 +419,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0) EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE) @@ -443,9 +443,9 @@ EvtScript N(EVS_Flying_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0) EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE) @@ -1503,14 +1503,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorAttackBoost, LVar0, LVar4) EVT_IF_LT(LVar4, MAX_ATTACK_BOOST) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1521,7 +1521,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1616,14 +1616,14 @@ EvtScript N(EVS_Move_TryBoostDefense) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorDefenseBoost, LVar0, LVar4) EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1634,7 +1634,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1729,14 +1729,14 @@ EvtScript N(EVS_Move_TryElectrify) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1747,7 +1747,7 @@ EvtScript N(EVS_Move_TryElectrify) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1847,14 +1847,14 @@ EvtScript N(EVS_Move_TryTransparent) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1865,7 +1865,7 @@ EvtScript N(EVS_Move_TryTransparent) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/area/omo2/actor/animation.inc.c b/src/battle/area/omo2/actor/animation.inc.c index ffbe8fdb6bc..ca13562212c 100644 --- a/src/battle/area/omo2/actor/animation.inc.c +++ b/src/battle/area/omo2/actor/animation.inc.c @@ -1,213 +1,213 @@ #include "animation_script.h" #include "mapfs/omo_bt07_shape.h" -StaticAnimatorNode N(8021A2A0) = { +StaticAnimatorNode N(Node02) = { .pos = { 79.0f, 47.0f, 0.0f }, .vertexStartOffset = -1, - .modelID = 29, + .modelID = MODEL_tanp, }; -StaticAnimatorNode N(8021A2CC) = { +StaticAnimatorNode N(Node23) = { .pos = { 80.0f, 15.0f, 0.0f }, - .sibling = &N(8021A2A0), + .sibling = &N(Node02), .vertexStartOffset = -1, - .modelID = 32, + .modelID = MODEL_h2, }; -StaticAnimatorNode N(8021A2F8) = { +StaticAnimatorNode N(Node22) = { .pos = { 79.0f, 20.0f, 30.0f }, - .sibling = &N(8021A2CC), + .sibling = &N(Node23), .vertexStartOffset = -1, - .modelID = 34, + .modelID = MODEL_sya2, }; -StaticAnimatorNode N(8021A324) = { +StaticAnimatorNode N(Node21) = { .pos = { 80.0f, 20.0f, 30.0f }, - .sibling = &N(8021A2F8), + .sibling = &N(Node22), .vertexStartOffset = -1, - .modelID = 35, + .modelID = MODEL_h3, }; -StaticAnimatorNode N(8021A350) = { +StaticAnimatorNode N(Node20) = { .pos = { 80.0f, 20.0f, -29.0f }, - .sibling = &N(8021A324), + .sibling = &N(Node21), .vertexStartOffset = -1, - .modelID = 37, + .modelID = MODEL_n2, }; -StaticAnimatorNode N(8021A37C) = { +StaticAnimatorNode N(Node19) = { .pos = { 79.0f, 20.0f, -30.0f }, - .sibling = &N(8021A350), + .sibling = &N(Node20), .vertexStartOffset = -1, - .modelID = 38, + .modelID = MODEL_h4, }; -StaticAnimatorNode N(8021A3A8) = { +StaticAnimatorNode N(Node18) = { .rot = { 0, 0, -6 }, .pos = { 97.0f, 73.0f, 0.0f }, - .sibling = &N(8021A37C), + .sibling = &N(Node19), .vertexStartOffset = -1, - .modelID = 40, + .modelID = MODEL_kyu2, }; -StaticAnimatorNode N(8021A3D4) = { +StaticAnimatorNode N(Node17) = { .rot = { 0, 0, -6 }, .pos = { 97.0f, 73.0f, 0.0f }, - .sibling = &N(8021A3A8), + .sibling = &N(Node18), .vertexStartOffset = -1, - .modelID = 41, + .modelID = MODEL_kyu1, }; -StaticAnimatorNode N(8021A400) = { +StaticAnimatorNode N(Node16) = { .rot = { 0, 0, -6 }, .pos = { 97.0f, 73.0f, 0.0f }, - .sibling = &N(8021A3D4), + .sibling = &N(Node17), .vertexStartOffset = -1, - .modelID = 42, + .modelID = MODEL_kyu, }; -StaticAnimatorNode N(8021A42C) = { +StaticAnimatorNode N(Node15) = { .rot = { 0, 0, -6 }, .pos = { 97.0f, 55.0f, 0.0f }, - .sibling = &N(8021A400), + .sibling = &N(Node16), .vertexStartOffset = -1, - .modelID = 44, + .modelID = MODEL_en2, }; -StaticAnimatorNode N(8021A458) = { +StaticAnimatorNode N(Node14) = { .rot = { 0, 0, -6 }, .pos = { 97.0f, 54.0f, 0.0f }, - .sibling = &N(8021A42C), + .sibling = &N(Node15), .vertexStartOffset = -1, - .modelID = 45, + .modelID = MODEL_en, }; -StaticAnimatorNode N(8021A484) = { +StaticAnimatorNode N(Node13) = { .pos = { 112.0f, 48.0f, 0.0f }, - .sibling = &N(8021A458), + .sibling = &N(Node14), .vertexStartOffset = -1, - .modelID = 47, + .modelID = MODEL_nob, }; -StaticAnimatorNode N(8021A4B0) = { +StaticAnimatorNode N(Node12) = { .rot = { 0, 0, -16383 }, .pos = { 77.0f, 60.0f, 0.0f }, - .sibling = &N(8021A484), + .sibling = &N(Node13), .vertexStartOffset = -1, - .modelID = 49, + .modelID = MODEL_futa, }; -StaticAnimatorNode N(8021A4DC) = { +StaticAnimatorNode N(Node11) = { .rot = { 0, 0, 5469 }, .pos = { 60.0f, 9.0f, 34.0f }, - .sibling = &N(8021A4B0), + .sibling = &N(Node12), .vertexStartOffset = -1, - .modelID = 52, + .modelID = MODEL_a1, }; -StaticAnimatorNode N(8021A508) = { +StaticAnimatorNode N(Node10) = { .rot = { 0, 0, 5469 }, .pos = { 60.0f, 9.0f, 34.0f }, - .sibling = &N(8021A4DC), + .sibling = &N(Node11), .vertexStartOffset = -1, - .modelID = 51, + .modelID = MODEL_n3, }; -StaticAnimatorNode N(8021A534) = { +StaticAnimatorNode N(Node09) = { .rot = { 0, 0, 5708 }, .pos = { 100.0f, 10.0f, 34.0f }, - .sibling = &N(8021A508), + .sibling = &N(Node10), .vertexStartOffset = -1, - .modelID = 55, + .modelID = MODEL_a2, }; -StaticAnimatorNode N(8021A560) = { +StaticAnimatorNode N(Node08) = { .rot = { 0, 0, 5708 }, .pos = { 100.0f, 10.0f, 34.0f }, - .sibling = &N(8021A534), + .sibling = &N(Node09), .vertexStartOffset = -1, - .modelID = 54, + .modelID = MODEL_n4, }; -StaticAnimatorNode N(8021A58C) = { +StaticAnimatorNode N(Node07) = { .rot = { 0, 0, 5708 }, .pos = { 59.0f, 9.0f, -34.0f }, - .sibling = &N(8021A560), + .sibling = &N(Node08), .vertexStartOffset = -1, - .modelID = 57, + .modelID = MODEL_n5, }; -StaticAnimatorNode N(8021A5B8) = { +StaticAnimatorNode N(Node06) = { .rot = { 0, 0, 5708 }, .pos = { 59.0f, 9.0f, -34.0f }, - .sibling = &N(8021A58C), + .sibling = &N(Node07), .vertexStartOffset = -1, - .modelID = 58, + .modelID = MODEL_a3, }; -StaticAnimatorNode N(8021A5E4) = { +StaticAnimatorNode N(Node05) = { .rot = { 0, 0, 5708 }, .pos = { 100.0f, 9.0f, -34.0f }, - .sibling = &N(8021A5B8), + .sibling = &N(Node06), .vertexStartOffset = -1, - .modelID = 60, + .modelID = MODEL_n6, }; -StaticAnimatorNode N(8021A610) = { +StaticAnimatorNode N(Node04) = { .rot = { 0, 0, 5708 }, .pos = { 100.0f, 9.0f, -34.0f }, - .sibling = &N(8021A5E4), + .sibling = &N(Node05), .vertexStartOffset = -1, - .modelID = 61, + .modelID = MODEL_a4, }; -StaticAnimatorNode N(8021A63C) = { +StaticAnimatorNode N(Node03) = { .pos = { 65.0f, 46.0f, 0.0f }, - .sibling = &N(8021A610), + .sibling = &N(Node04), .vertexStartOffset = -1, - .modelID = 63, + .modelID = MODEL_g106, }; -StaticAnimatorNode N(8021A668) = { +StaticAnimatorNode N(Node01) = { .pos = { 79.0f, 47.0f, 0.0f }, - .sibling = &N(8021A63C), + .sibling = &N(Node03), .vertexStartOffset = -1, - .modelID = 30, + .modelID = MODEL_h1, }; -StaticAnimatorNode N(8021A694) = { - .child = &N(8021A668), +StaticAnimatorNode N(Root) = { + .child = &N(Node01), }; StaticAnimatorNode* toy_tank_model[] = { - &N(8021A694), - &N(8021A668), - &N(8021A2A0), - &N(8021A63C), - &N(8021A610), - &N(8021A5E4), - &N(8021A5B8), - &N(8021A58C), - &N(8021A560), - &N(8021A534), - &N(8021A508), - &N(8021A4DC), - &N(8021A4B0), - &N(8021A484), - &N(8021A458), - &N(8021A42C), - &N(8021A400), - &N(8021A3D4), - &N(8021A3A8), - &N(8021A37C), - &N(8021A350), - &N(8021A324), - &N(8021A2F8), - &N(8021A2CC), + &N(Root), + &N(Node01), + &N(Node02), + &N(Node03), + &N(Node04), + &N(Node05), + &N(Node06), + &N(Node07), + &N(Node08), + &N(Node09), + &N(Node10), + &N(Node11), + &N(Node12), + &N(Node13), + &N(Node14), + &N(Node15), + &N(Node16), + &N(Node17), + &N(Node18), + &N(Node19), + &N(Node20), + &N(Node21), + &N(Node22), + &N(Node23), NULL, }; -AnimScript toy_tank_as_shake = { +AnimScript AS_ToyTank_Shake = { as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) as_SetScale(1, 1.0, 1.0, 1.0) @@ -1356,7 +1356,7 @@ AnimScript toy_tank_as_shake = { as_End }; -AnimScript toy_tank_as_fall_apart = { +AnimScript AS_ToyTank_FallApart = { as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) as_SetScale(1, 1.0, 1.0, 1.0) @@ -1928,7 +1928,7 @@ AnimScript toy_tank_as_fall_apart = { as_End }; -AnimScript toy_tank_as_close_hatch = { +AnimScript AS_ToyTank_CloseHatch = { as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) as_SetScale(1, 1.0, 1.0, 1.0) @@ -2922,7 +2922,7 @@ AnimScript toy_tank_as_close_hatch = { as_End }; -AnimScript toy_tank_as_open_hatch = { +AnimScript AS_ToyTank_OpenHatch = { as_DisableMirroring as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) @@ -3088,7 +3088,7 @@ AnimScript toy_tank_as_open_hatch = { as_End }; -AnimScript toy_tank_as_5 = { +AnimScript AS_ToyTank_Unused1 = { as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) as_SetScale(1, 1.0, 1.0, 1.0) @@ -3702,7 +3702,7 @@ AnimScript toy_tank_as_5 = { as_End }; -AnimScript toy_tank_as_move_forward = { +AnimScript AS_ToyTank_MoveForward = { as_DisableMirroring as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) @@ -7139,7 +7139,7 @@ AnimScript toy_tank_as_move_forward = { as_End }; -AnimScript toy_tank_as_7 = { +AnimScript AS_ToyTank_Unused2 = { as_SetRotation(0, 0.0, 0.0, 0.0) as_SetPos(0, 0, 0, 0) as_SetScale(0, 1.0, 1.0, 1.0) @@ -7753,7 +7753,7 @@ AnimScript toy_tank_as_7 = { as_End }; -AnimScript toy_tank_as_idle = { +AnimScript AS_ToyTank_Idle = { as_SetRotation(1, 0.0, 0.0, 0.0) as_SetPos(1, 0, 0, 0) as_SetScale(1, 1.0, 1.0, 1.0) diff --git a/src/battle/area/omo2/actor/boss_common.h b/src/battle/area/omo2/actor/boss_common.h new file mode 100644 index 00000000000..b1ffd1b4fdd --- /dev/null +++ b/src/battle/area/omo2/actor/boss_common.h @@ -0,0 +1,49 @@ +#ifndef _GENERAL_GUY_COMMON_H_ +#define _GENERAL_GUY_COMMON_H_ + +#include "mapfs/omo_bt07_shape.h" + +enum N(BattleCommon) { + ACTOR_GENERAL = ACTOR_ENEMY0, + ACTOR_TANK = ACTOR_ENEMY1, + ACTOR_BULB = ACTOR_ENEMY2, + ACTOR_WAVE_A = ACTOR_ENEMY3, + ACTOR_WAVE_B = ACTOR_ENEMY4, + // actor vars for general guy + AVAR_General_DoingTankPhase = 0, + AVAR_General_Flags = 1, + AVAR_GeneralFlag_SquadFled = 0x1, + AVAR_GeneralFlag_ComplainElectric = 0x2, + AVAR_GeneralFlag_ComplainUnfair = 0x4, + AVAR_GeneralFlag_ComplainGeneric = 0x8, + AVAR_General_WavesDefeated = 2, + // actor vars for the toy tank + AVAR_Tank_ShouldTetherGeneral = 0, + AVAR_Tank_SquadPhase = 1, + AVAL_SquadPhase_Init = 0, + AVAL_SquadPhase_Defeated = 1, + AVAL_SquadPhase_Done = 2, + AVAL_SquadPhase_Next = 3, // next wave (stilt guys) have arrived + AVAR_Tank_StiltPhase = 2, + AVAL_StiltPhase_Init = 0, + AVAL_StiltPhase_1 = 1, + AVAL_StiltPhase_Defeated = 2, + AVAL_StiltPhase_Done = 3, + AVAL_StiltPhase_Next = 4, // next wave (shy stacks) have arrived + AVAR_Tank_StackPhase = 3, + AVAL_StackPhase_Init = 0, + AVAL_StackPhase_1 = 1, + AVAL_StackPhase_Defeated = 2, + AVAL_StackPhase_Done = 3, + AVAR_Tank_UnusedPhase = 4, + AVAL_UnusedPhase_Init = 0, + AVAL_UnusedPhase_Defeated = 1, + AVAL_UnusedPhase_Done = 2, + AVAR_Tank_BulbGlowEffect = 5, + AVAR_Tank_UsingBulbAttack = 6, // indicates bulb is glowing (not really used) + AVAR_Tank_ModulateDarkness = 7, // have darkness controlled by Watt and the bulb (unused) + AVAR_Tank_DarknessAmt = 8, + AVAR_Tank_HandlingEvent = 9, +}; + +#endif // _GENERAL_GUY_COMMON_H_ diff --git a/src/battle/area/omo2/actor/general_guy.c b/src/battle/area/omo2/actor/general_guy.c index f550fdca72d..0be372de7b3 100644 --- a/src/battle/area/omo2/actor/general_guy.c +++ b/src/battle/area/omo2/actor/general_guy.c @@ -5,41 +5,36 @@ #include "sprite/npc/GeneralGuy.h" #include "sprite/npc/GeneralGuyBomb.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_general_guy extern ActorBlueprint b_area_omo2_1_shy_squad; -extern AnimScript toy_tank_as_close_hatch; -extern AnimScript toy_tank_as_open_hatch; +extern AnimScript AS_ToyTank_CloseHatch; +extern AnimScript AS_ToyTank_OpenHatch; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(attack_throw_bomb); -extern EvtScript N(attack_lightning_shot); +extern EvtScript N(EVS_TakeTurn); +extern EvtScript N(EVS_Attack_ThrowBomb); +extern EvtScript N(EVS_Attack_ShootLightning); extern s32 N(DefaultAnims)[]; -extern s32 N(IdleAnimations_bomb)[]; -extern Formation N(formation_shy_squad); +extern s32 N(BombAnims)[]; +extern Formation N(ShySquadFormation); enum N(ActorPartIDs) { - PRT_MAIN = 1, - PRT_2 = 2, -}; - -enum N(ActorVars) { - AVAR_Unk_0 = 0, - AVAR_Unk_1 = 1, - AVAR_Unk_2 = 2, - AVAR_Unk_6 = 6, - AVAR_Unk_7 = 7, + PRT_MAIN = 1, + PRT_BOMB = 2, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_BOMB_TOSS = 4, + DMG_LIGHTNING_PLAYER = 5, + DMG_LIGHTNING_PARTNER = 2, }; #include "common/FadeBackgroundDarken.inc.c" - #include "common/FadeBackgroundLighten.inc.c" s32 N(DefenseTable)[] = { @@ -87,11 +82,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000, - .index = PRT_2, + .index = PRT_BOMB, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_bomb), + .idleAnimations = N(BombAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -137,12 +132,13 @@ s32 N(DefaultAnims)[] = { STATUS_END, }; -s32 N(IdleAnimations_bomb)[] = { +s32 N(BombAnims)[] = { STATUS_KEY_NORMAL, ANIM_GeneralGuyBomb_Anim00, STATUS_END, }; -s32 N(IdleAnimations3)[] = { +// unused +s32 N(PanicAnims)[] = { STATUS_KEY_NORMAL, ANIM_GeneralGuy_Anim0E, STATUS_KEY_POISON, ANIM_GeneralGuy_Anim0E, STATUS_KEY_STOP, ANIM_GeneralGuy_Anim00, @@ -175,19 +171,19 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase))) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 0) - EVT_CALL(LoadBattleSection, 41) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_squad)), TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, FALSE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_Flags, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_General_WavesDefeated, 0) + EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_1) + EVT_CALL(SummonEnemy, EVT_PTR(N(ShySquadFormation)), TRUE) EVT_RETURN EVT_END }; EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; @@ -285,27 +281,27 @@ EvtScript N(EVS_HandleEvent) = { }; EvtScript N(EVS_TakeTurn) = { - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) - EVT_IF_EQ(LVar0, 0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_General_DoingTankPhase, LVar0) + EVT_IF_FALSE(LVar0) EVT_RETURN EVT_END_IF - EVT_CALL(ActorExists, ACTOR_ENEMY2, LVar0) - EVT_IF_NE(LVar0, FALSE) + EVT_CALL(ActorExists, ACTOR_BULB, LVar0) + EVT_IF_TRUE(LVar0) EVT_CALL(GetStatusFlags, ACTOR_PARTNER, LVar0) EVT_IF_NOT_FLAG(LVar0, STATUS_FLAG_KO) EVT_CALL(RandInt, 100, LVar0) EVT_IF_LT(LVar0, 60) - EVT_EXEC_WAIT(N(attack_lightning_shot)) + EVT_EXEC_WAIT(N(EVS_Attack_ShootLightning)) EVT_RETURN EVT_END_IF EVT_END_IF EVT_END_IF - EVT_EXEC_WAIT(N(attack_throw_bomb)) + EVT_EXEC_WAIT(N(EVS_Attack_ThrowBomb)) EVT_RETURN EVT_END }; -EvtScript N(attack_throw_bomb) = { +EvtScript N(EVS_Attack_ThrowBomb) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -319,87 +315,87 @@ EvtScript N(attack_throw_bomb) = { EVT_CALL(MoveBattleCamOver, 30) EVT_END_THREAD EVT_WAIT(5) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch)) EVT_WAIT(20) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0B) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 8) EVT_ADD(LVar1, 27) EVT_SUB(LVar2, 4) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim00) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim00) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_WAIT(15) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim0A) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_WAIT(6) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 8) EVT_ADD(LVar1, 20) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_GeneralGuyBomb_Anim01) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_BOMB, ANIM_GeneralGuyBomb_Anim01) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE) EVT_SWITCH(LVar0) EVT_CASE_EQ(HIT_RESULT_MISS) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 120) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(12.0)) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(12.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_CASE_EQ(HIT_RESULT_LUCKY) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 50) EVT_SET(LVar1, -5) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0)) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1)) - EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 30, EASING_LINEAR) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1)) + EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 30, EASING_LINEAR) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 65) EVT_SET(LVar1, -5) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(6.0)) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1)) - EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(6.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1)) + EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_SWITCH - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_2, SOUND_02F9) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_BOMB, SOUND_02F9) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_2, EVT_FLOAT(14.0)) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_2, EVT_FLOAT(0.1)) - EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_2, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(14.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_BOMB, EVT_FLOAT(0.1)) + EVT_CALL(FlyPartTo, ACTOR_SELF, PRT_BOMB, LVar0, LVar1, LVar2, 0, 15, EASING_LINEAR) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 0, 0, 0, 0, 0) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_2, SOUND_BOMB_BLAST) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_BOMB, SOUND_BOMB_BLAST) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_BOMB, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_WAIT(2) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_BOMB_TOSS, BS_FLAGS1_SP_EVT_ACTIVE) EVT_SWITCH(LVarF) EVT_CASE_OR_EQ(HIT_RESULT_HIT) EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE) @@ -407,25 +403,25 @@ EvtScript N(attack_throw_bomb) = { EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_WAIT(30) EVT_IF_EQ(LVarF, HIT_RESULT_10) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_RETURN EVT_END_IF EVT_END_CASE_GROUP EVT_END_SWITCH - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -EvtScript N(attack_lightning_shot) = { +EvtScript N(EVS_Attack_ShootLightning) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -437,24 +433,24 @@ EvtScript N(attack_lightning_shot) = { EVT_CALL(SetBattleCamOffsetZ, 30) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206A) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0B) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206A) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_OpenHatch)) EVT_WAIT(10) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0) - EVT_IF_NE(LVar0, 0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0) + EVT_IF_TRUE(LVar0) EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_2) EVT_END_IF EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim03) EVT_WAIT(20) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 1) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, TRUE) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_THREAD EVT_CALL(N(FadeBackgroundDarken)) EVT_END_THREAD - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_THREAD EVT_LOOP(4) EVT_CALL(PlaySoundAtActor, LVar8, SOUND_ELECTRIC_BUZZ) @@ -469,7 +465,7 @@ EvtScript N(attack_lightning_shot) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(HIT_RESULT_MISS) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5) EVT_CALL(PlaySound, SOUND_2069) @@ -478,34 +474,34 @@ EvtScript N(attack_lightning_shot) = { EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE) EVT_IF_NE(LVar0, HIT_RESULT_MISS) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5) EVT_CALL(PlaySound, SOUND_2069) EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(12) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PARTNER, BS_FLAGS1_SP_EVT_ACTIVE) EVT_ELSE - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(20) EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0) - EVT_IF_NE(LVar0, 0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0) + EVT_IF_TRUE(LVar0) EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3) EVT_END_IF EVT_CALL(N(FadeBackgroundLighten)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_CASE_EQ(HIT_RESULT_LUCKY) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5) EVT_CALL(PlaySound, SOUND_2069) @@ -513,80 +509,78 @@ EvtScript N(attack_lightning_shot) = { EVT_WAIT(12) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, 0, LVar5) EVT_CALL(PlaySound, SOUND_2069) EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(12) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0) - EVT_IF_NE(LVar0, 0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0) + EVT_IF_TRUE(LVar0) EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3) EVT_END_IF EVT_CALL(N(FadeBackgroundLighten)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_SWITCH EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5) EVT_CALL(PlaySound, SOUND_2069) EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0) EVT_WAIT(12) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 5, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PLAYER, BS_FLAGS1_SP_EVT_ACTIVE) EVT_SWITCH(LVarF) EVT_CASE_OR_EQ(HIT_RESULT_HIT) EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE) EVT_CASE_OR_EQ(HIT_RESULT_10) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_IF_EQ(LVarF, HIT_RESULT_10) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(30) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_RETURN EVT_END_IF EVT_END_CASE_GROUP EVT_END_SWITCH EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar3, LVar4, LVar5) EVT_CALL(PlaySound, SOUND_2069) EVT_PLAY_EFFECT(EFFECT_LIGHTNING_BOLT, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0), 18, 0) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(12) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_7, LVar0) - EVT_IF_NE(LVar0, 0) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, DAMAGE_TYPE_SHOCK | DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_LIGHTNING_PARTNER, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_ModulateDarkness, LVar0) + EVT_IF_TRUE(LVar0) EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_3) EVT_END_IF EVT_CALL(N(FadeBackgroundLighten)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -Vec3i N(summon_pos) = { 240, 0, 0 }; +Vec3i N(SummonPos) = { 240, 0, 0 }; -Formation N(formation_shy_squad) = { - ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(summon_pos), 100) +Formation N(ShySquadFormation) = { + ACTOR_BY_POS(b_area_omo2_1_shy_squad, N(SummonPos), 100) }; - - diff --git a/src/battle/area/omo2/actor/light_bulb.c b/src/battle/area/omo2/actor/light_bulb.c index 54fb4bc936d..3b9962d618e 100644 --- a/src/battle/area/omo2/actor/light_bulb.c +++ b/src/battle/area/omo2/actor/light_bulb.c @@ -3,42 +3,31 @@ #include "effects.h" #include "animation_script.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_light_bulb -typedef struct IceShardBlueprint { - /* 0x00 */ s32 unk_00; - /* 0x04 */ f32 unk_04; - /* 0x08 */ f32 unk_08; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ s32 unk_14; - /* 0x18 */ f32 unk_18; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ f32 unk_20; - /* 0x24 */ f32 unk_24; -} IceShardBlueprint; // size = 0x28 +typedef struct BulbFragment { + /* 0x00 */ s32 type; + /* 0x04 */ Vec3f pos; + /* 0x10 */ f32 scale; + /* 0x14 */ s32 duration; + /* 0x18 */ Vec3f vel; + /* 0x24 */ f32 gravAccel; +} BulbFragment; // size = 0x28 -extern AnimScript toy_tank_as_close_hatch; +extern AnimScript AS_ToyTank_CloseHatch; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(onHit); -extern EvtScript N(shake_tank); -extern EvtScript N(onDeath); +extern EvtScript N(EVS_Hit); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_ShakeTank); enum N(ActorPartIDs) { - PRT_MAIN = 1, -}; - -enum N(ActorVars) { - AVAR_Unk_5 = 5, - AVAR_Unk_9 = 9, -}; - -enum N(ActorParams) { - DMG_UNK = 0, + PRT_MAIN = 1, }; s32 N(DefenseTable)[] = { @@ -132,34 +121,34 @@ EvtScript N(EVS_HandleEvent) = { EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(EVENT_HIT_COMBO) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_Hit)) EVT_CASE_OR_EQ(EVENT_HIT) EVT_CASE_OR_EQ(EVENT_BURN_HIT) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_Hit)) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_Hit)) EVT_CASE_EQ(EVENT_ZERO_DAMAGE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0) - EVT_IF_EQ(LVar0, 0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0) + EVT_IF_FALSE(LVar0) EVT_CALL(func_8026E914, LVar0, LVar1) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) EVT_WAIT(30) EVT_END_IF EVT_CASE_EQ(EVENT_IMMUNE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0) + EVT_IF_FALSE(LVar0) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) EVT_WAIT(30) EVT_END_IF EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED) EVT_CASE_OR_EQ(EVENT_DEATH) EVT_CASE_OR_EQ(EVENT_BURN_DEATH) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIKE_CONTACT) EVT_CASE_EQ(EVENT_BURN_CONTACT) @@ -177,228 +166,168 @@ EvtScript N(EVS_TakeTurn) = { EVT_END }; -EvtScript N(onHit) = { - EVT_EXEC_WAIT(N(shake_tank)) +EvtScript N(EVS_Hit) = { + EVT_EXEC_WAIT(N(EVS_ShakeTank)) EVT_RETURN EVT_END }; -EvtScript N(shake_tank) = { - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_9, LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) +EvtScript N(EVS_ShakeTank) = { + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_HandlingEvent, LVar0) + EVT_IF_FALSE(LVar0) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) EVT_WAIT(30) EVT_END_IF EVT_RETURN EVT_END }; -API_CALLABLE(func_80218250_52B8F0) { +API_CALLABLE(N(SpawnShatterFX)) { s32 i; - IceShardBlueprint bpArray[] = { + BulbFragment shards[] = { { - .unk_00 = 1, - .unk_04 = 117.0f, - .unk_08 = 102.0f, - .unk_0C = 0.0f, - .unk_10 = 0.2f, - .unk_14 = 20, - .unk_18 = 0.3f, - .unk_1C = 0.7f, - .unk_20 = 0.0f, - .unk_24 = -0.3f, + .type = 1, + .pos = { 117.0f, 102.0f, 0.0f }, + .vel = { 0.3f, 0.7f, 0.0f }, + .scale = 0.2f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 117.0f, - .unk_08 = 82.0f, - .unk_0C = 11.0f, - .unk_10 = 0.5f, - .unk_14 = 20, - .unk_18 = 0.3f, - .unk_1C = 0.9f, - .unk_20 = 0.1f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 117.0f, 82.0f, 11.0f }, + .vel = { 0.3f, 0.9f, 0.1f }, + .scale = 0.5f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 117.0f, - .unk_08 = 92.0f, - .unk_0C = 14.0f, - .unk_10 = 0.4f, - .unk_14 = 20, - .unk_18 = 0.3f, - .unk_1C = 0.8f, - .unk_20 = 0.3f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 117.0f, 92.0f, 14.0f }, + .vel = { 0.3f, 0.8f, 0.3f }, + .scale = 0.4f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 1, - .unk_04 = 125.0f, - .unk_08 = 82.0f, - .unk_0C = 0.0f, - .unk_10 = 0.2f, - .unk_14 = 20, - .unk_18 = 0.5f, - .unk_1C = 0.9f, - .unk_20 = 0.0f, - .unk_24 = -0.3f, + .type = 1, + .pos = { 125.0f, 82.0f, 0.0f }, + .vel = { 0.5f, 0.9f, 0.0f }, + .scale = 0.2f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 108.0f, - .unk_08 = 82.0f, - .unk_0C = 0.0f, - .unk_10 = 0.3f, - .unk_14 = 20, - .unk_18 = -0.2f, - .unk_1C = 0.9f, - .unk_20 = 0.0f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 108.0f, 82.0f, 0.0f }, + .vel = { -0.2f, 0.9f, 0.0f }, + .scale = 0.3f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 105.0f, - .unk_08 = 92.0f, - .unk_0C = 0.0f, - .unk_10 = 0.4f, - .unk_14 = 20, - .unk_18 = -0.1f, - .unk_1C = 0.8f, - .unk_20 = 0.0f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 105.0f, 92.0f, 0.0f }, + .vel = { -0.1f, 0.8f, 0.0f }, + .scale = 0.4f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 1, - .unk_04 = 127.0f, - .unk_08 = 92.0f, - .unk_0C = 0.0f, - .unk_10 = 0.2f, - .unk_14 = 20, - .unk_18 = 0.7f, - .unk_1C = 0.8f, - .unk_20 = 0.0f, - .unk_24 = -0.3f, + .type = 1, + .pos = { 127.0f, 92.0f, 0.0f }, + .vel = { 0.7f, 0.8f, 0.0f }, + .scale = 0.2f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 117.0f, - .unk_08 = 97.0f, - .unk_0C = 7.0f, - .unk_10 = 0.1f, - .unk_14 = 20, - .unk_18 = 0.7f, - .unk_1C = 0.8f, - .unk_20 = 0.2f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 117.0f, 97.0f, 7.0f }, + .vel = { 0.7f, 0.8f, 0.2f }, + .scale = 0.1f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 117.0f, - .unk_08 = 87.0f, - .unk_0C = 7.0f, - .unk_10 = 0.3f, - .unk_14 = 20, - .unk_18 = 0.7f, - .unk_1C = 0.8f, - .unk_20 = 0.2f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 117.0f, 87.0f, 7.0f }, + .vel = { 0.7f, 0.8f, 0.2f }, + .scale = 0.3f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 111.0f, - .unk_08 = 97.0f, - .unk_0C = 3.0f, - .unk_10 = 0.2f, - .unk_14 = 20, - .unk_18 = 0.0f, - .unk_1C = 1.0f, - .unk_20 = 0.1f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 111.0f, 97.0f, 3.0f }, + .vel = { 0.0f, 1.0f, 0.1f }, + .scale = 0.2f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 111.0f, - .unk_08 = 92.0f, - .unk_0C = 7.0f, - .unk_10 = 0.1f, - .unk_14 = 20, - .unk_18 = 0.0f, - .unk_1C = 1.0f, - .unk_20 = 0.2f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 111.0f, 92.0f, 7.0f }, + .vel = { 0.0f, 1.0f, 0.2f }, + .scale = 0.1f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 111.0f, - .unk_08 = 87.0f, - .unk_0C = 3.0f, - .unk_10 = 0.5f, - .unk_14 = 20, - .unk_18 = 0.0f, - .unk_1C = 1.0f, - .unk_20 = 0.1f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 111.0f, 87.0f, 3.0f }, + .vel = { 0.0f, 1.0f, 0.1f }, + .scale = 0.5f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 1, - .unk_04 = 123.0f, - .unk_08 = 97.0f, - .unk_0C = 3.0f, - .unk_10 = 0.2f, - .unk_14 = 20, - .unk_18 = 0.1f, - .unk_1C = 1.0f, - .unk_20 = 0.1f, - .unk_24 = -0.3f, + .type = 1, + .pos = { 123.0f, 97.0f, 3.0f }, + .vel = { 0.1f, 1.0f, 0.1f }, + .scale = 0.2f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 123.0f, - .unk_08 = 92.0f, - .unk_0C = 7.0f, - .unk_10 = 0.4f, - .unk_14 = 20, - .unk_18 = 0.1f, - .unk_1C = 1.0f, - .unk_20 = 0.2f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 123.0f, 92.0f, 7.0f }, + .vel = { 0.1f, 1.0f, 0.2f }, + .scale = 0.4f, + .duration = 20, + .gravAccel = -0.3f, }, { - .unk_00 = 0, - .unk_04 = 123.0f, - .unk_08 = 87.0f, - .unk_0C = 3.0f, - .unk_10 = 0.3f, - .unk_14 = 20, - .unk_18 = 0.1f, - .unk_1C = 1.0f, - .unk_20 = 0.1f, - .unk_24 = -0.3f, + .type = 0, + .pos = { 123.0f, 87.0f, 3.0f }, + .vel = { 0.1f, 1.0f, 0.1f }, + .scale = 0.3f, + .duration = 20, + .gravAccel = -0.3f, }, }; - for (i = 0; i < ARRAY_COUNT(bpArray); i++) { - EffectInstance* effect = fx_ice_shard(bpArray[i].unk_00, bpArray[i].unk_04, bpArray[i].unk_08, - bpArray[i].unk_0C, bpArray[i].unk_10, bpArray[i].unk_14); - effect->data.iceShard->vel.x = bpArray[i].unk_18; - effect->data.iceShard->vel.y = bpArray[i].unk_1C; - effect->data.iceShard->vel.z = bpArray[i].unk_20; - effect->data.iceShard->gravAccel = bpArray[i].unk_24; + for (i = 0; i < ARRAY_COUNT(shards); i++) { + EffectInstance* effect = fx_ice_shard(shards[i].type, shards[i].pos.x, shards[i].pos.y, + shards[i].pos.z, shards[i].scale, shards[i].duration); + effect->data.iceShard->vel.x = shards[i].vel.x; + effect->data.iceShard->vel.y = shards[i].vel.y; + effect->data.iceShard->vel.z = shards[i].vel.z; + effect->data.iceShard->gravAccel = shards[i].gravAccel; } return ApiStatus_DONE2; } -EvtScript N(onDeath) = { - EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY2, SOUND_03AE) - EVT_CALL(func_80218250_52B8F0) - EVT_CALL(EnableModel, 39, FALSE) - EVT_CALL(EnableModel, 41, FALSE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_5, LVar0) - EVT_IF_NE(LVar0, 0) +EvtScript N(EVS_Death) = { + EVT_CALL(PlaySoundAtActor, ACTOR_BULB, SOUND_03AE) + EVT_CALL(N(SpawnShatterFX)) + EVT_CALL(EnableModel, MODEL_kyu3, FALSE) + EVT_CALL(EnableModel, MODEL_kyu1, FALSE) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_BulbGlowEffect, LVar0) + EVT_IF_NE(LVar0, NULL) EVT_CALL(RemoveEffect, LVar0) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_5, 0) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_BulbGlowEffect, NULL) EVT_END_IF EVT_CALL(RemoveActor, ACTOR_SELF) EVT_RETURN diff --git a/src/battle/area/omo2/actor/toy_tank.c b/src/battle/area/omo2/actor/toy_tank.c index d00610c49e8..589b3d9a98e 100644 --- a/src/battle/area/omo2/actor/toy_tank.c +++ b/src/battle/area/omo2/actor/toy_tank.c @@ -6,62 +6,51 @@ #include "sprite/npc/TankGuy.h" #include "mapfs/omo_bt07_shape.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_toy_tank extern ActorBlueprint b_area_omo2_4_signal_guy; extern ActorBlueprint b_area_omo2_2_stilt_guy; extern ActorBlueprint b_area_omo2_3_shy_stack; -extern ActorBlueprint b_area_omo2_5_shy_squad_dup; +extern ActorBlueprint b_area_omo2_5_shy_squad_redux; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(onHit); -extern EvtScript N(shake_tank); -extern EvtScript N(select_phase); -extern EvtScript N(update_phase); -extern EvtScript N(start_stilt_guys_phase); -extern EvtScript N(start_shy_stack_phase); -extern EvtScript N(summon_stilt_guys); -extern EvtScript N(summon_tank_squad); -extern EvtScript N(start_battle_with_tank); -extern EvtScript N(onDeath); -extern EvtScript N(8022F4D0); -extern EvtScript N(8022F458); -extern EvtScript N(8022F2BC); - -extern Formation N(formation_signal_guy); -extern Formation N(formation_stilt_guy_1); -extern Formation N(formation_stilt_guy_2); -extern Formation N(formation_shy_stack_1); -extern Formation N(formation_shy_stack_2); -extern Formation N(formation_shy_squad_dup); +extern EvtScript N(EVS_Hit); +extern EvtScript N(EVS_ShakeTank); +extern EvtScript N(EVS_ManageTroopWaves); +extern EvtScript N(EVS_IncrementWavesDefeated); +extern EvtScript N(EVS_BeginWave_StiltGuys); +extern EvtScript N(EVS_BeginWave_ShyStacks); +extern EvtScript N(EVS_BeginWave_ShySquadRedux); +extern EvtScript N(EVS_BeginWave_Tank); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_SummonStiltGuys); +extern EvtScript N(EVS_IncreaseDarknessAmt); +extern EvtScript N(EVS_DecreaseDarknessAmt); +extern EvtScript N(EVS_ManageDarkness); + +extern Formation N(SignalGuyFormation); +extern Formation N(LeftStiltGuyFormation); +extern Formation N(RightStiltGuyFormation); +extern Formation N(LeftShyStackFormation); +extern Formation N(RightShyStackFormation); +extern Formation N(ShySquadReduxFormation); enum N(ActorPartIDs) { - PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, -}; - -enum N(ActorVars) { - AVAR_Unk_0 = 0, - AVAR_Unk_1 = 1, - AVAR_Unk_2 = 2, - AVAR_Unk_3 = 3, - AVAR_Unk_4 = 4, - AVAR_Unk_5 = 5, - AVAR_Unk_6 = 6, - AVAR_Unk_7 = 7, - AVAR_Unk_8 = 8, - AVAR_Unk_9 = 9, + PRT_MAIN = 1, + PRT_2 = 2, + PRT_3 = 3, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_SCENE = 4, }; -API_CALLABLE(N(UpdateBulbGlow)) { +API_CALLABLE(N(UpdateBulbGlowPos)) { Bytecode *args = script->ptrReadPos; s32 x = evt_get_variable(script, *args++); @@ -77,7 +66,7 @@ API_CALLABLE(N(UpdateBulbGlow)) { return ApiStatus_DONE2; } -API_CALLABLE(func_802181F4_52B894) { +API_CALLABLE(N(SetDarknessParams)) { Bytecode* args = script->ptrReadPos; get_actor(script->owner1.actorID); set_screen_overlay_params_back(OVERLAY_BATTLE_DARKNESS, evt_get_variable(script, *args)); @@ -181,120 +170,123 @@ ActorBlueprint NAMESPACE = { }; EvtScript N(EVS_Init) = { - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_9, 0) - EVT_CALL(SetActorDispOffset, ACTOR_ENEMY0, 0, 7, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_ShouldTetherGeneral, TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_SquadPhase, AVAL_SquadPhase_Init) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, AVAL_StiltPhase_Init) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StackPhase, AVAL_StackPhase_Init) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UnusedPhase, AVAL_UnusedPhase_Init) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UsingBulbAttack, TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_ModulateDarkness, FALSE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_DarknessAmt, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_HandlingEvent, FALSE) + EVT_CALL(SetActorDispOffset, ACTOR_GENERAL, 0, 7, 0) EVT_CALL(SetActorPos, ACTOR_SELF, 85, 0, 0) EVT_CALL(SetHomePos, ACTOR_SELF, 85, 0, 0) EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CALL(SetPartPos, ACTOR_SELF, PRT_2, 85, 30, 0) EVT_CALL(SetPartPos, ACTOR_SELF, PRT_3, 80, 0, 0) EVT_CALL(LoadAnimatedModel, 0, EVT_PTR(toy_tank_model)) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle)) - EVT_CALL(EnableModel, 62, FALSE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_Idle)) + EVT_CALL(EnableModel, MODEL_shy, FALSE) EVT_CALL(SetAnimatedModelRootPosition, 0, 200, 0, 0) EVT_CALL(SetPartTargetFlagBits, ACTOR_SELF, PRT_3, ACTOR_PART_TARGET_FLAG_1, TRUE) - EVT_CALL(GetModelCenter, 39) + EVT_CALL(GetModelCenter, MODEL_kyu3) EVT_PLAY_EFFECT(EFFECT_BULB_GLOW, 2, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), LVar5, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar5) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_BulbGlowEffect, LVar5) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_EXEC(N(select_phase)) + EVT_EXEC(N(EVS_ManageTroopWaves)) EVT_RETURN EVT_END }; EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_NE(LVar0, FALSE) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_CALL(GetAnimatedNodePosition, 0, 62, LVar0, LVar1, LVar2) - EVT_CALL(SetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(GetAnimatedNodeRotation, 0, 62, LVar0, LVar1, LVar2) - EVT_CALL(SetActorRotation, ACTOR_ENEMY0, LVar0, 0, LVar2) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar5) - EVT_IF_NE(LVar5, 0) - EVT_CALL(ActorExists, ACTOR_ENEMY2, LVar0) - EVT_IF_NE(LVar0, FALSE) - EVT_CALL(GetAnimatedNodeRotation, 0, 62, LVar0, LVar1, LVar3) - EVT_CALL(GetModelCenter, 39) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_6, LVar6) - EVT_IF_EQ(LVar6, 0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_7, LVarA) - EVT_IF_NE(LVarA, 0) - EVT_SET(LVar0, 1000) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_TRUE(LVar0) + // update position of general guy + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_ShouldTetherGeneral, LVar0) + EVT_IF_TRUE(LVar0) + EVT_CALL(GetAnimatedNodePosition, 0, MODEL_shy, LVar0, LVar1, LVar2) + EVT_CALL(SetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(GetAnimatedNodeRotation, 0, MODEL_shy, LVar0, LVar1, LVar2) + EVT_CALL(SetActorRotation, ACTOR_GENERAL, LVar0, 0, LVar2) + EVT_END_IF + // update position of bulb glow + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_BulbGlowEffect, LVar5) + EVT_IF_NE(LVar5, NULL) + EVT_CALL(ActorExists, ACTOR_BULB, LVar0) + EVT_IF_TRUE(LVar0) + EVT_CALL(GetAnimatedNodeRotation, 0, MODEL_shy, LVar0, LVar1, LVar3) + EVT_CALL(GetModelCenter, MODEL_kyu3) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_UsingBulbAttack, LVar6) + EVT_IF_FALSE(LVar6) + // set x position to 1000 if the bulb is inactive + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_ModulateDarkness, LVarA) + EVT_IF_TRUE(LVarA) + EVT_SET(LVar0, 1000) + EVT_END_IF EVT_END_IF + EVT_CALL(N(UpdateBulbGlowPos), LVar0, LVar1, LVar2, LVar3, LVar5) EVT_END_IF - EVT_CALL(N(UpdateBulbGlow), LVar0, LVar1, LVar2, LVar3, LVar5) EVT_END_IF + EVT_WAIT(1) + EVT_GOTO(0) EVT_END_IF - EVT_WAIT(1) - EVT_GOTO(0) - EVT_END_IF EVT_RETURN EVT_END }; EvtScript N(EVS_HandleEvent) = { - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_9, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_HandlingEvent, TRUE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(EVENT_HIT_COMBO) - EVT_EXEC_WAIT(N(onHit)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_EXEC_WAIT(N(EVS_Hit)) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, PRT_2, 0, 35) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CASE_OR_EQ(EVENT_HIT) EVT_CASE_OR_EQ(EVENT_BURN_HIT) - EVT_EXEC_WAIT(N(onHit)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_EXEC_WAIT(N(EVS_Hit)) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, PRT_2, 0, 35) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) - EVT_EXEC_WAIT(N(onHit)) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_EXEC_WAIT(N(EVS_Hit)) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, PRT_2, 0, 35) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CASE_EQ(EVENT_ZERO_DAMAGE) EVT_CALL(func_8026E914, LVar0, LVar1) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_WAIT(30) EVT_CASE_EQ(EVENT_IMMUNE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_WAIT(30) EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) EVT_WAIT(30) EVT_CASE_OR_EQ(EVENT_DEATH) EVT_CASE_OR_EQ(EVENT_BURN_DEATH) - EVT_EXEC_WAIT(N(onHit)) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Hit)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) - EVT_EXEC_WAIT(N(onHit)) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Hit)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIKE_CONTACT) EVT_CASE_EQ(EVENT_BURN_CONTACT) @@ -302,7 +294,7 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_EQ(EVENT_END_FIRST_STRIKE) EVT_CASE_DEFAULT EVT_END_SWITCH - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_9, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_HandlingEvent, FALSE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END @@ -313,213 +305,229 @@ EvtScript N(EVS_TakeTurn) = { EVT_END }; -EvtScript N(onHit) = { - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, FALSE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) +EvtScript N(EVS_Hit) = { + EVT_CALL(UseIdleAnimation, ACTOR_GENERAL, FALSE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, PRT_2, 0, 50) - EVT_EXEC_WAIT(N(shake_tank)) - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) + EVT_EXEC_WAIT(N(EVS_ShakeTank)) + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) EVT_CALL(GetDamageSource, LVar1) EVT_SWITCH(LVar1) EVT_CASE_EQ(DMG_SRC_ELECTRO_DASH) - EVT_IF_NOT_FLAG(LVar0, 0x2) - EVT_BITWISE_OR_CONST(LVar0, 0xE) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) + EVT_IF_NOT_FLAG(LVar0, AVAR_GeneralFlag_ComplainElectric) + EVT_BITWISE_OR_CONST(LVar0, AVAR_GeneralFlag_ComplainElectric | AVAR_GeneralFlag_ComplainUnfair | AVAR_GeneralFlag_ComplainGeneric) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamZoom, 260) EVT_CALL(SetBattleCamTarget, 85, 80, 0) EVT_CALL(MoveBattleCamOver, 20) EVT_WAIT(20) - EVT_CALL(ActorSpeak, MSG_CH4_0072, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) + EVT_CALL(ActorSpeak, MSG_CH4_0072, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_END_IF EVT_CASE_OR_EQ(DMG_SRC_D_DOWN_POUND) EVT_CASE_OR_EQ(DMG_SRC_D_DOWN_JUMP) - EVT_IF_NOT_FLAG(LVar0, 0x4) - EVT_BITWISE_OR_CONST(LVar0, 0xC) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) + EVT_IF_NOT_FLAG(LVar0, AVAR_GeneralFlag_ComplainUnfair) + EVT_BITWISE_OR_CONST(LVar0, AVAR_GeneralFlag_ComplainUnfair | AVAR_GeneralFlag_ComplainGeneric) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamZoom, 260) EVT_CALL(SetBattleCamTarget, 85, 80, 0) EVT_CALL(MoveBattleCamOver, 20) EVT_WAIT(20) - EVT_CALL(ActorSpeak, MSG_CH4_0073, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) + EVT_CALL(ActorSpeak, MSG_CH4_0073, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_END_IF EVT_END_CASE_GROUP EVT_CASE_DEFAULT - EVT_IF_NOT_FLAG(LVar0, 0x8) - EVT_BITWISE_OR_CONST(LVar0, 0xC) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) + EVT_IF_NOT_FLAG(LVar0, AVAR_GeneralFlag_ComplainGeneric) + EVT_BITWISE_OR_CONST(LVar0, AVAR_GeneralFlag_ComplainUnfair | AVAR_GeneralFlag_ComplainGeneric) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamZoom, 260) EVT_CALL(SetBattleCamTarget, 85, 80, 0) EVT_CALL(MoveBattleCamOver, 20) EVT_WAIT(20) - EVT_CALL(ActorSpeak, MSG_CH4_0074, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) + EVT_CALL(ActorSpeak, MSG_CH4_0074, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05, ANIM_GeneralGuy_Anim05) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_END_IF EVT_END_SWITCH - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, TRUE) + EVT_CALL(UseIdleAnimation, ACTOR_GENERAL, TRUE) EVT_RETURN EVT_END }; -EvtScript N(shake_tank) = { - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_shake)) +EvtScript N(EVS_ShakeTank) = { + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_Shake)) EVT_WAIT(30) EVT_RETURN EVT_END }; -EvtScript N(select_phase) = { - EVT_LABEL(0) - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_GOTO(99) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_1, LVar0) - EVT_IF_EQ(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 2) - EVT_CALL(CancelEnemyTurn, 1) - EVT_EXEC_WAIT(N(update_phase)) - EVT_EXEC_WAIT(N(start_stilt_guys_phase)) - EVT_ELSE - EVT_WAIT(1) - EVT_GOTO(0) - EVT_END_IF - EVT_LABEL(1) - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_GOTO(99) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar0) - EVT_IF_EQ(LVar0, 2) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 3) - EVT_CALL(CancelEnemyTurn, 1) - EVT_EXEC_WAIT(N(update_phase)) - EVT_EXEC_WAIT(N(start_shy_stack_phase)) - EVT_ELSE - EVT_WAIT(1) - EVT_GOTO(1) - EVT_END_IF - EVT_LABEL(2) - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_GOTO(99) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) - EVT_IF_NE(LVar0, 2) - EVT_WAIT(1) - EVT_GOTO(2) +EvtScript N(EVS_ManageTroopWaves) = { + #define LBL_SQUAD_PHASE 0 + #define LBL_PHASE_STILT 1 + #define LBL_PHASE_STACK 2 + #define LBL_PHASE_BROKEN 3 + #define LBL_PHASE_UNUSED 10 + #define LBL_DONE 99 + // monitor the shy squad phase, waiting for them to be defeated + EVT_LABEL(LBL_SQUAD_PHASE) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_GOTO(LBL_DONE) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_SquadPhase, LVar0) + EVT_IF_EQ(LVar0, AVAL_SquadPhase_Defeated) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_SquadPhase, AVAL_SquadPhase_Done) + EVT_CALL(CancelEnemyTurn, 1) + EVT_EXEC_WAIT(N(EVS_IncrementWavesDefeated)) + EVT_EXEC_WAIT(N(EVS_BeginWave_StiltGuys)) + EVT_ELSE + EVT_WAIT(1) + EVT_GOTO(LBL_SQUAD_PHASE) EVT_END_IF - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, 2) + // monitor the stilt guys phase, waiting for them to be defeated + EVT_LABEL(LBL_PHASE_STILT) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_GOTO(LBL_DONE) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, LVar0) + EVT_IF_EQ(LVar0, AVAL_StiltPhase_Defeated) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, AVAL_StiltPhase_Done) + EVT_CALL(CancelEnemyTurn, 1) + EVT_EXEC_WAIT(N(EVS_IncrementWavesDefeated)) + EVT_EXEC_WAIT(N(EVS_BeginWave_ShyStacks)) + EVT_ELSE + EVT_WAIT(1) + EVT_GOTO(LBL_PHASE_STILT) + EVT_END_IF + // monitor the shy stacks phase, waiting for them to be defeated + EVT_LABEL(LBL_PHASE_STACK) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_GOTO(LBL_DONE) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_StackPhase, LVar0) + EVT_IF_NE(LVar0, AVAL_StackPhase_Defeated) + EVT_WAIT(1) + EVT_GOTO(LBL_PHASE_STACK) + EVT_END_IF + // this block was added to short-circuit the following unused phase and go directly to the tank phase + // everything between this block and LBL_DONE is unreachable + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UnusedPhase, AVAL_UnusedPhase_Done) EVT_CALL(CancelEnemyTurn, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, 8) - EVT_EXEC_WAIT(N(start_battle_with_tank)) - EVT_GOTO(99) - EVT_LABEL(3) // unreachable code - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_GOTO(99) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar0) - EVT_IF_NE(LVar0, 2) - EVT_WAIT(1) - EVT_GOTO(3) - EVT_END_IF + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, 8) + EVT_EXEC_WAIT(N(EVS_BeginWave_Tank)) + EVT_GOTO(LBL_DONE) + // ----------------------- begin unreachable code ----------------------- + // a second stilt phase? but nothing is summoned and AVAR_Tank_StiltPhase == AVAL_StiltPhase_Defeated + EVT_LABEL(LBL_PHASE_BROKEN) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_GOTO(LBL_DONE) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, LVar0) + EVT_IF_NE(LVar0, AVAL_StiltPhase_Defeated) + EVT_WAIT(1) + EVT_GOTO(LBL_PHASE_BROKEN) + EVT_END_IF + // if watt is out, re-summon the shy stacks. otherwise, summon the unused shy guy group EVT_CALL(GetCurrentPartnerID, LVar0) EVT_IF_EQ(LVar0, PARTNER_WATT) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 3) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, AVAL_StiltPhase_Done) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StackPhase, AVAL_StackPhase_Init) EVT_CALL(CancelEnemyTurn, 1) - EVT_EXEC_WAIT(N(update_phase)) - EVT_EXEC_WAIT(N(start_shy_stack_phase)) + EVT_EXEC_WAIT(N(EVS_IncrementWavesDefeated)) + EVT_EXEC_WAIT(N(EVS_BeginWave_ShyStacks)) EVT_WAIT(1) - EVT_GOTO(2) + EVT_GOTO(LBL_PHASE_STACK) EVT_ELSE - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, 3) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, 3) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StackPhase, AVAL_StackPhase_Done) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, AVAL_StiltPhase_Done) EVT_CALL(CancelEnemyTurn, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, 7) - EVT_EXEC_WAIT(N(summon_tank_squad)) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, 7) + EVT_EXEC_WAIT(N(EVS_BeginWave_ShySquadRedux)) EVT_WAIT(1) - EVT_GOTO(10) - EVT_END_IF - EVT_LABEL(10) - EVT_CALL(ActorExists, ACTOR_ENEMY1, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_GOTO(99) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) - EVT_IF_EQ(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, 2) - EVT_CALL(CancelEnemyTurn, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, 8) - EVT_EXEC_WAIT(N(start_battle_with_tank)) + EVT_GOTO(LBL_PHASE_UNUSED) EVT_END_IF - EVT_WAIT(1) - EVT_GOTO(10) - EVT_LABEL(99) + // monitor the shy stacks phase, waiting for them to be defeated + EVT_LABEL(LBL_PHASE_UNUSED) + EVT_CALL(ActorExists, ACTOR_TANK, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_GOTO(LBL_DONE) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_UnusedPhase, LVar0) + EVT_IF_EQ(LVar0, AVAL_UnusedPhase_Defeated) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UnusedPhase, AVAL_UnusedPhase_Done) + EVT_CALL(CancelEnemyTurn, 1) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, 8) + EVT_EXEC_WAIT(N(EVS_BeginWave_Tank)) + EVT_END_IF + EVT_WAIT(1) + EVT_GOTO(LBL_PHASE_UNUSED) + // ------------------------ end unreachable code ------------------------ + EVT_LABEL(LBL_DONE) EVT_RETURN EVT_END }; -EvtScript N(update_phase) = { - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, LVar0) +EvtScript N(EVS_IncrementWavesDefeated) = { + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(6) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, 5) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, 5) EVT_CASE_DEFAULT EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, LVar0) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, LVar0) EVT_END_SWITCH EVT_RETURN EVT_END }; -EvtScript N(start_stilt_guys_phase) = { +EvtScript N(EVS_BeginWave_StiltGuys) = { EVT_CALL(EnableBattleStatusBar, FALSE) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(30) - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) - EVT_IF_NOT_FLAG(LVar0, 0x1) - EVT_CALL(ActorSpeak, MSG_CH4_0069, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim00, ANIM_GeneralGuy_Anim00) - EVT_ELSE // shy squad has fleed - EVT_CALL(ActorSpeak, MSG_CH4_006A, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) + EVT_IF_NOT_FLAG(LVar0, AVAR_GeneralFlag_SquadFled) + EVT_CALL(ActorSpeak, MSG_CH4_0069, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim00, ANIM_GeneralGuy_Anim00) + EVT_ELSE // shy squad has fled + EVT_CALL(ActorSpeak, MSG_CH4_006A, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) EVT_END_IF - EVT_CALL(LoadBattleSection, 44) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_signal_guy)), TRUE) + EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_4) + EVT_CALL(SummonEnemy, EVT_PTR(N(SignalGuyFormation)), TRUE) EVT_WAIT(60) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_TOY_TANK_MOVE1) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_TOY_TANK_MOVE1) EVT_WAIT(5) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_move_forward)) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_MoveForward)) EVT_CALL(SetAnimatedModelRootPosition, 0, 20, 0, 0) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim03) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim03) EVT_WAIT(25) EVT_WAIT(2) EVT_CALL(SetOwnerTarget, LVar0, 1) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar1, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim10) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar1, DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, DMG_SCENE, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim10) EVT_WAIT(16) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim04) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim04) EVT_WAIT(16) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_TOY_TANK_MOVE2) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_TOY_TANK_MOVE2) EVT_WAIT(4) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_WAIT(20) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle)) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_Idle)) EVT_WAIT(26) - EVT_EXEC_WAIT(N(summon_stilt_guys)) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(SetHomePos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(HPBarToHome, ACTOR_ENEMY0) + EVT_EXEC_WAIT(N(EVS_SummonStiltGuys)) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(SetHomePos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(HPBarToHome, ACTOR_GENERAL) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_CALL(EnableBattleStatusBar, TRUE) @@ -528,71 +536,71 @@ EvtScript N(start_stilt_guys_phase) = { EVT_END }; -EvtScript N(start_shy_stack_phase) = { +EvtScript N(EVS_BeginWave_ShyStacks) = { EVT_CALL(EnableBattleStatusBar, FALSE) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, LVar0) + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, LVar0) EVT_IF_EQ(LVar0, 2) - EVT_CALL(ActorSpeak, MSG_CH4_006E, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) + EVT_CALL(ActorSpeak, MSG_CH4_006E, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) EVT_ELSE EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(10) - EVT_CALL(LoadBattleSection, 43) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_stack_1)), TRUE) + EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_3) + EVT_CALL(SummonEnemy, EVT_PTR(N(LeftShyStackFormation)), TRUE) EVT_WAIT(124) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_stack_2)), TRUE) + EVT_CALL(SummonEnemy, EVT_PTR(N(RightShyStackFormation)), TRUE) EVT_WAIT(114) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle)) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_Idle)) EVT_LABEL(0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar0) - EVT_IF_NE(LVar0, 4) - EVT_WAIT(1) - EVT_GOTO(0) - EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_StiltPhase, LVar0) + EVT_IF_NE(LVar0, AVAL_StiltPhase_Next) + EVT_WAIT(1) + EVT_GOTO(0) + EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) - EVT_CALL(GetActorPos, ACTOR_ENEMY4, LVar0, LVar1, LVar2) + EVT_CALL(GetActorPos, ACTOR_WAVE_B, LVar0, LVar1, LVar2) EVT_CALL(SetBattleCamTarget, LVar0, LVar1, LVar2) EVT_CALL(SetBattleCamZoom, 320) EVT_CALL(SetBattleCamOffsetZ, 60) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) - EVT_CALL(ActorSpeak, MSG_CH4_006F, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) + EVT_CALL(ActorSpeak, MSG_CH4_006F, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) EVT_THREAD - EVT_CALL(GetActorPos, ACTOR_ENEMY3, LVar0, LVar1, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY3, EVT_FLOAT(1.5)) - EVT_CALL(SetGoalPos, ACTOR_ENEMY3, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY3, 10, FALSE, TRUE, FALSE) - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY3, FALSE) - EVT_CALL(SetPartScale, ACTOR_ENEMY3, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(GetActorPos, ACTOR_WAVE_A, LVar0, LVar1, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_WAVE_A, EVT_FLOAT(1.5)) + EVT_CALL(SetGoalPos, ACTOR_WAVE_A, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_WAVE_A, 10, FALSE, TRUE, FALSE) + EVT_CALL(UseIdleAnimation, ACTOR_WAVE_A, FALSE) + EVT_CALL(SetPartScale, ACTOR_WAVE_A, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY3, PRT_MAIN, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_WAVE_A, PRT_MAIN, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY3, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_WAVE_A, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY3, PRT_MAIN, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY3, TRUE) + EVT_CALL(SetPartScale, ACTOR_WAVE_A, PRT_MAIN, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(UseIdleAnimation, ACTOR_WAVE_A, TRUE) EVT_END_THREAD EVT_THREAD - EVT_CALL(GetActorPos, ACTOR_ENEMY4, LVar0, LVar1, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY4, EVT_FLOAT(1.5)) - EVT_CALL(SetGoalPos, ACTOR_ENEMY4, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY4, 10, FALSE, TRUE, FALSE) - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY4, FALSE) - EVT_CALL(SetPartScale, ACTOR_ENEMY4, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(GetActorPos, ACTOR_WAVE_B, LVar0, LVar1, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_WAVE_B, EVT_FLOAT(1.5)) + EVT_CALL(SetGoalPos, ACTOR_WAVE_B, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_WAVE_B, 10, FALSE, TRUE, FALSE) + EVT_CALL(UseIdleAnimation, ACTOR_WAVE_B, FALSE) + EVT_CALL(SetPartScale, ACTOR_WAVE_B, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY4, PRT_MAIN, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_WAVE_B, PRT_MAIN, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY4, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_WAVE_B, PRT_MAIN, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_ENEMY4, PRT_MAIN, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY4, TRUE) + EVT_CALL(SetPartScale, ACTOR_WAVE_B, PRT_MAIN, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(UseIdleAnimation, ACTOR_WAVE_B, TRUE) EVT_END_THREAD - EVT_CALL(ActorSpeak, MSG_CH4_0070, ACTOR_ENEMY4, PRT_MAIN, -1, -1) + EVT_CALL(ActorSpeak, MSG_CH4_0070, ACTOR_WAVE_B, PRT_MAIN, -1, -1) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(30) @@ -602,51 +610,51 @@ EvtScript N(start_shy_stack_phase) = { EVT_END }; -EvtScript N(summon_stilt_guys) = { +EvtScript N(EVS_SummonStiltGuys) = { EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_0, BTL_CAM_MODEX_1, FALSE) - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_2, LVar0) + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_WavesDefeated, LVar0) EVT_IF_EQ(LVar0, 1) - EVT_CALL(ActorSpeak, MSG_CH4_006B, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) + EVT_CALL(ActorSpeak, MSG_CH4_006B, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) EVT_ELSE EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(10) - EVT_CALL(LoadBattleSection, 42) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_stilt_guy_1)), TRUE) + EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_2) + EVT_CALL(SummonEnemy, EVT_PTR(N(LeftStiltGuyFormation)), TRUE) EVT_WAIT(60) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_stilt_guy_2)), TRUE) + EVT_CALL(SummonEnemy, EVT_PTR(N(RightStiltGuyFormation)), TRUE) EVT_WAIT(60) EVT_LABEL(1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_1, LVar0) - EVT_IF_NE(LVar0, 3) - EVT_WAIT(1) - EVT_GOTO(1) - EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_SquadPhase, LVar0) + EVT_IF_NE(LVar0, AVAL_SquadPhase_Next) + EVT_WAIT(1) + EVT_GOTO(1) + EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamTarget, 50, 1, 0) EVT_CALL(SetBattleCamZoom, 320) EVT_CALL(SetBattleCamOffsetZ, 60) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) - EVT_CALL(ActorSpeak, MSG_CH4_006C, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) + EVT_CALL(ActorSpeak, MSG_CH4_006C, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim0C, ANIM_GeneralGuy_Anim02) EVT_THREAD - EVT_CALL(GetActorPos, ACTOR_ENEMY3, LVar0, LVar1, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY3, EVT_FLOAT(1.5)) - EVT_CALL(SetGoalPos, ACTOR_ENEMY3, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY3, 10, FALSE, TRUE, FALSE) + EVT_CALL(GetActorPos, ACTOR_WAVE_A, LVar0, LVar1, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_WAVE_A, EVT_FLOAT(1.5)) + EVT_CALL(SetGoalPos, ACTOR_WAVE_A, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_WAVE_A, 10, FALSE, TRUE, FALSE) EVT_END_THREAD EVT_THREAD - EVT_CALL(GetActorPos, ACTOR_ENEMY4, LVar0, LVar1, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY4, EVT_FLOAT(1.5)) - EVT_CALL(SetGoalPos, ACTOR_ENEMY4, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY4, 10, FALSE, TRUE, FALSE) + EVT_CALL(GetActorPos, ACTOR_WAVE_B, LVar0, LVar1, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_WAVE_B, EVT_FLOAT(1.5)) + EVT_CALL(SetGoalPos, ACTOR_WAVE_B, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_WAVE_B, 10, FALSE, TRUE, FALSE) EVT_END_THREAD - EVT_CALL(ActorSpeak, MSG_CH4_006D, ACTOR_ENEMY4, PRT_MAIN, -1, -1) + EVT_CALL(ActorSpeak, MSG_CH4_006D, ACTOR_WAVE_B, PRT_MAIN, -1, -1) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_CALL(FreezeBattleState, FALSE) @@ -654,44 +662,45 @@ EvtScript N(summon_stilt_guys) = { EVT_END }; -EvtScript N(summon_tank_squad) = { +// actually unused +EvtScript N(EVS_BeginWave_ShySquadRedux) = { EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(30) - EVT_CALL(SetActorYaw, ACTOR_ENEMY0, 180) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim03) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, 0) + EVT_CALL(SetActorYaw, ACTOR_GENERAL, 180) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim03) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UsingBulbAttack, FALSE) EVT_WAIT(10) EVT_CALL(SetDarknessMode, BTL_DARKNESS_MODE_1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 1) - EVT_EXEC(N(8022F2BC)) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_ModulateDarkness, TRUE) + EVT_EXEC(N(EVS_ManageDarkness)) EVT_WAIT(30) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(20) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_0, BTL_CAM_MODEX_1, FALSE) - EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, PRT_MAIN, -1, -1) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetActorYaw, ACTOR_ENEMY0, 0) + EVT_CALL(EndActorSpeech, ACTOR_GENERAL, PRT_MAIN, -1, -1) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetActorYaw, ACTOR_GENERAL, 0) EVT_WAIT(20) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 20) EVT_WAIT(30) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(LoadBattleSection, 45) - EVT_CALL(SummonEnemy, EVT_PTR(N(formation_shy_squad_dup)), TRUE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(LoadBattleSection, BTL_AREA_OMO2_5) + EVT_CALL(SummonEnemy, EVT_PTR(N(ShySquadReduxFormation)), TRUE) EVT_WAIT(155) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) EVT_CALL(SetBattleCamZoom, 350) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 40) EVT_WAIT(40) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim03) - EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, PRT_MAIN, -1, -1) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim03) + EVT_CALL(EndActorSpeech, ACTOR_GENERAL, PRT_MAIN, -1, -1) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) EVT_CALL(SetBattleCamZoom, 300) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY3) + EVT_CALL(BattleCamTargetActor, ACTOR_WAVE_A) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(20) EVT_SET(LVar0, 2) @@ -707,17 +716,17 @@ EvtScript N(summon_tank_squad) = { EVT_CASE_DEFAULT EVT_SET(LVar1, ANIM_TankGuy_Anim06) EVT_END_SWITCH - EVT_CALL(SetAnimation, ACTOR_ENEMY3, LVar0, LVar1) + EVT_CALL(SetAnimation, ACTOR_WAVE_A, LVar0, LVar1) EVT_ADD(LVar0, 1) EVT_END_LOOP - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim04) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim04) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 20) EVT_WAIT(20) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_SET(LVar0, 2) EVT_LOOP(15) - EVT_CALL(SetAnimation, ACTOR_ENEMY3, LVar0, ANIM_TankGuy_Anim01) + EVT_CALL(SetAnimation, ACTOR_WAVE_A, LVar0, ANIM_TankGuy_Anim01) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(FreezeBattleState, FALSE) @@ -725,26 +734,26 @@ EvtScript N(summon_tank_squad) = { EVT_END }; -EvtScript N(start_battle_with_tank) = { +EvtScript N(EVS_BeginWave_Tank) = { EVT_CALL(EnableBattleStatusBar, FALSE) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 60) EVT_WAIT(60) - EVT_CALL(ActorSpeak, MSG_CH4_0071, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim00, ANIM_GeneralGuy_Anim00) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05) - EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, PRT_MAIN, -1, -1) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_20000000, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY2, PRT_MAIN, ACTOR_PART_FLAG_NO_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY1, PRT_2, ACTOR_PART_FLAG_NO_TARGET, FALSE) - EVT_CALL(SetActorFlagBits, ACTOR_ENEMY1, ACTOR_FLAG_NO_HEALTH_BAR, FALSE) - EVT_CALL(HPBarToHome, ACTOR_ENEMY1) - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_0, 1) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) + EVT_CALL(ActorSpeak, MSG_CH4_0071, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim00, ANIM_GeneralGuy_Anim00) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05) + EVT_CALL(EndActorSpeech, ACTOR_GENERAL, PRT_MAIN, -1, -1) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_20000000, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_BULB, PRT_MAIN, ACTOR_PART_FLAG_NO_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_TANK, PRT_2, ACTOR_PART_FLAG_NO_TARGET, FALSE) + EVT_CALL(SetActorFlagBits, ACTOR_TANK, ACTOR_FLAG_NO_HEALTH_BAR, FALSE) + EVT_CALL(HPBarToHome, ACTOR_TANK) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_DoingTankPhase, TRUE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim02) EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, PRT_2, 0, 35) - EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch)) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_206B) + EVT_CALL(SetPartFlagBits, ACTOR_GENERAL, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_CloseHatch)) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_MAIN, SOUND_206B) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_CALL(EnableBattleStatusBar, TRUE) @@ -753,153 +762,153 @@ EvtScript N(start_battle_with_tank) = { EVT_END }; -EvtScript N(onDeath) = { +EvtScript N(EVS_Death) = { EVT_WAIT(15) - EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY1, SOUND_036F) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_fall_apart)) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar0) - EVT_IF_NE(LVar0, 0) + EVT_CALL(PlaySoundAtActor, ACTOR_TANK, SOUND_036F) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(AS_ToyTank_FallApart)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_BulbGlowEffect, LVar0) + EVT_IF_NE(LVar0, NULL) EVT_CALL(RemoveEffect, LVar0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_BulbGlowEffect, NULL) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_UsingBulbAttack, FALSE) EVT_END_IF EVT_WAIT(45) EVT_WAIT(10) - EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, FALSE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05) + EVT_CALL(UseIdleAnimation, ACTOR_GENERAL, FALSE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05) EVT_WAIT(15) EVT_PLAY_EFFECT(EFFECT_EXPLOSION, 2, 102, 40, 0, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_0, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_ShouldTetherGeneral, FALSE) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14) - EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0) + EVT_CALL(BattleCamTargetActor, ACTOR_GENERAL) EVT_CALL(MoveBattleCamOver, 60) - EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY1, SOUND_034E) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY0, EVT_FLOAT(0.6)) - EVT_CALL(SetActorDispOffset, ACTOR_ENEMY0, 0, 0, 0) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) + EVT_CALL(PlaySoundAtActor, ACTOR_TANK, SOUND_034E) + EVT_CALL(SetActorJumpGravity, ACTOR_GENERAL, EVT_FLOAT(0.6)) + EVT_CALL(SetActorDispOffset, ACTOR_GENERAL, 0, 0, 0) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) EVT_SET(LVar1, 0) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05) EVT_THREAD EVT_WAIT(25) EVT_CALL(SetAnimatedModelRootPosition, 0, 380, 0, 0) EVT_END_THREAD - EVT_CALL(SetGoalPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY0, 50, FALSE, TRUE, FALSE) - EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY0, SOUND_20E4) + EVT_CALL(SetGoalPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_GENERAL, 50, FALSE, TRUE, FALSE) + EVT_CALL(PlaySoundAtActor, ACTOR_GENERAL, SOUND_20E4) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim10) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim10) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) EVT_ADD(LVar0, 18) - EVT_CALL(ForceHomePos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(SetEnemyHP, ACTOR_ENEMY0, 1) - EVT_CALL(SetPartDispOffset, ACTOR_ENEMY0, PRT_MAIN, 0, 0, 0) - EVT_CALL(SetActorRotation, ACTOR_ENEMY0, 0, 0, 0) - EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY0, EVT_FLOAT(1.0)) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(SetGoalPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(JumpToGoal, ACTOR_ENEMY0, 12, FALSE, TRUE, FALSE) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim07) + EVT_CALL(ForceHomePos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(SetEnemyHP, ACTOR_GENERAL, 1) + EVT_CALL(SetPartDispOffset, ACTOR_GENERAL, PRT_MAIN, 0, 0, 0) + EVT_CALL(SetActorRotation, ACTOR_GENERAL, 0, 0, 0) + EVT_CALL(SetActorJumpGravity, ACTOR_GENERAL, EVT_FLOAT(1.0)) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(SetGoalPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(JumpToGoal, ACTOR_GENERAL, 12, FALSE, TRUE, FALSE) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim07) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 6, EVT_FLOAT(1.0)) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) EVT_ADD(LVar0, 10) EVT_ADD(LVar1, 30) EVT_PLAY_EFFECT(EFFECT_STARS_ORBITING, 0, LVar0, LVar1, LVar2, 20, 4, LVarF, 0) - EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY0, SOUND_20E5) - EVT_CALL(DropStarPoints, ACTOR_ENEMY0) + EVT_CALL(PlaySoundAtActor, ACTOR_GENERAL, SOUND_20E5) + EVT_CALL(DropStarPoints, ACTOR_GENERAL) EVT_WAIT(30) EVT_CALL(RemoveEffect, LVarF) - EVT_CALL(ActorExists, ACTOR_ENEMY2, LVar0) + EVT_CALL(ActorExists, ACTOR_BULB, LVar0) EVT_IF_NE(LVar0, FALSE) - EVT_CALL(SetActorFlagBits, ACTOR_ENEMY2, ACTOR_FLAG_NO_DMG_APPLY, TRUE) + EVT_CALL(SetActorFlagBits, ACTOR_BULB, ACTOR_FLAG_NO_DMG_APPLY, TRUE) EVT_END_IF - EVT_CALL(SetActorFlagBits, ACTOR_ENEMY0, ACTOR_FLAG_NO_DMG_APPLY, TRUE) + EVT_CALL(SetActorFlagBits, ACTOR_GENERAL, ACTOR_FLAG_NO_DMG_APPLY, TRUE) EVT_CALL(RemoveActor, ACTOR_SELF) EVT_RETURN EVT_END }; -EvtScript N(8022F2BC) = { +EvtScript N(EVS_ManageDarkness) = { EVT_LABEL(0) - EVT_CALL(ActorExists, ACTOR_SELF, LVar0) - EVT_IF_EQ(LVar0, FALSE) - EVT_RETURN - EVT_END_IF - EVT_CALL(func_802537C0, LVar0, LVar1) - EVT_IF_EQ(LVar0, 1) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_7, LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar1) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_IF_EQ(LVar0, PARTNER_WATT) - EVT_EXEC_WAIT(N(8022F458)) - EVT_ELSE - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_6, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_EXEC_WAIT(N(8022F458)) + EVT_CALL(ActorExists, ACTOR_SELF, LVar0) + EVT_IF_EQ(LVar0, FALSE) + EVT_RETURN + EVT_END_IF + EVT_CALL(GetDarknessStatus, LVar0, LVar1) + EVT_IF_EQ(LVar0, SCREEN_LAYER_BACK) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_ModulateDarkness, LVar0) + EVT_IF_FALSE(LVar0) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_DarknessAmt, LVar1) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_IF_EQ(LVar0, PARTNER_WATT) + EVT_EXEC_WAIT(N(EVS_DecreaseDarknessAmt)) EVT_ELSE - EVT_EXEC_WAIT(N(8022F4D0)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Tank_UsingBulbAttack, LVar0) + EVT_IF_TRUE(LVar0) + EVT_EXEC_WAIT(N(EVS_DecreaseDarknessAmt)) + EVT_ELSE + EVT_EXEC_WAIT(N(EVS_IncreaseDarknessAmt)) + EVT_END_IF EVT_END_IF - EVT_END_IF - EVT_CALL(func_802181F4_52B894, LVar1) - EVT_LABEL(10) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_CALL(N(SetDarknessParams), LVar1) + EVT_LABEL(10) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(8022F458) = { +EvtScript N(EVS_DecreaseDarknessAmt) = { EVT_IF_NE(LVar1, 0) EVT_SUB(LVar1, 5) EVT_IF_LT(LVar1, 0) EVT_SET(LVar1, 0) EVT_END_IF - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_DarknessAmt, LVar1) EVT_END_IF EVT_RETURN EVT_END }; -EvtScript N(8022F4D0) = { +EvtScript N(EVS_IncreaseDarknessAmt) = { EVT_IF_NE(LVar1, 215) EVT_ADD(LVar1, 5) EVT_IF_GT(LVar1, 215) EVT_SET(LVar1, 215) EVT_END_IF - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Tank_DarknessAmt, LVar1) EVT_END_IF EVT_RETURN EVT_END }; -Vec3i N(summon_pos) = { 240, 0, 0 }; +Vec3i N(SummonPos) = { 240, 0, 0 }; -Formation N(formation_signal_guy) = { - ACTOR_BY_POS(b_area_omo2_4_signal_guy, N(summon_pos), 95) +Formation N(SignalGuyFormation) = { + ACTOR_BY_POS(b_area_omo2_4_signal_guy, N(SummonPos), 95) }; -Formation N(formation_stilt_guy_1) = { - ACTOR_BY_POS(b_area_omo2_2_stilt_guy, N(summon_pos), 95) +Formation N(LeftStiltGuyFormation) = { + ACTOR_BY_POS(b_area_omo2_2_stilt_guy, N(SummonPos), 95, 0) }; -Formation N(formation_stilt_guy_2) = { - ACTOR_BY_POS(b_area_omo2_2_stilt_guy, N(summon_pos), 90, 1) +Formation N(RightStiltGuyFormation) = { + ACTOR_BY_POS(b_area_omo2_2_stilt_guy, N(SummonPos), 90, 1) }; -Formation N(formation_shy_stack_1) = { - ACTOR_BY_POS(b_area_omo2_3_shy_stack, N(summon_pos), 95) +Formation N(LeftShyStackFormation) = { + ACTOR_BY_POS(b_area_omo2_3_shy_stack, N(SummonPos), 95, 0) }; -Formation N(formation_shy_stack_2) = { - ACTOR_BY_POS(b_area_omo2_3_shy_stack, N(summon_pos), 90, 1) +Formation N(RightShyStackFormation) = { + ACTOR_BY_POS(b_area_omo2_3_shy_stack, N(SummonPos), 90, 1) }; -Formation N(formation_shy_squad_dup) = { - ACTOR_BY_POS(b_area_omo2_5_shy_squad_dup, N(summon_pos), 95) +Formation N(ShySquadReduxFormation) = { + ACTOR_BY_POS(b_area_omo2_5_shy_squad_redux, N(SummonPos), 95) }; diff --git a/src/battle/area/omo2_1/actor/shy_squad.c b/src/battle/area/omo2_1/actor/shy_squad.c index 43e23d0bf68..c50bba0c69c 100644 --- a/src/battle/area/omo2_1/actor/shy_squad.c +++ b/src/battle/area/omo2_1/actor/shy_squad.c @@ -4,62 +4,71 @@ #include "sprite/npc/ShySquadGuy.h" #include "sprite/player.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_1_shy_squad extern s32 N(DefaultAnims)[]; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); extern EvtScript N(EVS_HandlePhase); -extern EvtScript N(move_squad_to_home); -extern EvtScript N(displace_guy); -extern EvtScript N(displace_guy_2); -extern EvtScript N(onHit); -extern EvtScript N(set_alive_guys_animation); -extern EvtScript N(onDeath); -extern EvtScript N(flee); -extern EvtScript N(next_phase); -extern EvtScript N(updateActorSize); +extern EvtScript N(EVS_MoveSquadHome); +extern EvtScript N(EVS_SetMembersAnimation); +extern EvtScript N(EVS_MemberHitReaction); +extern EvtScript N(EVS_MemberShockReaction); +extern EvtScript N(EVS_ReduceCrowdSize); +extern EvtScript N(EVS_UpdateActorSize); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_Flee); +extern EvtScript N(EVS_NotifyNextWave); + +enum N(MemberOffsets) { + HOME_OFFSET_X = 0, + HOME_OFFSET_Z = 1, + HIT_OFFSET_X = 2, + HIT_OFFSET_Z = 3, + SWARM_OFFSET_X = 4, + SWARM_OFFSET_Z = 5, +}; enum N(ActorPartIDs) { PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, - PRT_4 = 4, - PRT_5 = 5, - PRT_6 = 6, - PRT_7 = 7, - PRT_8 = 8, - PRT_9 = 9, - PRT_10 = 10, - PRT_11 = 11, - PRT_12 = 12, - PRT_13 = 13, - PRT_14 = 14, - PRT_15 = 15, - PRT_16 = 16, + PRT_MEMBER_01 = 2, + PRT_MEMBER_02 = 3, + PRT_MEMBER_03 = 4, + PRT_MEMBER_04 = 5, + PRT_MEMBER_05 = 6, + PRT_MEMBER_06 = 7, + PRT_MEMBER_07 = 8, + PRT_MEMBER_08 = 9, + PRT_MEMBER_09 = 10, + PRT_MEMBER_10 = 11, + PRT_MEMBER_11 = 12, + PRT_MEMBER_12 = 13, + PRT_MEMBER_13 = 14, + PRT_MEMBER_14 = 15, + PRT_MEMBER_15 = 16, }; -enum N(OldActorVars) { - N(ACTOR_VAR_SQUAD_APPEARED) = 0, - N(ACTOR_VAR_TIMES_ATTACKED) = 1, - N(ACTOR_VAR_WAS_ATTACKED) = 2, - N(ACTOR_VARS_GUYS_KILLED) = 3, - N(ACTOR_VAR_TOTAL_DAMAGE) = 4, -}; +#define NUM_MEMBERS (1 + PRT_MEMBER_15 - PRT_MEMBER_01) + +#define LOOP_MEMBERS(idx) \ + EVT_SET(idx, PRT_MEMBER_01) \ + EVT_LOOP(NUM_MEMBERS) enum N(ActorVars) { - AVAR_Unk_0 = 0, - AVAR_Unk_1 = 1, - AVAR_Unk_2 = 2, - AVAR_Unk_3 = 3, - AVAR_Unk_4 = 4, + AVAR_SquadArrived = 0, + AVAR_BeenAttackedCount = 1, + AVAR_HasBeenAttacked = 2, + AVAR_NumDefeated = 3, + AVAR_NumPendingDefeat = 4, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_SWARM = 1, }; API_CALLABLE(N(GetActorPartSize)) { @@ -123,7 +132,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_2, + .index = PRT_MEMBER_01, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -135,7 +144,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_3, + .index = PRT_MEMBER_02, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -147,7 +156,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_4, + .index = PRT_MEMBER_03, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -159,7 +168,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_5, + .index = PRT_MEMBER_04, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -171,7 +180,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_6, + .index = PRT_MEMBER_05, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -183,7 +192,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_7, + .index = PRT_MEMBER_06, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -195,7 +204,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_8, + .index = PRT_MEMBER_07, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -207,7 +216,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_9, + .index = PRT_MEMBER_08, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -219,7 +228,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_10, + .index = PRT_MEMBER_09, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -231,7 +240,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_11, + .index = PRT_MEMBER_10, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -243,7 +252,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_12, + .index = PRT_MEMBER_11, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -255,7 +264,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_13, + .index = PRT_MEMBER_12, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -267,7 +276,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_14, + .index = PRT_MEMBER_13, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -279,7 +288,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_15, + .index = PRT_MEMBER_14, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -291,7 +300,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_16, + .index = PRT_MEMBER_15, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -346,108 +355,107 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase))) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_SQUAD_APPEARED), 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_TIMES_ATTACKED), 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 0, 50) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 0, 50) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 0, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 0, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 0, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 0, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 0, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 0, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 0, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 0, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 0, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 2, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 2, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 2, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 2, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 2, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 5, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 4, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 4, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 5, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 4, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 5, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 4, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 4, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 4, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 4, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 5, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 4, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 5, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 4, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 5, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 4, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 4, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 4, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 5, 20) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_SquadArrived, FALSE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_BeenAttackedCount, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumDefeated, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_X, 50) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_X, 50) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_X, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_X, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HOME_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HOME_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HOME_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HOME_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HOME_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HIT_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HIT_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HIT_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HIT_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HIT_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, SWARM_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, SWARM_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, SWARM_OFFSET_Z, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, SWARM_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, SWARM_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, SWARM_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, SWARM_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, SWARM_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, SWARM_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, SWARM_OFFSET_Z, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, SWARM_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, SWARM_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, SWARM_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, SWARM_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, SWARM_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, SWARM_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, SWARM_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_Z, 20) EVT_CALL(RandInt, 100, LVar0) EVT_ADD(LVar0, 190) EVT_CALL(RandInt, 100, LVar2) EVT_ADD(LVar2, -50) EVT_CALL(SetActorPos, ACTOR_SELF, LVar0, 0, LVar2) - EVT_SET(LVar1, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar1) EVT_CALL(RandInt, 100, LVar0) EVT_ADD(LVar0, 190) EVT_CALL(RandInt, 100, LVar2) @@ -455,8 +463,7 @@ EvtScript N(EVS_Init) = { EVT_CALL(SetPartPos, ACTOR_SELF, LVar1, LVar0, 0, LVar2) EVT_ADD(LVar1, 1) EVT_END_LOOP - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(CreatePartShadow, ACTOR_SELF, LVar0) EVT_ADD(LVar0, 1) EVT_END_LOOP @@ -472,11 +479,10 @@ EvtScript N(EVS_HandlePhase) = { EVT_CALL(GetBattlePhase, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(PHASE_PLAYER_BEGIN) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_SQUAD_APPEARED), LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_SquadArrived, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_SQUAD_APPEARED), 1) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_SquadArrived, TRUE) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim03) EVT_ADD(LVar0, 1) EVT_END_LOOP @@ -486,7 +492,7 @@ EvtScript N(EVS_HandlePhase) = { EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim03) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_SHY_GUY_SCREAMS1) - EVT_EXEC_WAIT(N(move_squad_to_home)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_WAIT(10) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamZoom, 360) @@ -494,32 +500,30 @@ EvtScript N(EVS_HandlePhase) = { EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(30) EVT_CALL(EnableBattleStatusBar, FALSE) - EVT_CALL(ActorSpeak, MSG_CH4_0065, ACTOR_SELF, PRT_9, ANIM_ShySquadGuy_Anim11, ANIM_ShySquadGuy_Anim11) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_CALL(ActorSpeak, MSG_CH4_0065, ACTOR_SELF, PRT_MEMBER_08, ANIM_ShySquadGuy_Anim11, ANIM_ShySquadGuy_Anim11) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim0A) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(EndActorSpeech, ACTOR_SELF, PRT_MAIN, -1, -1) EVT_CALL(EnableBattleStatusBar, TRUE) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim01) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_END_IF EVT_CASE_EQ(PHASE_ENEMY_BEGIN) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, LVar0) EVT_IF_NE(LVar0, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 0) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TIMES_ATTACKED), LVar0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_BeenAttackedCount, LVar0) EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_TIMES_ATTACKED), LVar0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_BeenAttackedCount, LVar0) EVT_IF_GE(LVar0, 2) - EVT_CALL(GetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) - EVT_BITWISE_OR_CONST(LVar0, 0x1) // set 'squadFleed' flag - EVT_CALL(SetActorVar, ACTOR_ENEMY0, AVAR_Unk_1, LVar0) - EVT_EXEC_WAIT(N(flee)) + EVT_CALL(GetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) + EVT_BITWISE_OR_CONST(LVar0, AVAR_GeneralFlag_SquadFled) + EVT_CALL(SetActorVar, ACTOR_GENERAL, AVAR_General_Flags, LVar0) + EVT_EXEC_WAIT(N(EVS_Flee)) EVT_RETURN EVT_END_IF EVT_END_IF @@ -538,9 +542,9 @@ EvtScript N(EVS_Idle) = { EVT_END }; -EvtScript N(move_guy_to_pos) = { - EVT_SET(LVarA, 2) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVarB) +EvtScript N(EVS_MoveMemberToPos) = { + EVT_SET(LVarA, PRT_MEMBER_01) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarB) EVT_ADD(LVarA, LVarB) EVT_IF_LT(LVar0, LVarA) EVT_RETURN @@ -561,21 +565,20 @@ EvtScript N(move_guy_to_pos) = { EVT_END }; -EvtScript N(move_squad_to_home) = { - EVT_SET(LVar0, 2) - EVT_LOOP(15) +EvtScript N(EVS_MoveSquadHome) = { + LOOP_MEMBERS(LVar0) EVT_THREAD EVT_CALL(SetGoalToHome, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar2, LVar4, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 0, LVar4) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_X, LVar4) EVT_ADD(LVar2, LVar4) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 1, LVar4) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_Z, LVar4) EVT_ADD(LVar3, LVar4) EVT_SET(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 0) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_SET(LVarA, 2) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVarB) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarB) EVT_ADD(LVarA, LVarB) EVT_IF_GE(LVar0, LVarA) EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 0) @@ -593,14 +596,14 @@ EvtScript N(move_squad_to_home) = { EVT_END }; -EvtScript N(displace_last_guy) = { - EVT_SET_CONST(LVar0, PRT_16) - EVT_EXEC_WAIT(N(displace_guy)) +EvtScript N(EVS_HitReaction) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_15) + EVT_EXEC_WAIT(N(EVS_MemberHitReaction)) EVT_RETURN EVT_END }; -EvtScript N(displace_guy) = { +EvtScript N(EVS_MemberHitReaction) = { EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_SET(LVar2, LVar0) EVT_CALL(GetDamageIntensity) @@ -767,16 +770,16 @@ EvtScript N(displace_guy) = { EVT_END }; -EvtScript N(onShock) = { - EVT_SET_CONST(LVar0, PRT_2) - EVT_LOOP(15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVarD) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVarE) +EvtScript N(EVS_Shock) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_01) + EVT_LOOP(NUM_MEMBERS) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarD) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVarE) EVT_ADD(LVarD, 2) EVT_ADD(LVarD, LVarE) EVT_IF_GE(LVar0, LVarD) EVT_THREAD - EVT_EXEC_WAIT(N(displace_guy_2)) + EVT_EXEC_WAIT(N(EVS_MemberShockReaction)) EVT_END_THREAD EVT_END_IF EVT_ADD(LVar0, 1) @@ -786,7 +789,7 @@ EvtScript N(onShock) = { EVT_END }; -EvtScript N(displace_guy_2) = { +EvtScript N(EVS_MemberShockReaction) = { EVT_CALL(SetPartDispOffset, ACTOR_SELF, LVar0, 0, 0, 0) EVT_CALL(SetPartDispOffset, ACTOR_SELF, LVar0, 0, 1, 0) EVT_WAIT(1) @@ -827,89 +830,85 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE) EVT_CASE_OR_EQ(EVENT_HIT_COMBO) EVT_CASE_OR_EQ(EVENT_HIT) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 1) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(displace_last_guy)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_DEATH) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(displace_last_guy)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_WAIT(10) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_BURN_HIT) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 1) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0E) - EVT_EXEC_WAIT(N(onHit)) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim0E) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_WAIT(20) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim0F) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_WAIT(15) EVT_CASE_EQ(EVENT_BURN_DEATH) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 1) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0E) - EVT_EXEC_WAIT(N(onHit)) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim0E) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_WAIT(20) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim0F) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_WAIT(15) EVT_WAIT(10) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0F) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_WAS_ATTACKED), 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasBeenAttacked, 1) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(displace_last_guy)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(displace_last_guy)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SHOCK_HIT) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onShock)) + EVT_EXEC_WAIT(N(EVS_Shock)) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 20) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim03) - EVT_EXEC_WAIT(N(move_squad_to_home)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_CASE_EQ(EVENT_SHOCK_DEATH) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onShock)) + EVT_EXEC_WAIT(N(EVS_Shock)) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim0D) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_OR_EQ(EVENT_ZERO_DAMAGE) EVT_CASE_OR_EQ(EVENT_IMMUNE) @@ -920,24 +919,24 @@ EvtScript N(EVS_HandleEvent) = { EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_IF_EQ(LVar2, MOVE_SPOOK) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim01) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_IF EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) EVT_SET_CONST(LVar1, ANIM_ShySquadGuy_Anim01) - EVT_EXEC_WAIT(N(displace_last_guy)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim08) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_END_FIRST_STRIKE) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim03) - EVT_EXEC_WAIT(N(move_squad_to_home)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CASE_EQ(EVENT_RECOVER_STATUS) EVT_SET_CONST(LVar0, PRT_MAIN) @@ -952,89 +951,89 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_DEFAULT EVT_END_SWITCH EVT_SET(LVar1, ANIM_ShySquadGuy_Anim01) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -EvtScript N(onHit) = { +EvtScript N(EVS_ReduceCrowdSize) = { EVT_SET(LVar1, LVar1) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar0) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) EVT_CALL(GetLastDamage, ACTOR_SELF, LVar1) EVT_ADD(LVar0, LVar1) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) EVT_LABEL(0) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_EXEC_WAIT(N(updateActorSize)) - EVT_RETURN - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar1) - EVT_IF_GE(LVar1, 15) - EVT_EXEC_WAIT(N(updateActorSize)) - EVT_RETURN - EVT_END_IF - EVT_SET(LVar0, 2) - EVT_ADD(LVar0, LVar1) - EVT_IF_NE(LVar0, 16) - EVT_THREAD - EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_20000000, TRUE) - EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 2, LVar7) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 3, LVar8) - EVT_ADD(LVar1, LVar7) - EVT_ADD(LVar3, LVar8) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, LVar0, EVT_FLOAT(0.5)) - EVT_CALL(JumpPartTo, ACTOR_SELF, LVar0, LVar1, 0, LVar3, 15, TRUE) - EVT_CALL(GetDamageSource, LVar5) - EVT_SWITCH(LVar5) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_SPIN_SMASH) - EVT_END_CASE_GROUP - EVT_CASE_DEFAULT - EVT_SET(LVar7, 0) - EVT_LOOP(24) - EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, 0, LVar7, 0) - EVT_ADD(LVar7, 30) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_SWITCH - EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_ACTOR_DEATH) - EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar1, LVar2, LVar3, 0, 0, 0, 0, 0) - EVT_SET(LVar8, 0) - EVT_LOOP(12) - EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, LVar8, 0, 0) - EVT_ADD(LVar8, 8) - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) - EVT_END_THREAD - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar0) - EVT_SUB(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar0) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) - EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) - EVT_GOTO(0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_IF_EQ(LVar0, 0) + EVT_EXEC_WAIT(N(EVS_UpdateActorSize)) + EVT_RETURN + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) + EVT_IF_GE(LVar1, 15) + EVT_EXEC_WAIT(N(EVS_UpdateActorSize)) + EVT_RETURN + EVT_END_IF + EVT_SET(LVar0, PRT_MEMBER_01) + EVT_ADD(LVar0, LVar1) + EVT_IF_NE(LVar0, NUM_MEMBERS + 1) + EVT_THREAD + EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_20000000, TRUE) + EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HIT_OFFSET_X, LVar7) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HIT_OFFSET_Z, LVar8) + EVT_ADD(LVar1, LVar7) + EVT_ADD(LVar3, LVar8) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, LVar0, EVT_FLOAT(0.5)) + EVT_CALL(JumpPartTo, ACTOR_SELF, LVar0, LVar1, 0, LVar3, 15, TRUE) + EVT_CALL(GetDamageSource, LVar5) + EVT_SWITCH(LVar5) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_SPIN_SMASH) + EVT_END_CASE_GROUP + EVT_CASE_DEFAULT + EVT_SET(LVar7, 0) + EVT_LOOP(24) + EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, 0, LVar7, 0) + EVT_ADD(LVar7, 30) + EVT_WAIT(1) + EVT_END_LOOP + EVT_END_SWITCH + EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_ACTOR_DEATH) + EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar1, LVar2, LVar3, 0, 0, 0, 0, 0) + EVT_SET(LVar8, 0) + EVT_LOOP(12) + EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, LVar8, 0, 0) + EVT_ADD(LVar8, 8) + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) + EVT_END_THREAD + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_SUB(LVar0, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_ADD(LVar0, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(set_alive_guys_animation) = { - EVT_SET(LVar2, 2) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) - EVT_LOOP(15) +EvtScript N(EVS_SetMembersAnimation) = { + EVT_SET(LVar2, PRT_MEMBER_01) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_LOOP(NUM_MEMBERS) EVT_IF_EQ(LVar0, 0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar2, LVar1) EVT_ELSE @@ -1046,7 +1045,7 @@ EvtScript N(set_alive_guys_animation) = { EVT_END }; -EvtScript N(kill_guy) = { +EvtScript N(EVS_DefeatMember) = { EVT_IF_NE(LVar1, -1) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_WAIT(10) @@ -1083,21 +1082,21 @@ EvtScript N(kill_guy) = { EVT_END }; -EvtScript N(onDeath) = { - EVT_SET_CONST(LVar0, PRT_2) - EVT_LOOP(14) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VAR_TOTAL_DAMAGE), LVar3) - EVT_ADD(LVar2, 2) +EvtScript N(EVS_Death) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_01) + EVT_LOOP(NUM_MEMBERS - 1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar3) + EVT_ADD(LVar2, PRT_MEMBER_01) EVT_ADD(LVar2, LVar3) EVT_IF_GE(LVar0, LVar2) EVT_THREAD - EVT_EXEC_WAIT(N(kill_guy)) + EVT_EXEC_WAIT(N(EVS_DefeatMember)) EVT_END_THREAD EVT_END_IF EVT_ADD(LVar0, 1) EVT_END_LOOP - EVT_SET(LVar0, 16) + EVT_SET(LVar0, PRT_MEMBER_15) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_SET(LVar2, 0) EVT_LOOP(24) @@ -1117,13 +1116,13 @@ EvtScript N(onDeath) = { EVT_END_LOOP EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) - EVT_EXEC_WAIT(N(next_phase)) + EVT_EXEC_WAIT(N(EVS_NotifyNextWave)) EVT_CALL(RemoveActor, ACTOR_SELF) EVT_RETURN EVT_END }; -EvtScript N(attack) = { +EvtScript N(EVS_Attack_Swarm) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -1135,7 +1134,7 @@ EvtScript N(attack) = { EVT_CALL(SetBattleCamOffsetZ, 34) EVT_CALL(MoveBattleCamOver, 50) EVT_SET(LVar0, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) EVT_SUB(LVar0, LVar1) EVT_SWITCH(LVar0) EVT_CASE_EQ(1) @@ -1145,31 +1144,30 @@ EvtScript N(attack) = { EVT_CASE_DEFAULT EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_03EC) EVT_END_SWITCH - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim03) - EVT_LOOP(15) + EVT_LOOP(NUM_MEMBERS) EVT_THREAD EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_SETF(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 30) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(GetGoalPos, ACTOR_PLAYER, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_16, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_16, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar2, 0, LVar3) EVT_CALL(RunToGoal, ACTOR_SELF, 30, TRUE) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar4, LVar5, LVar6) EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) EVT_IF_LT(LVar1, LVar4) @@ -1193,7 +1191,7 @@ EvtScript N(attack) = { EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0) EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_IF_LT(LVar0, 14) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2) EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 0) @@ -1210,7 +1208,7 @@ EvtScript N(attack) = { EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_SET(LVar0, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) EVT_SUB(LVar0, LVar1) EVT_SWITCH(LVar0) EVT_CASE_EQ(1) @@ -1224,18 +1222,18 @@ EvtScript N(attack) = { EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim04) - EVT_EXEC_WAIT(N(move_squad_to_home)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim01) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_CASE_GROUP EVT_CASE_EQ(HIT_RESULT_HIT_STATIC) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, DMG_SWARM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_END_SWITCH EVT_SET(LVarE, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_SUB(LVarE, LVar0) EVT_SET(LVarD, LVarE) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_LRAW_03AD) @@ -1246,7 +1244,7 @@ EvtScript N(attack) = { EVT_SET(LVar0, BS_FLAGS1_SP_EVT_ACTIVE) EVT_END_IF EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, 1, LVar0) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, DMG_SWARM, LVar0) EVT_THREAD EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar1, LVar2, LVar3) EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 0, LVar1, LVar2, LVar3, 0, 0) @@ -1269,7 +1267,7 @@ EvtScript N(attack) = { EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(20) EVT_SET(LVar0, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) EVT_SUB(LVar0, LVar1) EVT_SWITCH(LVar0) EVT_CASE_EQ(1) @@ -1281,9 +1279,9 @@ EvtScript N(attack) = { EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_03EC) EVT_END_SWITCH EVT_SET(LVar1, ANIM_ShySquadGuy_Anim04) - EVT_EXEC_WAIT(N(move_squad_to_home)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim01) - EVT_EXEC_WAIT(N(set_alive_guys_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN @@ -1291,15 +1289,14 @@ EvtScript N(attack) = { }; EvtScript N(EVS_TakeTurn) = { - EVT_EXEC_WAIT(N(attack)) + EVT_EXEC_WAIT(N(EVS_Attack_Swarm)) EVT_RETURN EVT_END }; -EvtScript N(flee) = { +EvtScript N(EVS_Flee) = { EVT_CALL(EnableBattleStatusBar, FALSE) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_ShySquadGuy_Anim08) EVT_ADD(LVar0, 1) EVT_END_LOOP @@ -1311,9 +1308,9 @@ EvtScript N(flee) = { EVT_CALL(HideHealthBar, ACTOR_SELF) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim08) - EVT_LOOP(14) + EVT_LOOP(NUM_MEMBERS - 1) EVT_THREAD EVT_CALL(RandInt, 100, LVar2) EVT_ADD(LVar2, 190) @@ -1321,21 +1318,21 @@ EvtScript N(flee) = { EVT_ADD(LVar3, -50) EVT_SETF(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 0) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_THREAD - EVT_SET(LVar0, 16) + EVT_SET(LVar0, PRT_MEMBER_15) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim08) EVT_SET(LVar2, 240) EVT_SET(LVar3, 0) EVT_SETF(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 0) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_SET(LVar0, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) EVT_SUB(LVar0, LVar1) EVT_SWITCH(LVar0) EVT_CASE_EQ(1) @@ -1353,11 +1350,11 @@ EvtScript N(flee) = { EVT_WAIT(30) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_DISTANT_THUD) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 6, EVT_FLOAT(2.5)) - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_IF_LT(LVar0, 14) - EVT_CALL(ActorSpeak, MSG_CH4_0067, ACTOR_ENEMY0, PRT_MAIN, -1, -1) + EVT_CALL(ActorSpeak, MSG_CH4_0067, ACTOR_GENERAL, PRT_MAIN, -1, -1) EVT_ELSE - EVT_CALL(ActorSpeak, MSG_CH4_0068, ACTOR_ENEMY0, PRT_MAIN, -1, -1) + EVT_CALL(ActorSpeak, MSG_CH4_0068, ACTOR_GENERAL, PRT_MAIN, -1, -1) EVT_END_IF EVT_THREAD EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_DISTANT_THUD) @@ -1366,7 +1363,7 @@ EvtScript N(flee) = { EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_DISTANT_THUD) EVT_CALL(ShakeCam, CAM_BATTLE, 0, 4, EVT_FLOAT(2.0)) EVT_END_THREAD - EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, PRT_MAIN, -1, -1) + EVT_CALL(EndActorSpeech, ACTOR_GENERAL, PRT_MAIN, -1, -1) EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK, SOUND_NONE, SOUND_NONE) EVT_WAIT(40) EVT_THREAD @@ -1374,36 +1371,36 @@ EvtScript N(flee) = { EVT_WAIT(20) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_0174) EVT_END_THREAD - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim08) - EVT_LOOP(14) + EVT_LOOP(NUM_MEMBERS - 1) EVT_THREAD EVT_CALL(RandInt, 100, LVar2) EVT_ADD(LVar2, -290) EVT_CALL(RandInt, 100, LVar3) EVT_ADD(LVar3, -50) EVT_SETF(LVar4, EVT_FLOAT(10.0)) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_THREAD EVT_LABEL(0) - EVT_WAIT(1) - EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_IF_GT(LVar0, 30) - EVT_GOTO(0) - EVT_END_IF + EVT_WAIT(1) + EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) + EVT_IF_GT(LVar0, 30) + EVT_GOTO(0) + EVT_END_IF EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, FALSE) EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_Mario1_Flail) EVT_LABEL(1) - EVT_WAIT(1) - EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar3, LVar4, LVar5) - EVT_ADD(LVar3, 10) - EVT_IF_GT(LVar0, LVar3) - EVT_GOTO(1) - EVT_END_IF + EVT_WAIT(1) + EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) + EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar3, LVar4, LVar5) + EVT_ADD(LVar3, 10) + EVT_IF_GT(LVar0, LVar3) + EVT_GOTO(1) + EVT_END_IF EVT_CALL(SetAnimation, ACTOR_PLAYER, 0, ANIM_Mario1_Flail) EVT_SET(LVar7, 0) EVT_LOOP(40) @@ -1419,19 +1416,19 @@ EvtScript N(flee) = { EVT_CALL(UseIdleAnimation, ACTOR_PLAYER, TRUE) EVT_END_THREAD EVT_THREAD - EVT_SET(LVar0, 16) + EVT_SET(LVar0, PRT_MEMBER_15) EVT_SET(LVar1, ANIM_ShySquadGuy_Anim08) EVT_SET(LVar2, -240) EVT_SET(LVar3, 0) EVT_SETF(LVar4, EVT_FLOAT(10.0)) EVT_SET(LVar5, 0) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(10.0)) EVT_CALL(SetActorYaw, ACTOR_SELF, 0) EVT_CALL(SetGoalPos, ACTOR_SELF, -240, 0, 0) EVT_CALL(RunToGoal, ACTOR_SELF, 0, TRUE) - EVT_EXEC_WAIT(N(next_phase)) + EVT_EXEC_WAIT(N(EVS_NotifyNextWave)) EVT_WAIT(10) EVT_CALL(EnableBattleStatusBar, TRUE) EVT_CALL(RemoveActor, ACTOR_SELF) @@ -1439,15 +1436,15 @@ EvtScript N(flee) = { EVT_END }; -EvtScript N(next_phase) = { +EvtScript N(EVS_NotifyNextWave) = { EVT_CALL(FreezeBattleState, TRUE) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_SquadPhase, AVAL_SquadPhase_Defeated) EVT_RETURN EVT_END }; -EvtScript N(updateActorSize) = { - EVT_CALL(GetActorVar, ACTOR_SELF, N(ACTOR_VARS_GUYS_KILLED), LVar0) +EvtScript N(EVS_UpdateActorSize) = { + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_SWITCH(LVar0) EVT_CASE_LE(1) EVT_CALL(SetActorSize, ACTOR_SELF, EVT_IGNORE_ARG, 72) diff --git a/src/battle/area/omo2_2/actor/stilt_guy.c b/src/battle/area/omo2_2/actor/stilt_guy.c index 2c357c31ae0..0fde6fb8c8c 100644 --- a/src/battle/area/omo2_2/actor/stilt_guy.c +++ b/src/battle/area/omo2_2/actor/stilt_guy.c @@ -5,43 +5,46 @@ #include "sprite/npc/ShyGuy.h" #include "sprite/npc/GeneralGuy.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_2_stilt_guy -extern s32 N(DefaultAnims)[]; +extern s32 N(ShyGuyAnims)[]; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(check_fall_off); -extern EvtScript N(check_fall_off_2); -extern EvtScript N(fallOff); -extern EvtScript N(onDeath); -extern EvtScript N(attack); -extern EvtScript N(shy_guy_return_home); -extern EvtScript N(shy_guy_takeTurn); -extern EvtScript N(shy_guy_idle); -extern EvtScript N(shy_guy_handleEvent); +extern EvtScript N(EVS_RegisterComboHit); +extern EvtScript N(EVS_RegisterHit); +extern EvtScript N(EVS_FallDown); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_ShyGuy_Idle); +extern EvtScript N(EVS_ShyGuy_TakeTurn); +extern EvtScript N(EVS_ShyGuy_HandleEvent); +extern EvtScript N(EVS_Attack_Leap); +extern EvtScript N(EVS_ShyGuy_ReturnHome); enum N(ActorPartIDs) { - PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, - PRT_4 = 4, - PRT_5 = 5, - PRT_6 = 6, - PRT_7 = 7, - PRT_8 = 8, + PRT_GUY = 1, + PRT_STILTS = 2, + PRT_TARGET = 3, + PRT_4 = 4, + PRT_UNFOLD_1 = 5, + PRT_UNFOLD_2 = 6, + PRT_UNFOLD_3 = 7, + PRT_UNFOLD_4 = 8, }; enum N(ActorVars) { - AVAR_Unk_0 = 0, - AVAR_Unk_1 = 1, - AVAR_Unk_2 = 2, - AVAR_Unk_8 = 8, + AVAR_IN_Order = 0, // 0 = left, 1 = right + AVAR_KnockDownHit = 1, + AVAR_HasFallen = 8, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_LEAP = 4, + DMG_TACKLE = 2, + DMG_VAULT = 3, }; #include "common/GetSelectedMoveID.inc.c" @@ -53,7 +56,7 @@ API_CALLABLE(N(SetActorLevelToZero)) { #include "common/battle/SetAbsoluteStatusOffsets.inc.c" -s32 N(IdleAnimations2)[] = { +s32 N(StiltAnims)[] = { STATUS_KEY_NORMAL, ANIM_StiltGuy_Anim01, STATUS_KEY_STONE, ANIM_StiltGuy_Anim00, STATUS_KEY_SLEEP, ANIM_StiltGuy_Anim04, @@ -67,17 +70,17 @@ s32 N(IdleAnimations2)[] = { STATUS_END, }; -s32 N(IdleAnimations3)[] = { +s32 N(UnfoldAnims)[] = { STATUS_KEY_NORMAL, ANIM_StiltGuyUnfold_Anim00, STATUS_END, }; -s32 N(defenseTable2)[] = { +s32 N(StiltGuyDefense)[] = { ELEMENT_NORMAL, 0, ELEMENT_END, }; -s32 N(DefenseTable)[] = { +s32 N(ShyGuyDefense)[] = { ELEMENT_NORMAL, 0, ELEMENT_SHOCK, 0, ELEMENT_END, @@ -108,7 +111,7 @@ s32 N(StatusTable)[] = { STATUS_END, }; -s32 N(statusTable2)[] = { +s32 N(UnusedStatusTable)[] = { STATUS_KEY_NORMAL, 0, STATUS_KEY_DEFAULT, 0, STATUS_KEY_SLEEP, 70, @@ -136,36 +139,36 @@ s32 N(statusTable2)[] = { ActorPartBlueprint N(ActorParts)[] = { { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET, - .index = PRT_MAIN, + .index = PRT_GUY, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), - .defenseTable = N(DefenseTable), + .idleAnimations = N(ShyGuyAnims), + .defenseTable = N(ShyGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { -1, -10 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET, - .index = PRT_2, + .index = PRT_STILTS, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 40 }, .opacity = 255, - .idleAnimations = N(IdleAnimations2), - .defenseTable = N(defenseTable2), + .idleAnimations = N(StiltAnims), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { -1, -5 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_MULTI_TARGET, - .index = PRT_3, + .index = PRT_TARGET, .posOffset = { 0, 74, 0 }, .targetOffset = { 0, -8 }, .opacity = 255, .idleAnimations = NULL, - .defenseTable = N(defenseTable2), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { -1, -3 }, @@ -177,55 +180,55 @@ ActorPartBlueprint N(ActorParts)[] = { .targetOffset = { 0, 24 }, .opacity = 255, .idleAnimations = NULL, - .defenseTable = N(defenseTable2), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { -1, 5 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000, - .index = PRT_5, + .index = PRT_UNFOLD_1, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations3), - .defenseTable = N(defenseTable2), + .idleAnimations = N(UnfoldAnims), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { 0, 0 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000, - .index = PRT_6, + .index = PRT_UNFOLD_2, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations3), - .defenseTable = N(defenseTable2), + .idleAnimations = N(UnfoldAnims), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { 0, 0 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000, - .index = PRT_7, + .index = PRT_UNFOLD_3, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations3), - .defenseTable = N(defenseTable2), + .idleAnimations = N(UnfoldAnims), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { 0, 0 }, }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION | ACTOR_PART_FLAG_20000000, - .index = PRT_8, + .index = PRT_UNFOLD_4, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations3), - .defenseTable = N(defenseTable2), + .idleAnimations = N(UnfoldAnims), + .defenseTable = N(StiltGuyDefense), .eventFlags = 0, .elementImmunityFlags = 0, .projectileTargetOffset = { 0, 0 }, @@ -259,23 +262,23 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasFallen, FALSE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, FALSE) EVT_CALL(SetPartTargetFlagBits, ACTOR_SELF, PRT_4, ACTOR_PART_TARGET_FLAG_1, TRUE) - EVT_CALL(SetPartSize, ACTOR_SELF, PRT_MAIN, 24, 30) + EVT_CALL(SetPartSize, ACTOR_SELF, PRT_GUY, 24, 30) EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_8, 0, 13, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_7, 0, 13, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_6, 0, 13, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_5, 0, 13, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_4, 0, 13, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_3, 0, 13, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_2, 0, 13, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_1, 0, 13, 0) EVT_THREAD EVT_SET(LVar0, 90) EVT_SET(LVar1, 270) EVT_LOOP(5) EVT_LOOP(2) EVT_LABEL(0) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_8, LVar1, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_4, LVar1, 0, 0) EVT_WAIT(1) EVT_SUB(LVar1, LVar0) EVT_IF_GE(LVar1, -90) @@ -285,13 +288,13 @@ EvtScript N(EVS_Init) = { EVT_END_LOOP EVT_SUB(LVar0, 15) EVT_END_LOOP - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_8, -90, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_4, -90, 0, 0) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_8, EVT_FLOAT(0.6)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_8, ANIM_StiltGuyUnfold_Anim03) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar1) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_UNFOLD_4, EVT_FLOAT(0.6)) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_4, ANIM_StiltGuyUnfold_Anim03) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar1) EVT_IF_EQ(LVar1, 0) EVT_SET(LVar0, 10) EVT_CALL(PlaySound, SOUND_0305) @@ -300,13 +303,13 @@ EvtScript N(EVS_Init) = { EVT_CALL(PlaySound, SOUND_0306) EVT_END_IF EVT_SUB(LVar2, 13) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_8, LVar0, 200, LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_4, LVar0, 200, LVar2) EVT_CALL(SetActorPos, ACTOR_SELF, LVar0, 200, LVar2) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim02) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim0A) - EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, PRT_MAIN, SOUND_GENERAL_WHISTLE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_8, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_8, LVar0, -9, LVar2, 80) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_GUY, ANIM_GeneralGuy_Anim02) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_GUY, ANIM_GeneralGuy_Anim0A) + EVT_CALL(PlaySoundAtPart, ACTOR_GENERAL, PRT_GUY, SOUND_GENERAL_WHISTLE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_4, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_UNFOLD_4, LVar0, -9, LVar2, 80) EVT_END_THREAD EVT_THREAD EVT_WAIT(15) @@ -315,7 +318,7 @@ EvtScript N(EVS_Init) = { EVT_LOOP(5) EVT_LOOP(2) EVT_LABEL(1) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_7, LVar1, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_3, LVar1, 0, 0) EVT_WAIT(1) EVT_SUB(LVar1, LVar0) EVT_IF_GE(LVar1, 90) @@ -325,23 +328,23 @@ EvtScript N(EVS_Init) = { EVT_END_LOOP EVT_SUB(LVar0, 15) EVT_END_LOOP - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_7, 90, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_3, 90, 0, 0) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_7, EVT_FLOAT(0.6)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_7, ANIM_StiltGuyUnfold_Anim02) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_UNFOLD_3, EVT_FLOAT(0.6)) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_3, ANIM_StiltGuyUnfold_Anim02) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar0) EVT_IF_EQ(LVar0, 0) EVT_SET(LVar0, 10) EVT_ELSE EVT_SET(LVar0, 50) EVT_END_IF EVT_SUB(LVar2, 13) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_7, LVar0, 200, LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_3, LVar0, 200, LVar2) EVT_WAIT(15) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_7, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_7, LVar0, -9, LVar2, 80) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_3, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_UNFOLD_3, LVar0, -9, LVar2, 80) EVT_END_THREAD EVT_THREAD EVT_WAIT(30) @@ -350,7 +353,7 @@ EvtScript N(EVS_Init) = { EVT_LOOP(5) EVT_LOOP(2) EVT_LABEL(2) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_6, LVar1, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_2, LVar1, 0, 0) EVT_WAIT(1) EVT_SUB(LVar1, LVar0) EVT_IF_GE(LVar1, -90) @@ -360,23 +363,23 @@ EvtScript N(EVS_Init) = { EVT_END_LOOP EVT_SUB(LVar0, 15) EVT_END_LOOP - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_6, -90, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_2, -90, 0, 0) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_6, EVT_FLOAT(0.6)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_6, ANIM_StiltGuyUnfold_Anim01) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_UNFOLD_2, EVT_FLOAT(0.6)) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_2, ANIM_StiltGuyUnfold_Anim01) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar0) EVT_IF_EQ(LVar0, 0) EVT_SET(LVar0, 10) EVT_ELSE EVT_SET(LVar0, 50) EVT_END_IF EVT_SUB(LVar2, 13) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_6, LVar0, 200, LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_2, LVar0, 200, LVar2) EVT_WAIT(30) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_6, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_6, LVar0, -9, LVar2, 80) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_UNFOLD_2, LVar0, -9, LVar2, 80) EVT_END_THREAD EVT_THREAD EVT_WAIT(45) @@ -385,7 +388,7 @@ EvtScript N(EVS_Init) = { EVT_LOOP(5) EVT_LOOP(2) EVT_LABEL(3) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_5, LVar1, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_1, LVar1, 0, 0) EVT_WAIT(1) EVT_SUB(LVar1, LVar0) EVT_IF_GE(LVar1, 90) @@ -395,62 +398,62 @@ EvtScript N(EVS_Init) = { EVT_END_LOOP EVT_SUB(LVar0, 15) EVT_END_LOOP - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_5, 90, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_1, 90, 0, 0) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_5, EVT_FLOAT(0.6)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_5, ANIM_StiltGuyUnfold_Anim00) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_UNFOLD_1, EVT_FLOAT(0.6)) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_1, ANIM_StiltGuyUnfold_Anim00) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar0) EVT_IF_EQ(LVar0, 0) EVT_SET(LVar0, 10) EVT_ELSE EVT_SET(LVar0, 50) EVT_END_IF EVT_SUB(LVar2, 13) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_5, LVar0, 200, LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_1, LVar0, 200, LVar2) EVT_WAIT(45) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_5, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_5, LVar0, -9, LVar2, 80) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_1, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_UNFOLD_1, LVar0, -9, LVar2, 80) EVT_WAIT(15) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_6, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_7, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_8, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_8, LVar0, LVar1, LVar2) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_3, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_4, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STILTS, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_UNFOLD_4, LVar0, LVar1, LVar2) EVT_ADD(LVar2, 13) EVT_CALL(ForceHomePos, ACTOR_SELF, LVar0, 0, LVar2) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_5, LVar0, 0, LVar2) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_5, LVar0, LVar1, LVar2) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_5, LVar0, 0, LVar2) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_5, 0, 0, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_8, 0, 0, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_7, 0, 0, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_6, 0, 0, 0) - EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_5, 0, 0, 0) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_5, SOUND_2065) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_5, ANIM_StiltGuyUnfold_Anim05) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_5, 1) - EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_5, SPR_PAL_StiltGuyUnfold_Alt, SPR_PAL_StiltGuyUnfold, 0, 36, 0, 255, 0, 0) - EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_5, PAL_ADJUST_BLEND_PALSETS) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_1, LVar0, 0, LVar2) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_UNFOLD_1, LVar0, LVar1, LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_UNFOLD_1, LVar0, 0, LVar2) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_UNFOLD_1, 0, 0, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_4, 0, 0, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_3, 0, 0, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_2, 0, 0, 0) + EVT_CALL(SetPartRotationOffset, ACTOR_SELF, PRT_UNFOLD_1, 0, 0, 0) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_UNFOLD_1, SOUND_2065) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_1, ANIM_StiltGuyUnfold_Anim05) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_UNFOLD_1, TRUE) + EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_UNFOLD_1, SPR_PAL_StiltGuyUnfold_Alt, SPR_PAL_StiltGuyUnfold, 0, 36, 0, 255, 0, 0) + EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_UNFOLD_1, PAL_ADJUST_BLEND_PALSETS) EVT_WAIT(18) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_5, 0) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_5, ANIM_StiltGuyUnfold_Anim04) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_UNFOLD_1, FALSE) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_UNFOLD_1, ANIM_StiltGuyUnfold_Anim04) EVT_WAIT(5) EVT_LOOP(20) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_5, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_1, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STILTS, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_WAIT(1) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_5, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_UNFOLD_1, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STILTS, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_WAIT(1) EVT_END_LOOP EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar0) EVT_IF_EQ(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_1, 3) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_SquadPhase, AVAL_SquadPhase_Next) EVT_ELSE EVT_END_IF EVT_END_THREAD @@ -460,22 +463,22 @@ EvtScript N(EVS_Init) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(return_home) = { - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar0) - EVT_IF_EQ(LVar0, 1) - EVT_EXEC_WAIT(N(shy_guy_return_home)) +EvtScript N(EVS_ReturnHome) = { + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_HasFallen, LVar0) + EVT_IF_EQ(LVar0, TRUE) + EVT_EXEC_WAIT(N(EVS_ShyGuy_ReturnHome)) EVT_RETURN EVT_END_IF - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim03) EVT_EXEC_WAIT(EVS_Enemy_ReturnHome) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim01) EVT_RETURN EVT_END }; @@ -487,12 +490,12 @@ EvtScript N(EVS_HandleEvent) = { EVT_SWITCH(LVar0) EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE) EVT_CASE_EQ(EVENT_HIT_COMBO) - EVT_EXEC_WAIT(N(check_fall_off)) - EVT_SET_CONST(LVar0, PRT_2) + EVT_EXEC_WAIT(N(EVS_RegisterComboHit)) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_CASE_EQ(EVENT_ZERO_DAMAGE) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_CASE_OR_EQ(EVENT_IMMUNE) @@ -503,26 +506,26 @@ EvtScript N(EVS_HandleEvent) = { EVT_IF_FLAG(LVar2, BS_FLAGS1_PARTNER_ACTING) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_IF_EQ(LVar2, MOVE_SPOOK) - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_STILTS) EVT_SET(LVar1, ANIM_StiltGuy_Anim01) EVT_EXEC_WAIT(EVS_Enemy_NoDamageHit) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, FALSE) EVT_RETURN EVT_END_IF EVT_END_IF - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) - EVT_EXEC_WAIT(N(check_fall_off_2)) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_1, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_EXEC_WAIT(N(fallOff)) + EVT_EXEC_WAIT(N(EVS_RegisterHit)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_KnockDownHit, LVar0) + EVT_IF_TRUE(LVar0) + EVT_EXEC_WAIT(N(EVS_FallDown)) EVT_END_IF - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, FALSE) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim06) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim06) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED) EVT_SET(LVar0, 2) @@ -540,7 +543,7 @@ EvtScript N(EVS_HandleEvent) = { EVT_SET(LVar1, ANIM_StiltGuy_Anim09) EVT_SET(LVar2, ANIM_StiltGuy_Anim0A) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) - EVT_EXEC_WAIT(N(fallOff)) + EVT_EXEC_WAIT(N(EVS_FallDown)) EVT_END_IF EVT_CASE_EQ(EVENT_BURN_DEATH) EVT_SET(LVar0, 2) @@ -548,56 +551,56 @@ EvtScript N(EVS_HandleEvent) = { EVT_SET(LVar2, ANIM_StiltGuy_Anim0A) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) EVT_WAIT(10) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim0A) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim07) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SHOCK_HIT) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_ShockHit) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) - EVT_EXEC_WAIT(N(return_home)) + EVT_EXEC_WAIT(N(EVS_ReturnHome)) EVT_CASE_EQ(EVENT_SHOCK_DEATH) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_ShockHit) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim07) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_DEATH) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(10) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim07) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_END_FIRST_STRIKE) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) - EVT_EXEC_WAIT(N(return_home)) + EVT_EXEC_WAIT(N(EVS_ReturnHome)) EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CASE_EQ(EVENT_RECOVER_STATUS) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim01) EVT_EXEC_WAIT(EVS_Enemy_Recover) EVT_CASE_EQ(EVENT_30) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim06) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_SCARE_AWAY) - EVT_SET_CONST(LVar0, PRT_2) + EVT_SET_CONST(LVar0, PRT_STILTS) EVT_SET_CONST(LVar1, ANIM_StiltGuy_Anim03) EVT_SET_CONST(LVar2, ANIM_StiltGuy_Anim03) EVT_EXEC_WAIT(EVS_Enemy_ScareAway) @@ -609,11 +612,11 @@ EvtScript N(EVS_HandleEvent) = { EVT_END }; -EvtScript N(check_fall_off) = { +EvtScript N(EVS_RegisterComboHit) = { EVT_CALL(GetBattleFlags, LVar0) EVT_IF_NOT_FLAG(LVar0, BS_FLAGS1_PARTNER_ACTING) EVT_IF_FLAG(LVar0, BS_FLAGS1_40 | BS_FLAGS1_200) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, TRUE) EVT_END_IF EVT_ELSE EVT_CALL(N(GetSelectedMoveID), LVar0) @@ -624,7 +627,7 @@ EvtScript N(check_fall_off) = { EVT_CASE_OR_EQ(MOVE_MULTIBONK) EVT_CALL(GetBattleFlags, LVar0) EVT_IF_FLAG(LVar0, BS_FLAGS1_40 | BS_FLAGS1_200) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, TRUE) EVT_END_IF EVT_END_CASE_GROUP EVT_END_SWITCH @@ -633,33 +636,36 @@ EvtScript N(check_fall_off) = { EVT_END }; -EvtScript N(check_fall_off_2) = { +EvtScript N(EVS_RegisterHit) = { EVT_CALL(GetBattleFlags, LVar0) EVT_IF_NOT_FLAG(LVar0, BS_FLAGS1_PARTNER_ACTING) + // jump attacks knock down stilts EVT_IF_FLAG(LVarF, DAMAGE_TYPE_JUMP) EVT_IF_FLAG(LVar0, BS_FLAGS1_40 | BS_FLAGS1_200) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, TRUE) EVT_END_IF EVT_END_IF + // quake attacks knock down stilts EVT_IF_FLAG(LVarF, DAMAGE_TYPE_POW | DAMAGE_TYPE_QUAKE) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, TRUE) EVT_END_IF EVT_END_IF + // status effects knock down stilts EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP | STATUS_FLAG_PARALYZE | STATUS_FLAG_DIZZY | STATUS_FLAG_SHRINK | STATUS_FLAG_STOP) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_KnockDownHit, TRUE) EVT_END_IF EVT_RETURN EVT_END }; EvtScript N(EVS_TakeTurn) = { - EVT_EXEC_WAIT(N(attack)) + EVT_EXEC_WAIT(N(EVS_Attack_Leap)) EVT_RETURN EVT_END }; -EvtScript N(attack) = { +EvtScript N(EVS_Attack_Leap) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -668,7 +674,7 @@ EvtScript N(attack) = { EVT_CALL(BattleCamTargetActor, ACTOR_SELF) EVT_CALL(MoveBattleCamOver, 20) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_MINUS_1, BTL_CAM_MODEX_1, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim03) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim03) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -676,7 +682,7 @@ EvtScript N(attack) = { EVT_SET(LVar1, 0) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim04) EVT_WAIT(8) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, 0, 0, 1, BS_FLAGS1_10) EVT_SWITCH(LVar0) @@ -685,9 +691,9 @@ EvtScript N(attack) = { EVT_SET(LVarA, LVar0) EVT_THREAD EVT_WAIT(9) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim04) EVT_END_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim05) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim05) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_SUB(LVar0, 15) @@ -709,10 +715,10 @@ EvtScript N(attack) = { EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) - EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_2, 0, ACTOR_DECORATION_SWEAT) + EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_STILTS, 0, ACTOR_DECORATION_SWEAT) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_EXEC_WAIT(N(return_home)) - EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_2, 0) + EVT_EXEC_WAIT(N(EVS_ReturnHome)) + EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_STILTS, 0) EVT_CALL(SetActorYaw, ACTOR_SELF, 0) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) @@ -721,9 +727,9 @@ EvtScript N(attack) = { EVT_END_SWITCH EVT_THREAD EVT_WAIT(8) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim04) EVT_END_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim05) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim05) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) @@ -732,7 +738,7 @@ EvtScript N(attack) = { EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 15, FALSE, TRUE, FALSE) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 8, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_LEAP, BS_FLAGS1_SP_EVT_ACTIVE) EVT_SET(LVarF, LVar0) EVT_SWITCH(LVarF) EVT_CASE_OR_EQ(HIT_RESULT_HIT) @@ -746,10 +752,10 @@ EvtScript N(attack) = { EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_2066) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim01) EVT_WAIT(8) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_EXEC_WAIT(N(return_home)) + EVT_EXEC_WAIT(N(EVS_ReturnHome)) EVT_END_CASE_GROUP EVT_END_SWITCH EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) @@ -758,12 +764,12 @@ EvtScript N(attack) = { EVT_END }; -EvtScript N(fallOff) = { - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 1) - EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_MULTI_TARGET) - EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_3, ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_NO_TARGET) +EvtScript N(EVS_FallDown) = { + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HasFallen, TRUE) + EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_GUY, ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_MULTI_TARGET) + EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_TARGET, ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_NO_TARGET) EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_4, ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_NO_TARGET) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim0C) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim0C) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar3) EVT_IF_NOT_FLAG(LVar3, STATUS_FLAG_SHRINK) @@ -774,19 +780,19 @@ EvtScript N(fallOff) = { EVT_CALL(SetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_THREAD EVT_WAIT(6) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_2, SOUND_2067) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_STILTS, SOUND_2067) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_2, ANIM_StiltGuy_Anim08) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_STILTS, ANIM_StiltGuy_Anim08) EVT_SET(LVar0, 0) EVT_LOOP(15) EVT_ADD(LVar0, 6) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_2, 0, 0, LVar0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_STILTS, 0, 0, LVar0) EVT_WAIT(1) EVT_END_LOOP - EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_NO_TARGET) + EVT_CALL(SetPartFlags, ACTOR_SELF, PRT_STILTS, ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_4 | ACTOR_PART_FLAG_NO_TARGET) EVT_END_THREAD - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_2, SOUND_FALL_QUICK) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_STILTS, SOUND_FALL_QUICK) EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5)) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(3.0)) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) @@ -798,12 +804,12 @@ EvtScript N(fallOff) = { EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 4, FALSE, TRUE, FALSE) EVT_ELSE - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim10) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim10) EVT_WAIT(10) EVT_END_IF - EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(shy_guy_takeTurn))) - EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(shy_guy_idle))) - EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(shy_guy_handleEvent))) + EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_TakeTurn))) + EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_Idle))) + EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_HandleEvent))) EVT_CALL(SetActorType, ACTOR_SELF, ACTOR_TYPE_SHY_GUY) EVT_CALL(SetActorFlagBits, ACTOR_SELF, ACTOR_FLAG_TYPE_CHANGED, TRUE) EVT_CALL(HPBarToHome, ACTOR_SELF) @@ -815,14 +821,14 @@ EvtScript N(fallOff) = { EVT_END }; -EvtScript N(onDeath) = { +EvtScript N(EVS_Death) = { EVT_EXEC_WAIT(EVS_Enemy_DeathWithoutRemove) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_2, LVar0) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STILTS, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_StiltPhase, LVar0) EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_2, LVar0) - EVT_IF_GE(LVar0, 2) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_StiltPhase, LVar0) + EVT_IF_GE(LVar0, AVAL_StiltPhase_Defeated) EVT_CALL(FreezeBattleState, TRUE) EVT_END_IF EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) @@ -832,57 +838,57 @@ EvtScript N(onDeath) = { EVT_END }; -EvtScript N(shy_guy_rotate) = { +EvtScript N(EVS_ShyGuy_SpinAround) = { EVT_SET(LVar0, 0) EVT_LABEL(0) - EVT_SUB(LVar0, 30) - EVT_IF_LT(LVar0, 0) - EVT_ADD(LVar0, 360) - EVT_END_IF - EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_SUB(LVar0, 30) + EVT_IF_LT(LVar0, 0) + EVT_ADD(LVar0, 360) + EVT_END_IF + EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(shy_guy_on_spin_smash) = { - EVT_EXEC_GET_TID(N(shy_guy_rotate), LVarE) +EvtScript N(EVS_ShyGuy_SpinSmash) = { + EVT_EXEC_GET_TID(N(EVS_ShyGuy_SpinAround), LVarE) EVT_CALL(GetPartEventFlags, ACTOR_SELF, LVar0, LVarA) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_CALL(PlayerCreateTargetList, TARGET_FLAG_4 | TARGET_FLAG_10000) EVT_CALL(InitTargetIterator) EVT_LABEL(0) - EVT_CALL(GetOwnerID, LVar1) - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_IF_NE(LVar1, LVar0) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_GOTO(0) - EVT_END_IF + EVT_CALL(GetOwnerID, LVar1) + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_IF_NE(LVar1, LVar0) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_GOTO(0) + EVT_END_IF EVT_LABEL(1) - EVT_ADD(LVarF, 1) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_IF_EQ(LVar0, -1) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_CALL(GetActorFlags, LVar0, LVar1) - EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_ADD(LVarF, 1) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_IF_EQ(LVar0, -1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_CALL(GetActorFlags, LVar0, LVar1) + EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_GOTO(1) + EVT_END_IF + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) + EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) + EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0)) + EVT_CALL(JumpToGoal, ACTOR_SELF, 0, FALSE, TRUE, FALSE) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) + EVT_END_THREAD + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetOwnerTarget, LVar0, LVar1) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE | DAMAGE_TYPE_MULTIPLE_POPUPS, SUPPRESS_EVENT_ALL, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE) EVT_GOTO(1) - EVT_END_IF - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) - EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0)) - EVT_CALL(JumpToGoal, ACTOR_SELF, 0, FALSE, TRUE, FALSE) - EVT_THREAD - EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) - EVT_END_THREAD - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetOwnerTarget, LVar0, LVar1) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_IGNORE_DEFENSE | DAMAGE_TYPE_MULTIPLE_POPUPS, SUPPRESS_EVENT_ALL, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE) - EVT_GOTO(1) EVT_LABEL(10) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_03) EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) @@ -926,7 +932,7 @@ EvtScript N(shy_guy_on_spin_smash) = { EVT_END }; -s32 N(DefaultAnims)[] = { +s32 N(ShyGuyAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyGuy_Red_Anim01, STATUS_KEY_STONE, ANIM_ShyGuy_Red_Anim00, STATUS_KEY_SLEEP, ANIM_ShyGuy_Red_Anim12, @@ -939,127 +945,127 @@ s32 N(DefaultAnims)[] = { STATUS_END, }; -EvtScript N(shy_guy_init) = { - EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(shy_guy_takeTurn))) - EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(shy_guy_idle))) - EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(shy_guy_handleEvent))) +EvtScript N(EVS_ShyGuy_Init) = { + EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_TakeTurn))) + EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_Idle))) + EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_ShyGuy_HandleEvent))) EVT_RETURN EVT_END }; -EvtScript N(shy_guy_idle) = { +EvtScript N(EVS_ShyGuy_Idle) = { EVT_LABEL(0) - EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) - EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP) - EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14) - EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0) - EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13) - EVT_ELSE - EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24) - EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10) - EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20) - EVT_END_IF - EVT_WAIT(1) + EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) + EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP) + EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_GUY, -4, 14) + EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_GUY, 0, 0) + EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13) + EVT_ELSE + EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_GUY, 0, 24) + EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_GUY, -1, -10) + EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20) + EVT_END_IF + EVT_WAIT(1) EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(shy_guy_return_home) = { +EvtScript N(EVS_ShyGuy_ReturnHome) = { EVT_CALL(ResetAllActorSounds, ACTOR_SELF) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim03) EVT_EXEC_WAIT(EVS_Enemy_ReturnHome) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim01) EVT_RETURN EVT_END }; -EvtScript N(shy_guy_handleEvent) = { +EvtScript N(EVS_ShyGuy_HandleEvent) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0) EVT_SWITCH(LVar0) EVT_CASE_OR_EQ(EVENT_HIT_COMBO) EVT_CASE_OR_EQ(EVENT_HIT) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_BURN_HIT) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0D) EVT_SET_CONST(LVar2, ANIM_ShyGuy_Red_Anim0E) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) EVT_CASE_EQ(EVENT_BURN_DEATH) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0D) EVT_SET_CONST(LVar2, ANIM_ShyGuy_Red_Anim0E) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0E) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) - EVT_EXEC_WAIT(N(shy_guy_on_spin_smash)) + EVT_EXEC_WAIT(N(EVS_ShyGuy_SpinSmash)) EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) - EVT_EXEC_WAIT(N(shy_guy_on_spin_smash)) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_EXEC_WAIT(N(EVS_ShyGuy_SpinSmash)) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SHOCK_HIT) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_ShockHit) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_Knockback) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) - EVT_EXEC_WAIT(N(shy_guy_return_home)) + EVT_EXEC_WAIT(N(EVS_ShyGuy_ReturnHome)) EVT_CASE_EQ(EVENT_SHOCK_DEATH) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_ShockHit) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_OR_EQ(EVENT_ZERO_DAMAGE) EVT_CASE_OR_EQ(EVENT_IMMUNE) EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim01) EVT_EXEC_WAIT(EVS_Enemy_NoDamageHit) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_DEATH) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(10) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_RECOVER_STATUS) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim01) EVT_EXEC_WAIT(EVS_Enemy_Recover) EVT_CASE_EQ(EVENT_SCARE_AWAY) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim03) EVT_SET_CONST(LVar2, ANIM_ShyGuy_Red_Anim14) EVT_EXEC_WAIT(EVS_Enemy_ScareAway) EVT_RETURN EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_AirLift) EVT_CASE_EQ(EVENT_BLOW_AWAY) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim0C) EVT_EXEC_WAIT(EVS_Enemy_BlowAway) EVT_RETURN @@ -1070,7 +1076,7 @@ EvtScript N(shy_guy_handleEvent) = { EVT_END }; -EvtScript N(shy_guy_attack1) = { +EvtScript N(EVS_ShyGuy_Attack_Tackle) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -1078,7 +1084,7 @@ EvtScript N(shy_guy_attack1) = { EVT_CALL(BattleCamTargetActor, ACTOR_SELF) EVT_CALL(MoveBattleCamOver, 20) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_MINUS_1, BTL_CAM_MODEX_1, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim03) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim03) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1095,10 +1101,10 @@ EvtScript N(shy_guy_attack1) = { EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK, SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B) EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK_INCREMENT, 10, 0) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim04) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim05) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim05) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5)) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1115,14 +1121,14 @@ EvtScript N(shy_guy_attack1) = { EVT_WAIT(15) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) - EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT) + EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_GUY, 0, ACTOR_DECORATION_SWEAT) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim04) EVT_EXEC_WAIT(EVS_Enemy_ReturnHome) - EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_GUY, 0) EVT_CALL(SetActorYaw, ACTOR_SELF, 0) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim01) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN @@ -1135,17 +1141,17 @@ EvtScript N(shy_guy_attack1) = { EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK, SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B) EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK_INCREMENT, 10, 0) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim04) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_ADD(LVar0, 10) EVT_SET(LVar1, 0) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim05) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim05) EVT_WAIT(2) EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, DMG_TACKLE, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CALL(ResetAllActorSounds, ACTOR_SELF) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 15) @@ -1155,17 +1161,17 @@ EvtScript N(shy_guy_attack1) = { EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.8)) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 10, FALSE, TRUE, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim01) EVT_WAIT(8) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_EXEC_WAIT(N(shy_guy_return_home)) + EVT_EXEC_WAIT(N(EVS_ShyGuy_ReturnHome)) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -EvtScript N(shy_guy_attack2) = { +EvtScript N(EVS_ShyGuy_Attack_Vault) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -1174,9 +1180,9 @@ EvtScript N(shy_guy_attack2) = { EVT_CALL(MoveBattleCamOver, 20) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_MINUS_1, BTL_CAM_MODEX_1, FALSE) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_TIMING_BAR_GO) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim09) EVT_WAIT(20) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim03) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim03) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(3.0)) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1186,7 +1192,7 @@ EvtScript N(shy_guy_attack2) = { EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE) EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK, SOUND_ACTOR_STEP_A, SOUND_ACTOR_STEP_B) EVT_CALL(SetActorSounds, ACTOR_SELF, ACTOR_SOUND_WALK_INCREMENT, 10, 0) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim04) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(5.0)) EVT_SUB(LVar0, 40) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1197,10 +1203,10 @@ EvtScript N(shy_guy_attack2) = { EVT_CASE_OR_EQ(HIT_RESULT_LUCKY) EVT_SET(LVarA, LVar0) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim09) EVT_THREAD EVT_WAIT(12) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim0A) EVT_END_THREAD EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.8)) EVT_CALL(SetGoalToTarget, ACTOR_SELF) @@ -1212,7 +1218,7 @@ EvtScript N(shy_guy_attack2) = { EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0) EVT_END_IF - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim05) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim05) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.5)) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) @@ -1226,30 +1232,30 @@ EvtScript N(shy_guy_attack2) = { EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 15) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) - EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT) + EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_GUY, 0, ACTOR_DECORATION_SWEAT) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim04) EVT_EXEC_WAIT(EVS_Enemy_ReturnHome) - EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_GUY, 0) EVT_CALL(SetActorYaw, ACTOR_SELF, 0) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim01) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_CASE_GROUP EVT_END_SWITCH EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim09) EVT_THREAD EVT_WAIT(9) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim0A) EVT_END_THREAD EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.8)) EVT_CALL(SetGoalToTarget, ACTOR_SELF) EVT_CALL(JumpToGoal, ACTOR_SELF, 18, FALSE, TRUE, FALSE) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, 3, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, 0, 0, 0, DMG_VAULT, BS_FLAGS1_SP_EVT_ACTIVE) EVT_SWITCH(LVar0) EVT_CASE_OR_EQ(HIT_RESULT_HIT) EVT_CASE_OR_EQ(HIT_RESULT_NO_DAMAGE) @@ -1285,9 +1291,9 @@ EvtScript N(shy_guy_attack2) = { EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_LRAW_CHEERING) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_LRAW_CHEERING | SOUND_ID_TRIGGER_CHANGE_SOUND) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim09) EVT_WAIT(10) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim07) EVT_WAIT(15) EVT_GOTO(2) EVT_LABEL(1) @@ -1298,26 +1304,26 @@ EvtScript N(shy_guy_attack2) = { EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 20, FALSE, TRUE, FALSE) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20E4) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim10) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim10) EVT_WAIT(10) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_20C3) - EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_MAIN, 0, ACTOR_DECORATION_SWEAT) + EVT_CALL(AddActorDecoration, ACTOR_SELF, PRT_GUY, 0, ACTOR_DECORATION_SWEAT) EVT_CALL(RandInt, 100, LVar0) EVT_IF_LT(LVar0, 50) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim11) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim11) EVT_ELSE - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim13) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim13) EVT_END_IF EVT_WAIT(25) - EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_GUY, 0) EVT_CALL(SetActorYaw, ACTOR_SELF, 180) EVT_LABEL(2) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) - EVT_SET_CONST(LVar0, PRT_MAIN) + EVT_SET_CONST(LVar0, PRT_GUY) EVT_SET_CONST(LVar1, ANIM_ShyGuy_Red_Anim04) EVT_EXEC_WAIT(EVS_Enemy_ReturnHome) EVT_CALL(SetActorYaw, ACTOR_SELF, 0) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, ANIM_ShyGuy_Red_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY, ANIM_ShyGuy_Red_Anim01) EVT_END_CASE_GROUP EVT_END_SWITCH EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) @@ -1326,12 +1332,12 @@ EvtScript N(shy_guy_attack2) = { EVT_END }; -EvtScript N(shy_guy_takeTurn) = { +EvtScript N(EVS_ShyGuy_TakeTurn) = { EVT_CALL(RandInt, 1, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_EXEC_WAIT(N(shy_guy_attack1)) + EVT_EXEC_WAIT(N(EVS_ShyGuy_Attack_Tackle)) EVT_ELSE - EVT_EXEC_WAIT(N(shy_guy_attack2)) + EVT_EXEC_WAIT(N(EVS_ShyGuy_Attack_Vault)) EVT_END_IF EVT_RETURN EVT_END diff --git a/src/battle/area/omo2_3/actor/shy_stack.c b/src/battle/area/omo2_3/actor/shy_stack.c index 20a93c56250..1f65c30e843 100644 --- a/src/battle/area/omo2_3/actor/shy_stack.c +++ b/src/battle/area/omo2_3/actor/shy_stack.c @@ -7,62 +7,70 @@ #include "sprite/npc/GeneralGuy.h" #include "sprite/npc/ShyGuy.h" +#include "battle/area/omo2/actor/boss_common.h" + #define NAMESPACE b_area_omo2_3_shy_stack -extern s32 N(DefaultAnims)[]; -extern s32 N(IdleAnimations_rock)[]; -extern s32 N(IdleAnimations_damage)[]; -extern s32 N(IdleAnimations_shy_guy)[]; +extern s32 N(FourStackAnims)[]; +extern s32 N(RockAnims)[]; +extern s32 N(DamageAnims)[]; +extern s32 N(ShyGuyAnims)[]; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(80235168); -extern EvtScript N(launch_rock); -extern EvtScript N(onDeath); -extern EvtScript N(onSpinSmashLaunchDeath); -extern EvtScript N(onSpinSmash); -extern EvtScript N(doSpinSmashHitLastGuy); -extern EvtScript N(doSpinSmashHit); +extern EvtScript N(EVS_SpinSmashLaunch); +extern EvtScript N(EVS_ShootRock); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_SpinSmashDeath); +extern EvtScript N(EVS_SpinSmashHit); +extern EvtScript N(EVS_SpinSmashHit_Top); +extern EvtScript N(EVS_SpinSmashHit_Stack); enum N(ActorPartIDs) { - PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, - PRT_4 = 4, - PRT_5 = 5, - PRT_6 = 6, - PRT_7 = 7, - PRT_8 = 8, - PRT_9 = 9, - PRT_10 = 10, - PRT_11 = 11, - PRT_12 = 12, - PRT_13 = 13, - PRT_14 = 14, + PRT_MAIN = 1, + PRT_STACK_1 = 2, + PRT_STACK_2 = 3, + PRT_STACK_3 = 4, + PRT_STACK_4 = 5, + PRT_ROCK_1 = 6, + PRT_ROCK_2 = 7, + PRT_ROCK_3 = 8, + PRT_ROCK_4 = 9, + PRT_KNOCKOFF = 10, + // used when forming the stack + PRT_GUY_1 = 11, + PRT_GUY_2 = 12, + PRT_GUY_3 = 13, + PRT_GUY_4 = 14, }; enum N(ActorVars) { - AVAR_Unk_0 = 0, - AVAR_Unk_1 = 1, - AVAR_Unk_2 = 2, - AVAR_Unk_3 = 3, - AVAR_Unk_4 = 4, - AVAR_Unk_5 = 5, - AVAR_Unk_6 = 6, - AVAR_Unk_7 = 7, - AVAR_Unk_8 = 8, + AVAR_IN_Order = 0, + AVAR_Anim_Still = 1, + AVAR_Anim_Idle = 2, + AVAR_Anim_Hurt = 3, + AVAR_Anim_BurnHurt = 4, + AVAR_Anim_BurnStill = 5, + AVAR_Anim_Attack = 6, + AVAR_ShotsToFire = 7, + AVAR_DefeatedCount = 8, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_SHOOT_ONE = 1, + DMG_SHOOT_TWO = 2, + DMG_SHOOT_THREE = 3, + DMG_SHOOT_FOUR = 4, }; -API_CALLABLE(func_80231000_54CC70) { +// doesn't actually do anything +API_CALLABLE(N(PrintDebugValue)) { Bytecode* args = script->ptrReadPos; + char* name = (char*) *args++; + s32 value = evt_get_variable(script, *args++); - evt_get_variable(script, args[1]); return ApiStatus_DONE2; } @@ -103,7 +111,7 @@ ActorPartBlueprint N(ActorParts)[] = { .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 20 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(FourStackAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -111,7 +119,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_MULTI_TARGET, - .index = PRT_2, + .index = PRT_STACK_1, .posOffset = { 0, 0, 0 }, .targetOffset = { -2, 67 }, .opacity = 255, @@ -123,7 +131,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET, - .index = PRT_3, + .index = PRT_STACK_2, .posOffset = { 0, 0, 0 }, .targetOffset = { -2, 50 }, .opacity = 255, @@ -135,7 +143,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET, - .index = PRT_4, + .index = PRT_STACK_3, .posOffset = { 0, 0, 0 }, .targetOffset = { -2, 33 }, .opacity = 255, @@ -147,7 +155,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET, - .index = PRT_5, + .index = PRT_STACK_4, .posOffset = { 0, 0, 0 }, .targetOffset = { -2, 16 }, .opacity = 255, @@ -159,11 +167,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_6, + .index = PRT_ROCK_1, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_rock), + .idleAnimations = N(RockAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -171,11 +179,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_7, + .index = PRT_ROCK_2, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_rock), + .idleAnimations = N(RockAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -183,11 +191,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_8, + .index = PRT_ROCK_3, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_rock), + .idleAnimations = N(RockAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -195,11 +203,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_9, + .index = PRT_ROCK_4, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_rock), + .idleAnimations = N(RockAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -207,11 +215,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_10, + .index = PRT_KNOCKOFF, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_damage), + .idleAnimations = N(DamageAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -219,11 +227,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_11, + .index = PRT_GUY_1, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_shy_guy), + .idleAnimations = N(ShyGuyAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -231,11 +239,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_12, + .index = PRT_GUY_2, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_shy_guy), + .idleAnimations = N(ShyGuyAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -243,11 +251,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_13, + .index = PRT_GUY_3, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_shy_guy), + .idleAnimations = N(ShyGuyAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -255,11 +263,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_14, + .index = PRT_GUY_4, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 0 }, .opacity = 255, - .idleAnimations = N(IdleAnimations_shy_guy), + .idleAnimations = N(ShyGuyAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -290,7 +298,7 @@ ActorBlueprint NAMESPACE = { .statusTextOffset = { 10, 65 }, }; -s32 N(DefaultAnims)[] = { +s32 N(FourStackAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackGuy_Anim04, STATUS_KEY_STONE, ANIM_ShyStackGuy_Anim00, STATUS_KEY_SLEEP, ANIM_ShyStackGuy_Anim00, @@ -305,7 +313,7 @@ s32 N(DefaultAnims)[] = { STATUS_END, }; -s32 N(IdleAnimations2)[] = { +s32 N(ThreeStackAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackGuy_Anim05, STATUS_KEY_STONE, ANIM_ShyStackGuy_Anim01, STATUS_KEY_SLEEP, ANIM_ShyStackGuy_Anim01, @@ -320,7 +328,7 @@ s32 N(IdleAnimations2)[] = { STATUS_END, }; -s32 N(IdleAnimations3)[] = { +s32 N(TwoStackAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackGuy_Anim06, STATUS_KEY_STONE, ANIM_ShyStackGuy_Anim02, STATUS_KEY_SLEEP, ANIM_ShyStackGuy_Anim02, @@ -335,7 +343,7 @@ s32 N(IdleAnimations3)[] = { STATUS_END, }; -s32 N(IdleAnimations4)[] = { +s32 N(OneStackAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackGuy_Anim07, STATUS_KEY_STONE, ANIM_ShyStackGuy_Anim03, STATUS_KEY_SLEEP, ANIM_ShyStackGuy_Anim03, @@ -350,17 +358,17 @@ s32 N(IdleAnimations4)[] = { STATUS_END, }; -s32 N(IdleAnimations_rock)[] = { +s32 N(RockAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackRock_Anim00, STATUS_END, }; -s32 N(IdleAnimations_damage)[] = { +s32 N(DamageAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyStackDamage_Anim00, STATUS_END, }; -s32 N(IdleAnimations_shy_guy)[] = { +s32 N(ShyGuyAnims)[] = { STATUS_KEY_NORMAL, ANIM_ShyGuy_Red_Anim01, STATUS_END, }; @@ -369,284 +377,284 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, ANIM_ShyStackGuy_Anim00) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, ANIM_ShyStackGuy_Anim04) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, ANIM_ShyStackGuy_Anim08) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, ANIM_ShyStackGuy_Anim10) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, ANIM_ShyStackGuy_Anim14) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, ANIM_ShyStackGuy_Anim1B) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Still, ANIM_ShyStackGuy_Anim00) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Idle, ANIM_ShyStackGuy_Anim04) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, ANIM_ShyStackGuy_Anim08) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, ANIM_ShyStackGuy_Anim10) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, ANIM_ShyStackGuy_Anim14) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Attack, ANIM_ShyStackGuy_Anim1B) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_DefeatedCount, 0) EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_0, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_IN_Order, LVar0) EVT_IF_EQ(LVar0, 0) EVT_SET(LVar0, 10) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_14, LVar0, 200, 0) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_13, LVar0, 200, 0) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_12, LVar0, 200, 0) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_11, LVar0, 200, 0) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_4, LVar0, 200, 0) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_3, LVar0, 200, 0) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_2, LVar0, 200, 0) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_1, LVar0, 200, 0) EVT_THREAD EVT_WAIT(5) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_14, SOUND_FALL_QUICK) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_4, SOUND_FALL_QUICK) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_14, ANIM_ShyGuy_Red_Anim0A) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_14, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0)) - EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_14, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_14, LVar0, 0, 0, 36) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_14, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_14, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_4, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_4, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0)) + EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_GUY_4, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_GUY_4, LVar0, 0, 0, 36) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_4, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_4, ANIM_ShyGuy_Red_Anim07) EVT_END_THREAD EVT_THREAD EVT_WAIT(36) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_13, SOUND_FALL_QUICK) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_3, SOUND_FALL_QUICK) EVT_END_THREAD EVT_THREAD EVT_WAIT(31) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim0A) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_13, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0)) - EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_13, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_13, LVar0, 18, 0, 32) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_13, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_3, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0)) + EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_GUY_3, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_GUY_3, LVar0, 18, 0, 32) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_3, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -5, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -5, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) EVT_END_THREAD EVT_THREAD EVT_WAIT(67) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_12, SOUND_FALL_QUICK) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_2, SOUND_FALL_QUICK) EVT_END_THREAD EVT_THREAD EVT_WAIT(62) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim0A) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_12, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_12, EVT_FLOAT(1.0)) - EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_12, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_12, LVar0, 36, 0, 28) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_12, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -4, 0) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.0)) + EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_GUY_2, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_GUY_2, LVar0, 36, 0, 28) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_2, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -4, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -6, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -6, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -4, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -4, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, 0, 0) EVT_END_THREAD EVT_THREAD EVT_WAIT(98) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_11, SOUND_FALL_QUICK) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_1, SOUND_FALL_QUICK) EVT_END_THREAD EVT_THREAD EVT_WAIT(93) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim0A) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_11, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_11, EVT_FLOAT(1.0)) - EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_11, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) - EVT_CALL(FallPartTo, ACTOR_SELF, PRT_11, LVar0, 54, 0, 24) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_11, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -1, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -3, 0) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_1, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_1, EVT_FLOAT(1.0)) + EVT_CALL(SetPartSounds, ACTOR_SELF, PRT_GUY_1, ACTOR_SOUND_JUMP, SOUND_NONE, SOUND_NONE) + EVT_CALL(FallPartTo, ACTOR_SELF, PRT_GUY_1, LVar0, 54, 0, 24) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_1, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -1, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -3, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -5, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -3, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -5, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -1, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -3, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -1, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, 0, 0) EVT_WAIT(7) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_14, LVar0, LVar1, LVar2) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_GUY_4, LVar0, LVar1, LVar2) EVT_CALL(ForceHomePos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_11, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_12, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_13, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_14, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_1, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_3, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_4, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_END_THREAD EVT_ELSE - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_14, 200, 0, 47) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_13, 200, 0, 47) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_12, 200, 0, 47) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_11, 200, 0, 47) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_4, 200, 0, 47) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_3, 200, 0, 47) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_2, 200, 0, 47) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_1, 200, 0, 47) EVT_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_14, ANIM_ShyGuy_Red_Anim04) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_14, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_14, EVT_FLOAT(4.0)) - EVT_CALL(RunPartTo, ACTOR_SELF, PRT_14, 55, 0, 47, FALSE) - EVT_CALL(RunPartTo, ACTOR_SELF, PRT_14, 50, 0, 0, FALSE) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_14, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_4, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_4, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(4.0)) + EVT_CALL(RunPartTo, ACTOR_SELF, PRT_GUY_4, 55, 0, 47, FALSE) + EVT_CALL(RunPartTo, ACTOR_SELF, PRT_GUY_4, 50, 0, 0, FALSE) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_4, ANIM_ShyGuy_Red_Anim07) EVT_END_THREAD EVT_THREAD EVT_WAIT(31) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim04) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_13, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_13, EVT_FLOAT(4.0)) - EVT_CALL(RunPartTo, ACTOR_SELF, PRT_13, 55, 0, 47, 36) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim09) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_13, 50, 18, 0, 20, TRUE) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_13, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_3, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(4.0)) + EVT_CALL(RunPartTo, ACTOR_SELF, PRT_GUY_3, 55, 0, 47, 36) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_GUY_3, 50, 18, 0, 20, TRUE) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_3, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -5, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -5, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) EVT_END_THREAD EVT_THREAD EVT_WAIT(77) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_13, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_3, ANIM_ShyGuy_Red_Anim0A) EVT_END_THREAD EVT_THREAD EVT_WAIT(62) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim04) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_12, ACTOR_PART_FLAG_INVISIBLE, FALSE) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_12, EVT_FLOAT(4.0)) - EVT_CALL(RunPartTo, ACTOR_SELF, PRT_12, 55, 0, 47, 36) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim09) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_12, EVT_FLOAT(1.0)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_12, 50, 36, 0, 20, TRUE) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_12, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -3, 0) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_2, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(4.0)) + EVT_CALL(RunPartTo, ACTOR_SELF, PRT_GUY_2, 55, 0, 47, 36) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.0)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_GUY_2, 50, 36, 0, 20, TRUE) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_2, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -3, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -5, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -3, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -5, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -3, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, 0, 0) EVT_END_THREAD EVT_THREAD EVT_WAIT(108) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_12, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_2, ANIM_ShyGuy_Red_Anim0A) EVT_END_THREAD EVT_THREAD - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim04) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim04) EVT_WAIT(143) EVT_WAIT(10) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim09) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim09) EVT_WAIT(15) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim0A) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim0A) EVT_END_THREAD EVT_THREAD EVT_WAIT(133) - EVT_CALL(GetActorPos, ACTOR_ENEMY0, LVar0, LVar1, LVar2) + EVT_CALL(GetActorPos, ACTOR_GENERAL, LVar0, LVar1, LVar2) EVT_ADD(LVar1, -3) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_11, LVar0, LVar1, LVar2) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim05) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_11, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_GUY_1, LVar0, LVar1, LVar2) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim05) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_1, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_ADD(LVar0, -20) EVT_ADD(LVar1, 18) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_11, EVT_FLOAT(0.6)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_11, LVar0, LVar1, LVar2, 20, TRUE) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_11, EVT_FLOAT(0.3)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_11, 50, 54, 0, 30, TRUE) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_11, SOUND_2064) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_11, ANIM_ShyGuy_Red_Anim07) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim04) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -1, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -3, 0) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_1, EVT_FLOAT(0.6)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_GUY_1, LVar0, LVar1, LVar2, 20, TRUE) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_GUY_1, EVT_FLOAT(0.3)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_GUY_1, 50, 54, 0, 30, TRUE) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_GUY_1, SOUND_2064) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_GUY_1, ANIM_ShyGuy_Red_Anim07) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim04) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -1, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -3, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -5, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -3, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -5, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, -1, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, -2, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, -3, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, -1, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, -2, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, -3, 0) EVT_WAIT(1) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_14, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_13, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_12, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_13, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_12, 0, 0, 0) - EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_11, 0, 0, 0) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_3, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_GUY_2, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_3, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_2, 0, 0, 0) + EVT_CALL(SetPartDispOffset, ACTOR_SELF, PRT_GUY_1, 0, 0, 0) EVT_WAIT(12) - EVT_CALL(SetAnimation, ACTOR_ENEMY0, PRT_MAIN, ANIM_GeneralGuy_Anim03) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_14, LVar0, LVar1, LVar2) + EVT_CALL(SetAnimation, ACTOR_GENERAL, PRT_MAIN, ANIM_GeneralGuy_Anim03) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_GUY_4, LVar0, LVar1, LVar2) EVT_CALL(ForceHomePos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_11, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_12, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_13, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_14, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_1, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_2, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_3, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_GUY_4, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_CALL(HPBarToHome, ACTOR_SELF) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_2, 4) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_StiltPhase, AVAL_StiltPhase_Next) EVT_END_THREAD EVT_END_IF EVT_RETURN @@ -655,8 +663,8 @@ EvtScript N(EVS_Init) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; @@ -668,19 +676,19 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE) EVT_CASE_EQ(EVENT_HIT_COMBO) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_CASE_EQ(EVENT_HIT) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) EVT_IF_FLAG(LVar0, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_IF_EQ(LVarA, 3) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE EVT_CALL(GetDamageSource, LVar0) @@ -688,11 +696,11 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_OR_EQ(DMG_SRC_SHELL_TOSS) EVT_CASE_OR_EQ(DMG_SRC_POWER_SHELL) EVT_CASE_OR_EQ(DMG_SRC_FIRE_SHELL) - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_END_CASE_GROUP EVT_CASE_DEFAULT EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_END_SWITCH EVT_END_IF @@ -701,14 +709,14 @@ EvtScript N(EVS_HandleEvent) = { EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) EVT_IF_FLAG(LVar0, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(10) EVT_ELSE - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_IF_EQ(LVarA, 3) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(10) EVT_ELSE @@ -717,25 +725,25 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_OR_EQ(DMG_SRC_SHELL_TOSS) EVT_CASE_OR_EQ(DMG_SRC_POWER_SHELL) EVT_CASE_OR_EQ(DMG_SRC_FIRE_SHELL) - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_END_CASE_GROUP EVT_CASE_DEFAULT EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(10) EVT_END_SWITCH EVT_END_IF EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_EXEC_WAIT(N(onDeath)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_BURN_HIT) EVT_SET(LVar0, 1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) @@ -748,7 +756,7 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_OR_EQ(DMG_SRC_SHELL_TOSS) EVT_CASE_OR_EQ(DMG_SRC_POWER_SHELL) EVT_CASE_OR_EQ(DMG_SRC_FIRE_SHELL) - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_END_CASE_GROUP EVT_CASE_DEFAULT EVT_EXEC_WAIT(EVS_Enemy_BurnHit) @@ -757,78 +765,78 @@ EvtScript N(EVS_HandleEvent) = { EVT_END_IF EVT_CASE_EQ(EVENT_BURN_DEATH) EVT_SET(LVar0, 1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar1) EVT_ELSE EVT_IF_EQ(LVarA, 3) EVT_EXEC_WAIT(EVS_Enemy_BurnHit) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar1) EVT_ELSE EVT_CALL(GetDamageSource, LVarA) EVT_SWITCH(LVarA) EVT_CASE_OR_EQ(DMG_SRC_SHELL_TOSS) EVT_CASE_OR_EQ(DMG_SRC_POWER_SHELL) EVT_CASE_OR_EQ(DMG_SRC_FIRE_SHELL) - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_SET_CONST(LVar1, -1) EVT_END_CASE_GROUP EVT_CASE_DEFAULT EVT_EXEC_WAIT(EVS_Enemy_BurnHit) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar1) EVT_END_SWITCH EVT_END_IF EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit)) EVT_END_IF EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit)) EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_EXEC_WAIT(N(onDeath)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SPIN_SMASH_LAUNCH_HIT) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_END_IF EVT_CASE_EQ(EVENT_SPIN_SMASH_LAUNCH_DEATH) EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar5) EVT_IF_FLAG(LVar5, STATUS_FLAG_SHRINK) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_ELSE - EVT_EXEC_WAIT(N(80235168)) + EVT_EXEC_WAIT(N(EVS_SpinSmashLaunch)) EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_EXEC_WAIT(N(onSpinSmashLaunchDeath)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) + EVT_EXEC_WAIT(N(EVS_SpinSmashDeath)) EVT_RETURN EVT_CASE_EQ(EVENT_SHOCK_HIT) EVT_CASE_OR_EQ(EVENT_ZERO_DAMAGE) @@ -843,32 +851,32 @@ EvtScript N(EVS_HandleEvent) = { EVT_END_IF EVT_END_IF EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Idle, LVar1) EVT_EXEC_WAIT(EVS_Enemy_NoDamageHit) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Idle, LVar1) EVT_EXEC_WAIT(EVS_Enemy_NoDamageHit) EVT_CASE_EQ(EVENT_END_FIRST_STRIKE) EVT_CASE_EQ(EVENT_RECOVER_STATUS) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_2, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Idle, LVar1) EVT_EXEC_WAIT(EVS_Enemy_Recover) EVT_CASE_EQ(EVENT_30) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar2) EVT_EXEC_WAIT(EVS_Enemy_Hit) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_SCARE_AWAY) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar2) EVT_EXEC_WAIT(EVS_Enemy_ScareAway) EVT_RETURN EVT_CASE_DEFAULT @@ -878,75 +886,75 @@ EvtScript N(EVS_HandleEvent) = { EVT_END }; -EvtScript N(rotate) = { +EvtScript N(EVS_SpinAround) = { EVT_SET(LVar0, 0) EVT_LABEL(0) - EVT_SUB(LVar0, 30) - EVT_IF_LT(LVar0, 0) - EVT_ADD(LVar0, 360) - EVT_END_IF - EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_SUB(LVar0, 30) + EVT_IF_LT(LVar0, 0) + EVT_ADD(LVar0, 360) + EVT_END_IF + EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(onSpinSmash) = { - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) +EvtScript N(EVS_SpinSmashHit) = { + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_SWITCH(LVarA) EVT_CASE_EQ(0) - EVT_EXEC_WAIT(N(doSpinSmashHit)) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit_Stack)) EVT_CASE_EQ(1) - EVT_EXEC_WAIT(N(doSpinSmashHit)) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit_Stack)) EVT_CASE_EQ(2) - EVT_EXEC_WAIT(N(doSpinSmashHit)) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit_Stack)) EVT_CASE_EQ(3) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_EXEC_WAIT(N(doSpinSmashHitLastGuy)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) + EVT_EXEC_WAIT(N(EVS_SpinSmashHit_Top)) EVT_END_SWITCH EVT_RETURN EVT_END }; -EvtScript N(doSpinSmashHitLastGuy) = { - EVT_EXEC_GET_TID(N(rotate), LVarE) +EvtScript N(EVS_SpinSmashHit_Top) = { + EVT_EXEC_GET_TID(N(EVS_SpinAround), LVarE) EVT_CALL(GetPartEventFlags, ACTOR_SELF, LVar0, LVarA) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_CALL(PlayerCreateTargetList, TARGET_FLAG_4 | TARGET_FLAG_10000) EVT_CALL(InitTargetIterator) EVT_LABEL(0) - EVT_CALL(GetOwnerID, LVar1) - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_IF_NE(LVar1, LVar0) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_GOTO(0) - EVT_END_IF + EVT_CALL(GetOwnerID, LVar1) + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_IF_NE(LVar1, LVar0) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_GOTO(0) + EVT_END_IF EVT_LABEL(1) - EVT_ADD(LVarF, 1) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_IF_EQ(LVar0, -1) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_CALL(GetActorFlags, LVar0, LVar1) - EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_ADD(LVarF, 1) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_IF_EQ(LVar0, -1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_CALL(GetActorFlags, LVar0, LVar1) + EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_GOTO(1) + EVT_END_IF + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) + EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) + EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) + EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0)) + EVT_CALL(JumpToGoal, ACTOR_SELF, 0, FALSE, TRUE, FALSE) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) + EVT_END_THREAD + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetOwnerTarget, LVar0, LVar1) + EVT_CALL(DispatchDamageEvent, LVar0, 1, EVENT_SPIN_SMASH_LAUNCH_HIT) EVT_GOTO(1) - EVT_END_IF - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) - EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) - EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(7.0)) - EVT_CALL(JumpToGoal, ACTOR_SELF, 0, FALSE, TRUE, FALSE) - EVT_THREAD - EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) - EVT_END_THREAD - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetOwnerTarget, LVar0, LVar1) - EVT_CALL(DispatchDamageEvent, LVar0, 1, EVENT_SPIN_SMASH_LAUNCH_HIT) - EVT_GOTO(1) EVT_LABEL(10) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_03) EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(0.1)) @@ -991,53 +999,53 @@ EvtScript N(doSpinSmashHitLastGuy) = { }; EvtScript N(fall_apart) = { - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVarA) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVarA) EVT_SWITCH(LVarA) EVT_CASE_EQ(0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, ANIM_ShyStackGuy_Anim01) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, ANIM_ShyStackGuy_Anim05) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, ANIM_ShyStackGuy_Anim09) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, ANIM_ShyStackGuy_Anim11) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, ANIM_ShyStackGuy_Anim15) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, ANIM_ShyStackGuy_Anim1C) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(IdleAnimations2))) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_2, ACTOR_PART_FLAG_NO_TARGET, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_3, ACTOR_PART_FLAG_NO_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_3, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_DefeatedCount, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Still, ANIM_ShyStackGuy_Anim01) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Idle, ANIM_ShyStackGuy_Anim05) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, ANIM_ShyStackGuy_Anim09) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, ANIM_ShyStackGuy_Anim11) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, ANIM_ShyStackGuy_Anim15) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Attack, ANIM_ShyStackGuy_Anim1C) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(ThreeStackAnims))) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_1, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_1, ACTOR_PART_FLAG_NO_TARGET, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_2, ACTOR_PART_FLAG_NO_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_2, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) EVT_CALL(SetActorSize, ACTOR_SELF, 62, EVT_IGNORE_ARG) EVT_CALL(SetActorStatusOffsets, ACTOR_SELF, 0, -20, 0, -20) EVT_CALL(SetPartSize, ACTOR_SELF, PRT_MAIN, 57, 30) EVT_CASE_EQ(1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 2) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, ANIM_ShyStackGuy_Anim02) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, ANIM_ShyStackGuy_Anim06) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, ANIM_ShyStackGuy_Anim0A) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, ANIM_ShyStackGuy_Anim12) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, ANIM_ShyStackGuy_Anim16) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, ANIM_ShyStackGuy_Anim1D) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(IdleAnimations3))) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_3, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_3, ACTOR_PART_FLAG_NO_TARGET, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_4, ACTOR_PART_FLAG_NO_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_4, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_DefeatedCount, 2) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Still, ANIM_ShyStackGuy_Anim02) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Idle, ANIM_ShyStackGuy_Anim06) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, ANIM_ShyStackGuy_Anim0A) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, ANIM_ShyStackGuy_Anim12) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, ANIM_ShyStackGuy_Anim16) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Attack, ANIM_ShyStackGuy_Anim1D) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(TwoStackAnims))) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_2, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_2, ACTOR_PART_FLAG_NO_TARGET, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_3, ACTOR_PART_FLAG_NO_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_3, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) EVT_CALL(SetActorSize, ACTOR_SELF, 44, EVT_IGNORE_ARG) EVT_CALL(SetActorStatusOffsets, ACTOR_SELF, 0, -40, 0, -40) EVT_CALL(SetPartSize, ACTOR_SELF, PRT_MAIN, 39, 30) EVT_CASE_EQ(2) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_8, 3) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, ANIM_ShyStackGuy_Anim03) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_2, ANIM_ShyStackGuy_Anim07) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, ANIM_ShyStackGuy_Anim0B) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, ANIM_ShyStackGuy_Anim13) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_5, ANIM_ShyStackGuy_Anim17) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_6, ANIM_ShyStackGuy_Anim1E) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(IdleAnimations4))) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_4, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_4, ACTOR_PART_FLAG_NO_TARGET, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_5, ACTOR_PART_FLAG_NO_TARGET, FALSE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_5, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_DefeatedCount, 3) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Still, ANIM_ShyStackGuy_Anim03) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Idle, ANIM_ShyStackGuy_Anim07) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, ANIM_ShyStackGuy_Anim0B) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, ANIM_ShyStackGuy_Anim13) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, ANIM_ShyStackGuy_Anim17) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Anim_Attack, ANIM_ShyStackGuy_Anim1E) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(OneStackAnims))) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_3, ACTOR_PART_FLAG_MULTI_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_3, ACTOR_PART_FLAG_NO_TARGET, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_4, ACTOR_PART_FLAG_NO_TARGET, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_STACK_4, ACTOR_PART_FLAG_MULTI_TARGET, TRUE) EVT_CALL(SetActorSize, ACTOR_SELF, 26, EVT_IGNORE_ARG) EVT_CALL(SetActorStatusOffsets, ACTOR_SELF, 0, -60, 0, -60) EVT_CALL(SetPartSize, ACTOR_SELF, PRT_MAIN, 21, 30) @@ -1093,71 +1101,71 @@ EvtScript N(lower_actor_pos) = { EVT_END }; -EvtScript N(doSpinSmashHit) = { +EvtScript N(EVS_SpinSmashHit_Stack) = { EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80231000_54CC70, EVT_PTR("X"), LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("Y"), LVar1) - EVT_CALL(func_80231000_54CC70, EVT_PTR("Z"), LVar2) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_10, ANIM_ShyStackDamage_Anim00) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_10, 0, 0, 0) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(N(PrintDebugValue), EVT_PTR("X"), LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("Y"), LVar1) + EVT_CALL(N(PrintDebugValue), EVT_PTR("Z"), LVar2) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_KNOCKOFF, ANIM_ShyStackDamage_Anim00) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_KNOCKOFF, 0, 0, 0) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_EXEC_WAIT(N(fall_apart)) EVT_SET_CONST(LVar0, PRT_MAIN) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_EXEC_WAIT(N(lower_actor_pos)) EVT_CALL(PlayerCreateTargetList, TARGET_FLAG_4 | TARGET_FLAG_8000 | TARGET_FLAG_10000) EVT_CALL(InitTargetIterator) EVT_LABEL(0) - EVT_CALL(GetOwnerID, LVar1) - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_IF_NE(LVar1, LVar0) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_GOTO(0) - EVT_END_IF + EVT_CALL(GetOwnerID, LVar1) + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_IF_NE(LVar1, LVar0) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_GOTO(0) + EVT_END_IF EVT_LABEL(1) - EVT_ADD(LVarF, 1) - EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("T"), LVar0) - EVT_IF_EQ(LVar0, -1) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(GetOwnerTarget, LVar0, LVar9) - EVT_CALL(GetActorFlags, LVar0, LVar1) - EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_ADD(LVarF, 1) + EVT_CALL(ChooseNextTarget, ITER_NEXT, LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("T"), LVar0) + EVT_IF_EQ(LVar0, -1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GetOwnerTarget, LVar0, LVar9) + EVT_CALL(GetActorFlags, LVar0, LVar1) + EVT_IF_FLAG(LVar1, ACTOR_FLAG_TARGET_ONLY) + EVT_GOTO(1) + EVT_END_IF + EVT_CALL(GetOwnerID, LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("MYSELF ID"), LVar0) + EVT_CALL(GetOwnerTarget, LVar0, LVar1) + EVT_CALL(N(PrintDebugValue), EVT_PTR("TARGET ID"), LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("TARGET PARTS ID"), LVar1) + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) + EVT_SET(LVar1, 0) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(0.1)) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(7.0)) + EVT_CALL(N(PrintDebugValue), EVT_PTR("TX"), LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("TY"), LVar1) + EVT_CALL(N(PrintDebugValue), EVT_PTR("TZ"), LVar2) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2, 0, TRUE) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) + EVT_END_THREAD + EVT_CALL(SetGoalToTarget, ACTOR_SELF) + EVT_CALL(GetOwnerTarget, LVar0, LVar1) + EVT_CALL(DispatchDamageEvent, LVar0, 1, EVENT_SPIN_SMASH_LAUNCH_HIT) EVT_GOTO(1) - EVT_END_IF - EVT_CALL(GetOwnerID, LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("MYSELF ID"), LVar0) - EVT_CALL(GetOwnerTarget, LVar0, LVar1) - EVT_CALL(func_80231000_54CC70, EVT_PTR("TARGET ID"), LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("TARGET PARTS ID"), LVar1) - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_SET(LVar1, 0) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_10, EVT_FLOAT(0.1)) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_10, EVT_FLOAT(7.0)) - EVT_CALL(func_80231000_54CC70, EVT_PTR("TX"), LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("TY"), LVar1) - EVT_CALL(func_80231000_54CC70, EVT_PTR("TZ"), LVar2) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2, 0, TRUE) - EVT_THREAD - EVT_CALL(ShakeCam, CAM_BATTLE, 0, 2, EVT_FLOAT(1.0)) - EVT_END_THREAD - EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(GetOwnerTarget, LVar0, LVar1) - EVT_CALL(DispatchDamageEvent, LVar0, 1, EVENT_SPIN_SMASH_LAUNCH_HIT) - EVT_GOTO(1) EVT_LABEL(10) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_03) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_10, EVT_FLOAT(0.1)) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_10, EVT_FLOAT(6.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(0.1)) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(6.0)) EVT_CALL(GetActorSize, ACTOR_SELF, LVar0, LVar3) EVT_DIV(LVar3, 2) EVT_SET(LVar4, 70) EVT_SUB(LVar4, LVar3) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) EVT_SET(LVar5, LVar4) EVT_SUB(LVar5, LVar0) EVT_IF_LT(LVar5, 6) @@ -1165,69 +1173,69 @@ EvtScript N(doSpinSmashHit) = { EVT_ELSE EVT_SET(LVar5, 0) EVT_END_IF - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_10, LVar4, LVar1, LVar2, LVar5, TRUE) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_KNOCKOFF, LVar4, LVar1, LVar2, LVar5, TRUE) EVT_SUB(LVar4, 18) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_10, EVT_FLOAT(1.5)) - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_10, EVT_FLOAT(3.0)) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_10, LVar4, LVar1, LVar2, 12, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_NO_TARGET, TRUE) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(1.5)) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(3.0)) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_KNOCKOFF, LVar4, LVar1, LVar2, 12, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_NO_TARGET, TRUE) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) EVT_ADD(LVar1, 10) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_10, SOUND_ACTOR_DEATH) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_KNOCKOFF, SOUND_ACTOR_DEATH) EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 0, 0, 0, 0, 0) EVT_SET(LVar0, 0) EVT_LOOP(12) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_10, LVar0, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_KNOCKOFF, LVar0, 0, 0) EVT_ADD(LVar0, 8) EVT_WAIT(1) EVT_END_LOOP - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_RETURN EVT_END }; -EvtScript N(80235168) = { +EvtScript N(EVS_SpinSmashLaunch) = { EVT_CALL(GetDamageSource, LVar0) EVT_IF_EQ(LVar0, DMG_SRC_FIRE_SHELL) - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_10, ANIM_ShyStackDamage_Anim01) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_KNOCKOFF, ANIM_ShyStackDamage_Anim01) EVT_ELSE - EVT_CALL(SetAnimation, ACTOR_SELF, PRT_10, ANIM_ShyStackDamage_Anim00) + EVT_CALL(SetAnimation, ACTOR_SELF, PRT_KNOCKOFF, ANIM_ShyStackDamage_Anim00) EVT_END_IF EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80231000_54CC70, EVT_PTR("X"), LVar0) - EVT_CALL(func_80231000_54CC70, EVT_PTR("Y"), LVar1) - EVT_CALL(func_80231000_54CC70, EVT_PTR("Z"), LVar2) - EVT_CALL(SetPartPos, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_10, 0, 0, 0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("X"), LVar0) + EVT_CALL(N(PrintDebugValue), EVT_PTR("Y"), LVar1) + EVT_CALL(N(PrintDebugValue), EVT_PTR("Z"), LVar2) + EVT_CALL(SetPartPos, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_KNOCKOFF, 0, 0, 0) EVT_EXEC_WAIT(N(fall_apart)) EVT_CALL(GetLastEvent, ACTOR_SELF, LVar1) EVT_SWITCH(LVar1) EVT_CASE_OR_EQ(EVENT_BURN_HIT) EVT_CASE_OR_EQ(EVENT_BURN_DEATH) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnHurt, LVar1) EVT_END_CASE_GROUP EVT_CASE_DEFAULT - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar1) EVT_END_SWITCH EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, LVar1) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_INVISIBLE, FALSE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_INVISIBLE, FALSE) EVT_EXEC_WAIT(N(lower_actor_pos)) EVT_THREAD EVT_SET(LVar0, 0) EVT_LOOP(30) EVT_ADD(LVar0, 24) - EVT_CALL(SetPartYaw, ACTOR_SELF, PRT_10, LVar0) + EVT_CALL(SetPartYaw, ACTOR_SELF, PRT_KNOCKOFF, LVar0) EVT_WAIT(1) EVT_END_LOOP - EVT_CALL(SetPartYaw, ACTOR_SELF, PRT_10, LVar0) + EVT_CALL(SetPartYaw, ACTOR_SELF, PRT_KNOCKOFF, LVar0) EVT_END_THREAD - EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_10, EVT_FLOAT(3.0)) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_10, EVT_FLOAT(0.5)) + EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(3.0)) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, PRT_KNOCKOFF, EVT_FLOAT(0.5)) EVT_CALL(GetActorSize, ACTOR_SELF, LVar0, LVar3) EVT_DIV(LVar3, 2) EVT_SET(LVar4, 70) EVT_SUB(LVar4, LVar3) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) EVT_SET(LVar5, LVar4) EVT_SUB(LVar5, LVar0) EVT_IF_LT(LVar5, 6) @@ -1235,27 +1243,27 @@ EvtScript N(80235168) = { EVT_ELSE EVT_SET(LVar5, 0) EVT_END_IF - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_10, LVar4, LVar1, LVar2, LVar5, TRUE) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_KNOCKOFF, LVar4, LVar1, LVar2, LVar5, TRUE) EVT_SET(LVar1, 0) EVT_SUB(LVar0, 10) - EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2, 10, TRUE) + EVT_CALL(JumpPartTo, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2, 10, TRUE) EVT_WAIT(20) - EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_10, LVar0, LVar1, LVar2) + EVT_CALL(GetPartOffset, ACTOR_SELF, PRT_KNOCKOFF, LVar0, LVar1, LVar2) EVT_ADD(LVar1, 10) - EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_10, SOUND_ACTOR_DEATH) + EVT_CALL(PlaySoundAtPart, ACTOR_SELF, PRT_KNOCKOFF, SOUND_ACTOR_DEATH) EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar0, LVar1, LVar2, 0, 0, 0, 0, 0) EVT_SET(LVar0, 0) EVT_LOOP(12) - EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_10, LVar0, 0, 0) + EVT_CALL(SetPartRotation, ACTOR_SELF, PRT_KNOCKOFF, LVar0, 0, 0) EVT_ADD(LVar0, 8) EVT_WAIT(1) EVT_END_LOOP - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_NO_TARGET, TRUE) - EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_10, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_NO_TARGET, TRUE) + EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_KNOCKOFF, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_CALL(GetLastEvent, ACTOR_SELF, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(EVENT_BURN_HIT) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Hurt, LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, LVar0) EVT_CALL(GetActorPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(GetActorSize, ACTOR_SELF, LVar3, LVar4) @@ -1265,7 +1273,7 @@ EvtScript N(80235168) = { EVT_DIVF(LVar3, EVT_FLOAT(10.0)) EVT_PLAY_EFFECT(EFFECT_SMOKE_BURST, 0, LVar0, LVar1, LVar2, LVar3, 10, 0) EVT_CASE_EQ(EVENT_BURN_DEATH) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_5, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_BurnStill, LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, LVar0) EVT_CASE_DEFAULT EVT_END_SWITCH @@ -1281,7 +1289,7 @@ EvtScript N(EVS_TakeTurn) = { EVT_CALL(BattleCamTargetActor, ACTOR_SELF) EVT_CALL(MoveBattleCamOver, 20) EVT_CALL(func_8024ECF8, BTL_CAM_MODEY_MINUS_1, BTL_CAM_MODEX_1, FALSE) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_6, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Anim_Attack, LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, PRT_MAIN, LVar0) EVT_WAIT(20) EVT_ADD(LVar0, 4) @@ -1294,55 +1302,55 @@ EvtScript N(EVS_TakeTurn) = { EVT_CASE_OR_EQ(HIT_RESULT_MISS) EVT_CASE_OR_EQ(HIT_RESULT_LUCKY) EVT_SET(LVar5, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 0) EVT_END_CASE_GROUP EVT_CASE_DEFAULT EVT_SET(LVar5, 0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 4) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 4) EVT_CASE_EQ(1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 3) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 3) EVT_CASE_EQ(2) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 2) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 2) EVT_CASE_EQ(3) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 1) EVT_CASE_DEFAULT - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_7, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShotsToFire, 1) EVT_END_SWITCH EVT_END_SWITCH EVT_SET(LVar1, LVar5) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_8, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_DefeatedCount, LVar0) EVT_IF_LE(LVar0, 0) EVT_SET(LVar0, 0) - EVT_EXEC(N(launch_rock)) + EVT_EXEC(N(EVS_ShootRock)) EVT_END_IF EVT_IF_LE(LVar0, 1) EVT_SET(LVar0, 1) - EVT_EXEC(N(launch_rock)) + EVT_EXEC(N(EVS_ShootRock)) EVT_END_IF EVT_IF_LE(LVar0, 2) EVT_SET(LVar0, 2) - EVT_EXEC(N(launch_rock)) + EVT_EXEC(N(EVS_ShootRock)) EVT_END_IF EVT_SET(LVar0, 3) - EVT_EXEC(N(launch_rock)) + EVT_EXEC(N(EVS_ShootRock)) EVT_WAIT(10) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_7, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_ShotsToFire, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(1) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_SHOOT_ONE, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_EQ(2) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_SHOOT_TWO, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_EQ(3) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, 3, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_SHOOT_THREE, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_EQ(4) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_NO_CONTACT, 0, 0, DMG_SHOOT_FOUR, BS_FLAGS1_SP_EVT_ACTIVE) EVT_CASE_DEFAULT EVT_SWITCH(LVarF) EVT_CASE_EQ(HIT_RESULT_LUCKY) @@ -1366,13 +1374,13 @@ EvtScript N(EVS_TakeTurn) = { EVT_END }; -EvtScript N(launch_rock) = { +EvtScript N(EVS_ShootRock) = { EVT_CALL(GetStatusFlags, ACTOR_SELF, LVarF) EVT_IF_FLAG(LVarF, STATUS_FLAG_SHRINK) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_6, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_7, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_8, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_9, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_1, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_2, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_3, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_4, EVT_FLOAT(0.4), EVT_FLOAT(0.4), EVT_FLOAT(1.0)) EVT_CALL(GetActorPos, ACTOR_SELF, LVar3, LVar4, LVar5) EVT_SWITCH(LVar0) EVT_CASE_EQ(0) @@ -1393,10 +1401,10 @@ EvtScript N(launch_rock) = { EVT_SET(LVar2, 6) EVT_END_SWITCH EVT_ELSE - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_6, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_7, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_8, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) - EVT_CALL(SetPartScale, ACTOR_SELF, PRT_9, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_1, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_2, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_3, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) + EVT_CALL(SetPartScale, ACTOR_SELF, PRT_ROCK_4, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0)) EVT_CALL(GetActorPos, ACTOR_SELF, LVar3, LVar4, LVar5) EVT_SWITCH(LVar0) EVT_CASE_EQ(0) @@ -1464,13 +1472,13 @@ EvtScript N(launch_rock) = { EVT_END }; -EvtScript N(onDeath) = { +EvtScript N(EVS_Death) = { EVT_EXEC_WAIT(EVS_Enemy_DeathWithoutRemove) EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_3, LVar0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_StackPhase, LVar0) EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_3, LVar0) - EVT_IF_GE(LVar0, 2) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_StackPhase, LVar0) + EVT_IF_GE(LVar0, AVAL_StackPhase_Defeated) EVT_CALL(FreezeBattleState, TRUE) EVT_END_IF EVT_CALL(RemoveActor, ACTOR_SELF) @@ -1478,7 +1486,7 @@ EvtScript N(onDeath) = { EVT_END }; -EvtScript N(onSpinSmashLaunchDeath) = { +EvtScript N(EVS_SpinSmashDeath) = { EVT_CALL(HideHealthBar, ACTOR_SELF) EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) @@ -1503,10 +1511,10 @@ EvtScript N(onSpinSmashLaunchDeath) = { EVT_WAIT(1) EVT_END_LOOP EVT_CALL(SetPartFlagBits, ACTOR_SELF, PRT_MAIN, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(GetActorVar, ACTOR_ENEMY1, AVAR_Unk_3, LVar0) + EVT_CALL(GetActorVar, ACTOR_TANK, AVAR_Tank_StackPhase, LVar0) EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_3, LVar0) - EVT_IF_GE(LVar0, 2) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_StackPhase, LVar0) + EVT_IF_GE(LVar0, AVAL_StackPhase_Defeated) EVT_CALL(FreezeBattleState, TRUE) EVT_END_IF EVT_CALL(RemoveActor, ACTOR_SELF) diff --git a/src/battle/area/omo2_4/actor/signal_guy.c b/src/battle/area/omo2_4/actor/signal_guy.c index 14bc4154cb0..812b5e2ede4 100644 --- a/src/battle/area/omo2_4/actor/signal_guy.c +++ b/src/battle/area/omo2_4/actor/signal_guy.c @@ -8,8 +8,8 @@ extern s32 N(DefaultAnims)[]; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); enum N(ActorPartIDs) { @@ -115,8 +115,8 @@ EvtScript N(EVS_Init) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; diff --git a/src/battle/area/omo2_5/actor/shy_squad_dup.c b/src/battle/area/omo2_5/actor/shy_squad_redux.c similarity index 62% rename from src/battle/area/omo2_5/actor/shy_squad_dup.c rename to src/battle/area/omo2_5/actor/shy_squad_redux.c index 0e7861ec5ef..00661eb955b 100644 --- a/src/battle/area/omo2_5/actor/shy_squad_dup.c +++ b/src/battle/area/omo2_5/actor/shy_squad_redux.c @@ -3,52 +3,72 @@ #include "effects.h" #include "sprite/npc/TankGuy.h" -#define NAMESPACE b_area_omo2_5_shy_squad_dup +#include "battle/area/omo2/actor/boss_common.h" -extern s32 N(DefaultAnims)[]; +#define NAMESPACE b_area_omo2_5_shy_squad_redux + +extern s32 N(DarkAnims)[]; extern EvtScript N(EVS_Init); extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); extern EvtScript N(EVS_HandleEvent); extern EvtScript N(EVS_HandlePhase); -extern EvtScript N(move_guy_to_pos); -extern EvtScript N(displace_guy); -extern EvtScript N(displace_guy_2); -extern EvtScript N(onHit); -extern EvtScript N(set_squad_animation); -extern EvtScript N(onDeath); -extern EvtScript N(next_phase); -extern EvtScript N(run_away); -extern EvtScript N(attack); -extern EvtScript N(run_squad_to_pos); +extern EvtScript N(EVS_MoveMemberToPos); +extern EvtScript N(EVS_MemberHitReaction); +extern EvtScript N(EVS_MemberShockReaction); +extern EvtScript N(EVS_ReduceCrowdSize); +extern EvtScript N(EVS_SetMembersAnimation); +extern EvtScript N(EVS_Death); +extern EvtScript N(EVS_NotifyNextWave); +extern EvtScript N(EVS_Flee); +extern EvtScript N(EVS_Attack_Swarm); +extern EvtScript N(EVS_MoveSquadHome); + +enum N(MemberOffsets) { + HOME_OFFSET_X = 0, + HOME_OFFSET_Z = 1, + HIT_OFFSET_X = 2, + HIT_OFFSET_Z = 3, + SWARM_OFFSET_X = 4, + SWARM_OFFSET_Z = 5, +}; enum N(ActorPartIDs) { PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, - PRT_4 = 4, - PRT_5 = 5, - PRT_6 = 6, - PRT_7 = 7, - PRT_8 = 8, - PRT_9 = 9, - PRT_10 = 10, - PRT_11 = 11, - PRT_12 = 12, - PRT_13 = 13, - PRT_14 = 14, - PRT_15 = 15, - PRT_16 = 16, + PRT_MEMBER_01 = 2, + PRT_MEMBER_02 = 3, + PRT_MEMBER_03 = 4, + PRT_MEMBER_04 = 5, + PRT_MEMBER_05 = 6, + PRT_MEMBER_06 = 7, + PRT_MEMBER_07 = 8, + PRT_MEMBER_08 = 9, + PRT_MEMBER_09 = 10, + PRT_MEMBER_10 = 11, + PRT_MEMBER_11 = 12, + PRT_MEMBER_12 = 13, + PRT_MEMBER_13 = 14, + PRT_MEMBER_14 = 15, + PRT_MEMBER_15 = 16, }; +#define NUM_MEMBERS (1 + PRT_MEMBER_15 - PRT_MEMBER_01) + +#define LOOP_MEMBERS(idx) \ + EVT_SET(idx, PRT_MEMBER_01) \ + EVT_LOOP(NUM_MEMBERS) + enum N(ActorVars) { - AVAR_Unk_3 = 3, - AVAR_Unk_4 = 4, - AVAR_Unk_F = 15, + AVAR_NumDefeated = 3, + AVAR_NumPendingDefeat = 4, + AVAR_FleeState = 15, + AVAL_Flee_Init = 0, + AVAL_Flee_Looping = 1, + AVAL_Flee_Done = 2, }; enum N(ActorParams) { - DMG_UNK = 0, + DMG_SWARM = 1, }; s32 N(DefenseTable)[] = { @@ -88,7 +108,7 @@ ActorPartBlueprint N(ActorParts)[] = { .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -96,11 +116,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_2, + .index = PRT_MEMBER_01, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -108,11 +128,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_3, + .index = PRT_MEMBER_02, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -120,11 +140,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_4, + .index = PRT_MEMBER_03, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -132,11 +152,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_5, + .index = PRT_MEMBER_04, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -144,11 +164,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_6, + .index = PRT_MEMBER_05, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -156,11 +176,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_7, + .index = PRT_MEMBER_06, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -168,11 +188,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_8, + .index = PRT_MEMBER_07, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -180,11 +200,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_9, + .index = PRT_MEMBER_08, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -192,11 +212,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_10, + .index = PRT_MEMBER_09, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -204,11 +224,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_11, + .index = PRT_MEMBER_10, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -216,11 +236,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_12, + .index = PRT_MEMBER_11, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -228,11 +248,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_13, + .index = PRT_MEMBER_12, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -240,11 +260,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_14, + .index = PRT_MEMBER_13, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -252,11 +272,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_15, + .index = PRT_MEMBER_14, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -264,11 +284,11 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_2 | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_16, + .index = PRT_MEMBER_15, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, - .idleAnimations = N(DefaultAnims), + .idleAnimations = N(DarkAnims), .defenseTable = N(DefenseTable), .eventFlags = 0, .elementImmunityFlags = 0, @@ -278,8 +298,8 @@ ActorPartBlueprint N(ActorParts)[] = { ActorBlueprint NAMESPACE = { .flags = ACTOR_FLAG_NO_SHADOW, - .type = ACTOR_TYPE_SHY_SQUAD_DUP, - .level = ACTOR_LEVEL_SHY_SQUAD_DUP, + .type = ACTOR_TYPE_SHY_SQUAD_REDUX, + .level = ACTOR_LEVEL_SHY_SQUAD_REDUX, .maxHP = 15, .partCount = ARRAY_COUNT(N(ActorParts)), .partsData = N(ActorParts), @@ -299,13 +319,13 @@ ActorBlueprint NAMESPACE = { .statusTextOffset = { 10, 20 }, }; -s32 N(DefaultAnims)[] = { +s32 N(DarkAnims)[] = { STATUS_KEY_NORMAL, ANIM_TankGuy_Anim01, STATUS_KEY_STOP, ANIM_TankGuy_Anim00, STATUS_END, }; -s32 N(IdleAnimations_watt)[] = { +s32 N(BrightAnims)[] = { STATUS_KEY_NORMAL, ANIM_TankGuy_Anim07, STATUS_KEY_STOP, ANIM_TankGuy_Anim00, STATUS_END, @@ -316,126 +336,124 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase))) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_F, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 0, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 0, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 0, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 0, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 0, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 0, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 0, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 1, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 0, 50) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 0, 50) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 1, -40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 0, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 1, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 0, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 2, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 2, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 2, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 2, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 3, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 3, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 2, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 2, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 3, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 2, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 3, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 4, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 4, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 4, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 4, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 5, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 5, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 4, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 5, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 4, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 5, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 4, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_10, 5, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 4, -20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_11, 5, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 4, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_12, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 4, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_13, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 4, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_14, 5, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 4, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_15, 5, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 4, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_16, 5, 0) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumDefeated, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, 0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_FleeState, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HOME_OFFSET_X, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HOME_OFFSET_Z, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HOME_OFFSET_X, 50) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HOME_OFFSET_X, 50) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HOME_OFFSET_Z, -40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HOME_OFFSET_X, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HOME_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HOME_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HIT_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HIT_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HIT_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HIT_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, HIT_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, HIT_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HIT_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HIT_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, HIT_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HIT_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, HIT_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, SWARM_OFFSET_X, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, SWARM_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, SWARM_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, SWARM_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, SWARM_OFFSET_Z, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, SWARM_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, SWARM_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, SWARM_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, SWARM_OFFSET_Z, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, SWARM_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_09, SWARM_OFFSET_Z, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, SWARM_OFFSET_X, -20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_10, SWARM_OFFSET_Z, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, SWARM_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_11, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, SWARM_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_12, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, SWARM_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_13, SWARM_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, SWARM_OFFSET_X, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_14, SWARM_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_15, SWARM_OFFSET_Z, 0) + LOOP_MEMBERS(LVar0) EVT_CALL(SetPartPos, ACTOR_SELF, LVar0, 185, 0, 47) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10) EVT_CALL(HPBarToHome, ACTOR_SELF) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(CreatePartShadow, ACTOR_SELF, LVar0) EVT_ADD(LVar0, 1) EVT_END_LOOP - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_TankGuy_Anim03) EVT_SET(LVar2, 55) EVT_SET(LVar3, 47) EVT_SET(LVar4, EVT_FLOAT(4.0)) EVT_SET(LVar5, 30) EVT_SET(LVarF, 0) - EVT_LOOP(15) + EVT_LOOP(NUM_MEMBERS) EVT_THREAD EVT_WAIT(LVarF) - EVT_EXEC_WAIT(N(move_guy_to_pos)) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 0, LVar2) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 1, LVar3) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_X, LVar2) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_Z, LVar3) EVT_SET(LVar5, 20) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim01) EVT_END_THREAD EVT_ADD(LVar0, 1) @@ -452,31 +470,29 @@ EvtScript N(EVS_HandlePhase) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_IF_EQ(LVar0, PARTNER_WATT) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(IdleAnimations_watt))) - EVT_SET(LVar0, 2) - EVT_LOOP(15) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, LVar0, EVT_PTR(N(IdleAnimations_watt))) - EVT_ADD(LVar0, 1) - EVT_END_LOOP - EVT_ELSE - EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(DefaultAnims))) - EVT_SET(LVar0, 2) - EVT_LOOP(15) - EVT_CALL(SetIdleAnimations, ACTOR_SELF, LVar0, EVT_PTR(N(DefaultAnims))) - EVT_ADD(LVar0, 1) - EVT_END_LOOP - EVT_END_IF - EVT_WAIT(1) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_IF_EQ(LVar0, PARTNER_WATT) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(BrightAnims))) + LOOP_MEMBERS(LVar0) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, LVar0, EVT_PTR(N(BrightAnims))) + EVT_ADD(LVar0, 1) + EVT_END_LOOP + EVT_ELSE + EVT_CALL(SetIdleAnimations, ACTOR_SELF, PRT_MAIN, EVT_PTR(N(DarkAnims))) + LOOP_MEMBERS(LVar0) + EVT_CALL(SetIdleAnimations, ACTOR_SELF, LVar0, EVT_PTR(N(DarkAnims))) + EVT_ADD(LVar0, 1) + EVT_END_LOOP + EVT_END_IF + EVT_WAIT(1) EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(move_guy_to_pos) = { +EvtScript N(EVS_MoveMemberToPos) = { EVT_SET(LVarA, 2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVarB) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarB) EVT_ADD(LVarA, LVarB) EVT_IF_LT(LVar0, LVarA) EVT_RETURN @@ -497,16 +513,16 @@ EvtScript N(move_guy_to_pos) = { EVT_END }; -EvtScript N(onSpinSmash) = { - EVT_SET_CONST(LVar0, PRT_2) - EVT_LOOP(15) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVarD) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVarE) +EvtScript N(EVS_HitReaction) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_01) + EVT_LOOP(NUM_MEMBERS) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarD) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVarE) EVT_ADD(LVarD, 2) EVT_ADD(LVarD, LVarE) EVT_IF_GE(LVar0, LVarD) EVT_THREAD - EVT_EXEC_WAIT(N(displace_guy)) + EVT_EXEC_WAIT(N(EVS_MemberHitReaction)) EVT_END_THREAD EVT_END_IF EVT_ADD(LVar0, 1) @@ -516,7 +532,7 @@ EvtScript N(onSpinSmash) = { EVT_END }; -EvtScript N(displace_guy) = { +EvtScript N(EVS_MemberHitReaction) = { EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_SET(LVar2, LVar0) EVT_CALL(GetDamageIntensity) @@ -683,16 +699,16 @@ EvtScript N(displace_guy) = { EVT_END }; -EvtScript N(onShock) = { - EVT_SET_CONST(LVar0, PRT_2) - EVT_LOOP(15) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVarD) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVarE) +EvtScript N(EVS_Shock) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_01) + EVT_LOOP(NUM_MEMBERS) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVarD) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVarE) EVT_ADD(LVarD, 2) EVT_ADD(LVarD, LVarE) EVT_IF_GE(LVar0, LVarD) EVT_THREAD - EVT_EXEC_WAIT(N(displace_guy_2)) + EVT_EXEC_WAIT(N(EVS_MemberShockReaction)) EVT_END_THREAD EVT_END_IF EVT_ADD(LVar0, 1) @@ -701,7 +717,7 @@ EvtScript N(onShock) = { EVT_END }; -EvtScript N(displace_guy_2) = { +EvtScript N(EVS_MemberShockReaction) = { EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) EVT_CALL(GetActorSize, ACTOR_SELF, LVar4, LVar5) @@ -747,31 +763,29 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_OR_EQ(EVENT_HIT_COMBO) EVT_CASE_OR_EQ(EVENT_HIT) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_DEATH) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_WAIT(10) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_OR_EQ(EVENT_BURN_HIT) EVT_CASE_OR_EQ(EVENT_BURN_DEATH) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim05) - EVT_EXEC_WAIT(N(onHit)) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim05) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_WAIT(20) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim05) EVT_ADD(LVar0, 1) EVT_END_LOOP @@ -779,56 +793,56 @@ EvtScript N(EVS_HandleEvent) = { EVT_IF_EQ(LVar0, 36) EVT_WAIT(10) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim05) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_END_IF EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_EQ(EVENT_SHOCK_HIT) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onShock)) + EVT_EXEC_WAIT(N(EVS_Shock)) EVT_WAIT(40) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 20) - EVT_EXEC_WAIT(N(run_squad_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_CASE_EQ(EVENT_SHOCK_DEATH) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onHit)) + EVT_EXEC_WAIT(N(EVS_ReduceCrowdSize)) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onShock)) + EVT_EXEC_WAIT(N(EVS_Shock)) EVT_WAIT(40) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(onDeath)) + EVT_EXEC_WAIT(N(EVS_Death)) EVT_RETURN EVT_CASE_OR_EQ(EVENT_ZERO_DAMAGE) EVT_CASE_OR_EQ(EVENT_IMMUNE) EVT_CASE_OR_EQ(EVENT_SPIKE_TAUNT) EVT_SET_CONST(LVar0, PRT_MAIN) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim01) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_END_CASE_GROUP EVT_CASE_EQ(EVENT_BEGIN_AIR_LIFT) EVT_SET(LVar1, ANIM_TankGuy_Anim04) - EVT_EXEC_WAIT(N(set_squad_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_WAIT(1000) EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED) EVT_SET_CONST(LVar0, PRT_MAIN) EVT_SET_CONST(LVar1, ANIM_TankGuy_Anim01) - EVT_EXEC_WAIT(N(onSpinSmash)) + EVT_EXEC_WAIT(N(EVS_HitReaction)) EVT_CASE_EQ(EVENT_END_FIRST_STRIKE) EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(4.0)) EVT_CALL(HPBarToHome, ACTOR_SELF) @@ -845,86 +859,86 @@ EvtScript N(EVS_HandleEvent) = { EVT_CASE_DEFAULT EVT_END_SWITCH EVT_SET(LVar1, ANIM_TankGuy_Anim01) - EVT_EXEC_WAIT(N(set_squad_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -EvtScript N(onHit) = { +EvtScript N(EVS_ReduceCrowdSize) = { EVT_SET(LVar1, LVar1) - EVT_EXEC_WAIT(N(set_squad_animation)) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) EVT_CALL(GetLastDamage, ACTOR_SELF, LVar1) EVT_ADD(LVar0, LVar1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) EVT_LABEL(0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_RETURN - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar1) - EVT_IF_GE(LVar1, 15) - EVT_RETURN - EVT_END_IF - EVT_SET(LVar0, 2) - EVT_ADD(LVar0, LVar1) - EVT_IF_NE(LVar0, 16) - EVT_THREAD - EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_20000000, TRUE) - EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 2, LVar7) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 3, LVar8) - EVT_ADD(LVar1, LVar7) - EVT_ADD(LVar3, LVar8) - EVT_CALL(SetPartJumpGravity, ACTOR_SELF, LVar0, EVT_FLOAT(0.5)) - EVT_CALL(JumpPartTo, ACTOR_SELF, LVar0, LVar1, 0, LVar3, 15, TRUE) - EVT_CALL(GetDamageSource, LVar5) - EVT_SWITCH(LVar5) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_LEFT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_RIGHT) - EVT_CASE_OR_EQ(DMG_SRC_SPIN_SMASH) - EVT_END_CASE_GROUP - EVT_CASE_DEFAULT - EVT_SET(LVar7, 0) - EVT_LOOP(24) - EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, 0, LVar7, 0) - EVT_ADD(LVar7, 30) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_SWITCH - EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar1, LVar2, LVar3, 0, 0, 0, 0, 0) - EVT_SET(LVar8, 0) - EVT_LOOP(12) - EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, LVar8, 0, 0) - EVT_ADD(LVar8, 8) - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) - EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) - EVT_END_THREAD - EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) - EVT_SUB(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) - EVT_ADD(LVar0, 1) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) - EVT_GOTO(0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_IF_EQ(LVar0, 0) + EVT_RETURN + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar1) + EVT_IF_GE(LVar1, 15) + EVT_RETURN + EVT_END_IF + EVT_SET(LVar0, PRT_MEMBER_01) + EVT_ADD(LVar0, LVar1) + EVT_IF_NE(LVar0, NUM_MEMBERS + 1) + EVT_THREAD + EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_20000000, TRUE) + EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HIT_OFFSET_X, LVar7) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HIT_OFFSET_Z, LVar8) + EVT_ADD(LVar1, LVar7) + EVT_ADD(LVar3, LVar8) + EVT_CALL(SetPartJumpGravity, ACTOR_SELF, LVar0, EVT_FLOAT(0.5)) + EVT_CALL(JumpPartTo, ACTOR_SELF, LVar0, LVar1, 0, LVar3, 15, TRUE) + EVT_CALL(GetDamageSource, LVar5) + EVT_SWITCH(LVar5) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_LEFT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_SLAP_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_NEXT_FAN_SMACK_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_SLAP_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_LAST_FAN_SMACK_RIGHT) + EVT_CASE_OR_EQ(DMG_SRC_SPIN_SMASH) + EVT_END_CASE_GROUP + EVT_CASE_DEFAULT + EVT_SET(LVar7, 0) + EVT_LOOP(24) + EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, 0, LVar7, 0) + EVT_ADD(LVar7, 30) + EVT_WAIT(1) + EVT_END_LOOP + EVT_END_SWITCH + EVT_PLAY_EFFECT(EFFECT_BIG_SMOKE_PUFF, LVar1, LVar2, LVar3, 0, 0, 0, 0, 0) + EVT_SET(LVar8, 0) + EVT_LOOP(12) + EVT_CALL(SetPartRotation, ACTOR_SELF, LVar0, LVar8, 0, 0) + EVT_ADD(LVar8, 8) + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) + EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) + EVT_END_THREAD + EVT_END_IF + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_SUB(LVar0, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_ADD(LVar0, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(set_squad_animation) = { - EVT_SET(LVar2, 2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) - EVT_LOOP(15) +EvtScript N(EVS_SetMembersAnimation) = { + EVT_SET(LVar2, PRT_MEMBER_01) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) + EVT_LOOP(NUM_MEMBERS) EVT_IF_EQ(LVar0, 0) EVT_CALL(SetAnimation, ACTOR_SELF, LVar2, LVar1) EVT_ELSE @@ -936,7 +950,7 @@ EvtScript N(set_squad_animation) = { EVT_END }; -EvtScript N(80233E48) = { +EvtScript N(EVS_DefeatMember) = { EVT_IF_NE(LVar1, -1) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, LVar1) EVT_WAIT(10) @@ -973,16 +987,16 @@ EvtScript N(80233E48) = { EVT_END }; -EvtScript N(onDeath) = { - EVT_SET_CONST(LVar0, PRT_2) - EVT_LOOP(14) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar2) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_4, LVar3) +EvtScript N(EVS_Death) = { + EVT_SET_CONST(LVar0, PRT_MEMBER_01) + EVT_LOOP(NUM_MEMBERS - 1) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumPendingDefeat, LVar3) EVT_ADD(LVar2, 2) EVT_ADD(LVar2, LVar3) EVT_IF_GE(LVar0, LVar2) EVT_THREAD - EVT_EXEC_WAIT(N(80233E48)) + EVT_EXEC_WAIT(N(EVS_DefeatMember)) EVT_END_THREAD EVT_END_IF EVT_ADD(LVar0, 1) @@ -1007,7 +1021,7 @@ EvtScript N(onDeath) = { EVT_CALL(SetPartFlagBits, ACTOR_SELF, LVar0, ACTOR_PART_FLAG_INVISIBLE, TRUE) EVT_CALL(RemovePartShadow, ACTOR_SELF, LVar0) EVT_WAIT(30) - EVT_EXEC_WAIT(N(next_phase)) + EVT_EXEC_WAIT(N(EVS_NotifyNextWave)) EVT_CALL(RemoveActor, ACTOR_SELF) EVT_RETURN EVT_END @@ -1019,61 +1033,62 @@ EvtScript N(EVS_TakeTurn) = { EVT_CALL(GetEnemyMaxHP, ACTOR_SELF, LVar0) EVT_CALL(GetActorHP, ACTOR_SELF, LVar1) EVT_IF_EQ(LVar0, LVar1) - EVT_EXEC_WAIT(N(attack)) + EVT_EXEC_WAIT(N(EVS_Attack_Swarm)) EVT_ELSE - EVT_EXEC_WAIT(N(run_away)) - EVT_EXEC_WAIT(N(next_phase)) + EVT_EXEC_WAIT(N(EVS_Flee)) + EVT_EXEC_WAIT(N(EVS_NotifyNextWave)) EVT_CALL(RemoveActor, ACTOR_SELF) EVT_RETURN EVT_END_IF EVT_ELSE - EVT_EXEC_WAIT(N(attack)) + EVT_EXEC_WAIT(N(EVS_Attack_Swarm)) EVT_END_IF EVT_RETURN EVT_END }; -EvtScript N(next_phase) = { +EvtScript N(EVS_NotifyNextWave) = { EVT_CALL(FreezeBattleState, TRUE) - EVT_CALL(SetActorVar, ACTOR_ENEMY1, AVAR_Unk_4, 1) + EVT_CALL(SetActorVar, ACTOR_TANK, AVAR_Tank_UnusedPhase, AVAL_UnusedPhase_Defeated) EVT_RETURN EVT_END }; -EvtScript N(run_away) = { - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_F, 0) +EvtScript N(EVS_Flee) = { + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_FleeState, AVAL_Flee_Init) EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 40) - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, 0) - EVT_LOOP(15) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar2) - EVT_ADD(LVar2, 2) + EVT_LOOP(NUM_MEMBERS) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar2) + EVT_ADD(LVar2, PRT_MEMBER_01) EVT_IF_GE(LVar0, LVar2) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_F, 1) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_FleeState, AVAL_Flee_Looping) EVT_THREAD EVT_WAIT(LVar1) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim03) EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 180) EVT_CALL(RunPartTo, ACTOR_SELF, LVar0, 55, 0, 47, 20) EVT_CALL(RunPartTo, ACTOR_SELF, LVar0, 185, 0, 47, 30) - EVT_IF_EQ(LVar0, 16) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_F, 2) + EVT_IF_EQ(LVar0, PRT_MEMBER_15) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_FleeState, AVAL_Flee_Done) EVT_END_IF EVT_END_THREAD EVT_ADD(LVar1, 5) EVT_END_IF EVT_ADD(LVar0, 1) EVT_END_LOOP - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_F, LVar0) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_F, 2) + // wait for fleeing to finish + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_FleeState, LVar0) + EVT_IF_EQ(LVar0, AVAL_Flee_Init) + EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_FleeState, AVAL_Flee_Done) EVT_END_IF EVT_SET(LVar0, 15) EVT_LOOP(0) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_F, LVar0) - EVT_IF_EQ(LVar0, 2) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_FleeState, LVar0) + EVT_IF_EQ(LVar0, AVAL_Flee_Done) EVT_BREAK_LOOP EVT_END_IF EVT_WAIT(1) @@ -1082,7 +1097,7 @@ EvtScript N(run_away) = { EVT_END }; -EvtScript N(attack) = { +EvtScript N(EVS_Attack_Swarm) = { EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_DISABLE) EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER) @@ -1091,31 +1106,30 @@ EvtScript N(attack) = { EVT_CALL(SetBattleCamZoom, 300) EVT_CALL(BattleCamTargetActor, ACTOR_SELF) EVT_CALL(MoveBattleCamOver, 30) - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_TankGuy_Anim03) - EVT_LOOP(15) + EVT_LOOP(NUM_MEMBERS) EVT_THREAD EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_SETF(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 30) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_END_THREAD EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(GetGoalPos, ACTOR_PLAYER, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_2, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_2, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar2, 0, LVar3) EVT_CALL(RunToGoal, ACTOR_SELF, 30, FALSE) - EVT_SET(LVar0, 2) - EVT_LOOP(15) + LOOP_MEMBERS(LVar0) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar4, LVar5, LVar6) EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar1, LVar2, LVar3) EVT_IF_LT(LVar1, LVar4) @@ -1139,7 +1153,7 @@ EvtScript N(attack) = { EVT_IF_EQ(LVarA, HIT_RESULT_LUCKY) EVT_CALL(EnemyTestTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0) EVT_END_IF - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_IF_LT(LVar0, 14) EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar0, LVar1, LVar2) EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 0) @@ -1155,18 +1169,18 @@ EvtScript N(attack) = { EVT_WAIT(36) EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) - EVT_EXEC_WAIT(N(run_squad_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_SET(LVar1, ANIM_TankGuy_Anim01) - EVT_EXEC_WAIT(N(set_squad_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END_CASE_GROUP EVT_CASE_EQ(HIT_RESULT_HIT_STATIC) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, 1, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, DMG_SWARM, BS_FLAGS1_SP_EVT_ACTIVE) EVT_END_SWITCH EVT_SET(LVarE, 15) - EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Unk_3, LVar0) + EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_NumDefeated, LVar0) EVT_SUB(LVarE, LVar0) EVT_SET(LVarD, LVarE) EVT_LOOP(LVarD) @@ -1176,7 +1190,7 @@ EvtScript N(attack) = { EVT_SET(LVar0, BS_FLAGS1_SP_EVT_ACTIVE) EVT_END_IF EVT_CALL(SetGoalToTarget, ACTOR_SELF) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, 1, LVar0) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVarF, 0, 0, 0, DMG_SWARM, LVar0) EVT_THREAD EVT_CALL(GetActorPos, ACTOR_PLAYER, LVar1, LVar2, LVar3) EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 0, LVar1, LVar2, LVar3, 0, 0) @@ -1197,29 +1211,29 @@ EvtScript N(attack) = { EVT_CALL(UseBattleCamPreset, BTL_CAM_DEFAULT) EVT_CALL(MoveBattleCamOver, 30) EVT_WAIT(20) - EVT_EXEC_WAIT(N(run_squad_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveSquadHome)) EVT_SET(LVar1, ANIM_TankGuy_Anim01) - EVT_EXEC_WAIT(N(set_squad_animation)) + EVT_EXEC_WAIT(N(EVS_SetMembersAnimation)) EVT_CALL(EnableIdleScript, ACTOR_SELF, IDLE_SCRIPT_ENABLE) EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE) EVT_RETURN EVT_END }; -EvtScript N(run_squad_to_pos) = { - EVT_SET(LVar0, 2) +EvtScript N(EVS_MoveSquadHome) = { + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_TankGuy_Anim03) - EVT_LOOP(15) + EVT_LOOP(NUM_MEMBERS) EVT_THREAD EVT_CALL(SetGoalToHome, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_SETF(LVar4, EVT_FLOAT(6.0)) EVT_SET(LVar5, 30) - EVT_EXEC_WAIT(N(move_guy_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim01) EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 0) EVT_END_THREAD @@ -1228,9 +1242,9 @@ EvtScript N(run_squad_to_pos) = { EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0)) EVT_CALL(SetGoalToHome, ACTOR_SELF) EVT_CALL(GetGoalPos, ACTOR_SELF, LVar2, LVar5, LVar3) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_2, 4, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_X, LVar5) EVT_ADD(LVar2, LVar5) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_2, 5, LVar5) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, SWARM_OFFSET_Z, LVar5) EVT_ADD(LVar3, LVar5) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar2, 0, LVar3) EVT_CALL(RunToGoal, ACTOR_SELF, 30, FALSE) diff --git a/src/battle/area/omo2_6/actor/shy_guy_dup.c b/src/battle/area/omo2_6/actor/shy_squad_stub.c similarity index 74% rename from src/battle/area/omo2_6/actor/shy_guy_dup.c rename to src/battle/area/omo2_6/actor/shy_squad_stub.c index 0157393294f..8a184ef243f 100644 --- a/src/battle/area/omo2_6/actor/shy_guy_dup.c +++ b/src/battle/area/omo2_6/actor/shy_squad_stub.c @@ -2,27 +2,38 @@ #include "script_api/battle.h" #include "sprite/npc/TankGuy.h" -#define NAMESPACE b_area_omo2_6_shy_guy_dup +#define NAMESPACE b_area_omo2_6_shy_squad_stub extern s32 N(DefaultAnims)[]; extern EvtScript N(EVS_Init); -extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_Idle); +extern EvtScript N(EVS_TakeTurn); extern EvtScript N(EVS_HandleEvent); -extern EvtScript N(run_to_pos); +extern EvtScript N(EVS_MoveMemberToPos); + +enum N(MemberOffsets) { + HOME_OFFSET_X = 0, + HOME_OFFSET_Z = 1, +}; enum N(ActorPartIDs) { - PRT_MAIN = 1, - PRT_2 = 2, - PRT_3 = 3, - PRT_4 = 4, - PRT_5 = 5, - PRT_6 = 6, - PRT_7 = 7, - PRT_8 = 8, - PRT_9 = 9, + PRT_MAIN = 1, + PRT_MEMBER_01 = 2, + PRT_MEMBER_02 = 3, + PRT_MEMBER_03 = 4, + PRT_MEMBER_04 = 5, + PRT_MEMBER_05 = 6, + PRT_MEMBER_06 = 7, + PRT_MEMBER_07 = 8, + PRT_MEMBER_08 = 9, }; +#define NUM_MEMBERS (1 + PRT_MEMBER_08 - PRT_MEMBER_01) + +#define LOOP_MEMBERS(idx) \ + EVT_SET(idx, PRT_MEMBER_01) \ + EVT_LOOP(NUM_MEMBERS) + s32 N(DefenseTable)[] = { ELEMENT_NORMAL, 0, ELEMENT_END, @@ -68,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_2, + .index = PRT_MEMBER_01, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -80,7 +91,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_3, + .index = PRT_MEMBER_02, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -92,7 +103,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_4, + .index = PRT_MEMBER_03, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -104,7 +115,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_5, + .index = PRT_MEMBER_04, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -116,7 +127,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_6, + .index = PRT_MEMBER_05, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -128,7 +139,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_7, + .index = PRT_MEMBER_06, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -140,7 +151,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_8, + .index = PRT_MEMBER_07, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -152,7 +163,7 @@ ActorPartBlueprint N(ActorParts)[] = { }, { .flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_USE_ABSOLUTE_POSITION, - .index = PRT_9, + .index = PRT_MEMBER_08, .posOffset = { 0, 0, 0 }, .targetOffset = { 0, 24 }, .opacity = 255, @@ -166,8 +177,8 @@ ActorPartBlueprint N(ActorParts)[] = { ActorBlueprint NAMESPACE = { .flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_NO_HEALTH_BAR, - .type = ACTOR_TYPE_SHY_GUY_DUP, - .level = ACTOR_LEVEL_SHY_GUY_DUP, + .type = ACTOR_TYPE_SHY_SQUAD_STUB, + .level = ACTOR_LEVEL_SHY_SQUAD_STUB, .maxHP = 10, .partCount = ARRAY_COUNT(N(ActorParts)), .partsData = N(ActorParts), @@ -206,39 +217,38 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 0, 0) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_2, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_3, 1, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 0, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_4, 1, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 0, 20) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_5, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_6, 1, 10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 0, 30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_7, 1, -30) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 0, 40) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_8, 1, -10) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 0, 50) - EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_9, 1, 10) - EVT_SET(LVar0, 2) - EVT_LOOP(8) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_X, 0) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_01, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_02, HOME_OFFSET_Z, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_X, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_03, HOME_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_X, 20) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_04, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_05, HOME_OFFSET_Z, 10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_X, 30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_06, HOME_OFFSET_Z, -30) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_X, 40) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_07, HOME_OFFSET_Z, -10) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_X, 50) + EVT_CALL(SetPartMovementVar, ACTOR_SELF, PRT_MEMBER_08, HOME_OFFSET_Z, 10) + LOOP_MEMBERS(LVar0) EVT_CALL(SetPartPos, ACTOR_SELF, LVar0, 185, 0, 47) EVT_ADD(LVar0, 1) EVT_END_LOOP EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10) EVT_CALL(HPBarToHome, ACTOR_SELF) - EVT_SET(LVar0, 2) + EVT_SET(LVar0, PRT_MEMBER_01) EVT_SET(LVar1, ANIM_TankGuy_Anim03) EVT_SET(LVar4, EVT_FLOAT(4.0)) EVT_SET(LVar5, 5) - EVT_LOOP(8) + EVT_LOOP(NUM_MEMBERS) EVT_THREAD - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 0, LVar2) - EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, 1, LVar3) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_X, LVar2) + EVT_CALL(GetPartMovementVar, ACTOR_SELF, LVar0, HOME_OFFSET_Z, LVar3) EVT_SET(LVar5, 20) - EVT_EXEC_WAIT(N(run_to_pos)) + EVT_EXEC_WAIT(N(EVS_MoveMemberToPos)) EVT_CALL(SetAnimation, ACTOR_SELF, LVar0, ANIM_TankGuy_Anim01) EVT_END_THREAD EVT_ADD(LVar0, 1) @@ -249,13 +259,13 @@ EvtScript N(EVS_Init) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_WAIT(1) - EVT_GOTO(0) + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; -EvtScript N(run_to_pos) = { +EvtScript N(EVS_MoveMemberToPos) = { EVT_CALL(GetPartOffset, ACTOR_SELF, LVar0, LVar6, 0, LVar7) EVT_IF_LT(LVar6, LVar2) EVT_CALL(SetPartYaw, ACTOR_SELF, LVar0, 180) diff --git a/src/battle/area/tik2/actor/electro_blooper.c b/src/battle/area/tik2/actor/electro_blooper.c index e48fc4ee4ac..7cb2512960c 100644 --- a/src/battle/area/tik2/actor/electro_blooper.c +++ b/src/battle/area/tik2/actor/electro_blooper.c @@ -733,7 +733,7 @@ EvtScript N(EVS_Attack_ChargedDrop) = { EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, LVar1, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 16, FALSE, TRUE, FALSE) EVT_WAIT(2) - EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK, 8, 0, DMG_CHARGED_DROP, BS_FLAGS1_SP_EVT_ACTIVE) + EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LVar0, DAMAGE_TYPE_SHOCK, SUPPRESS_EVENT_SHOCK_CONTACT, 0, DMG_CHARGED_DROP, BS_FLAGS1_SP_EVT_ACTIVE) EVT_IF_NE(LVarF, HIT_RESULT_HIT_STATIC) EVT_EXEC_WAIT(N(EVS_Discharge)) EVT_END_IF @@ -879,7 +879,7 @@ EvtScript N(EVS_Charge) = { EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, LVarF) EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_CHARGE_LIGHTNING) EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED | ACTOR_EVENT_FLAG_ELECTRIFIED) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE) EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_STATIC) EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(ChargedStatusTable))) EVT_RETURN @@ -899,7 +899,7 @@ EvtScript N(EVS_Discharge) = { EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_StaticEffect, 0) EVT_END_IF EVT_CALL(SetPartEventFlags, ACTOR_SELF, PRT_TARGET, 0) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE) EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable))) EVT_RETURN EVT_END diff --git a/src/battle/area/tik2/actor/super_blooper.c b/src/battle/area/tik2/actor/super_blooper.c index ee82bb7bdb8..d844422c16d 100644 --- a/src/battle/area/tik2/actor/super_blooper.c +++ b/src/battle/area/tik2/actor/super_blooper.c @@ -888,7 +888,7 @@ EvtScript N(EVS_Attack_RageDrop) = { EvtScript N(EVS_Enrage) = { EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, TRUE) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE) EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Blooper, SPR_PAL_Blooper_Supercharged, 0, 6, 12, 6, 0, 0) EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS) EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(EnragedStatusTable))) @@ -899,7 +899,7 @@ EvtScript N(EVS_Enrage) = { EvtScript N(EVS_LoseRage) = { EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Enraged, FALSE) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE) EVT_CALL(SetStatusTable, ACTOR_SELF, EVT_PTR(N(StatusTable))) EVT_CALL(SetPartEventBits, ACTOR_SELF, PRT_TARGET, ACTOR_EVENT_FLAG_ATTACK_CHARGED, FALSE) EVT_RETURN diff --git a/src/battle/battle.h b/src/battle/battle.h index 6cd57048690..cb6586e05ad 100644 --- a/src/battle/battle.h +++ b/src/battle/battle.h @@ -77,241 +77,22 @@ enum BattlePositions { BTL_POS_CENTER = 16, }; -typedef enum ActorType { - ACTOR_TYPE_RED_GOOMBA = 0x00, - ACTOR_TYPE_RED_PARAGOOMBA = 0x01, - ACTOR_TYPE_GLOOMBA = 0x02, - ACTOR_TYPE_PARAGLOOMBA = 0x03, - ACTOR_TYPE_SPIKED_GLOOMBA = 0x04, - ACTOR_TYPE_DARK_KOOPA = 0x05, - ACTOR_TYPE_DARK_PARATROOPA = 0x06, - ACTOR_TYPE_GOOMBA = 0x07, - ACTOR_TYPE_PARAGOOMBA = 0x08, - ACTOR_TYPE_SPIKED_GOOMBA = 0x09, - ACTOR_TYPE_FUZZY = 0x0A, - ACTOR_TYPE_KOOPA_TROOPA = 0x0B, - ACTOR_TYPE_PARATROOPA = 0x0C, - ACTOR_TYPE_BOB_OMB = 0x0D, - ACTOR_TYPE_BOB_OMB_DUP = 0x0E, - ACTOR_TYPE_BULLET_BILL = 0x0F, - ACTOR_TYPE_BILL_BLASTER = 0x10, - ACTOR_TYPE_CLEFT = 0x11, - ACTOR_TYPE_MONTY_MOLE = 0x12, - ACTOR_TYPE_BANDIT = 0x13, - ACTOR_TYPE_POKEY = 0x14, - ACTOR_TYPE_POKEY_MUMMY = 0x15, - ACTOR_TYPE_SWOOPER = 0x16, - ACTOR_TYPE_BUZZY_BEETLE = 0x17, - ACTOR_TYPE_STONE_CHOMP = 0x18, - ACTOR_TYPE_PIRANHA_PLANT = 0x19, - ACTOR_TYPE_FOREST_FUZZY = 0x1A, - ACTOR_TYPE_HYPER_GOOMBA = 0x1B, - ACTOR_TYPE_HYPER_PARAGOOMBA = 0x1C, - ACTOR_TYPE_HYPER_CLEFT = 0x1D, - ACTOR_TYPE_CLUBBA = 0x1E, - ACTOR_TYPE_SHY_GUY = 0x1F, - ACTOR_TYPE_GROOVE_GUY = 0x20, - ACTOR_TYPE_SKY_GUY = 0x21, - ACTOR_TYPE_MEDI_GUY = 0x22, - ACTOR_TYPE_PYRO_GUY = 0x23, - ACTOR_TYPE_SPY_GUY = 0x24, - ACTOR_TYPE_FUZZIPEDE = 0x25, - ACTOR_TYPE_HURT_PLANT = 0x26, - ACTOR_TYPE_M_BUSH = 0x27, - ACTOR_TYPE_AQUA_FUZZY = 0x28, - ACTOR_TYPE_JUNGLE_FUZZY = 0x29, - ACTOR_TYPE_SPEAR_GUY = 0x2A, - ACTOR_TYPE_LAVA_BUBBLE = 0x2B, - ACTOR_TYPE_SPIKE_TOP = 0x2C, - ACTOR_TYPE_PUTRID_PIRANHA = 0x2D, - ACTOR_TYPE_LAKITU = 0x2E, - ACTOR_TYPE_SPINY = 0x2F, - ACTOR_TYPE_MONTY_MOLE_BOSS = 0x30, - ACTOR_TYPE_BZZAP = 0x31, - ACTOR_TYPE_CRAZEE_DAYZEE = 0x32, - ACTOR_TYPE_AMAZY_DAYZEE = 0x33, - ACTOR_TYPE_RUFF_PUFF = 0x34, - ACTOR_TYPE_SPIKE = 0x35, - ACTOR_TYPE_GULPIT = 0x36, - ACTOR_TYPE_GULPIT_ROCKS = 0x37, - ACTOR_TYPE_WHITE_CLUBBA = 0x38, - ACTOR_TYPE_FROST_PIRANHA = 0x39, - ACTOR_TYPE_SWOOPULA = 0x3A, - ACTOR_TYPE_DUPLIGHOST = 0x3B, - ACTOR_TYPE_GHOST_GOOMBARIO = 0x3C, - ACTOR_TYPE_GHOST_KOOPER = 0x3D, - ACTOR_TYPE_GHOST_BOMBETTE = 0x3E, - ACTOR_TYPE_GHOST_PARAKARRY = 0x3F, - ACTOR_TYPE_GHOST_BOW = 0x40, - ACTOR_TYPE_GHOST_WATT = 0x41, - ACTOR_TYPE_GHOST_SUSHIE = 0x42, - ACTOR_TYPE_GHOST_LAKILESTER = 0x43, - ACTOR_TYPE_ALBINO_DINO = 0x44, - ACTOR_TYPE_EMBER = 0x45, - ACTOR_TYPE_BONY_BEETLE = 0x46, - ACTOR_TYPE_DRY_BONES = 0x47, - ACTOR_TYPE_DRY_BONES2 = 0x48, - ACTOR_TYPE_BOMBSHELL_BLASTER = 0x49, - ACTOR_TYPE_BOMBSHELL_BILL = 0x4A, - ACTOR_TYPE_HAMMER_BROS = 0x4B, - ACTOR_TYPE_KOOPATROL = 0x4C, - ACTOR_TYPE_MAGIKOOPA = 0x4D, - ACTOR_TYPE_FLYING_MAGIKOOPA = 0x4E, - ACTOR_TYPE_MAGICLONE = 0x4F, - ACTOR_TYPE_FLYING_MAGICLONE = 0x50, - ACTOR_TYPE_RED_MAGIKOOPA = 0x51, - ACTOR_TYPE_FLYING_RED_MAGIKOOPA = 0x52, - ACTOR_TYPE_GREEN_MAGIKOOPA = 0x53, - ACTOR_TYPE_FLYING_GREEN_MAGIKOOPA = 0x54, - ACTOR_TYPE_YELLOW_MAGIKOOPA = 0x55, - ACTOR_TYPE_FLYING_YELLOW_MAGIKOOPA = 0x56, - ACTOR_TYPE_GRAY_MAGIKOOPA = 0x57, - ACTOR_TYPE_FLYING_GRAY_MAGIKOOPA = 0x58, - ACTOR_TYPE_WHITE_MAGIKOOPA = 0x59, - ACTOR_TYPE_FLYING_WHITE_MAGIKOOPA = 0x5A, - - ACTOR_TYPE_UNUSED_5B = 0x5B, - ACTOR_TYPE_UNUSED_5C = 0x5C, - ACTOR_TYPE_UNUSED_5D = 0x5D, - ACTOR_TYPE_UNUSED_5E = 0x5E, - ACTOR_TYPE_UNUSED_5F = 0x5F, - ACTOR_TYPE_UNUSED_60 = 0x60, - ACTOR_TYPE_UNUSED_61 = 0x61, - ACTOR_TYPE_UNUSED_62 = 0x62, - ACTOR_TYPE_UNUSED_63 = 0x63, - ACTOR_TYPE_UNUSED_64 = 0x64, - ACTOR_TYPE_UNUSED_65 = 0x65, - ACTOR_TYPE_UNUSED_66 = 0x66, - ACTOR_TYPE_UNUSED_67 = 0x67, - ACTOR_TYPE_UNUSED_68 = 0x68, - ACTOR_TYPE_UNUSED_69 = 0x69, - ACTOR_TYPE_UNUSED_6A = 0x6A, - - ACTOR_TYPE_MONTY_HOLE = 0x6B, - - ACTOR_TYPE_UNUSED_6C = 0x6C, - ACTOR_TYPE_UNUSED_6D = 0x6D, - - ACTOR_TYPE_PLAYER = 0x6E, - ACTOR_TYPE_GOOMBARIO = 0x6F, - ACTOR_TYPE_KOOPER = 0x70, - ACTOR_TYPE_BOMBETTE = 0x71, - ACTOR_TYPE_PARAKARRY = 0x72, - ACTOR_TYPE_BOW = 0x73, - ACTOR_TYPE_WATT = 0x74, - ACTOR_TYPE_SUSHIE = 0x75, - ACTOR_TYPE_LAKILESTER = 0x76, - ACTOR_TYPE_TWINK = 0x77, - - ACTOR_TYPE_UNUSED_78 = 0x78, - ACTOR_TYPE_UNUSED_79 = 0x79, - - ACTOR_TYPE_THE_MASTER_1 = 0x7A, - ACTOR_TYPE_THE_MASTER_2 = 0x7B, - ACTOR_TYPE_THE_MASTER_3 = 0x7C, - ACTOR_TYPE_CHAN = 0x7D, - ACTOR_TYPE_LEE = 0x7E, - ACTOR_TYPE_LEE_GOOMBARIO = 0x7F, - ACTOR_TYPE_LEE_KOOPER = 0x80, - ACTOR_TYPE_LEE_BOMBETTE = 0x81, - ACTOR_TYPE_LEE_PARAKARRY = 0x82, - ACTOR_TYPE_LEE_BOW = 0x83, - ACTOR_TYPE_LEE_WATT = 0x84, - ACTOR_TYPE_LEE_SUSHIE = 0x85, - ACTOR_TYPE_LEE_LAKILESTER = 0x86, - ACTOR_TYPE_KAMMY_KOOPA = 0x87, - ACTOR_TYPE_JR_TROOPA_1 = 0x88, - ACTOR_TYPE_JR_TROOPA_2 = 0x89, - ACTOR_TYPE_JR_TROOPA_3 = 0x8A, - ACTOR_TYPE_JR_TROOPA_4 = 0x8B, - ACTOR_TYPE_JR_TROOPA_5 = 0x8C, - ACTOR_TYPE_JR_TROOPA_6 = 0x8D, - ACTOR_TYPE_JR_TROOPA_DUP1 = 0x8E, - ACTOR_TYPE_JR_TROOPA_DUP2 = 0x8F, - ACTOR_TYPE_BLUE_GOOMBA_BOSS = 0x90, - ACTOR_TYPE_RED_GOOMBA_BOSS = 0x91, - ACTOR_TYPE_GOOMBA_KING = 0x92, - ACTOR_TYPE_GOOMNUT_TREE = 0x93, - ACTOR_TYPE_GOOMBARIO_TUTOR1 = 0x94, - ACTOR_TYPE_MAGIKOOPA_BOSS = 0x95, - ACTOR_TYPE_FLYING_MAGIKOOPA_BOSS = 0x96, - ACTOR_TYPE_MAGIKOOPA_DUP1 = 0x97, - ACTOR_TYPE_MAGIKOOPA_DUP2 = 0x98, - ACTOR_TYPE_FAKE_BOWSER = 0x99, - ACTOR_TYPE_KOOPA_BROS = 0x9A, - ACTOR_TYPE_GREEN_NINJAKOOPA = 0x9B, - ACTOR_TYPE_RED_NINJAKOOPA = 0x9C, - ACTOR_TYPE_BLACK_NINJAKOOPA = 0x9D, - ACTOR_TYPE_YELLOW_NINJAKOOPA = 0x9E, - ACTOR_TYPE_ELDSTAR = 0x9F, - ACTOR_TYPE_BUZZAR = 0xA0, - ACTOR_TYPE_TUTANKOOPA = 0xA1, - ACTOR_TYPE_CHOMP = 0xA2, - ACTOR_TYPE_TUBBA_BLUBBA_INVINCIBLE = 0xA3, - ACTOR_TYPE_TUBBA_BLUBBA = 0xA4, - ACTOR_TYPE_TUBBA_HEART = 0xA5, - ACTOR_TYPE_STILT_GUY = 0xA6, - ACTOR_TYPE_SHY_STACK = 0xA7, - ACTOR_TYPE_SHY_SQUAD = 0xA8, - ACTOR_TYPE_GENERAL_GUY = 0xA9, - ACTOR_TYPE_TOY_TANK = 0xAA, - ACTOR_TYPE_LIGHT_BULB = 0xAB, - ACTOR_TYPE_SIGNAL_GUY = 0xAC, - ACTOR_TYPE_SHY_SQUAD_DUP = 0xAD, - ACTOR_TYPE_SHY_GUY_DUP = 0xAE, - ACTOR_TYPE_ANTI_GUY_OMO = 0xAF, - ACTOR_TYPE_ANTI_GUY_KPA = 0xB0, - ACTOR_TYPE_BIG_LANTERN_GHOST = 0xB1, - ACTOR_TYPE_GOOMBA_KING_DUP = 0xB2, - ACTOR_TYPE_LAVA_PIRANHA_PHASE_1 = 0xB3, - ACTOR_TYPE_LAVA_PIRANHA_PHASE_2 = 0xB4, - ACTOR_TYPE_LAVA_BUD_PHASE_1 = 0xB5, - ACTOR_TYPE_LAVA_BUD_PHASE_2 = 0xB6, - ACTOR_TYPE_PETIT_PIRANHA = 0xB7, - ACTOR_TYPE_PETIT_PIRANHA_BOMB = 0xB8, - ACTOR_TYPE_KENT_C_KOOPA = 0xB9, - ACTOR_TYPE_HUFF_N_PUFF = 0xBA, - ACTOR_TYPE_TUFF_PUFF = 0xBB, - ACTOR_TYPE_MONSTAR = 0xBC, - ACTOR_TYPE_CRYSTAL_KING = 0xBD, - ACTOR_TYPE_CRYSTAL_CLONE = 0xBE, - ACTOR_TYPE_CRYSTAL_BIT = 0xBF, - ACTOR_TYPE_INTRO_BOWSER = 0xC0, - ACTOR_TYPE_HALLWAY_BOWSER = 0xC1, - ACTOR_TYPE_HALLWAY_BOWSER_DUP = 0xC2, - ACTOR_TYPE_FINAL_BOWSER_1 = 0xC3, - ACTOR_TYPE_FINAL_BOWSER_1_DUP = 0xC4, - ACTOR_TYPE_FINAL_BOWSER_2 = 0xC5, - ACTOR_TYPE_FINAL_BOWSER_2_DUP = 0xC6, - ACTOR_TYPE_BLOOPER = 0xC7, - ACTOR_TYPE_ELECTRO_BLOOPER1 = 0xC8, - ACTOR_TYPE_ELECTRO_BLOOPER2 = 0xC9, - ACTOR_TYPE_SUPER_BLOOPER1 = 0xCA, - ACTOR_TYPE_SUPER_BLOOPER2 = 0xCB, - ACTOR_TYPE_BLOOPER_BABY = 0xCC, - ACTOR_TYPE_LAKILESTER_DUP = 0xCD, - ACTOR_TYPE_SLOT_MACHINE_START = 0xCE, - ACTOR_TYPE_SLOT_MACHINE_STOP = 0xCF, - ACTOR_TYPE_WHACKA = 0xD0, - ACTOR_TYPE_SLOT_MACHINE_START_DUP1 = 0xD1, - ACTOR_TYPE_SLOT_MACHINE_START_DUP2 = 0xD2, - ACTOR_TYPE_SLOT_MACHINE_START_DUP3 = 0xD3, - ACTOR_TYPE_COUNT = 0xD4, -} ActorType; - enum BattleVars { - BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost - BTL_VAL_Duplighost_HasCopied = 0x4, - BTL_VAR_HyperSync = 1, - BTL_VAL_HyperSync_None = 0, - BTL_VAL_HyperSync_Done = 1, - BTL_VAL_HyperSync_Active = 2, - BTL_VAR_UNK_MAGIKOOPA = 2, - BTL_VAR_LastCopiedPartner = 3, // used by duplighost - BTL_VAR_KoopatrolSummonCount_0 = 4, // count summons from Koopatrol and 'children' originally from column 0 - BTL_VAR_KoopatrolSummonCount_1 = 5, // count summons from Koopatrol and 'children' originally from column 1 - BTL_VAR_KoopatrolSummonCount_2 = 6, // count summons from Koopatrol and 'children' originally from column 2 - BTL_VAR_KoopatrolSummonCount_3 = 7, // count summons from Koopatrol and 'children' originally from column 3 + BTL_VAR_DuplighostCopyFlags = 0, // used by duplighost + BTL_VAL_Duplighost_HasCopied = 0x4, + BTL_VAR_HyperSync = 1, + BTL_VAL_HyperSync_None = 0, + BTL_VAL_HyperSync_Done = 1, + BTL_VAL_HyperSync_Active = 2, + // index of the last enemy boosted by a magikoopa + // intended to prevent multiple boosts for the same actor in the same turn + // selected enemies go from left to right and are reset if none are found + BTL_VAR_Magikoopa_LastIndexBoosted = 2, + BTL_VAR_LastCopiedPartner = 3, // used by duplighost + BTL_VAR_KoopatrolSummonCount_0 = 4, // count summons from Koopatrol and 'children' originally from column 0 + BTL_VAR_KoopatrolSummonCount_1 = 5, // count summons from Koopatrol and 'children' originally from column 1 + BTL_VAR_KoopatrolSummonCount_2 = 6, // count summons from Koopatrol and 'children' originally from column 2 + BTL_VAR_KoopatrolSummonCount_3 = 7, // count summons from Koopatrol and 'children' originally from column 3 }; // document special actor vars referenced from other actors @@ -459,7 +240,7 @@ typedef struct ActorSounds { /* 0x18 */ s16 delay[2]; ///< Number of frames to wait between walk/fly sounds. Negative values are in distance. } ActorSounds; // size = 0x1C -extern ActorSounds bActorSoundTable[ACTOR_TYPE_COUNT]; +extern ActorSounds bActorSoundTable[]; typedef struct ActorOffsets { /* 0x00 */ Vec3b tattleCam; @@ -475,7 +256,7 @@ typedef struct PlayerCelebrationAnimOptions { extern Battle* gCurrentBattlePtr; -extern ActorOffsets bActorOffsets[ACTOR_TYPE_COUNT]; +extern ActorOffsets bActorOffsets[]; void func_80072BCC(s32 arg0); void load_demo_battle(u32 index); diff --git a/src/battle/btl_evt_library.c b/src/battle/btl_evt_library.c index f5b3dec0a1e..d74dfa1d221 100644 --- a/src/battle/btl_evt_library.c +++ b/src/battle/btl_evt_library.c @@ -1008,14 +1008,14 @@ EvtScript EVS_Player_NextSlapLeft_Impl = { EvtScript EVS_Player_LastSlapRight_Impl = { EVT_CHILD_THREAD - EVT_CALL(MakeLerp, 0, 0x00000870, 60, EASING_COS_IN_OUT) + EVT_CALL(MakeLerp, 0, 2160, 60, EASING_COS_IN_OUT) EVT_LABEL(1) - EVT_CALL(UpdateLerp) - EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(1) - EVT_END_IF + EVT_CALL(UpdateLerp) + EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(1) + EVT_END_IF EVT_END_CHILD_THREAD EVT_CALL(GetDamageIntensity) EVT_EXEC_WAIT(EVS_Player_Hit_Impl) @@ -1026,14 +1026,14 @@ EvtScript EVS_Player_LastSlapRight_Impl = { EvtScript EVS_Player_LastSlapLeft_Impl = { EVT_CHILD_THREAD - EVT_CALL(MakeLerp, 0x00000870, 0, 60, EASING_COS_IN_OUT) + EVT_CALL(MakeLerp, 2160, 0, 60, EASING_COS_IN_OUT) EVT_LABEL(1) - EVT_CALL(UpdateLerp) - EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(1) - EVT_END_IF + EVT_CALL(UpdateLerp) + EVT_CALL(SetActorYaw, ACTOR_SELF, LVar0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(1) + EVT_END_IF EVT_END_CHILD_THREAD EVT_CALL(GetDamageIntensity) EVT_EXEC_WAIT(EVS_Player_Hit_Impl) diff --git a/src/battle/common/actor/anti_guy.inc.c b/src/battle/common/actor/anti_guy.inc.c index 0e4f9bb4b17..d292e88214a 100644 --- a/src/battle/common/actor/anti_guy.inc.c +++ b/src/battle/common/actor/anti_guy.inc.c @@ -6,10 +6,12 @@ #ifdef ANTIGUY_TRIO #define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_KPA +#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_KPA #define PARALYZE_CHANCE 50 #define ESCAPE_CHANCE 0 #else #define ACTOR_TYPE ACTOR_TYPE_ANTI_GUY_OMO +#define ACTOR_LEVEL ACTOR_LEVEL_ANTI_GUY_OMO #define PARALYZE_CHANCE 60 #define ESCAPE_CHANCE 50 #endif @@ -77,7 +79,7 @@ ActorPartBlueprint N(ActorParts)[] = { ActorBlueprint NAMESPACE = { .flags = 0, .type = ACTOR_TYPE, - .level = ACTOR_LEVEL_ANTI_GUY, + .level = ACTOR_LEVEL, .maxHP = 50, .partCount = ARRAY_COUNT(N(ActorParts)), .partsData = N(ActorParts), diff --git a/src/battle/common/actor/bob_omb.inc.c b/src/battle/common/actor/bob_omb.inc.c index c51f48f98ce..0880c3193d4 100644 --- a/src/battle/common/actor/bob_omb.inc.c +++ b/src/battle/common/actor/bob_omb.inc.c @@ -175,7 +175,7 @@ EvtScript N(EVS_Ignite) = { EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(2.0)) EVT_CALL(SetGoalPos, ACTOR_SELF, LVar0, 0, LVar2) EVT_CALL(JumpToGoal, ACTOR_SELF, 5, FALSE, TRUE, FALSE) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 1) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, TRUE) EVT_CALL(SetActorPaletteSwapParams, ACTOR_SELF, PRT_MAIN, SPR_PAL_Bobomb, SPR_PAL_Bobomb_Burst, 0, 10, 0, 10, 0, 0) EVT_CALL(SetActorPaletteEffect, ACTOR_SELF, PRT_MAIN, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS) EVT_WAIT(3) @@ -194,7 +194,7 @@ EvtScript N(EVS_Defuse) = { EVT_ADD(LVar2, 2) EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 3, LVar0, LVar1, LVar2, 0, 0) EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE) EVT_RETURN EVT_END }; @@ -203,7 +203,7 @@ EvtScript N(EVS_Cleanup) = { EVT_CALL(GetActorVar, ACTOR_SELF, AVAR_Ignited, LVar0) EVT_IF_EQ(LVar0, TRUE) EVT_CALL(StopLoopingSoundAtActor, ACTOR_SELF, 0) - EVT_CALL(func_8026ED20, ACTOR_SELF, PRT_MAIN, 0) + EVT_CALL(EnableActorPaletteEffects, ACTOR_SELF, PRT_MAIN, FALSE) EVT_END_IF EVT_RETURN EVT_END diff --git a/src/battle/common/actor/gray_magikoopa.inc.c b/src/battle/common/actor/gray_magikoopa.inc.c index 37fe77510dd..c43066efd67 100644 --- a/src/battle/common/actor/gray_magikoopa.inc.c +++ b/src/battle/common/actor/gray_magikoopa.inc.c @@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -803,14 +803,14 @@ EvtScript N(EVS_TakeTurn) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -821,7 +821,7 @@ EvtScript N(EVS_TakeTurn) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/common/actor/green_magikoopa.inc.c b/src/battle/common/actor/green_magikoopa.inc.c index 312313b5bf2..b3a10e276f3 100644 --- a/src/battle/common/actor/green_magikoopa.inc.c +++ b/src/battle/common/actor/green_magikoopa.inc.c @@ -775,9 +775,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -788,9 +788,9 @@ EvtScript N(EVS_Init_Flying) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorDefenseBoost, LVar0, LVar4) EVT_IF_LT(LVar4, 3) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/common/actor/magikoopa.inc.c b/src/battle/common/actor/magikoopa.inc.c index 73cf6d008ed..be56cf08cac 100644 --- a/src/battle/common/actor/magikoopa.inc.c +++ b/src/battle/common/actor/magikoopa.inc.c @@ -449,9 +449,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) EVT_CALL(BindHandlePhase, ACTOR_SELF, EVT_PTR(N(EVS_HandlePhase))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0) EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE) @@ -473,9 +473,9 @@ EvtScript N(EVS_Flying_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_Flying_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_HitTypeFlags, 0) EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_IsClone, FALSE) @@ -1533,14 +1533,14 @@ EvtScript N(EVS_Move_TryBoostAttack) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorAttackBoost, LVar0, LVar4) EVT_IF_LT(LVar4, MAX_ATTACK_BOOST) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1551,7 +1551,7 @@ EvtScript N(EVS_Move_TryBoostAttack) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1646,14 +1646,14 @@ EvtScript N(EVS_Move_TryBoostDefense) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorDefenseBoost, LVar0, LVar4) EVT_IF_LT(LVar4, MAX_DEFENSE_BOOST) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1664,7 +1664,7 @@ EvtScript N(EVS_Move_TryBoostDefense) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1759,14 +1759,14 @@ EvtScript N(EVS_Move_TryElectrify) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1777,7 +1777,7 @@ EvtScript N(EVS_Move_TryElectrify) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) @@ -1877,14 +1877,14 @@ EvtScript N(EVS_Move_TryTransparent) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -1895,7 +1895,7 @@ EvtScript N(EVS_Move_TryTransparent) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/common/actor/red_magikoopa.inc.c b/src/battle/common/actor/red_magikoopa.inc.c index 80b43218776..2f9b15ac948 100644 --- a/src/battle/common/actor/red_magikoopa.inc.c +++ b/src/battle/common/actor/red_magikoopa.inc.c @@ -774,9 +774,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -787,9 +787,9 @@ EvtScript N(EVS_Init_Flying) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -804,14 +804,14 @@ EvtScript N(EVS_TakeTurn) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetActorAttackBoost, LVar0, LVar4) EVT_IF_LT(LVar4, MAX_ATTACK_BOOST) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -822,7 +822,7 @@ EvtScript N(EVS_TakeTurn) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/common/actor/shy_guy_base.inc.c b/src/battle/common/actor/shy_guy_base.inc.c index f59d26f8100..76cedf77fba 100644 --- a/src/battle/common/actor/shy_guy_base.inc.c +++ b/src/battle/common/actor/shy_guy_base.inc.c @@ -111,18 +111,18 @@ EvtScript N(EVS_Init) = { EvtScript N(EVS_Idle) = { EVT_LABEL(0) - EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) - EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP) - EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14) - EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0) - EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13) - EVT_ELSE - EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24) - EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10) - EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20) - EVT_END_IF - EVT_WAIT(1) - EVT_GOTO(0) + EVT_CALL(GetStatusFlags, ACTOR_SELF, LVar0) + EVT_IF_FLAG(LVar0, STATUS_FLAG_SLEEP) + EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, -4, 14) + EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 0) + EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 13, 10, 13) + EVT_ELSE + EVT_CALL(SetTargetOffset, ACTOR_SELF, PRT_MAIN, 0, 24) + EVT_CALL(SetProjectileTargetOffset, ACTOR_SELF, PRT_MAIN, -1, -10) + EVT_CALL(N(SetAbsoluteStatusOffsets), -10, 20, 10, 20) + EVT_END_IF + EVT_WAIT(1) + EVT_GOTO(0) EVT_RETURN EVT_END }; diff --git a/src/battle/common/actor/yellow_magikoopa.inc.c b/src/battle/common/actor/yellow_magikoopa.inc.c index e42a0262bce..73f0198b9d5 100644 --- a/src/battle/common/actor/yellow_magikoopa.inc.c +++ b/src/battle/common/actor/yellow_magikoopa.inc.c @@ -773,9 +773,9 @@ EvtScript N(EVS_Init) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -786,9 +786,9 @@ EvtScript N(EVS_Init_Flying) = { EVT_CALL(BindIdle, ACTOR_SELF, EVT_PTR(N(EVS_Idle))) EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_PTR(N(EVS_TakeTurn))) EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_PTR(N(EVS_HandleEvent_Flying))) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar0) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar0) EVT_IF_EQ(LVar0, 0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_END_IF EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_ShouldKnockDown, FALSE) EVT_RETURN @@ -805,14 +805,14 @@ EvtScript N(EVS_TakeTurn) = { EVT_LABEL(0) EVT_CALL(GetOwnerTarget, LVar0, LVar1) EVT_CALL(GetIndexFromHome, LVar0, LVar1) - EVT_CALL(GetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar2) + EVT_CALL(GetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar2) EVT_IF_GT(LVar1, LVar2) EVT_CALL(N(CheckMagikoopaCastTarget), LVar0, LVar3) EVT_IF_EQ(LVar3, 0) EVT_CALL(GetStatusFlags, LVar0, LVar4) EVT_IF_NOT_FLAG(LVar4, STATUS_FLAG_STATIC | STATUS_FLAG_TRANSPARENT) EVT_SET(LVar8, LVar0) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, LVar1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, LVar1) EVT_GOTO(100) EVT_END_IF EVT_END_IF @@ -823,7 +823,7 @@ EvtScript N(EVS_TakeTurn) = { EVT_END_IF EVT_IF_EQ(LFlag0, FALSE) EVT_SET(LFlag0, TRUE) - EVT_CALL(SetBattleVar, BTL_VAR_UNK_MAGIKOOPA, -1) + EVT_CALL(SetBattleVar, BTL_VAR_Magikoopa_LastIndexBoosted, -1) EVT_GOTO(10) EVT_END_IF EVT_CALL(CountPlayerTargets, ACTOR_SELF, TARGET_FLAG_2 | TARGET_FLAG_8000, LVar0) diff --git a/src/battle/partner/goombario.c b/src/battle/partner/goombario.c index ecd771de6f0..9f72fb26473 100644 --- a/src/battle/partner/goombario.c +++ b/src/battle/partner/goombario.c @@ -7,7 +7,7 @@ #define NAMESPACE battle_partner_goombario -extern s32 bActorTattles[ACTOR_TYPE_COUNT]; +extern s32 bActorTattles[]; static EffectInstance* N(tattleEffect); static b32 N(isCharged); diff --git a/src/battle/partner/kooper.c b/src/battle/partner/kooper.c index d2143630447..cfec4a8defb 100644 --- a/src/battle/partner/kooper.c +++ b/src/battle/partner/kooper.c @@ -1086,7 +1086,7 @@ EvtScript N(fireShell) = { EVT_CALL(SetActorVar, ACTOR_SELF, AVAR_Unk_1, 1) EVT_CALL(SetActorPaletteEffect, ACTOR_PARTNER, -1, PAL_ADJUST_BLEND_PALETTES_VARYING_INTERVALS) EVT_CALL(SetActorPaletteSwapParams, ACTOR_PARTNER, -1, SPR_PAL_BattleKooper, SPR_PAL_BattleKooper, 1, 10, 1000, 10, 0, 0) - EVT_CALL(func_8026ED20, ACTOR_PARTNER, 0, 1) + EVT_CALL(EnableActorPaletteEffects, ACTOR_PARTNER, 0, TRUE) EVT_SET(LVar6, SPR_PAL_BattleKooper) EVT_SET(LVar7, SPR_PAL_BattleKooper) EVT_SET(LVar8, 30) @@ -1210,7 +1210,7 @@ EvtScript N(fireShell) = { EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 1) EVT_WAIT(20) EVT_CALL(RemoveActorDecoration, ACTOR_SELF, PRT_ZERO, 0) - EVT_CALL(func_8026ED20, ACTOR_PARTNER, 0, 0) + EVT_CALL(EnableActorPaletteEffects, ACTOR_PARTNER, 0, FALSE) EVT_CALL(SetActorPos, ACTOR_PARTNER, -200, 0, 0) EVT_CALL(SetGoalToHome, ACTOR_PARTNER) EVT_CALL(AddGoalPos, ACTOR_PARTNER, 40, 0, 0) diff --git a/src/battle/partner/watt.c b/src/battle/partner/watt.c index 32841e9ae88..6620ac0ecc6 100644 --- a/src/battle/partner/watt.c +++ b/src/battle/partner/watt.c @@ -208,7 +208,7 @@ API_CALLABLE(N(PowerShockDischargeFX)) { script->functionTemp[0]--; if (script->functionTemp[0] == 0) { - N(bulbGlow)->data.bulbGlow->unk_14 = 5; + N(bulbGlow)->data.bulbGlow->timeLeft = 5; return ApiStatus_DONE2; } diff --git a/src/effects/bulb_glow.c b/src/effects/bulb_glow.c index 424a4e19b98..d016d628161 100644 --- a/src/effects/bulb_glow.c +++ b/src/effects/bulb_glow.c @@ -33,13 +33,13 @@ UnkBulbGlow D_E0078918[] = { s32 D_E00789A8 = 0; Color_RGB8 D_E00789AC[] = { - {255, 255, 255}, - {255, 255, 128}, - {255, 128, 255}, - {128, 255, 255}, - {255, 128, 128}, - {128, 255, 128}, - {128, 128, 255}, + { 255, 255, 255 }, + { 255, 255, 128 }, + { 255, 128, 255 }, + { 128, 255, 255 }, + { 255, 128, 128 }, + { 128, 255, 128 }, + { 128, 128, 255 }, }; void bulb_glow_init(EffectInstance* effect); @@ -47,7 +47,7 @@ void bulb_glow_update(EffectInstance* effect); void bulb_glow_render(EffectInstance* effect); void bulb_glow_appendGfx(void* effect); -void bulb_glow_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance** outEffect) { +void bulb_glow_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, EffectInstance** outEffect) { EffectBlueprint bp; EffectInstance* effect; BulbGlowFXData* data; @@ -65,18 +65,18 @@ void bulb_glow_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInst data = effect->data.bulbGlow = general_heap_malloc(numParts * sizeof(*data)); ASSERT(effect->data.bulbGlow != NULL); - data->unk_00 = arg0 & 255; + data->type = arg0 & 255; if (arg0 < 256) { - data->unk_14 = 100; + data->timeLeft = 100; } else { - data->unk_14 = 80; + data->timeLeft = 80; } - data->unk_18 = 0; - data->unk_10 = 127; - data->pos.x = arg1; - data->pos.y = arg2; - data->pos.z = arg3; - data->unk_1C = D_E00789A8; + data->lifetime = 0; + data->brightness = 127; + data->pos.x = posX; + data->pos.y = posY; + data->pos.z = posZ; + data->depthQueryID = D_E00789A8; D_E00789A8++; if (D_E00789A8 >= 16) { @@ -92,38 +92,38 @@ void bulb_glow_init(EffectInstance* effect) { void bulb_glow_update(EffectInstance* effect) { BulbGlowFXData* data = effect->data.bulbGlow; - s32 unk18; + s32 time; if (effect->flags & FX_INSTANCE_FLAG_DISMISS) { effect->flags &= ~FX_INSTANCE_FLAG_DISMISS; - data->unk_14 = 10; + data->timeLeft = 10; } - data->unk_18++; + data->lifetime++; - if (data->unk_14 < 100) { - data->unk_14--; + if (data->timeLeft < 100) { + data->timeLeft--; } - if (data->unk_14 < 0) { + if (data->timeLeft < 0) { remove_effect(effect); return; } - unk18 = data->unk_18; - if (data->unk_00 == 0) { - if (unk18 < 11) { - data->unk_10 = (unk18 * 6) + 4; + time = data->lifetime; + if (data->type == 0) { + if (time < 11) { + data->brightness = (time * 6) + 4; } else { - data->unk_10 = 64; + data->brightness = 64; } - if (unk18 & 1) { - data->unk_10 *= 0.6; + if (time & 1) { + data->brightness *= 0.6; } - if (unk18 >= 15) { - data->unk_00 = 4; - data->unk_10 = 127; + if (time >= 15) { + data->type = 4; + data->brightness = 127; } } } @@ -136,7 +136,7 @@ void bulb_glow_render(EffectInstance* effect) { renderTask.appendGfxArg = effect; renderTask.appendGfx = bulb_glow_appendGfx; - if (data->unk_00 == 5) { + if (data->type == 5) { renderTask.dist = 0; renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA; } else { @@ -160,7 +160,7 @@ void bulb_glow_appendGfx(void* effect) { s32 xMin; s32 numRects; s32 yMin; - s32 temp_s2; + s32 type; s32 rectHeight; s32 glowExtent; s32 colorScale; @@ -171,13 +171,13 @@ void bulb_glow_appendGfx(void* effect) { s32 isPointVisible; s32 yStart; UnkBulbGlow* temp_s1; - Color_RGB8* temp_v0; + Color_RGB8* color; s32 i; s32 j; u8 r, g, b; - brightness = data->unk_10; - temp_s2 = data->unk_00; + brightness = data->brightness; + type = data->type; if (brightness > 127) { brightness = 127; } @@ -185,13 +185,13 @@ void bulb_glow_appendGfx(void* effect) { gDPPipeSync(gMainGfxPos++); gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data)); - temp_s1 = &D_E0078918[temp_s2]; + temp_s1 = &D_E0078918[type]; glowExtent = temp_s1->unk_10; rectHeight = temp_s1->unk_14; - isPointVisible = is_point_visible(data->pos.x, data->pos.y, data->pos.z, data->unk_1C, ¢erX, ¢erY); + isPointVisible = is_point_visible(data->pos.x, data->pos.y, data->pos.z, data->depthQueryID, ¢erX, ¢erY); - if (temp_s2 == 5) { + if (type == 5) { isPointVisible = TRUE; } @@ -199,12 +199,12 @@ void bulb_glow_appendGfx(void* effect) { return; } - gSPDisplayList(gMainGfxPos++, D_E0078900[temp_s2]); - temp_v0 = &D_E00789AC[data->unk_20]; + gSPDisplayList(gMainGfxPos++, D_E0078900[type]); + color = &D_E00789AC[data->unk_20]; colorScale = brightness * 2; - r = temp_v0->r * colorScale / 255; - g = temp_v0->g * colorScale / 255; - b = temp_v0->b * colorScale / 255; + r = color->r * colorScale / 255; + g = color->g * colorScale / 255; + b = color->b * colorScale / 255; gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, 127); @@ -237,10 +237,10 @@ void bulb_glow_appendGfx(void* effect) { } gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, - (s32) (xMin * temp_s1->unk_08) << 2, - (s32) (temp_s1->unk_04 * 20 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2, - (s32) (xMin * temp_s1->unk_08 + temp_s1->unk_00) << 2, - (s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) << 2); + (s32) (xMin * temp_s1->unk_08) * 4, + (s32) (temp_s1->unk_04 * 20 - i * temp_s1->unk_14 * temp_s1->unk_0C) * 4, + (s32) (xMin * temp_s1->unk_08 + temp_s1->unk_00) * 4, + (s32) (temp_s1->unk_04 * 21 - i * temp_s1->unk_14 * temp_s1->unk_0C) * 4); for (j = 0; j < 1; j++) { gDPLoadMultiTile(gMainGfxPos++, @@ -249,8 +249,8 @@ void bulb_glow_appendGfx(void* effect) { xMin + xStart, 0, xMax - 1, rectHeight - 1, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 9, 8, G_TX_NOLOD, G_TX_NOLOD); gSPTextureRectangle(gMainGfxPos++, - (xMin + xStart) << 2, y << 2, - xMax << 2, (y + rectHeight) << 2, + (xMin + xStart) * 4, y * 4, + xMax * 4, (y + rectHeight) * 4, G_TX_RENDERTILE, ((xMin + xStart) & 0x1FF) << 5, 0, 1 << 10, 1 << 10); diff --git a/src/effects/ice_shard.c b/src/effects/ice_shard.c index ae61b7e39aa..892daef22a8 100644 --- a/src/effects/ice_shard.c +++ b/src/effects/ice_shard.c @@ -14,7 +14,7 @@ void ice_shard_render(EffectInstance* effect); void ice_shard_appendGfx(void* effect); EffectInstance* ice_shard_main( - s32 arg0, + s32 type, f32 posX, f32 posY, f32 posZ, @@ -38,7 +38,7 @@ EffectInstance* ice_shard_main( data = effect->data.iceShard = general_heap_malloc(numParts * sizeof(*data)); ASSERT(effect->data.iceShard != NULL); - data->type = arg0; + data->type = type; data->lifetime = 0; if (duration <= 0) { data->timeLeft = 1000; @@ -74,7 +74,7 @@ void ice_shard_init(EffectInstance* effect) { void ice_shard_update(EffectInstance* effect) { IceShardFXData* data = effect->data.iceShard; - s32 unk_00 = data->type; + s32 type = data->type; if (effect->flags & FX_INSTANCE_FLAG_DISMISS) { effect->flags &= ~FX_INSTANCE_FLAG_DISMISS; @@ -111,7 +111,7 @@ void ice_shard_update(EffectInstance* effect) { data->pos.z += data->vel.z; data->rot += data->angularVel; - if (unk_00 >= 2 && data->pos.y < 0.0f && data->vel.y < 0.0f) { + if (type >= 2 && data->pos.y < 0.0f && data->vel.y < 0.0f) { data->pos.y = 0.0f; data->vel.y *= -0.7; } diff --git a/src/move_table.yaml b/src/move_table.yaml index ddb5dc6f34b..5177a72f1bf 100644 --- a/src/move_table.yaml +++ b/src/move_table.yaml @@ -1037,7 +1037,7 @@ nameMsg: MSG_ItemName_Kaiden fullDescMsg: MSG_ItemFullDesc_Kaiden shortDescMsg: MSG_ItemShortDesc_Kaiden - flags: [ TARGET_FLAG_80000000 ] + flags: [ TARGET_FLAG_OVERRIDE ] category: MOVE_TYPE_NONE actionTip: MOVE_ACTION_TIP_NONE costFP: 0 @@ -1073,7 +1073,7 @@ nameMsg: MSG_Menus_StarPower_Focus fullDescMsg: 0 shortDescMsg: MSG_Menus_StarPowerDesc_Focus - flags: [ TARGET_FLAG_80000000 ] + flags: [ TARGET_FLAG_OVERRIDE ] category: MOVE_TYPE_STAR_POWER actionTip: MOVE_ACTION_TIP_NONE costFP: 0 diff --git a/tools/build/actor_types.py b/tools/build/actor_types.py new file mode 100644 index 00000000000..2a9b500f043 --- /dev/null +++ b/tools/build/actor_types.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 + +import re +import yaml +import argparse +from pathlib import Path +from typing import List +from io import TextIOWrapper + + +class ActorTypeEntry: + def __init__(self, entry): + self.name = list(entry.keys())[0] + data = entry[self.name] + + self.level = data.get("level", 0) + self.nameMsg = data.get("nameMsg", "MSG_NONE") + self.tattleMsg = data.get("tattleMsg", "MSG_NONE") + self.walkSounds = data.get("walkSound", ["SOUND_NONE", "SOUND_NONE"]) + self.flySounds = data.get("flySound", ["SOUND_NONE", "SOUND_NONE"]) + self.jumpSound = data.get("jumpSound", "SOUND_NONE") + self.hurtSound = data.get("hurtSound", "SOUND_NONE") + self.stepDelay = data.get("stepDelay", [30, 30]) + self.tattleCamOffset = data.get("tattleCamOffset", [0, 0, 0]) + self.shadowOffset = data.get("shadowOffset", 0) + self.ignoreDuringCount = data.get("ignoreDuringCount", False) + + if len(self.walkSounds) != 2: + raise Exception("Walk sounds array has incorrect size: " + self.walkSounds) + + if len(self.flySounds) != 2: + raise Exception("Fly sounds array has incorrect size: " + self.flySounds) + + if len(self.stepDelay) != 2: + raise Exception("Steps delay array has incorrect size: " + self.stepDelay) + + if len(self.tattleCamOffset) != 3: + raise Exception("Tattle cam offset array has incorrect size: " + self.tattleCamOffset) + + self.enum_suffix = re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(? List[ActorTypeEntry]: + actors: List[ActorTypeEntry] = [] + + with open(in_yaml) as f: + entry_list = yaml.load(f.read(), Loader=yaml.SafeLoader) + + for entry in entry_list: + actors.append(ActorTypeEntry(entry)) + + return actors + + +def generate_actors_data(fout: TextIOWrapper, actors: List[ActorTypeEntry]): + fout.write("s32 bActorNames[] = {\n") + for actor in actors: + key = "[" + actor.enum_name + "]" + fout.write(f" {key:40}{actor.nameMsg},\n") + fout.write("};\n") + fout.write("\n") + + fout.write("// enemy types to ignore when deciding initialEnemyCount\n") + fout.write("s32 bActorsIgnoreDuringCount[] = {\n") + for actor in actors: + if actor.ignoreDuringCount: + fout.write(f" {actor.enum_name},\n") + fout.write(" -1\n") + fout.write("};\n") + fout.write("\n") + + fout.write("ActorSounds bActorSoundTable[] = {\n") + for actor in actors: + fout.write(f" [{actor.enum_name}] = {{\n") + fout.write(f" .walk = {{ {', '.join(actor.walkSounds)} }},\n") + fout.write(f" .fly = {{ {', '.join(actor.flySounds)} }},\n") + fout.write(f" .jump = {actor.jumpSound},\n") + fout.write(f" .hurt = {actor.hurtSound},\n") + fout.write(f" .delay = {{ {', '.join(map(str, actor.stepDelay))} }},\n") + fout.write(f" }},\n") + fout.write("};\n") + fout.write("\n") + + fout.write("s32 bActorTattles[] = {\n") + for actor in actors: + key = "[" + actor.enum_name + "]" + fout.write(f" {key:40}{actor.tattleMsg},\n") + fout.write("};\n") + fout.write("\n") + + fout.write("ActorOffsets bActorOffsets[] = {\n") + for actor in actors: + fout.write(f" [{actor.enum_name}] = {{\n") + fout.write(f" .tattleCam = {{ {', '.join(map(str, actor.tattleCamOffset))} }},\n") + fout.write(f" .shadow = {actor.shadowOffset},\n") + fout.write(f" }},\n") + fout.write("};\n") + fout.write("\n") + + +def generate_actors_enums(fout: TextIOWrapper, actors: List[ActorTypeEntry]): + fout.write("#ifndef ACTORS_ENUM_H\n") + fout.write("#define ACTORS_ENUM_H\n") + fout.write("\n") + + fout.write("enum ActorTypes {\n") + + for idx, actor in enumerate(actors): + fout.write(f" {actor.enum_name:48} = 0x{idx:02X},\n") + + fout.write("};\n") + fout.write("\n") + + fout.write(f"#define ACTOR_LEVEL_NONE 99\n") + for idx, actor in enumerate(actors): + fout.write(f"#define ACTOR_LEVEL_{actor.enum_suffix:32} {actor.level}\n") + fout.write("\n") + + fout.write("#endif // ACTORS_ENUM_H\n") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Generates actor tables") + parser.add_argument("out_data", help="output header file to generate containing the data") + parser.add_argument("out_enum", help="output header file to generate containing the enum") + parser.add_argument("actors_yaml", type=Path, help="input yaml file path") + args = parser.parse_args() + + actors = read_actors_yaml(args.actors_yaml) + + with open(args.out_data, "w") as fout: + fout.write("/* This file is auto-generated. Do not edit. */\n") + fout.write('#include "common.h"\n') + fout.write('#include "message_ids.h"\n') + fout.write("\n") + + generate_actors_data(fout, actors) + + with open(args.out_enum, "w") as fout: + fout.write("/* This file is auto-generated. Do not edit. */\n") + fout.write("\n") + + generate_actors_enums(fout, actors) diff --git a/tools/build/configure.py b/tools/build/configure.py index 88f625ce17c..20b7fed1c3f 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -279,6 +279,11 @@ def write_ninja_rules( command=f"$python {BUILD_TOOLS}/item_data.py $out $in", ) + ninja.rule( + "actor_types", + command=f"$python {BUILD_TOOLS}/actor_types.py $out $in", + ) + ninja.rule( "world_map", command=f"$python {BUILD_TOOLS}/world_map.py $in $out", @@ -614,6 +619,17 @@ def build( "item_data", ) + build( + [ + self.build_path() / "include/battle/actor_types.inc.c", + self.build_path() / "include/battle/actor_types.h", + ], + [ + Path("src/battle/actors.yaml"), + ], + "actor_types", + ) + # Build objects for entry in self.linker_entries: seg = entry.segment diff --git a/tools/build/move_data.py b/tools/build/move_data.py index 871f0eddfc0..03f608f186a 100644 --- a/tools/build/move_data.py +++ b/tools/build/move_data.py @@ -68,14 +68,11 @@ def generate_move_enum(fout: TextIOWrapper, moves: List[MoveEntry]): fout.write("enum MoveIDs {\n") - item_enum: List[str] = [] - for idx, move in enumerate(moves): if re.match(r"Unused_(?:Hammer_)?([0-9A-F]{2})", move.name): name = "MOVE_" + move.name.upper() else: name = "MOVE_" + re.sub("((?<=[a-z0-9])[A-Z]|(?!^)(?