mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
b_area_omo2 (#729)
This commit is contained in:
parent
a335b73d0a
commit
763b320bfb
@ -65,7 +65,7 @@ enum EffectID {
|
|||||||
EFFECT_ENERGY_SHOCKWAVE,
|
EFFECT_ENERGY_SHOCKWAVE,
|
||||||
EFFECT_SHIMMER_WAVE,
|
EFFECT_SHIMMER_WAVE,
|
||||||
EFFECT_AURA,
|
EFFECT_AURA,
|
||||||
EFFECT_3C,
|
EFFECT_BULB_GLOW,
|
||||||
EFFECT_3D,
|
EFFECT_3D,
|
||||||
EFFECT_BLAST,
|
EFFECT_BLAST,
|
||||||
EFFECT_FIRE_FLOWER,
|
EFFECT_FIRE_FLOWER,
|
||||||
@ -775,6 +775,14 @@ typedef struct ButterflyFXData {
|
|||||||
/* 0x44 */ f32 unk_44;
|
/* 0x44 */ f32 unk_44;
|
||||||
} ButterflyFXData; // size = 0x48
|
} ButterflyFXData; // size = 0x48
|
||||||
|
|
||||||
|
typedef struct IceShardFXData {
|
||||||
|
/* 0x00 */ char unk_00[0x4C];
|
||||||
|
/* 0x4C */ f32 unk_4C;
|
||||||
|
/* 0x50 */ f32 unk_50;
|
||||||
|
/* 0x54 */ f32 unk_54;
|
||||||
|
/* 0x58 */ f32 unk_58;
|
||||||
|
} IceShardFXData; // size = ?
|
||||||
|
|
||||||
typedef struct Effect46FXData {
|
typedef struct Effect46FXData {
|
||||||
/* 0x00 */ char unk_00[0x24];
|
/* 0x00 */ char unk_00[0x24];
|
||||||
/* 0x04 */ s32 unk_24;
|
/* 0x04 */ s32 unk_24;
|
||||||
@ -785,6 +793,11 @@ typedef struct ThunderboltRingFXData {
|
|||||||
/* 0x30 */ s32 unk_30;
|
/* 0x30 */ s32 unk_30;
|
||||||
} ThunderboltRingFXData; // size = ?
|
} ThunderboltRingFXData; // size = ?
|
||||||
|
|
||||||
|
typedef struct BulbGlowFXData {
|
||||||
|
/* 0x00 */ s32 unk_00;
|
||||||
|
/* 0x04 */ Vec3f pos;
|
||||||
|
} BulbGlowFXData; // size = ?
|
||||||
|
|
||||||
// fx_quizmo_stage
|
// fx_quizmo_stage
|
||||||
typedef struct EffectDataQuizStage {
|
typedef struct EffectDataQuizStage {
|
||||||
/* 0x00 */ char unk_00[0x4];
|
/* 0x00 */ char unk_00[0x4];
|
||||||
@ -961,7 +974,7 @@ EffectInstance* fx_shimmer_burst(s32, f32, f32, f32, f32, s32);
|
|||||||
EffectInstance* fx_energy_shockwave(s32, f32, f32, f32, f32, s32);
|
EffectInstance* fx_energy_shockwave(s32, f32, f32, f32, f32, s32);
|
||||||
EffectInstance* fx_shimmer_wave(s32, f32, f32, f32, f32, f32, s32, s32);
|
EffectInstance* fx_shimmer_wave(s32, f32, f32, f32, f32, f32, s32, s32);
|
||||||
void fx_aura(s32, f32, f32, f32, f32, EffectInstance**);
|
void fx_aura(s32, f32, f32, f32, f32, EffectInstance**);
|
||||||
EffectInstance* fx_3C(s32, f32, f32, f32, f32, s32*);
|
EffectInstance* fx_bulb_glow(s32, f32, f32, f32, f32, s32*);
|
||||||
void fx_3D(s32, f32, f32, f32, f32, f32, f32, s32, s32*);
|
void fx_3D(s32, f32, f32, f32, f32, f32, f32, s32, s32*);
|
||||||
EffectInstance* fx_blast(s32, f32, f32, f32, f32, s32);
|
EffectInstance* fx_blast(s32, f32, f32, f32, f32, s32);
|
||||||
EffectInstance* fx_fire_flower(s32, f32, f32, f32, s32);
|
EffectInstance* fx_fire_flower(s32, f32, f32, f32, s32);
|
||||||
|
@ -88,7 +88,7 @@ FX_MAIN(shimmer_burst_main);
|
|||||||
FX_MAIN(energy_shockwave_main);
|
FX_MAIN(energy_shockwave_main);
|
||||||
FX_MAIN(shimmer_wave_main);
|
FX_MAIN(shimmer_wave_main);
|
||||||
void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
|
void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
|
||||||
FX_MAIN(fx_3C_main);
|
FX_MAIN(bulb_glow_main);
|
||||||
FX_MAIN(fx_3D_main);
|
FX_MAIN(fx_3D_main);
|
||||||
void blast_main(s32, f32, f32, f32, f32, s32);
|
void blast_main(s32, f32, f32, f32, f32, s32);
|
||||||
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
|
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
|
||||||
|
@ -566,6 +566,8 @@ enum SoundIDs {
|
|||||||
SOUND_167 = 0x00000167,
|
SOUND_167 = 0x00000167,
|
||||||
SOUND_168 = 0x00000168,
|
SOUND_168 = 0x00000168,
|
||||||
SOUND_172 = 0x00000172,
|
SOUND_172 = 0x00000172,
|
||||||
|
SOUND_173 = 0x00000173,
|
||||||
|
SOUND_174 = 0x00000174,
|
||||||
SOUND_17B = 0x0000017B,
|
SOUND_17B = 0x0000017B,
|
||||||
SOUND_185 = 0x00000185,
|
SOUND_185 = 0x00000185,
|
||||||
SOUND_194 = 0x00000194,
|
SOUND_194 = 0x00000194,
|
||||||
@ -584,6 +586,7 @@ enum SoundIDs {
|
|||||||
SOUND_METAL_GATE_CLOSE = 0x000001CA,
|
SOUND_METAL_GATE_CLOSE = 0x000001CA,
|
||||||
SOUND_1CB = 0x000001CB,
|
SOUND_1CB = 0x000001CB,
|
||||||
SOUND_1CC = 0x000001CC,
|
SOUND_1CC = 0x000001CC,
|
||||||
|
SOUND_1E2 = 0x000001E2,
|
||||||
SOUND_211 = 0x00000211,
|
SOUND_211 = 0x00000211,
|
||||||
SOUND_213 = 0x00000213,
|
SOUND_213 = 0x00000213,
|
||||||
SOUND_214 = 0x00000214,
|
SOUND_214 = 0x00000214,
|
||||||
@ -620,13 +623,19 @@ enum SoundIDs {
|
|||||||
SOUND_2DE = 0x000002DE,
|
SOUND_2DE = 0x000002DE,
|
||||||
SOUND_2DF = 0x000002DF,
|
SOUND_2DF = 0x000002DF,
|
||||||
SOUND_2E0 = 0x000002E0,
|
SOUND_2E0 = 0x000002E0,
|
||||||
|
SOUND_2E7 = 0x000002E7,
|
||||||
|
SOUND_2E8 = 0x000002E8,
|
||||||
SOUND_2EA = 0x000002EA,
|
SOUND_2EA = 0x000002EA,
|
||||||
|
SOUND_2EF = 0x000002EF,
|
||||||
SOUND_2F1 = 0x000002F1,
|
SOUND_2F1 = 0x000002F1,
|
||||||
SOUND_2F4 = 0x000002F4,
|
SOUND_2F4 = 0x000002F4,
|
||||||
SOUND_2F6 = 0x000002F6,
|
SOUND_2F6 = 0x000002F6,
|
||||||
SOUND_2F7 = 0x000002F7,
|
SOUND_2F7 = 0x000002F7,
|
||||||
|
SOUND_2F9 = 0x000002F9,
|
||||||
SOUND_CLOSE_SHELL = 0x000002FF,
|
SOUND_CLOSE_SHELL = 0x000002FF,
|
||||||
SOUND_301 = 0x00000301,
|
SOUND_301 = 0x00000301,
|
||||||
|
SOUND_305 = 0x00000305,
|
||||||
|
SOUND_306 = 0x00000306,
|
||||||
SOUND_SHY_GUY_SCREAMS1 = 0x0000030C,
|
SOUND_SHY_GUY_SCREAMS1 = 0x0000030C,
|
||||||
SOUND_SHY_GUY_SCREAMS2 = 0x0000030D,
|
SOUND_SHY_GUY_SCREAMS2 = 0x0000030D,
|
||||||
SOUND_SHY_GUY_SCREAMS3 = 0x0000030E,
|
SOUND_SHY_GUY_SCREAMS3 = 0x0000030E,
|
||||||
@ -640,6 +649,8 @@ enum SoundIDs {
|
|||||||
SOUND_328 = 0x00000328,
|
SOUND_328 = 0x00000328,
|
||||||
SOUND_32E = 0x0000032E,
|
SOUND_32E = 0x0000032E,
|
||||||
SOUND_32F = 0x0000032F,
|
SOUND_32F = 0x0000032F,
|
||||||
|
SOUND_349 = 0x00000349,
|
||||||
|
SOUND_34E = 0x0000034E,
|
||||||
SOUND_359 = 0x00000359,
|
SOUND_359 = 0x00000359,
|
||||||
SOUND_35D = 0x0000035D,
|
SOUND_35D = 0x0000035D,
|
||||||
SOUND_361 = 0x00000361,
|
SOUND_361 = 0x00000361,
|
||||||
@ -652,6 +663,7 @@ enum SoundIDs {
|
|||||||
SOUND_368 = 0x00000368,
|
SOUND_368 = 0x00000368,
|
||||||
SOUND_369 = 0x00000369,
|
SOUND_369 = 0x00000369,
|
||||||
SOUND_36E = 0x0000036E,
|
SOUND_36E = 0x0000036E,
|
||||||
|
SOUND_36F = 0x0000036F,
|
||||||
SOUND_372 = 0x00000372,
|
SOUND_372 = 0x00000372,
|
||||||
SOUND_375 = 0x00000375,
|
SOUND_375 = 0x00000375,
|
||||||
SOUND_376 = 0x00000376,
|
SOUND_376 = 0x00000376,
|
||||||
@ -663,7 +675,11 @@ enum SoundIDs {
|
|||||||
SOUND_392 = 0x00000392,
|
SOUND_392 = 0x00000392,
|
||||||
SOUND_GENERAL_WHISTLE = 0x00000395,
|
SOUND_GENERAL_WHISTLE = 0x00000395,
|
||||||
SOUND_3AB = 0x000003AB,
|
SOUND_3AB = 0x000003AB,
|
||||||
|
SOUND_3AD = 0x000003AD,
|
||||||
|
SOUND_3AE = 0x000003AE,
|
||||||
SOUND_3AF = 0x000003AF,
|
SOUND_3AF = 0x000003AF,
|
||||||
|
SOUND_3B4 = 0x000003B4,
|
||||||
|
SOUND_3D2 = 0x000003D2,
|
||||||
SOUND_OPEN_SHELL = 0x000003D4,
|
SOUND_OPEN_SHELL = 0x000003D4,
|
||||||
SOUND_3D9 = 0x000003D9,
|
SOUND_3D9 = 0x000003D9,
|
||||||
SOUND_3E0 = 0x000003E0,
|
SOUND_3E0 = 0x000003E0,
|
||||||
@ -673,6 +689,8 @@ enum SoundIDs {
|
|||||||
SOUND_DEATH = 0x000003E5,
|
SOUND_DEATH = 0x000003E5,
|
||||||
SOUND_BIG_POWER_UP = 0x000003E6,
|
SOUND_BIG_POWER_UP = 0x000003E6,
|
||||||
SOUND_MOLE_THROW = 0x000003E8,
|
SOUND_MOLE_THROW = 0x000003E8,
|
||||||
|
SOUND_3EB = 0x000003EB,
|
||||||
|
SOUND_3EC = 0x000003EC,
|
||||||
SOUND_DANGER = 0x000003F1,
|
SOUND_DANGER = 0x000003F1,
|
||||||
SOUND_PERIL = 0x000003F2,
|
SOUND_PERIL = 0x000003F2,
|
||||||
SOUND_3F3 = 0x000003F3,
|
SOUND_3F3 = 0x000003F3,
|
||||||
@ -713,6 +731,13 @@ enum SoundIDs {
|
|||||||
SOUND_2039 = 0x00002039,
|
SOUND_2039 = 0x00002039,
|
||||||
SOUND_2055 = 0x00002055,
|
SOUND_2055 = 0x00002055,
|
||||||
SOUND_205B = 0x0000205B,
|
SOUND_205B = 0x0000205B,
|
||||||
|
SOUND_2064 = 0x00002064,
|
||||||
|
SOUND_2065 = 0x00002065,
|
||||||
|
SOUND_2066 = 0x00002066,
|
||||||
|
SOUND_2067 = 0x00002067,
|
||||||
|
SOUND_2069 = 0x00002069,
|
||||||
|
SOUND_206A = 0x0000206A,
|
||||||
|
SOUND_206B = 0x0000206B,
|
||||||
SOUND_206D = 0x0000206D,
|
SOUND_206D = 0x0000206D,
|
||||||
SOUND_2072 = 0x00002072,
|
SOUND_2072 = 0x00002072,
|
||||||
SOUND_2073 = 0x00002073,
|
SOUND_2073 = 0x00002073,
|
||||||
@ -730,7 +755,9 @@ enum SoundIDs {
|
|||||||
SOUND_20A4 = 0x000020A4,
|
SOUND_20A4 = 0x000020A4,
|
||||||
SOUND_20AE = 0x000020AE,
|
SOUND_20AE = 0x000020AE,
|
||||||
SOUND_20B8 = 0x000020B8,
|
SOUND_20B8 = 0x000020B8,
|
||||||
|
SOUND_20BA = 0x000020BA,
|
||||||
SOUND_20C1 = 0x000020C1,
|
SOUND_20C1 = 0x000020C1,
|
||||||
|
SOUND_20C3 = 0x000020C3,
|
||||||
SOUND_20C5 = 0x000020C5,
|
SOUND_20C5 = 0x000020C5,
|
||||||
SOUND_SPELL_CAST1 = 0x000020D4,
|
SOUND_SPELL_CAST1 = 0x000020D4,
|
||||||
SOUND_SPELL_CAST2 = 0x000020D5,
|
SOUND_SPELL_CAST2 = 0x000020D5,
|
||||||
@ -739,6 +766,8 @@ enum SoundIDs {
|
|||||||
SOUND_SPELL_CAST5 = 0x000020D8,
|
SOUND_SPELL_CAST5 = 0x000020D8,
|
||||||
SOUND_20DE = 0x000020DE,
|
SOUND_20DE = 0x000020DE,
|
||||||
SOUND_20E3 = 0x000020E3,
|
SOUND_20E3 = 0x000020E3,
|
||||||
|
SOUND_20E4 = 0x000020E4,
|
||||||
|
SOUND_20E5 = 0x000020E5,
|
||||||
SOUND_20E7 = 0x000020E7,
|
SOUND_20E7 = 0x000020E7,
|
||||||
SOUND_20EE = 0x000020EE,
|
SOUND_20EE = 0x000020EE,
|
||||||
SOUND_20F6 = 0x000020F6,
|
SOUND_20F6 = 0x000020F6,
|
||||||
@ -1323,6 +1352,7 @@ enum DecorationIDs {
|
|||||||
enum HitResults {
|
enum HitResults {
|
||||||
HIT_RESULT_TRIGGERED_EXPLODE = -1,
|
HIT_RESULT_TRIGGERED_EXPLODE = -1,
|
||||||
HIT_RESULT_HIT = 0,
|
HIT_RESULT_HIT = 0,
|
||||||
|
HIT_RESULT_1 = 1,
|
||||||
HIT_RESULT_QUAKE_IMMUNE = 2,
|
HIT_RESULT_QUAKE_IMMUNE = 2,
|
||||||
HIT_RESULT_3 = 3,
|
HIT_RESULT_3 = 3,
|
||||||
HIT_RESULT_LANDED_ON_SPIKE = 4,
|
HIT_RESULT_LANDED_ON_SPIKE = 4,
|
||||||
|
@ -145,6 +145,7 @@ ApiStatus GetPartEventFlags(Evt* script, s32 isInitialCall);
|
|||||||
ApiStatus HPBarToHome(Evt* script, s32 isInitialCall);
|
ApiStatus HPBarToHome(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus HPBarToCurrent(Evt* script, s32 isInitialCall);
|
ApiStatus HPBarToCurrent(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus func_8026D940(Evt* script, s32 isInitialCall);
|
ApiStatus func_8026D940(Evt* script, s32 isInitialCall);
|
||||||
|
ApiStatus func_8026DA94(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus SummonEnemy(Evt* script, s32 isInitialCall);
|
ApiStatus SummonEnemy(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus GetOwnerID(Evt* script, s32 isInitialCall);
|
ApiStatus GetOwnerID(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus SetOwnerID(Evt* script, s32 isInitialCall);
|
ApiStatus SetOwnerID(Evt* script, s32 isInitialCall);
|
||||||
@ -328,6 +329,10 @@ ApiStatus func_8026EBF8(Evt* script, s32 isInitialCall);
|
|||||||
ApiStatus SetupMashMeter(Evt* script, s32 isInitialCall);
|
ApiStatus SetupMashMeter(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus SetActionResult(Evt* script, s32 isInitialCall);
|
ApiStatus SetActionResult(Evt* script, s32 isInitialCall);
|
||||||
ApiStatus BattleCamTargetActorPart(Evt* script, s32 isInitialCall);
|
ApiStatus BattleCamTargetActorPart(Evt* script, s32 isInitialCall);
|
||||||
|
ApiStatus func_802537C0(Evt* script, s32 isInitialCall);
|
||||||
|
ApiStatus CancelEnemyTurn(Evt* script, s32 isInitialCall);
|
||||||
|
ApiStatus GetAnimatedNodeRotation(Evt* script, s32 isInitialCall);
|
||||||
|
ApiStatus GetAnimatedNodePosition(Evt* script, s32 isInitialCall);
|
||||||
|
|
||||||
extern EvtScript PlayerScriptDispatcher;
|
extern EvtScript PlayerScriptDispatcher;
|
||||||
extern EvtScript PeachScriptDispatcher;
|
extern EvtScript PeachScriptDispatcher;
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2
|
|
||||||
|
|
||||||
#include "common/FadeBackgroundToBlack.inc.c"
|
|
||||||
|
|
||||||
#include "common/UnfadeBackgroundToBlack.inc.c"
|
|
@ -1,9 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "battle/area_omo2/52B7C0", func_80218120_52B7C0);
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "battle/area_omo2/52B7C0", func_802181F4_52B894);
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "battle/area_omo2/52B7C0", func_80218250_52B8F0);
|
|
7833
src/battle/area_omo2/actor/animation.inc.c
Normal file
7833
src/battle/area_omo2/actor/animation.inc.c
Normal file
File diff suppressed because it is too large
Load Diff
578
src/battle/area_omo2/actor/general_guy.c
Normal file
578
src/battle/area_omo2/actor/general_guy.c
Normal file
@ -0,0 +1,578 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
#include "script_api/battle.h"
|
||||||
|
#include "effects.h"
|
||||||
|
#include "animation_script.h"
|
||||||
|
#include "sprite/npc/general_guy.h"
|
||||||
|
#include "sprite/npc/general_guy_bomb.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 EvtScript N(init);
|
||||||
|
extern EvtScript N(takeTurn);
|
||||||
|
extern EvtScript N(idle);
|
||||||
|
extern EvtScript N(handleEvent);
|
||||||
|
extern EvtScript N(attack_throw_bomb);
|
||||||
|
extern EvtScript N(attack_lightning_shot);
|
||||||
|
extern s32 N(idleAnimations)[];
|
||||||
|
extern s32 N(idleAnimations_bomb)[];
|
||||||
|
extern Formation N(formation_shy_squad);
|
||||||
|
|
||||||
|
#include "common/FadeBackgroundToBlack.inc.c"
|
||||||
|
|
||||||
|
#include "common/UnfadeBackgroundToBlack.inc.c"
|
||||||
|
|
||||||
|
s32 N(defenseTable)[] = {
|
||||||
|
ELEMENT_NORMAL, 0,
|
||||||
|
ELEMENT_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(statusTable)[] = {
|
||||||
|
STATUS_NORMAL, 0,
|
||||||
|
STATUS_DEFAULT, 0,
|
||||||
|
STATUS_SLEEP, 0,
|
||||||
|
STATUS_POISON, 0,
|
||||||
|
STATUS_FROZEN, 0,
|
||||||
|
STATUS_DIZZY, 0,
|
||||||
|
STATUS_FEAR, 0,
|
||||||
|
STATUS_STATIC, 0,
|
||||||
|
STATUS_PARALYZE, 0,
|
||||||
|
STATUS_SHRINK, 0,
|
||||||
|
STATUS_STOP, 0,
|
||||||
|
STATUS_DEFAULT_TURN_MOD, 0,
|
||||||
|
STATUS_SLEEP_TURN_MOD, -1,
|
||||||
|
STATUS_POISON_TURN_MOD, 0,
|
||||||
|
STATUS_FROZEN_TURN_MOD, 0,
|
||||||
|
STATUS_DIZZY_TURN_MOD, -1,
|
||||||
|
STATUS_FEAR_TURN_MOD, 0,
|
||||||
|
STATUS_STATIC_TURN_MOD, 0,
|
||||||
|
STATUS_PARALYZE_TURN_MOD, 0,
|
||||||
|
STATUS_SHRINK_TURN_MOD, -1,
|
||||||
|
STATUS_STOP_TURN_MOD, -2,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorPartBlueprint N(parts)[] = {
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_MULTI_TARGET | ACTOR_PART_FLAG_20000000,
|
||||||
|
.index = 1,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 30 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = -1,
|
||||||
|
.unk_1D = -10,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000 | ACTOR_PART_FLAG_20000000,
|
||||||
|
.index = 2,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 0 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations_bomb),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = -1,
|
||||||
|
.unk_1D = -10,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorBlueprint NAMESPACE = {
|
||||||
|
.flags = ACTOR_FLAG_40000,
|
||||||
|
.type = ACTOR_TYPE_GENERAL_GUY,
|
||||||
|
.level = 73,
|
||||||
|
.maxHP = 10,
|
||||||
|
.partCount = ARRAY_COUNT(N(parts)),
|
||||||
|
.partsData = N(parts),
|
||||||
|
.script = &N(init),
|
||||||
|
.statusTable = N(statusTable),
|
||||||
|
.escapeChance = 0,
|
||||||
|
.airLiftChance = 0,
|
||||||
|
.spookChance = 0,
|
||||||
|
.baseStatusChance = 0,
|
||||||
|
.upAndAwayChance = 0,
|
||||||
|
.spinSmashReq = 4,
|
||||||
|
.powerBounceChance = 75,
|
||||||
|
.coinReward = 0,
|
||||||
|
.size = { 30, 30 },
|
||||||
|
.hpBarOffset = { 20, -3 },
|
||||||
|
.statusIconOffset = { -10, 20 },
|
||||||
|
.statusMessageOffset = { 10, 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(idleAnimations)[] = {
|
||||||
|
STATUS_NORMAL, NPC_ANIM_general_guy_Palette_00_Anim_2,
|
||||||
|
STATUS_STONE, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_SLEEP, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_POISON, NPC_ANIM_general_guy_Palette_00_Anim_2,
|
||||||
|
STATUS_STOP, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_STATIC, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_PARALYZE, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_PARALYZE, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_DIZZY, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_DIZZY, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_FEAR, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(idleAnimations_bomb)[] = {
|
||||||
|
STATUS_NORMAL, NPC_ANIM_general_guy_bomb_Palette_00_Anim_0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(idleAnimations3)[] = {
|
||||||
|
STATUS_NORMAL, NPC_ANIM_general_guy_Palette_00_Anim_E,
|
||||||
|
STATUS_POISON, NPC_ANIM_general_guy_Palette_00_Anim_E,
|
||||||
|
STATUS_STOP, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_STATIC, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_PARALYZE, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_DIZZY, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_FEAR, NPC_ANIM_general_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(nextTurn) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||||
|
EVT_CALL(GetBattlePhase, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(PHASE_PLAYER_BEGIN)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(init) = {
|
||||||
|
EVT_CALL(SetActorPos, ACTOR_SELF, 200, 0, 0)
|
||||||
|
EVT_CALL(ForceHomePos, ACTOR_SELF, 200, 0, 0)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn)))
|
||||||
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle)))
|
||||||
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent)))
|
||||||
|
EVT_CALL(BindNextTurn, ACTOR_SELF, EVT_ADDR(N(nextTurn)))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
|
||||||
|
EVT_CALL(LoadBattleSection, 41)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_shy_squad)), 1)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(idle) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(handleEvent) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_BURN_HIT)
|
||||||
|
EVT_SET(LW(0), 1)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_8)
|
||||||
|
EVT_SET(LW(2), NPC_ANIM_general_guy_Palette_00_Anim_9)
|
||||||
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
|
EVT_CASE_EQ(EVENT_BURN_DEATH)
|
||||||
|
EVT_SET(LW(0), 1)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_8)
|
||||||
|
EVT_SET(LW(2), NPC_ANIM_general_guy_Palette_00_Anim_9)
|
||||||
|
EVT_EXEC_WAIT(DoBurnHit)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_9)
|
||||||
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoSpinSmashHit)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoShockHit)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoJumpBack)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_E)
|
||||||
|
EVT_EXEC_WAIT(DoReturnHome)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_AIR_LIFT_FAILED)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_EXEC_WAIT(DoImmune)
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_SPIKE_TAUNT)
|
||||||
|
EVT_CASE_EQ(EVENT_DEATH)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoDeath)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_E)
|
||||||
|
EVT_EXEC_WAIT(DoReturnHome)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
|
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_EXEC_WAIT(DoRecover)
|
||||||
|
EVT_CASE_EQ(EVENT_30)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
|
EVT_WAIT_FRAMES(1000)
|
||||||
|
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_SET_CONST(LW(2), NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_EXEC_WAIT(DoScareAway)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(takeTurn) = {
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY2, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), FALSE)
|
||||||
|
EVT_CALL(GetStatusFlags, ACTOR_PARTNER, LW(0))
|
||||||
|
EVT_IF_NOT_FLAG(LW(0), STATUS_FLAG_KO)
|
||||||
|
EVT_CALL(RandInt, 100, LW(0))
|
||||||
|
EVT_IF_LT(LW(0), 60)
|
||||||
|
EVT_EXEC_WAIT(N(attack_lightning_shot))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_EXEC_WAIT(N(attack_throw_bomb))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(attack_throw_bomb) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_15)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_SELF)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT_FRAMES(35)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_WAIT_FRAMES(5)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206A)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_B)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 0)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_B)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 8)
|
||||||
|
EVT_ADD(LW(1), 27)
|
||||||
|
EVT_SUB(LW(2), 4)
|
||||||
|
EVT_CALL(SetPartPos, ACTOR_SELF, 2, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, NPC_ANIM_general_guy_bomb_Palette_00_Anim_0)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 0)
|
||||||
|
EVT_WAIT_FRAMES(15)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_A)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_WAIT_FRAMES(6)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 8)
|
||||||
|
EVT_ADD(LW(1), 20)
|
||||||
|
EVT_CALL(SetPartPos, ACTOR_SELF, 2, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 2, NPC_ANIM_general_guy_bomb_Palette_00_Anim_1)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 0)
|
||||||
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_NO_CONTACT, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(HIT_RESULT_MISS)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 2, SOUND_2F9)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 120)
|
||||||
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, 2, EVT_FLOAT(12.0))
|
||||||
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, 2, EVT_FLOAT(0.1))
|
||||||
|
EVT_CALL(JumpPartTo, ACTOR_SELF, 2, LW(0), LW(1), LW(2), 0, 1)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(HIT_RESULT_LUCKY)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 2, SOUND_2F9)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 50)
|
||||||
|
EVT_SET(LW(1), -5)
|
||||||
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, 2, EVT_FLOAT(14.0))
|
||||||
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, 2, EVT_FLOAT(0.1))
|
||||||
|
EVT_CALL(FlyPartTo, ACTOR_SELF, 2, LW(0), LW(1), LW(2), 0, 30, 0)
|
||||||
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_PLAYER, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 65)
|
||||||
|
EVT_SET(LW(1), -5)
|
||||||
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, 2, EVT_FLOAT(6.0))
|
||||||
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, 2, EVT_FLOAT(0.1))
|
||||||
|
EVT_CALL(FlyPartTo, ACTOR_SELF, 2, LW(0), LW(1), LW(2), 0, 15, 0)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 2, SOUND_2F9)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, 2, EVT_FLOAT(14.0))
|
||||||
|
EVT_CALL(SetPartJumpGravity, ACTOR_SELF, 2, EVT_FLOAT(0.1))
|
||||||
|
EVT_CALL(FlyPartTo, ACTOR_SELF, 2, LW(0), LW(1), LW(2), 0, 15, 0)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_BIG_SMOKE_PUFF, LW(0), LW(1), LW(2), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_SELF, 2, SOUND_BOMB_BLAST)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_SELF, 2, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_WAIT_FRAMES(2)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(15), DAMAGE_TYPE_BLAST | DAMAGE_TYPE_NO_CONTACT, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_SWITCH(LW(15))
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_QUAKE_IMMUNE)
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_10)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_IF_EQ(LW(15), HIT_RESULT_10)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(attack_lightning_shot) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 0)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetBattleCamTarget, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetBattleCamZoom, 320)
|
||||||
|
EVT_CALL(SetBattleCamOffsetZ, 30)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206A)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_B)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 0)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_open_hatch))
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 7, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(func_80253734, 2)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_3)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 1)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(N(FadeBackgroundToBlack))
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_LOOP(4)
|
||||||
|
EVT_CALL(PlaySoundAtActor, LW(8), SOUND_3D2)
|
||||||
|
EVT_CALL(RandInt, 3, LW(0))
|
||||||
|
EVT_ADD(LW(0), 3)
|
||||||
|
EVT_WAIT_FRAMES(LW(0))
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_SNAKING_STATIC, 0, LW(0), LW(1), LW(2), EVT_FLOAT(1.0), 40, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_ELECTRIC | DAMAGE_TYPE_NO_CONTACT, 0, 5, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(HIT_RESULT_MISS)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), 0, LW(5))
|
||||||
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||||
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_ELECTRIC | DAMAGE_TYPE_NO_CONTACT, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_IF_NE(LW(0), HIT_RESULT_MISS)
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), LW(4), LW(5))
|
||||||
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(15), DAMAGE_TYPE_ELECTRIC | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 7, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(func_80253734, 3)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(N(UnfadeBackgroundToBlack))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
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(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), 0, LW(5))
|
||||||
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(EnemyTestTarget, ACTOR_SELF, LW(0), DAMAGE_TYPE_TRIGGER_LUCKY, 0, 0, 0)
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PARTNER)
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), 0, LW(5))
|
||||||
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 7, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(func_80253734, 3)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(N(UnfadeBackgroundToBlack))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(SetTargetActor, ACTOR_SELF, ACTOR_PLAYER)
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), LW(4), LW(5))
|
||||||
|
EVT_CALL(PlaySound, SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(15), DAMAGE_TYPE_ELECTRIC | DAMAGE_TYPE_NO_CONTACT, 0, 0, 5, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_SWITCH(LW(15))
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_HIT)
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_QUAKE_IMMUNE)
|
||||||
|
EVT_CASE_OR_EQ(HIT_RESULT_10)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_IF_EQ(LW(15), HIT_RESULT_10)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, 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(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(GetGoalPos, ACTOR_SELF, LW(3), LW(4), LW(5))
|
||||||
|
EVT_CALL(PlaySound,SOUND_2069)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_LIGHTNING_BOLT, 0, LW(0), LW(1), LW(2), LW(3), LW(4), LW(5), EVT_FLOAT(1.0), 18, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(12)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(15), DAMAGE_TYPE_ELECTRIC | DAMAGE_TYPE_NO_CONTACT, 0, 0, 2, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 7, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(func_80253734, 3)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(N(UnfadeBackgroundToBlack))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(EnableIdleScript, ACTOR_SELF, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
Vec3i N(summon_pos) = { 240, 0, 0 };
|
||||||
|
|
||||||
|
Formation N(formation_shy_squad) = {
|
||||||
|
{ .actor = &b_area_omo2_1_shy_squad, .home = { .vec = &N(summon_pos) }, .priority = 100, }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
395
src/battle/area_omo2/actor/light_bulb.c
Normal file
395
src/battle/area_omo2/actor/light_bulb.c
Normal file
@ -0,0 +1,395 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
#include "script_api/battle.h"
|
||||||
|
#include "effects.h"
|
||||||
|
#include "animation_script.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
|
||||||
|
|
||||||
|
extern AnimScript toy_tank_as_close_hatch;
|
||||||
|
|
||||||
|
extern EvtScript N(init);
|
||||||
|
extern EvtScript N(takeTurn);
|
||||||
|
extern EvtScript N(idle);
|
||||||
|
extern EvtScript N(handleEvent);
|
||||||
|
extern EvtScript N(onHit);
|
||||||
|
extern EvtScript N(shake_tank);
|
||||||
|
extern EvtScript N(onDeath);
|
||||||
|
|
||||||
|
s32 N(defenseTable)[] = {
|
||||||
|
ELEMENT_NORMAL, 1,
|
||||||
|
ELEMENT_SHOCK, 0,
|
||||||
|
ELEMENT_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(statusTable)[] = {
|
||||||
|
STATUS_NORMAL, 0,
|
||||||
|
STATUS_DEFAULT, 0,
|
||||||
|
STATUS_SLEEP, 0,
|
||||||
|
STATUS_POISON, 0,
|
||||||
|
STATUS_FROZEN, 0,
|
||||||
|
STATUS_DIZZY, 0,
|
||||||
|
STATUS_FEAR, 0,
|
||||||
|
STATUS_STATIC, 0,
|
||||||
|
STATUS_PARALYZE, 0,
|
||||||
|
STATUS_SHRINK, 0,
|
||||||
|
STATUS_STOP, 0,
|
||||||
|
STATUS_DEFAULT_TURN_MOD, 0,
|
||||||
|
STATUS_SLEEP_TURN_MOD, 0,
|
||||||
|
STATUS_POISON_TURN_MOD, 0,
|
||||||
|
STATUS_FROZEN_TURN_MOD, 0,
|
||||||
|
STATUS_DIZZY_TURN_MOD, 0,
|
||||||
|
STATUS_FEAR_TURN_MOD, 0,
|
||||||
|
STATUS_STATIC_TURN_MOD, 0,
|
||||||
|
STATUS_PARALYZE_TURN_MOD, 0,
|
||||||
|
STATUS_SHRINK_TURN_MOD, 0,
|
||||||
|
STATUS_STOP_TURN_MOD, 0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorPartBlueprint N(parts)[] = {
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_MULTI_TARGET,
|
||||||
|
.index = 1,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 35 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = NULL,
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = -14,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorBlueprint NAMESPACE = {
|
||||||
|
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_80 | ACTOR_FLAG_40000,
|
||||||
|
.type = ACTOR_TYPE_LIGHT_BULB,
|
||||||
|
.level = 0,
|
||||||
|
.maxHP = 8,
|
||||||
|
.partCount = ARRAY_COUNT(N(parts)),
|
||||||
|
.partsData = N(parts),
|
||||||
|
.script = &N(init),
|
||||||
|
.statusTable = N(statusTable),
|
||||||
|
.escapeChance = 0,
|
||||||
|
.airLiftChance = 0,
|
||||||
|
.spookChance = 0,
|
||||||
|
.baseStatusChance = 0,
|
||||||
|
.upAndAwayChance = 0,
|
||||||
|
.spinSmashReq = 4,
|
||||||
|
.powerBounceChance = 80,
|
||||||
|
.coinReward = 0,
|
||||||
|
.size = { 30, 30 },
|
||||||
|
.hpBarOffset = { 0, 0 },
|
||||||
|
.statusIconOffset = { -10, 20 },
|
||||||
|
.statusMessageOffset = { 10, 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(init) = {
|
||||||
|
EVT_CALL(SetActorPos, ACTOR_SELF, 116, 70, 0)
|
||||||
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn)))
|
||||||
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle)))
|
||||||
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent)))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(idle) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(handleEvent) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_CASE_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 9, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 0)
|
||||||
|
EVT_CALL(func_8026E914, LW(0), LW(1))
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CASE_EQ(EVENT_IMMUNE)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 9, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 0)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_WAIT_FRAMES(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_RETURN
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
|
EVT_EXEC_WAIT(N(onDeath))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(EVENT_SPIKE_CONTACT)
|
||||||
|
EVT_CASE_EQ(EVENT_BURN_CONTACT)
|
||||||
|
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||||
|
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(takeTurn) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(onHit) = {
|
||||||
|
EVT_EXEC_WAIT(N(shake_tank))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(shake_tank) = {
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 9, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 0)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
ApiStatus func_80218250_52B8F0(Evt* script, s32 isInitialCall) {
|
||||||
|
s32 i;
|
||||||
|
IceShardBlueprint bpArray[] = {
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.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,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
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);
|
||||||
|
((IceShardFXData*)effect->data)->unk_4C = bpArray[i].unk_18;
|
||||||
|
((IceShardFXData*)effect->data)->unk_50 = bpArray[i].unk_1C;
|
||||||
|
((IceShardFXData*)effect->data)->unk_54 = bpArray[i].unk_20;
|
||||||
|
((IceShardFXData*)effect->data)->unk_58 = bpArray[i].unk_24;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
EvtScript N(onDeath) = {
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY2, SOUND_3AE)
|
||||||
|
EVT_CALL(func_80218250_52B8F0)
|
||||||
|
EVT_CALL(EnableModel, 39, 0)
|
||||||
|
EVT_CALL(EnableModel, 41, 0)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY1, 5, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(RemoveEffect, LW(0))
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY1, 5, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(RemoveActor, ACTOR_SELF)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
886
src/battle/area_omo2/actor/toy_tank.c
Normal file
886
src/battle/area_omo2/actor/toy_tank.c
Normal file
@ -0,0 +1,886 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
#include "script_api/battle.h"
|
||||||
|
#include "effects.h"
|
||||||
|
#include "message_ids.h"
|
||||||
|
#include "sprite/npc/general_guy.h"
|
||||||
|
#include "sprite/npc/tank_guy.h"
|
||||||
|
#include "mapfs/omo_bt07_shape.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 EvtScript N(init);
|
||||||
|
extern EvtScript N(takeTurn);
|
||||||
|
extern EvtScript N(idle);
|
||||||
|
extern EvtScript N(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);
|
||||||
|
|
||||||
|
ApiStatus N(UpdateBulbGlow)(Evt* script, s32 isInitialCall) {
|
||||||
|
Bytecode *args = script->ptrReadPos;
|
||||||
|
|
||||||
|
s32 x = evt_get_variable(script, *args++);
|
||||||
|
s32 y = evt_get_variable(script, *args++);
|
||||||
|
s32 z = evt_get_variable(script, *args++);
|
||||||
|
s32 rotation = evt_get_variable(script, *args++);
|
||||||
|
BulbGlowFXData* effectData = ((EffectInstance*) evt_get_variable(script, *args++))->data;
|
||||||
|
|
||||||
|
effectData->pos.x = x;
|
||||||
|
effectData->pos.y = y;
|
||||||
|
effectData->pos.z = z + 2;
|
||||||
|
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
ApiStatus func_802181F4_52B894(Evt* script, s32 isInitialCall) {
|
||||||
|
Bytecode* args = script->ptrReadPos;
|
||||||
|
get_actor(script->owner1.actorID);
|
||||||
|
set_screen_overlay_params_back(13, evt_get_variable(script, *args));
|
||||||
|
return ApiStatus_DONE2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "animation.inc.c"
|
||||||
|
|
||||||
|
s32 N(defenseTable)[] = {
|
||||||
|
ELEMENT_NORMAL, 2,
|
||||||
|
ELEMENT_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(statusTable)[] = {
|
||||||
|
STATUS_NORMAL, 0,
|
||||||
|
STATUS_DEFAULT, 0,
|
||||||
|
STATUS_SLEEP, 0,
|
||||||
|
STATUS_POISON, 0,
|
||||||
|
STATUS_FROZEN, 0,
|
||||||
|
STATUS_DIZZY, 0,
|
||||||
|
STATUS_FEAR, 0,
|
||||||
|
STATUS_STATIC, 0,
|
||||||
|
STATUS_PARALYZE, 0,
|
||||||
|
STATUS_SHRINK, 0,
|
||||||
|
STATUS_STOP, 0,
|
||||||
|
STATUS_DEFAULT_TURN_MOD, 0,
|
||||||
|
STATUS_SLEEP_TURN_MOD, 0,
|
||||||
|
STATUS_POISON_TURN_MOD, 0,
|
||||||
|
STATUS_FROZEN_TURN_MOD, 0,
|
||||||
|
STATUS_DIZZY_TURN_MOD, 0,
|
||||||
|
STATUS_FEAR_TURN_MOD, 0,
|
||||||
|
STATUS_STATIC_TURN_MOD, 0,
|
||||||
|
STATUS_PARALYZE_TURN_MOD, 0,
|
||||||
|
STATUS_SHRINK_TURN_MOD, 0,
|
||||||
|
STATUS_STOP_TURN_MOD, 0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorPartBlueprint N(parts)[] = {
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET,
|
||||||
|
.index = 1,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 60 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = NULL,
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000 | ACTOR_PART_FLAG_MULTI_TARGET,
|
||||||
|
.index = 2,
|
||||||
|
.posOffset = { 0, 30, 0 },
|
||||||
|
.targetOffset = { 0, 50 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = NULL,
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
.unk_20 = MSG_actor_general_guy_dup,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 3,
|
||||||
|
.posOffset = { -5, 0, 0 },
|
||||||
|
.targetOffset = { -10, 20 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = NULL,
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
.unk_20 = MSG_actor_general_guy_dup,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorBlueprint NAMESPACE = {
|
||||||
|
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_40000,
|
||||||
|
.type = ACTOR_TYPE_TOY_TANK,
|
||||||
|
.level = 0,
|
||||||
|
.maxHP = 30,
|
||||||
|
.partCount = ARRAY_COUNT(N(parts)),
|
||||||
|
.partsData = N(parts),
|
||||||
|
.script = &N(init),
|
||||||
|
.statusTable = N(statusTable),
|
||||||
|
.escapeChance = 0,
|
||||||
|
.airLiftChance = 0,
|
||||||
|
.spookChance = 0,
|
||||||
|
.baseStatusChance = 0,
|
||||||
|
.upAndAwayChance = 0,
|
||||||
|
.spinSmashReq = 4,
|
||||||
|
.powerBounceChance = 75,
|
||||||
|
.coinReward = 0,
|
||||||
|
.size = { 48, 78 },
|
||||||
|
.hpBarOffset = { 20, -3 },
|
||||||
|
.statusIconOffset = { -10, 20 },
|
||||||
|
.statusMessageOffset = { 10, 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(init) = {
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 3, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 4, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 6, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 7, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 8, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 9, 0)
|
||||||
|
EVT_CALL(SetActorDispOffset, ACTOR_ENEMY0, 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, 2, 85, 30, 0)
|
||||||
|
EVT_CALL(SetPartPos, ACTOR_SELF, 3, 80, 0, 0)
|
||||||
|
EVT_CALL(LoadAnimatedModel, 0, EVT_ADDR(toy_tank_model))
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle))
|
||||||
|
EVT_CALL(EnableModel, 62, 0)
|
||||||
|
EVT_CALL(SetAnimatedModelRootPosition, 0, 200, 0, 0)
|
||||||
|
EVT_CALL(SetPartTargetFlagBits, ACTOR_SELF, 3, 1, 1)
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_BULB_GLOW, 2, LW(0), LW(1), LW(2), EVT_FLOAT(1.0), LW(5), 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 5, LW(5))
|
||||||
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn)))
|
||||||
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle)))
|
||||||
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent)))
|
||||||
|
EVT_EXEC(N(select_phase))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(idle) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), FALSE)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 0, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(GetAnimatedNodePosition, 0, 62, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(GetAnimatedNodeRotation, 0, 62, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorRotation, ACTOR_ENEMY0, LW(0), 0, LW(2))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 5, LW(5))
|
||||||
|
EVT_IF_NE(LW(5), 0)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY2, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), FALSE)
|
||||||
|
EVT_CALL(GetAnimatedNodeRotation, 0, 62, LW(0), LW(1), LW(3))
|
||||||
|
EVT_CALL(GetModelCenter, 39)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 6, LW(6))
|
||||||
|
EVT_IF_EQ(LW(6), 0)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 7, LW(10))
|
||||||
|
EVT_IF_NE(LW(10), 0)
|
||||||
|
EVT_SET(LW(0), 1000)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(N(UpdateBulbGlow), LW(0), LW(1), LW(2), LW(3), LW(5))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(handleEvent) = {
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 9, 1)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(EVENT_HIT_COMBO)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, 2, 0, 35)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, 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, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, 2, 0, 35)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, 2, 0, 35)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CASE_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||||
|
EVT_CALL(func_8026E914, LW(0), LW(1))
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CASE_EQ(EVENT_IMMUNE)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CASE_EQ(EVENT_AIR_LIFT_FAILED)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_WAIT_FRAMES(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_RETURN
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
|
EVT_EXEC_WAIT(N(onHit))
|
||||||
|
EVT_EXEC_WAIT(N(onDeath))
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_EQ(EVENT_SPIKE_CONTACT)
|
||||||
|
EVT_CASE_EQ(EVENT_BURN_CONTACT)
|
||||||
|
EVT_CASE_EQ(EVENT_SHOCK_HIT)
|
||||||
|
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 9, 0)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(takeTurn) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(onHit) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, FALSE)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 0)
|
||||||
|
EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, 2, 0, 50)
|
||||||
|
EVT_EXEC_WAIT(N(shake_tank))
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY0, 1, LW(0))
|
||||||
|
EVT_CALL(func_80269E80, LW(1))
|
||||||
|
EVT_SWITCH(LW(1))
|
||||||
|
EVT_CASE_EQ(19)
|
||||||
|
EVT_IF_NOT_FLAG(LW(0), 0x2)
|
||||||
|
EVT_BITWISE_OR_CONST(LW(0), 0xE)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 1, LW(0))
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19)
|
||||||
|
EVT_CALL(SetBattleCamZoom, 260)
|
||||||
|
EVT_CALL(SetBattleCamTarget, 85, 80, 0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 20)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0072), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CASE_OR_EQ(3)
|
||||||
|
EVT_CASE_OR_EQ(4)
|
||||||
|
EVT_IF_NOT_FLAG(LW(0), 0x4)
|
||||||
|
EVT_BITWISE_OR_CONST(LW(0), 0xC)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 1, LW(0))
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19)
|
||||||
|
EVT_CALL(SetBattleCamZoom, 260)
|
||||||
|
EVT_CALL(SetBattleCamTarget, 85, 80, 0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 20)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0073), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_IF_NOT_FLAG(LW(0), 0x8)
|
||||||
|
EVT_BITWISE_OR_CONST(LW(0), 0xC)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 1, LW(0))
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19)
|
||||||
|
EVT_CALL(SetBattleCamZoom, 260)
|
||||||
|
EVT_CALL(SetBattleCamTarget, 85, 80, 0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 20)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0074), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(shake_tank) = {
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_shake))
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(select_phase) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 1, 2)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_EXEC_WAIT(N(update_phase))
|
||||||
|
EVT_EXEC_WAIT(N(start_stilt_guys_phase))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_LABEL(1)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 2)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 3)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_EXEC_WAIT(N(update_phase))
|
||||||
|
EVT_EXEC_WAIT(N(start_shy_stack_phase))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(1)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_LABEL(2)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 3, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 2)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(2)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 4, 2)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 2, 8)
|
||||||
|
EVT_EXEC_WAIT(N(start_battle_with_tank))
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_LABEL(3) // unreachable code
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 2)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(3)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetCurrentPartnerID, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), PARTNER_WATT)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 3)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 3, 0)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_EXEC_WAIT(N(update_phase))
|
||||||
|
EVT_EXEC_WAIT(N(start_shy_stack_phase))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(2)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 3, 3)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 2, 3)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 2, 7)
|
||||||
|
EVT_EXEC_WAIT(N(summon_tank_squad))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(10)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_LABEL(10)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY1, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_GOTO(99)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 4, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 4, 2)
|
||||||
|
EVT_CALL(CancelEnemyTurn, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 2, 8)
|
||||||
|
EVT_EXEC_WAIT(N(start_battle_with_tank))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(10)
|
||||||
|
EVT_LABEL(99)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(update_phase) = {
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY0, 2, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(6)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 2, 5)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_ADD(LW(0), 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 2, LW(0))
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(start_stilt_guys_phase) = {
|
||||||
|
EVT_CALL(func_802535B4, 0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY0, 1, LW(0))
|
||||||
|
EVT_IF_NOT_FLAG(LW(0), 0x1)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0069), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_0, NPC_ANIM_general_guy_Palette_00_Anim_0)
|
||||||
|
EVT_ELSE // shy squad has fleed
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006A), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_C, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(LoadBattleSection, 44)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_signal_guy)), 1)
|
||||||
|
EVT_WAIT_FRAMES(60)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_TOY_TANK_MOVE1)
|
||||||
|
EVT_WAIT_FRAMES(5)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_move_forward))
|
||||||
|
EVT_CALL(SetAnimatedModelRootPosition, 0, 20, 0, 0)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_3)
|
||||||
|
EVT_WAIT_FRAMES(25)
|
||||||
|
EVT_WAIT_FRAMES(2)
|
||||||
|
EVT_CALL(SetOwnerTarget, LW(0), 1)
|
||||||
|
EVT_CALL(SetGoalToTarget, ACTOR_SELF)
|
||||||
|
EVT_CALL(EnemyDamageTarget, ACTOR_SELF, LW(1), DAMAGE_TYPE_IGNORE_DEFENSE, 0, 0, 4, BS_FLAGS1_SP_EVT_ACTIVE)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_10)
|
||||||
|
EVT_WAIT_FRAMES(16)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_4)
|
||||||
|
EVT_WAIT_FRAMES(16)
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_TOY_TANK_MOVE2)
|
||||||
|
EVT_WAIT_FRAMES(4)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle))
|
||||||
|
EVT_WAIT_FRAMES(26)
|
||||||
|
EVT_EXEC_WAIT(N(summon_stilt_guys))
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetHomePos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_CALL(func_802535B4, 1)
|
||||||
|
EVT_CALL(func_8026BF48, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(start_shy_stack_phase) = {
|
||||||
|
EVT_CALL(func_802535B4, 0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY0, 2, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 2)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006E), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_C, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_CALL(LoadBattleSection, 43)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_shy_stack_1)), 1)
|
||||||
|
EVT_WAIT_FRAMES(124)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_shy_stack_2)), 1)
|
||||||
|
EVT_WAIT_FRAMES(114)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_idle))
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 2, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 4)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY4, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetBattleCamTarget, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetBattleCamZoom, 320)
|
||||||
|
EVT_CALL(SetBattleCamOffsetZ, 60)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006F), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_C, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY3, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY3, EVT_FLOAT(1.5))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY3, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY3, 10, FALSE, TRUE, FALSE)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY3, FALSE)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY3, 1, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY3, 1, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY3, 1, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY3, 1, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY3, TRUE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY4, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY4, EVT_FLOAT(1.5))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY4, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY4, 10, FALSE, TRUE, FALSE)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY4, FALSE)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY4, 1, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY4, 1, EVT_FLOAT(1.2), EVT_FLOAT(0.8), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY4, 1, EVT_FLOAT(1.1), EVT_FLOAT(0.9), EVT_FLOAT(1.0))
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_CALL(SetPartScale, ACTOR_ENEMY4, 1, EVT_FLOAT(1.0), EVT_FLOAT(1.0), EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY4, TRUE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0070), ACTOR_ENEMY4, 1, -1, -1)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(func_802535B4, 1)
|
||||||
|
EVT_CALL(func_8026BF48, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(summon_stilt_guys) = {
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(func_8024ECF8, 0, 1, 0)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_ENEMY0, 2, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 1)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006B), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_C, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_CALL(LoadBattleSection, 42)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_stilt_guy_1)), 1)
|
||||||
|
EVT_WAIT_FRAMES(60)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_stilt_guy_2)), 1)
|
||||||
|
EVT_WAIT_FRAMES(60)
|
||||||
|
EVT_LABEL(1)
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 1, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 3)
|
||||||
|
EVT_WAIT_FRAMES(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_FRAMES(40)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006C), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_C, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY3, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY3, EVT_FLOAT(1.5))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY3, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY3, 10, FALSE, TRUE, FALSE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY4, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY4, EVT_FLOAT(1.5))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY4, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY4, 10, FALSE, TRUE, FALSE)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x006D), ACTOR_ENEMY4, 1, -1, -1)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_CALL(func_8026BF48, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(summon_tank_squad) = {
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(SetActorYaw, ACTOR_ENEMY0, 180)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_3)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 6, 0)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_CALL(func_80253734, 1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 7, 1)
|
||||||
|
EVT_EXEC(N(8022F2BC))
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(func_8024ECF8, 0, 1, 0)
|
||||||
|
EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, 1, -1, -1)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetActorYaw, ACTOR_ENEMY0, 0)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 20)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(LoadBattleSection, 45)
|
||||||
|
EVT_CALL(SummonEnemy, EVT_ADDR(N(formation_shy_squad_dup)), 1)
|
||||||
|
EVT_WAIT_FRAMES(155)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(SetBattleCamZoom, 350)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 40)
|
||||||
|
EVT_WAIT_FRAMES(40)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_3)
|
||||||
|
EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, 1, -1, -1)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(SetBattleCamZoom, 300)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY3)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_SET(LW(0), 2)
|
||||||
|
EVT_LOOP(15)
|
||||||
|
EVT_CALL(RandInt, 3, LW(1))
|
||||||
|
EVT_SWITCH(LW(1))
|
||||||
|
EVT_CASE_EQ(0)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_tank_guy_Palette_00_Anim_8)
|
||||||
|
EVT_CASE_EQ(1)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_tank_guy_Palette_00_Anim_9)
|
||||||
|
EVT_CASE_EQ(2)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_tank_guy_Palette_00_Anim_A)
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_tank_guy_Palette_00_Anim_6)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY3, LW(0), LW(1))
|
||||||
|
EVT_ADD(LW(0), 1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_4)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 20)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_SET(LW(0), 2)
|
||||||
|
EVT_LOOP(15)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY3, LW(0), NPC_ANIM_tank_guy_Palette_00_Anim_1)
|
||||||
|
EVT_ADD(LW(0), 1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(func_8026BF48, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(start_battle_with_tank) = {
|
||||||
|
EVT_CALL(func_802535B4, 0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 60)
|
||||||
|
EVT_WAIT_FRAMES(60)
|
||||||
|
EVT_CALL(ActorSpeak, MESSAGE_ID(0x0F, 0x0071), ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_0, NPC_ANIM_general_guy_Palette_00_Anim_0)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_CALL(EndActorSpeech, ACTOR_ENEMY0, 1, -1, -1)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_20000000, 0)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY2, 1, ACTOR_PART_FLAG_NO_TARGET, 0)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY1, 2, ACTOR_PART_FLAG_NO_TARGET, 0)
|
||||||
|
EVT_CALL(SetActorFlagBits, ACTOR_ENEMY1, ACTOR_FLAG_40000, 0)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_ENEMY1)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_ENEMY0, 0, 1)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_2)
|
||||||
|
EVT_CALL(SetEnemyTargetOffset, ACTOR_SELF, 2, 0, 35)
|
||||||
|
EVT_CALL(SetPartFlagBits, ACTOR_ENEMY0, 1, ACTOR_PART_FLAG_INVISIBLE, 1)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_close_hatch))
|
||||||
|
EVT_CALL(PlaySoundAtPart, ACTOR_ENEMY0, 1, SOUND_206B)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_CALL(func_802535B4, 1)
|
||||||
|
EVT_CALL(func_8026BF48, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(onDeath) = {
|
||||||
|
EVT_WAIT_FRAMES(15)
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY1, SOUND_36F)
|
||||||
|
EVT_CALL(PlayModelAnimation, 0, EVT_PTR(toy_tank_as_fall_apart))
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 5, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_CALL(RemoveEffect, LW(0))
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 5, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 6, 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_WAIT_FRAMES(45)
|
||||||
|
EVT_WAIT_FRAMES(10)
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_ENEMY0, FALSE)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_WAIT_FRAMES(15)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_EXPLOSION, 2, 102, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 0, 0)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_14)
|
||||||
|
EVT_CALL(BattleCamTargetActor, ACTOR_ENEMY0)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 60)
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY1, SOUND_34E)
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_ENEMY0, EVT_FLOAT(0.6))
|
||||||
|
EVT_CALL(SetActorDispOffset, ACTOR_ENEMY0, 0, 0, 0)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SET(LW(1), 0)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_5)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_WAIT_FRAMES(25)
|
||||||
|
EVT_CALL(SetAnimatedModelRootPosition, 0, 380, 0, 0)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY0, 50, FALSE, TRUE, FALSE)
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY0, SOUND_20E4)
|
||||||
|
EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_C)
|
||||||
|
EVT_CALL(MoveBattleCamOver, 30)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_10)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_ADD(LW(0), 18)
|
||||||
|
EVT_CALL(ForceHomePos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetEnemyHP, ACTOR_ENEMY0, 1)
|
||||||
|
EVT_CALL(SetPartDispOffset, ACTOR_ENEMY0, 1, 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, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_ENEMY0, 12, FALSE, TRUE, FALSE)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_ENEMY0, 1, NPC_ANIM_general_guy_Palette_00_Anim_7)
|
||||||
|
EVT_CALL(ShakeCam, 1, 0, 6, EVT_FLOAT(1.0))
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_ENEMY0, LW(0), LW(1), LW(2))
|
||||||
|
EVT_ADD(LW(0), 10)
|
||||||
|
EVT_ADD(LW(1), 30)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_STARS_ORBITING, 0, LW(0), LW(1), LW(2), 20, 4, LW(15), 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_ENEMY0, SOUND_20E5)
|
||||||
|
EVT_CALL(DropStarPoints, 512)
|
||||||
|
EVT_WAIT_FRAMES(30)
|
||||||
|
EVT_CALL(RemoveEffect, LW(15))
|
||||||
|
EVT_CALL(ActorExists, ACTOR_ENEMY2, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), FALSE)
|
||||||
|
EVT_CALL(SetActorFlagBits, ACTOR_ENEMY2, ACTOR_FLAG_NO_DMG_APPLY, 1)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetActorFlagBits, ACTOR_ENEMY0, ACTOR_FLAG_NO_DMG_APPLY, 1)
|
||||||
|
EVT_CALL(RemoveActor, ACTOR_SELF)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(8022F2BC) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_CALL(ActorExists, ACTOR_SELF, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), FALSE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(func_802537C0, LW(0), LW(1))
|
||||||
|
EVT_IF_EQ(LW(0), 1)
|
||||||
|
EVT_GOTO(10)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 7, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), 0)
|
||||||
|
EVT_GOTO(10)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 8, LW(1))
|
||||||
|
EVT_CALL(GetCurrentPartnerID, LW(0))
|
||||||
|
EVT_IF_EQ(LW(0), PARTNER_WATT)
|
||||||
|
EVT_EXEC_WAIT(N(8022F458))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(GetActorVar, ACTOR_SELF, 6, LW(0))
|
||||||
|
EVT_IF_NE(LW(0), 0)
|
||||||
|
EVT_EXEC_WAIT(N(8022F458))
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_EXEC_WAIT(N(8022F4D0))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(func_802181F4_52B894, LW(1))
|
||||||
|
EVT_LABEL(10)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(8022F458) = {
|
||||||
|
EVT_IF_NE(LW(1), 0)
|
||||||
|
EVT_SUB(LW(1), 5)
|
||||||
|
EVT_IF_LT(LW(1), 0)
|
||||||
|
EVT_SET(LW(1), 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 8, LW(1))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(8022F4D0) = {
|
||||||
|
EVT_IF_NE(LW(1), 215)
|
||||||
|
EVT_ADD(LW(1), 5)
|
||||||
|
EVT_IF_GT(LW(1), 215)
|
||||||
|
EVT_SET(LW(1), 215)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(SetActorVar, ACTOR_SELF, 8, LW(1))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
Vec3i N(summon_pos) = { 240, 0, 0 };
|
||||||
|
|
||||||
|
Formation N(formation_signal_guy) = {
|
||||||
|
{ .actor = &b_area_omo2_4_signal_guy, .home = { .vec = &N(summon_pos) }, .priority = 95, }
|
||||||
|
};
|
||||||
|
|
||||||
|
Formation N(formation_stilt_guy_1) = {
|
||||||
|
{ .actor = &b_area_omo2_2_stilt_guy, .home = { .vec = &N(summon_pos) }, .priority = 95, }
|
||||||
|
};
|
||||||
|
|
||||||
|
Formation N(formation_stilt_guy_2) = {
|
||||||
|
{ .actor = &b_area_omo2_2_stilt_guy, .home = { .vec = &N(summon_pos) }, .priority = 90, .var0 = 1, }
|
||||||
|
};
|
||||||
|
|
||||||
|
Formation N(formation_shy_stack_1) = {
|
||||||
|
{ .actor = &b_area_omo2_3_shy_stack, .home = { .vec = &N(summon_pos) }, .priority = 95, }
|
||||||
|
};
|
||||||
|
|
||||||
|
Formation N(formation_shy_stack_2) = {
|
||||||
|
{ .actor = &b_area_omo2_3_shy_stack, .home = { .vec = &N(summon_pos) }, .priority = 90, .var0 = 1, }
|
||||||
|
};
|
||||||
|
|
||||||
|
Formation N(formation_shy_squad_dup) = {
|
||||||
|
{ .actor = &b_area_omo2_5_shy_squad_dup, .home = { .vec = &N(summon_pos) }, .priority = 95, }
|
||||||
|
};
|
||||||
|
|
26
src/battle/area_omo2/area.c
Normal file
26
src/battle/area_omo2/area.c
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
|
||||||
|
#define NAMESPACE b_area_omo2
|
||||||
|
|
||||||
|
extern ActorBlueprint N(general_guy);
|
||||||
|
extern ActorBlueprint N(toy_tank);
|
||||||
|
extern ActorBlueprint N(light_bulb);
|
||||||
|
|
||||||
|
extern Stage N(omo_07);
|
||||||
|
|
||||||
|
Formation N(formation_01) = {
|
||||||
|
{ .actor = &N(general_guy), .home = { .index = 2 }, .priority = 70, },
|
||||||
|
{ .actor = &N(toy_tank), .home = { .index = 1 }, .priority = 80, },
|
||||||
|
{ .actor = &N(light_bulb), .home = { .index = 7 }, .priority = 90, },
|
||||||
|
};
|
||||||
|
|
||||||
|
BattleList N(formationTable) = {
|
||||||
|
BATTLE("しょうぐんヘイホー", N(formation_01), &N(omo_07)),
|
||||||
|
{},
|
||||||
|
};
|
||||||
|
|
||||||
|
StageList N(stageTable) = {
|
||||||
|
{ "omo_07", &N(omo_07) },
|
||||||
|
{},
|
||||||
|
};
|
24
src/battle/area_omo2/stage/omo_07.c
Normal file
24
src/battle/area_omo2/stage/omo_07.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
|
||||||
|
#define NAMESPACE b_area_omo2_omo_07
|
||||||
|
|
||||||
|
EvtScript N(beforeBattle) = {
|
||||||
|
EVT_CALL(SetSpriteShading, -1)
|
||||||
|
EVT_CALL(SetCamBGColor, 1, 0, 0, 0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(afterBattle) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
Stage NAMESPACE = {
|
||||||
|
.texture = "omo_tex",
|
||||||
|
.shape = "omo_bt07_shape",
|
||||||
|
.hit = "omo_bt07_hit",
|
||||||
|
.preBattle = &N(beforeBattle),
|
||||||
|
.postBattle = &N(afterBattle),
|
||||||
|
};
|
@ -1,5 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_1
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "battle/area_omo2_1/543570", func_80231000_543570);
|
|
1448
src/battle/area_omo2_1/actor/shy_squad.c
Normal file
1448
src/battle/area_omo2_1/actor/shy_squad.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,9 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_2
|
|
||||||
|
|
||||||
#include "common/GetSelectedMoveID.inc.c"
|
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "battle/area_omo2_2/5483E0", func_8023102C_54840C);
|
|
||||||
|
|
||||||
#include "common/UnkBattleFunc1.inc.c"
|
|
1326
src/battle/area_omo2_2/actor/stilt_guy.c
Normal file
1326
src/battle/area_omo2_2/actor/stilt_guy.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,10 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#define NAMESPACE b_area_omo2_3
|
|
||||||
|
|
||||||
ApiStatus func_80231000_54CC70(Evt* script, s32 isInitialCall) {
|
|
||||||
Bytecode* args = script->ptrReadPos;
|
|
||||||
|
|
||||||
evt_get_variable(script, args[1]);
|
|
||||||
return ApiStatus_DONE2;
|
|
||||||
}
|
|
1497
src/battle/area_omo2_3/actor/shy_stack.c
Normal file
1497
src/battle/area_omo2_3/actor/shy_stack.c
Normal file
File diff suppressed because it is too large
Load Diff
196
src/battle/area_omo2_4/actor/signal_guy.c
Normal file
196
src/battle/area_omo2_4/actor/signal_guy.c
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
#include "script_api/battle.h"
|
||||||
|
#include "effects.h"
|
||||||
|
#include "sprite/npc/marshal_guy.h"
|
||||||
|
|
||||||
|
#define NAMESPACE b_area_omo2_4_signal_guy
|
||||||
|
|
||||||
|
extern s32 N(idleAnimations)[];
|
||||||
|
|
||||||
|
extern EvtScript N(init);
|
||||||
|
extern EvtScript N(takeTurn);
|
||||||
|
extern EvtScript N(idle);
|
||||||
|
extern EvtScript N(handleEvent);
|
||||||
|
|
||||||
|
s32 N(defenseTable)[] = {
|
||||||
|
ELEMENT_NORMAL, 0,
|
||||||
|
ELEMENT_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(statusTable)[] = {
|
||||||
|
STATUS_NORMAL, 0,
|
||||||
|
STATUS_DEFAULT, 0,
|
||||||
|
STATUS_SLEEP, 0,
|
||||||
|
STATUS_POISON, 0,
|
||||||
|
STATUS_FROZEN, 0,
|
||||||
|
STATUS_DIZZY, 0,
|
||||||
|
STATUS_FEAR, 0,
|
||||||
|
STATUS_STATIC, 0,
|
||||||
|
STATUS_PARALYZE, 0,
|
||||||
|
STATUS_SHRINK, 0,
|
||||||
|
STATUS_STOP, 0,
|
||||||
|
STATUS_DEFAULT_TURN_MOD, 0,
|
||||||
|
STATUS_SLEEP_TURN_MOD, 0,
|
||||||
|
STATUS_POISON_TURN_MOD, 0,
|
||||||
|
STATUS_FROZEN_TURN_MOD, 0,
|
||||||
|
STATUS_DIZZY_TURN_MOD, 0,
|
||||||
|
STATUS_FEAR_TURN_MOD, 0,
|
||||||
|
STATUS_STATIC_TURN_MOD, 0,
|
||||||
|
STATUS_PARALYZE_TURN_MOD, 0,
|
||||||
|
STATUS_SHRINK_TURN_MOD, 0,
|
||||||
|
STATUS_STOP_TURN_MOD, 0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorPartBlueprint N(parts)[] = {
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_MULTI_TARGET | ACTOR_PART_FLAG_20000000,
|
||||||
|
.index = 1,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = -1,
|
||||||
|
.unk_1D = -10,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorBlueprint NAMESPACE = {
|
||||||
|
.flags = ACTOR_FLAG_NO_DMG_POPUP,
|
||||||
|
.type = ACTOR_TYPE_SIGNAL_GUY,
|
||||||
|
.level = 0,
|
||||||
|
.maxHP = 8,
|
||||||
|
.partCount = ARRAY_COUNT(N(parts)),
|
||||||
|
.partsData = N(parts),
|
||||||
|
.script = &N(init),
|
||||||
|
.statusTable = N(statusTable),
|
||||||
|
.escapeChance = 0,
|
||||||
|
.airLiftChance = 0,
|
||||||
|
.spookChance = 0,
|
||||||
|
.baseStatusChance = 0,
|
||||||
|
.upAndAwayChance = 0,
|
||||||
|
.spinSmashReq = 4,
|
||||||
|
.powerBounceChance = 80,
|
||||||
|
.coinReward = 0,
|
||||||
|
.size = { 30, 30 },
|
||||||
|
.hpBarOffset = { 0, 0 },
|
||||||
|
.statusIconOffset = { -10, 20 },
|
||||||
|
.statusMessageOffset = { 10, 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(idleAnimations)[] = {
|
||||||
|
STATUS_NORMAL, NPC_ANIM_marshal_guy_Palette_00_Anim_1,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(init) = {
|
||||||
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn)))
|
||||||
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle)))
|
||||||
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent)))
|
||||||
|
EVT_CALL(SetActorPos, ACTOR_SELF, 180, 0, 0)
|
||||||
|
EVT_CALL(ForceHomePos, ACTOR_SELF, 180, 0, 0)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_F)
|
||||||
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(5.0))
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_SELF, 0, 0, 0)
|
||||||
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 180)
|
||||||
|
EVT_CALL(PlaySoundAtActor, ACTOR_SELF, SOUND_GENERAL_WHISTLE)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_4)
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_5)
|
||||||
|
EVT_WAIT_FRAMES(15)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_9)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(idle) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(handleEvent) = {
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, FALSE)
|
||||||
|
EVT_CALL(GetLastEvent, ACTOR_SELF, LW(0))
|
||||||
|
EVT_SWITCH(LW(0))
|
||||||
|
EVT_CASE_EQ(EVENT_BEGIN_FIRST_STRIKE)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_HIT_COMBO)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_HIT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_BURN_HIT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_BURN_DEATH)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_SPIN_SMASH_HIT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_SPIN_SMASH_DEATH)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_SHOCK_HIT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_UNKNOWN_TRIGGER)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_IMMUNE)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_SPIKE_TAUNT)
|
||||||
|
EVT_CASE_OR_EQ(EVENT_DEATH)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_A)
|
||||||
|
EVT_CALL(SetActorJumpGravity, ACTOR_SELF, EVT_FLOAT(1.5))
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_SUB(LW(0), 35)
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_CALL(JumpToGoal, ACTOR_SELF, 8, FALSE, TRUE, FALSE)
|
||||||
|
EVT_CALL(SetActorYaw, ACTOR_SELF, 0)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_2)
|
||||||
|
EVT_WAIT_FRAMES(24)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_3)
|
||||||
|
EVT_CALL(GetActorPos, ACTOR_SELF, LW(0), LW(1), LW(2))
|
||||||
|
EVT_ADD(LW(0), 5)
|
||||||
|
EVT_ADD(LW(1), 10)
|
||||||
|
EVT_LOOP(4)
|
||||||
|
EVT_CALL(PlayEffect, EFFECT_SWEAT, 0, LW(0), LW(1), LW(2), 10, 45, 4, 0, 0, 0, 0, 0, 0)
|
||||||
|
EVT_WAIT_FRAMES(6)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(SetActorSounds, ACTOR_SELF, 0, SOUND_20BA, SOUND_3B4)
|
||||||
|
EVT_CALL(SetActorSounds, ACTOR_SELF, 4, 10, 0)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, NPC_ANIM_marshal_guy_Palette_00_Anim_C)
|
||||||
|
EVT_CALL(SetActorSpeed, ACTOR_SELF, EVT_FLOAT(6.0))
|
||||||
|
EVT_CALL(AddActorDecoration, ACTOR_SELF, 1, 0, 8)
|
||||||
|
EVT_CALL(SetGoalPos, ACTOR_SELF, -200, 0, 20)
|
||||||
|
EVT_CALL(RunToGoal, ACTOR_SELF, 0, FALSE)
|
||||||
|
EVT_CALL(RemoveActorDecoration, ACTOR_SELF, LW(0), 0)
|
||||||
|
EVT_CALL(RemoveActor, ACTOR_SELF)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END_CASE_GROUP
|
||||||
|
EVT_CASE_EQ(EVENT_END_FIRST_STRIKE)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
|
EVT_CASE_EQ(EVENT_RECOVER_STATUS)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_marshal_guy_Palette_00_Anim_1)
|
||||||
|
EVT_EXEC_WAIT(DoRecover)
|
||||||
|
EVT_CASE_EQ(EVENT_30)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_marshal_guy_Palette_00_Anim_A)
|
||||||
|
EVT_EXEC_WAIT(DoNormalHit)
|
||||||
|
EVT_WAIT_FRAMES(1000)
|
||||||
|
EVT_CASE_EQ(EVENT_SCARE_AWAY)
|
||||||
|
EVT_SET_CONST(LW(0), 1)
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_marshal_guy_Palette_00_Anim_1)
|
||||||
|
EVT_SET_CONST(LW(2), NPC_ANIM_marshal_guy_Palette_00_Anim_A)
|
||||||
|
EVT_EXEC_WAIT(DoScareAway)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_CASE_DEFAULT
|
||||||
|
EVT_SET_CONST(LW(1), NPC_ANIM_marshal_guy_Palette_00_Anim_A)
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, 1, LW(1))
|
||||||
|
EVT_WAIT_FRAMES(20)
|
||||||
|
EVT_END_SWITCH
|
||||||
|
EVT_CALL(UseIdleAnimation, ACTOR_SELF, TRUE)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(takeTurn) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
1227
src/battle/area_omo2_5/actor/shy_squad_dup.c
Normal file
1227
src/battle/area_omo2_5/actor/shy_squad_dup.c
Normal file
File diff suppressed because it is too large
Load Diff
281
src/battle/area_omo2_6/actor/shy_guy_dup.c
Normal file
281
src/battle/area_omo2_6/actor/shy_guy_dup.c
Normal file
@ -0,0 +1,281 @@
|
|||||||
|
#include "common.h"
|
||||||
|
#include "battle/battle.h"
|
||||||
|
#include "script_api/battle.h"
|
||||||
|
#include "sprite/npc/tank_guy.h"
|
||||||
|
|
||||||
|
#define NAMESPACE b_area_omo2_6_shy_guy_dup
|
||||||
|
|
||||||
|
extern s32 N(idleAnimations)[];
|
||||||
|
extern EvtScript N(init);
|
||||||
|
extern EvtScript N(takeTurn);
|
||||||
|
extern EvtScript N(idle);
|
||||||
|
extern EvtScript N(handleEvent);
|
||||||
|
extern EvtScript N(run_to_pos);
|
||||||
|
|
||||||
|
s32 N(defenseTable)[] = {
|
||||||
|
ELEMENT_NORMAL, 0,
|
||||||
|
ELEMENT_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(statusTable)[] = {
|
||||||
|
STATUS_NORMAL, 0,
|
||||||
|
STATUS_DEFAULT, 0,
|
||||||
|
STATUS_SLEEP, 0,
|
||||||
|
STATUS_POISON, 0,
|
||||||
|
STATUS_FROZEN, 0,
|
||||||
|
STATUS_DIZZY, 0,
|
||||||
|
STATUS_FEAR, 0,
|
||||||
|
STATUS_STATIC, 0,
|
||||||
|
STATUS_PARALYZE, 0,
|
||||||
|
STATUS_SHRINK, 0,
|
||||||
|
STATUS_STOP, 0,
|
||||||
|
STATUS_DEFAULT_TURN_MOD, 0,
|
||||||
|
STATUS_SLEEP_TURN_MOD, 0,
|
||||||
|
STATUS_POISON_TURN_MOD, 0,
|
||||||
|
STATUS_FROZEN_TURN_MOD, 0,
|
||||||
|
STATUS_DIZZY_TURN_MOD, 0,
|
||||||
|
STATUS_FEAR_TURN_MOD, 0,
|
||||||
|
STATUS_STATIC_TURN_MOD, 0,
|
||||||
|
STATUS_PARALYZE_TURN_MOD, 0,
|
||||||
|
STATUS_SHRINK_TURN_MOD, 0,
|
||||||
|
STATUS_STOP_TURN_MOD, 0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorPartBlueprint N(parts)[] = {
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_INVISIBLE | ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_MULTI_TARGET,
|
||||||
|
.index = 1,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = NULL,
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 2,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 3,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 4,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 5,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 6,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 7,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 8,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.flags = ACTOR_PART_FLAG_NO_TARGET | ACTOR_PART_FLAG_100000,
|
||||||
|
.index = 9,
|
||||||
|
.posOffset = { 0, 0, 0 },
|
||||||
|
.targetOffset = { 0, 24 },
|
||||||
|
.opacity = 255,
|
||||||
|
.idleAnimations = N(idleAnimations),
|
||||||
|
.defenseTable = N(defenseTable),
|
||||||
|
.eventFlags = 0,
|
||||||
|
.elementImmunityFlags = 0,
|
||||||
|
.unk_1C = 0,
|
||||||
|
.unk_1D = 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ActorBlueprint NAMESPACE = {
|
||||||
|
.flags = ACTOR_FLAG_NO_SHADOW | ACTOR_FLAG_40000,
|
||||||
|
.type = ACTOR_TYPE_SHY_GUY_DUP,
|
||||||
|
.level = 0,
|
||||||
|
.maxHP = 10,
|
||||||
|
.partCount = ARRAY_COUNT(N(parts)),
|
||||||
|
.partsData = N(parts),
|
||||||
|
.script = &N(init),
|
||||||
|
.statusTable = N(statusTable),
|
||||||
|
.escapeChance = 0,
|
||||||
|
.airLiftChance = 0,
|
||||||
|
.spookChance = 0,
|
||||||
|
.baseStatusChance = 0,
|
||||||
|
.upAndAwayChance = 0,
|
||||||
|
.spinSmashReq = 4,
|
||||||
|
.powerBounceChance = 80,
|
||||||
|
.coinReward = 0,
|
||||||
|
.size = { 30, 30 },
|
||||||
|
.hpBarOffset = { 0, 0 },
|
||||||
|
.statusIconOffset = { -10, 20 },
|
||||||
|
.statusMessageOffset = { 10, 20 },
|
||||||
|
};
|
||||||
|
|
||||||
|
s32 N(idleAnimations)[] = {
|
||||||
|
STATUS_NORMAL, NPC_ANIM_tank_guy_Palette_00_Anim_1,
|
||||||
|
STATUS_STONE, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_SLEEP, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_POISON, NPC_ANIM_tank_guy_Palette_00_Anim_1,
|
||||||
|
STATUS_STOP, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_STATIC, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_PARALYZE, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_PARALYZE, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_DIZZY, NPC_ANIM_tank_guy_Palette_00_Anim_1,
|
||||||
|
STATUS_DIZZY, NPC_ANIM_tank_guy_Palette_00_Anim_1,
|
||||||
|
STATUS_FEAR, NPC_ANIM_tank_guy_Palette_00_Anim_0,
|
||||||
|
STATUS_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(init) = {
|
||||||
|
EVT_CALL(BindTakeTurn, ACTOR_SELF, EVT_ADDR(N(takeTurn)))
|
||||||
|
EVT_CALL(BindIdle, ACTOR_SELF, EVT_ADDR(N(idle)))
|
||||||
|
EVT_CALL(BindHandleEvent, ACTOR_SELF, EVT_ADDR(N(handleEvent)))
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 2, 0, 0)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 2, 1, -10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 3, 0, 10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 3, 1, -30)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 4, 0, 10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 4, 1, 10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 5, 0, 20)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 5, 1, -10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 6, 0, 30)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 6, 1, 10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 7, 0, 30)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 7, 1, -30)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 8, 0, 40)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 8, 1, -10)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 9, 0, 50)
|
||||||
|
EVT_CALL(SetPartMovementVar, ACTOR_SELF, 9, 1, 10)
|
||||||
|
EVT_SET(LW(0), 2)
|
||||||
|
EVT_LOOP(8)
|
||||||
|
EVT_CALL(SetPartPos, ACTOR_SELF, LW(0), 185, 0, 47)
|
||||||
|
EVT_ADD(LW(0), 1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_CALL(ForceHomePos, ACTOR_SELF, 20, 0, -10)
|
||||||
|
EVT_CALL(HPBarToHome, ACTOR_SELF)
|
||||||
|
EVT_SET(LW(0), 2)
|
||||||
|
EVT_SET(LW(1), NPC_ANIM_tank_guy_Palette_00_Anim_3)
|
||||||
|
EVT_SET(LW(4), EVT_FLOAT(4.0))
|
||||||
|
EVT_SET(LW(5), 5)
|
||||||
|
EVT_LOOP(8)
|
||||||
|
EVT_THREAD
|
||||||
|
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LW(0), 0, LW(2))
|
||||||
|
EVT_CALL(GetPartMovementVar, ACTOR_SELF, LW(0), 1, LW(3))
|
||||||
|
EVT_SET(LW(5), 20)
|
||||||
|
EVT_EXEC_WAIT(N(run_to_pos))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, LW(0), NPC_ANIM_tank_guy_Palette_00_Anim_1)
|
||||||
|
EVT_END_THREAD
|
||||||
|
EVT_ADD(LW(0), 1)
|
||||||
|
EVT_END_LOOP
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(idle) = {
|
||||||
|
EVT_LABEL(0)
|
||||||
|
EVT_WAIT_FRAMES(1)
|
||||||
|
EVT_GOTO(0)
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(run_to_pos) = {
|
||||||
|
EVT_CALL(GetPartOffset, ACTOR_SELF, LW(0), LW(6), 0, LW(7))
|
||||||
|
EVT_IF_LT(LW(6), LW(2))
|
||||||
|
EVT_CALL(SetPartYaw, ACTOR_SELF, LW(0), 180)
|
||||||
|
EVT_ELSE
|
||||||
|
EVT_CALL(SetPartYaw, ACTOR_SELF, LW(0), 0)
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_CALL(GetDist2D, LW(9), LW(6), LW(7), LW(2), LW(3))
|
||||||
|
EVT_IF_GE(LW(9), LW(4))
|
||||||
|
EVT_CALL(SetAnimation, ACTOR_SELF, LW(0), LW(1))
|
||||||
|
EVT_CALL(SetPartMoveSpeed, ACTOR_SELF, LW(0), LW(4))
|
||||||
|
EVT_CALL(RunPartTo, ACTOR_SELF, LW(0), LW(2), 0, LW(3), LW(5))
|
||||||
|
EVT_END_IF
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(handleEvent) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
||||||
|
|
||||||
|
EvtScript N(takeTurn) = {
|
||||||
|
EVT_RETURN
|
||||||
|
EVT_END
|
||||||
|
};
|
@ -87,7 +87,7 @@ EffectTableEntry gEffectTable[] = {
|
|||||||
/* 0x39 */ FX_ENTRY(energy_shockwave, _375510),
|
/* 0x39 */ FX_ENTRY(energy_shockwave, _375510),
|
||||||
/* 0x3A */ FX_ENTRY(shimmer_wave, _337FC0),
|
/* 0x3A */ FX_ENTRY(shimmer_wave, _337FC0),
|
||||||
/* 0x3B */ FX_ENTRY(aura, _377F80),
|
/* 0x3B */ FX_ENTRY(aura, _377F80),
|
||||||
/* 0x3C */ FX_ENTRY_NUMBERED(3C, _37ADD0),
|
/* 0x3C */ FX_ENTRY(bulb_glow, _37ADD0),
|
||||||
/* 0x3D */ FX_ENTRY_NUMBERED(3D, _37D180),
|
/* 0x3D */ FX_ENTRY_NUMBERED(3D, _37D180),
|
||||||
/* 0x3E */ FX_ENTRY(blast, _37D9D0),
|
/* 0x3E */ FX_ENTRY(blast, _37D9D0),
|
||||||
/* 0x3F */ FX_ENTRY(fire_flower, _3803A0),
|
/* 0x3F */ FX_ENTRY(fire_flower, _3803A0),
|
||||||
|
@ -1,27 +1,23 @@
|
|||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "effects_internal.h"
|
#include "effects_internal.h"
|
||||||
|
|
||||||
typedef struct Effect60 {
|
void bulb_glow_appendGfx(void* effect);
|
||||||
/* 0x00 */ s32 unk_00;
|
|
||||||
} Effect60; // size = 0x??
|
|
||||||
|
|
||||||
void fx_3C_appendGfx(void* effect);
|
INCLUDE_ASM(s32, "effects/bulb_glow", bulb_glow_main);
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "effects/effect_3C", fx_3C_main);
|
void bulb_glow_init(void) {
|
||||||
|
|
||||||
void fx_3C_init(void) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "effects/effect_3C", fx_3C_update);
|
INCLUDE_ASM(s32, "effects/bulb_glow", bulb_glow_update);
|
||||||
|
|
||||||
void fx_3C_render(EffectInstance* effect) {
|
void bulb_glow_render(EffectInstance* effect) {
|
||||||
Effect60* effect60 = effect->data;
|
BulbGlowFXData* effect60 = effect->data;
|
||||||
RenderTask renderTask;
|
RenderTask renderTask;
|
||||||
RenderTask* renderTaskPtr = &renderTask;
|
RenderTask* renderTaskPtr = &renderTask;
|
||||||
RenderTask* retTask;
|
RenderTask* retTask;
|
||||||
|
|
||||||
renderTask.appendGfxArg = effect;
|
renderTask.appendGfxArg = effect;
|
||||||
renderTask.appendGfx = fx_3C_appendGfx;
|
renderTask.appendGfx = bulb_glow_appendGfx;
|
||||||
if (effect60->unk_00 == 5) {
|
if (effect60->unk_00 == 5) {
|
||||||
renderTask.distance = 0;
|
renderTask.distance = 0;
|
||||||
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA;
|
renderTaskPtr->renderMode = RENDER_MODE_SURFACE_OPA;
|
||||||
@ -37,4 +33,4 @@ void fx_3C_render(EffectInstance* effect) {
|
|||||||
void func_E0078274(void) {
|
void func_E0078274(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM(s32, "effects/effect_3C", fx_3C_appendGfx);
|
INCLUDE_ASM(s32, "effects/bulb_glow", bulb_glow_appendGfx);
|
@ -543,8 +543,8 @@ ApiStatus PlayEffect(Evt* script, s32 isInitialCall) {
|
|||||||
fx_aura(iVar1, fVar2, fVar3, fVar4, fVar5, &sp34);
|
fx_aura(iVar1, fVar2, fVar3, fVar4, fVar5, &sp34);
|
||||||
evt_set_variable(script, a6, sp34);
|
evt_set_variable(script, a6, sp34);
|
||||||
break;
|
break;
|
||||||
case EFFECT_3C:
|
case EFFECT_BULB_GLOW:
|
||||||
fx_3C(iVar1, fVar2, fVar3, fVar4, fVar5, &sp34);
|
fx_bulb_glow(iVar1, fVar2, fVar3, fVar4, fVar5, &sp34);
|
||||||
evt_set_variable(script, a6, sp34);
|
evt_set_variable(script, a6, sp34);
|
||||||
break;
|
break;
|
||||||
case EFFECT_3D:
|
case EFFECT_3D:
|
||||||
|
@ -39,7 +39,7 @@ def parse(f):
|
|||||||
elif op == 17:
|
elif op == 17:
|
||||||
print(f'{indent}AS_SET_SCALE, {read(f)}, AS_F({i2f(read(f))}), AS_F({i2f(read(f))}), AS_F({i2f(read(f))}),')
|
print(f'{indent}AS_SET_SCALE, {read(f)}, AS_F({i2f(read(f))}), AS_F({i2f(read(f))}), AS_F({i2f(read(f))}),')
|
||||||
elif op == 18:
|
elif op == 18:
|
||||||
print(f'{indent}AS_SET_RENDER_MODE, {read(f)}')
|
print(f'{indent}AS_SET_RENDER_MODE, {read(f)},')
|
||||||
elif op == 19:
|
elif op == 19:
|
||||||
print(f'{indent}AS_OP_19,')
|
print(f'{indent}AS_OP_19,')
|
||||||
else:
|
else:
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,27 +0,0 @@
|
|||||||
.include "macro.inc"
|
|
||||||
|
|
||||||
.section .data
|
|
||||||
|
|
||||||
dlabel D_80231000_552440
|
|
||||||
.word 0x00000001, 0x00000000, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_8023100C_55244C
|
|
||||||
.word 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000006, 0x00000000, 0x00000009, 0x00000000, 0x00000007, 0x00000000, 0x00000004, 0x00000000, 0x00000003, 0x00000000, 0x0000000B, 0x00000000, 0x00000005, 0x00000000, 0x0000000A, 0x00000000, 0x00000008, 0x00000000, 0x0000001F, 0x00000000, 0x00000020, 0x00000000, 0x00000025, 0x00000000, 0x00000022, 0x00000000, 0x00000024, 0x00000000, 0x00000023, 0x00000000, 0x00000021, 0x00000000, 0x00000026, 0x00000000, 0x00000027, 0x00000000, 0x00000029, 0x00000000, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_802310B8_5524F8
|
|
||||||
.word 0x20820000, 0x01000000, 0x001800FF, D_80231104_552544, D_80231000_552440, 0x00000000, 0x00000000, 0xFFF60000, 0x00000000, 0x02000000, 0x00AC0008, 0x00010000, D_802310B8_5524F8, D_80231110_552550, D_8023100C_55244C, 0x00000000, 0x00045000, 0x1E1E0000, 0xF6140A14
|
|
||||||
|
|
||||||
dlabel D_80231104_552544
|
|
||||||
.word 0x00000001, 0x006F0001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_80231110_552550
|
|
||||||
.word 0x00000043, 0x00000003, BindTakeTurn, 0xFFFFFF81, D_80231754_552B94, 0x00000043, 0x00000003, BindIdle, 0xFFFFFF81, D_8023129C_5526DC, 0x00000043, 0x00000003, BindHandleEvent, 0xFFFFFF81, D_802312D0_552710, 0x00000043, 0x00000005, SetActorPos, 0xFFFFFF81, 0x000000B4, 0x00000000, 0x00000000, 0x00000043, 0x00000005, ForceHomePos, 0xFFFFFF81, 0x000000B4, 0x00000000, 0x00000000, 0x00000043, 0x00000002, HPBarToHome, 0xFFFFFF81, 0x00000056, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F000F, 0x00000043, 0x00000003, SetActorSpeed, 0xFFFFFF81, 0xF24A8E80, 0x00000043, 0x00000005, SetGoalPos, 0xFFFFFF81, 0x00000000, 0x00000000, 0x00000000, 0x00000043, 0x00000004, RunToGoal, 0xFFFFFF81, 0x00000000, 0x00000000, 0x00000043, 0x00000003, SetActorYaw, 0xFFFFFF81, 0x000000B4, 0x00000043, 0x00000003, PlaySoundAtActor, 0xFFFFFF81, 0x00000395, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F0004, 0x00000008, 0x00000001, 0x00000014, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F0005, 0x00000008, 0x00000001, 0x0000000F, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F0009, 0x00000057, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_8023129C_5526DC
|
|
||||||
.word 0x00000003, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_802312D0_552710
|
|
||||||
.word 0x00000043, 0x00000003, UseIdleAnimation, 0xFFFFFF81, 0x00000000, 0x00000043, 0x00000003, GetLastEvent, 0xFFFFFF81, 0xFE363C80, 0x00000014, 0x00000001, 0xFE363C80, 0x00000016, 0x00000001, 0x00000038, 0x0000001D, 0x00000001, 0x00000009, 0x0000001D, 0x00000001, 0x0000000A, 0x0000001D, 0x00000001, 0x0000000E, 0x0000001D, 0x00000001, 0x00000024, 0x0000001D, 0x00000001, 0x0000000B, 0x0000001D, 0x00000001, 0x00000021, 0x0000001D, 0x00000001, 0x0000002F, 0x0000001D, 0x00000001, 0x00000017, 0x0000001D, 0x00000001, 0x00000019, 0x0000001D, 0x00000001, 0x0000001B, 0x0000001D, 0x00000001, 0x00000020, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F000A, 0x00000043, 0x00000003, SetActorJumpGravity, 0xFFFFFF81, 0xF24A8080, 0x00000043, 0x00000005, GetActorPos, 0xFFFFFF81, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000028, 0x00000002, 0xFE363C80, 0x00000023, 0x00000043, 0x00000005, SetGoalPos, 0xFFFFFF81, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000043, 0x00000006, JumpToGoal, 0xFFFFFF81, 0x00000008, 0x00000000, 0x00000001, 0x00000000, 0x00000043, 0x00000003, SetActorYaw, 0xFFFFFF81, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F0002, 0x00000008, 0x00000001, 0x00000018, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F0003, 0x00000043, 0x00000005, GetActorPos, 0xFFFFFF81, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x00000027, 0x00000002, 0xFE363C80, 0x00000005, 0x00000027, 0x00000002, 0xFE363C81, 0x0000000A, 0x00000005, 0x00000001, 0x00000004, 0x00000043, 0x0000000F, PlayEffect, 0x00000028, 0x00000000, 0xFE363C80, 0xFE363C81, 0xFE363C82, 0x0000000A, 0x0000002D, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000001, 0x00000006, 0x00000006, 0x00000000, 0x00000043, 0x00000005, SetActorSounds, 0xFFFFFF81, 0x00000000, 0x000020BA, 0x000003B4, 0x00000043, 0x00000005, SetActorSounds, 0xFFFFFF81, 0x00000004, 0x0000000A, 0x00000000, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0x006F000C, 0x00000043, 0x00000003, SetActorSpeed, 0xFFFFFF81, 0xF24A9280, 0x00000043, 0x00000005, AddActorDecoration, 0xFFFFFF81, 0x00000001, 0x00000000, 0x00000008, 0x00000043, 0x00000005, SetGoalPos, 0xFFFFFF81, 0xFFFFFF38, 0x00000000, 0x00000014, 0x00000043, 0x00000004, RunToGoal, 0xFFFFFF81, 0x00000000, 0x00000000, 0x00000043, 0x00000004, RemoveActorDecoration, 0xFFFFFF81, 0xFE363C80, 0x00000000, 0x00000043, 0x00000002, RemoveActor, 0xFFFFFF81, 0x00000002, 0x00000000, 0x00000020, 0x00000000, 0x00000016, 0x00000001, 0x00000035, 0x00000043, 0x00000002, HPBarToHome, 0xFFFFFF81, 0x00000016, 0x00000001, 0x00000031, 0x00000025, 0x00000002, 0xFE363C80, 0x00000001, 0x00000025, 0x00000002, 0xFE363C81, 0x006F0001, 0x00000046, 0x00000001, DoRecover, 0x00000016, 0x00000001, 0x00000030, 0x00000025, 0x00000002, 0xFE363C80, 0x00000001, 0x00000025, 0x00000002, 0xFE363C81, 0x006F000A, 0x00000046, 0x00000001, DoNormalHit, 0x00000008, 0x00000001, 0x000003E8, 0x00000016, 0x00000001, 0x00000039, 0x00000025, 0x00000002, 0xFE363C80, 0x00000001, 0x00000025, 0x00000002, 0xFE363C81, 0x006F0001, 0x00000025, 0x00000002, 0xFE363C82, 0x006F000A, 0x00000046, 0x00000001, DoScareAway, 0x00000002, 0x00000000, 0x0000001C, 0x00000000, 0x00000025, 0x00000002, 0xFE363C81, 0x006F000A, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0x00000001, 0xFE363C81, 0x00000008, 0x00000001, 0x00000014, 0x00000023, 0x00000000, 0x00000043, 0x00000003, UseIdleAnimation, 0xFFFFFF81, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_80231754_552B94
|
|
||||||
.word 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
File diff suppressed because one or more lines are too long
@ -1,30 +0,0 @@
|
|||||||
.include "macro.inc"
|
|
||||||
|
|
||||||
.section .data
|
|
||||||
|
|
||||||
dlabel D_80231000_556C90
|
|
||||||
.word 0x00000001, 0x00000000, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_8023100C_556C9C
|
|
||||||
.word 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000006, 0x00000000, 0x00000009, 0x00000000, 0x00000007, 0x00000000, 0x00000004, 0x00000000, 0x00000003, 0x00000000, 0x0000000B, 0x00000000, 0x00000005, 0x00000000, 0x0000000A, 0x00000000, 0x00000008, 0x00000000, 0x0000001F, 0x00000000, 0x00000020, 0x00000000, 0x00000025, 0x00000000, 0x00000022, 0x00000000, 0x00000024, 0x00000000, 0x00000023, 0x00000000, 0x00000021, 0x00000000, 0x00000026, 0x00000000, 0x00000027, 0x00000000, 0x00000029, 0x00000000, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_802310B8_556D48
|
|
||||||
.word 0x00820001, 0x01000000, 0x001800FF, 0x00000000, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x02000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x03000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x04000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x05000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x06000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x07000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x08000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00120000, 0x09000000, 0x001800FF, D_80231224_556EB4, D_80231000_556C90, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040004, 0x00AE000A, 0x00090000, D_802310B8_556D48, D_80231280_556F10, D_8023100C_556C9C, 0x00000000, 0x00045000, 0x1E1E0000, 0xF6140A14
|
|
||||||
|
|
||||||
dlabel D_80231224_556EB4
|
|
||||||
.word 0x00000001, 0x00780001, 0x0000000C, 0x00780000, 0x00000006, 0x00780000, 0x00000009, 0x00780001, 0x00000008, 0x00780000, 0x0000000B, 0x00780000, 0x00000005, 0x00780000, 0x00000005, 0x00780000, 0x00000004, 0x00780001, 0x00000004, 0x00780001, 0x00000003, 0x00780000, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_80231280_556F10
|
|
||||||
.word 0x00000043, 0x00000003, BindTakeTurn, 0xFFFFFF81, D_8023173C_5573CC, 0x00000043, 0x00000003, BindIdle, 0xFFFFFF81, D_802315EC_55727C, 0x00000043, 0x00000003, BindHandleEvent, 0xFFFFFF81, D_8023172C_5573BC, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000002, 0x00000000, 0x00000000, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000002, 0x00000001, 0xFFFFFFF6, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000003, 0x00000000, 0x0000000A, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000003, 0x00000001, 0xFFFFFFE2, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000004, 0x00000000, 0x0000000A, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000004, 0x00000001, 0x0000000A, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000005, 0x00000000, 0x00000014, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000005, 0x00000001, 0xFFFFFFF6, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000006, 0x00000000, 0x0000001E, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000006, 0x00000001, 0x0000000A, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000007, 0x00000000, 0x0000001E, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000007, 0x00000001, 0xFFFFFFE2, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000008, 0x00000000, 0x00000028, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000008, 0x00000001, 0xFFFFFFF6, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000009, 0x00000000, 0x00000032, 0x00000043, 0x00000005, SetPartMovementVar, 0xFFFFFF81, 0x00000009, 0x00000001, 0x0000000A, 0x00000024, 0x00000002, 0xFE363C80, 0x00000002, 0x00000005, 0x00000001, 0x00000008, 0x00000043, 0x00000006, SetPartPos, 0xFFFFFF81, 0xFE363C80, 0x000000B9, 0x00000000, 0x0000002F, 0x00000027, 0x00000002, 0xFE363C80, 0x00000001, 0x00000006, 0x00000000, 0x00000043, 0x00000005, ForceHomePos, 0xFFFFFF81, 0x00000014, 0x00000000, 0xFFFFFFF6, 0x00000043, 0x00000002, HPBarToHome, 0xFFFFFF81, 0x00000024, 0x00000002, 0xFE363C80, 0x00000002, 0x00000024, 0x00000002, 0xFE363C81, 0x00780003, 0x00000024, 0x00000002, 0xFE363C84, 0xF24A8A80, 0x00000024, 0x00000002, 0xFE363C85, 0x00000005, 0x00000005, 0x00000001, 0x00000008, 0x00000056, 0x00000000, 0x00000043, 0x00000005, GetPartMovementVar, 0xFFFFFF81, 0xFE363C80, 0x00000000, 0xFE363C82, 0x00000043, 0x00000005, GetPartMovementVar, 0xFFFFFF81, 0xFE363C80, 0x00000001, 0xFE363C83, 0x00000024, 0x00000002, 0xFE363C85, 0x00000014, 0x00000046, 0x00000001, D_80231620_5572B0, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0xFE363C80, 0x00780001, 0x00000057, 0x00000000, 0x00000027, 0x00000002, 0xFE363C80, 0x00000001, 0x00000006, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_802315EC_55727C
|
|
||||||
.word 0x00000003, 0x00000001, 0x00000000, 0x00000008, 0x00000001, 0x00000001, 0x00000004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_80231620_5572B0
|
|
||||||
.word 0x00000043, 0x00000006, GetPartOffset, 0xFFFFFF81, 0xFE363C80, 0xFE363C86, 0x00000000, 0xFE363C87, 0x0000000C, 0x00000002, 0xFE363C86, 0xFE363C82, 0x00000043, 0x00000004, SetPartYaw, 0xFFFFFF81, 0xFE363C80, 0x000000B4, 0x00000012, 0x00000000, 0x00000043, 0x00000004, SetPartYaw, 0xFFFFFF81, 0xFE363C80, 0x00000000, 0x00000013, 0x00000000, 0x00000043, 0x00000006, GetDist2D, 0xFE363C89, 0xFE363C86, 0xFE363C87, 0xFE363C82, 0xFE363C83, 0x0000000F, 0x00000002, 0xFE363C89, 0xFE363C84, 0x00000043, 0x00000004, SetAnimation, 0xFFFFFF81, 0xFE363C80, 0xFE363C81, 0x00000043, 0x00000004, SetPartMoveSpeed, 0xFFFFFF81, 0xFE363C80, 0xFE363C84, 0x00000043, 0x00000007, RunPartTo, 0xFFFFFF81, 0xFE363C80, 0xFE363C82, 0x00000000, 0xFE363C83, 0xFE363C85, 0x00000013, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_8023172C_5573BC
|
|
||||||
.word 0x00000002, 0x00000000, 0x00000001, 0x00000000
|
|
||||||
|
|
||||||
dlabel D_8023173C_5573CC
|
|
||||||
.word 0x00000002, 0x00000000, 0x00000001, 0x00000000, 0x00000000
|
|
@ -1,57 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_80218120_52B7C0
|
|
||||||
/* 52B7C0 80218120 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
||||||
/* 52B7C4 80218124 AFB20018 */ sw $s2, 0x18($sp)
|
|
||||||
/* 52B7C8 80218128 0080902D */ daddu $s2, $a0, $zero
|
|
||||||
/* 52B7CC 8021812C AFBF0024 */ sw $ra, 0x24($sp)
|
|
||||||
/* 52B7D0 80218130 AFB40020 */ sw $s4, 0x20($sp)
|
|
||||||
/* 52B7D4 80218134 AFB3001C */ sw $s3, 0x1c($sp)
|
|
||||||
/* 52B7D8 80218138 AFB10014 */ sw $s1, 0x14($sp)
|
|
||||||
/* 52B7DC 8021813C AFB00010 */ sw $s0, 0x10($sp)
|
|
||||||
/* 52B7E0 80218140 8E50000C */ lw $s0, 0xc($s2)
|
|
||||||
/* 52B7E4 80218144 8E050000 */ lw $a1, ($s0)
|
|
||||||
/* 52B7E8 80218148 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B7EC 8021814C 26100004 */ addiu $s0, $s0, 4
|
|
||||||
/* 52B7F0 80218150 8E050000 */ lw $a1, ($s0)
|
|
||||||
/* 52B7F4 80218154 26100004 */ addiu $s0, $s0, 4
|
|
||||||
/* 52B7F8 80218158 0240202D */ daddu $a0, $s2, $zero
|
|
||||||
/* 52B7FC 8021815C 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B800 80218160 0040A02D */ daddu $s4, $v0, $zero
|
|
||||||
/* 52B804 80218164 8E050000 */ lw $a1, ($s0)
|
|
||||||
/* 52B808 80218168 26100004 */ addiu $s0, $s0, 4
|
|
||||||
/* 52B80C 8021816C 0240202D */ daddu $a0, $s2, $zero
|
|
||||||
/* 52B810 80218170 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B814 80218174 0040982D */ daddu $s3, $v0, $zero
|
|
||||||
/* 52B818 80218178 8E050000 */ lw $a1, ($s0)
|
|
||||||
/* 52B81C 8021817C 26100004 */ addiu $s0, $s0, 4
|
|
||||||
/* 52B820 80218180 0240202D */ daddu $a0, $s2, $zero
|
|
||||||
/* 52B824 80218184 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B828 80218188 0040882D */ daddu $s1, $v0, $zero
|
|
||||||
/* 52B82C 8021818C 8E050000 */ lw $a1, ($s0)
|
|
||||||
/* 52B830 80218190 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B834 80218194 0240202D */ daddu $a0, $s2, $zero
|
|
||||||
/* 52B838 80218198 8C43000C */ lw $v1, 0xc($v0)
|
|
||||||
/* 52B83C 8021819C 24020002 */ addiu $v0, $zero, 2
|
|
||||||
/* 52B840 802181A0 44940000 */ mtc1 $s4, $f0
|
|
||||||
/* 52B844 802181A4 00000000 */ nop
|
|
||||||
/* 52B848 802181A8 46800020 */ cvt.s.w $f0, $f0
|
|
||||||
/* 52B84C 802181AC 02228821 */ addu $s1, $s1, $v0
|
|
||||||
/* 52B850 802181B0 E4600004 */ swc1 $f0, 4($v1)
|
|
||||||
/* 52B854 802181B4 44930000 */ mtc1 $s3, $f0
|
|
||||||
/* 52B858 802181B8 00000000 */ nop
|
|
||||||
/* 52B85C 802181BC 46800020 */ cvt.s.w $f0, $f0
|
|
||||||
/* 52B860 802181C0 E4600008 */ swc1 $f0, 8($v1)
|
|
||||||
/* 52B864 802181C4 44910000 */ mtc1 $s1, $f0
|
|
||||||
/* 52B868 802181C8 00000000 */ nop
|
|
||||||
/* 52B86C 802181CC 46800020 */ cvt.s.w $f0, $f0
|
|
||||||
/* 52B870 802181D0 E460000C */ swc1 $f0, 0xc($v1)
|
|
||||||
/* 52B874 802181D4 8FBF0024 */ lw $ra, 0x24($sp)
|
|
||||||
/* 52B878 802181D8 8FB40020 */ lw $s4, 0x20($sp)
|
|
||||||
/* 52B87C 802181DC 8FB3001C */ lw $s3, 0x1c($sp)
|
|
||||||
/* 52B880 802181E0 8FB20018 */ lw $s2, 0x18($sp)
|
|
||||||
/* 52B884 802181E4 8FB10014 */ lw $s1, 0x14($sp)
|
|
||||||
/* 52B888 802181E8 8FB00010 */ lw $s0, 0x10($sp)
|
|
||||||
/* 52B88C 802181EC 03E00008 */ jr $ra
|
|
||||||
/* 52B890 802181F0 27BD0028 */ addiu $sp, $sp, 0x28
|
|
@ -1,27 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_802181F4_52B894
|
|
||||||
/* 52B894 802181F4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
||||||
/* 52B898 802181F8 AFB00010 */ sw $s0, 0x10($sp)
|
|
||||||
/* 52B89C 802181FC 0080802D */ daddu $s0, $a0, $zero
|
|
||||||
/* 52B8A0 80218200 AFBF0018 */ sw $ra, 0x18($sp)
|
|
||||||
/* 52B8A4 80218204 AFB10014 */ sw $s1, 0x14($sp)
|
|
||||||
/* 52B8A8 80218208 8E040148 */ lw $a0, 0x148($s0)
|
|
||||||
/* 52B8AC 8021820C 0C09A75B */ jal get_actor
|
|
||||||
/* 52B8B0 80218210 8E11000C */ lw $s1, 0xc($s0)
|
|
||||||
/* 52B8B4 80218214 8E250000 */ lw $a1, ($s1)
|
|
||||||
/* 52B8B8 80218218 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 52B8BC 8021821C 0200202D */ daddu $a0, $s0, $zero
|
|
||||||
/* 52B8C0 80218220 44820000 */ mtc1 $v0, $f0
|
|
||||||
/* 52B8C4 80218224 00000000 */ nop
|
|
||||||
/* 52B8C8 80218228 46800020 */ cvt.s.w $f0, $f0
|
|
||||||
/* 52B8CC 8021822C 44050000 */ mfc1 $a1, $f0
|
|
||||||
/* 52B8D0 80218230 0C04DF69 */ jal set_screen_overlay_params_back
|
|
||||||
/* 52B8D4 80218234 2404000D */ addiu $a0, $zero, 0xd
|
|
||||||
/* 52B8D8 80218238 8FBF0018 */ lw $ra, 0x18($sp)
|
|
||||||
/* 52B8DC 8021823C 8FB10014 */ lw $s1, 0x14($sp)
|
|
||||||
/* 52B8E0 80218240 8FB00010 */ lw $s0, 0x10($sp)
|
|
||||||
/* 52B8E4 80218244 24020002 */ addiu $v0, $zero, 2
|
|
||||||
/* 52B8E8 80218248 03E00008 */ jr $ra
|
|
||||||
/* 52B8EC 8021824C 27BD0020 */ addiu $sp, $sp, 0x20
|
|
@ -1,62 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_80218250_52B8F0
|
|
||||||
/* 52B8F0 80218250 27BDFD80 */ addiu $sp, $sp, -0x280
|
|
||||||
/* 52B8F4 80218254 27A30018 */ addiu $v1, $sp, 0x18
|
|
||||||
/* 52B8F8 80218258 3C028023 */ lui $v0, %hi(D_8022FC30_5432D0)
|
|
||||||
/* 52B8FC 8021825C 2442FC30 */ addiu $v0, $v0, %lo(D_8022FC30_5432D0)
|
|
||||||
/* 52B900 80218260 24440250 */ addiu $a0, $v0, 0x250
|
|
||||||
/* 52B904 80218264 AFBF0278 */ sw $ra, 0x278($sp)
|
|
||||||
/* 52B908 80218268 AFB10274 */ sw $s1, 0x274($sp)
|
|
||||||
/* 52B90C 8021826C AFB00270 */ sw $s0, 0x270($sp)
|
|
||||||
.L80218270:
|
|
||||||
/* 52B910 80218270 8C480000 */ lw $t0, ($v0)
|
|
||||||
/* 52B914 80218274 8C490004 */ lw $t1, 4($v0)
|
|
||||||
/* 52B918 80218278 8C4A0008 */ lw $t2, 8($v0)
|
|
||||||
/* 52B91C 8021827C 8C4B000C */ lw $t3, 0xc($v0)
|
|
||||||
/* 52B920 80218280 AC680000 */ sw $t0, ($v1)
|
|
||||||
/* 52B924 80218284 AC690004 */ sw $t1, 4($v1)
|
|
||||||
/* 52B928 80218288 AC6A0008 */ sw $t2, 8($v1)
|
|
||||||
/* 52B92C 8021828C AC6B000C */ sw $t3, 0xc($v1)
|
|
||||||
/* 52B930 80218290 24420010 */ addiu $v0, $v0, 0x10
|
|
||||||
/* 52B934 80218294 1444FFF6 */ bne $v0, $a0, .L80218270
|
|
||||||
/* 52B938 80218298 24630010 */ addiu $v1, $v1, 0x10
|
|
||||||
/* 52B93C 8021829C 8C480000 */ lw $t0, ($v0)
|
|
||||||
/* 52B940 802182A0 8C490004 */ lw $t1, 4($v0)
|
|
||||||
/* 52B944 802182A4 AC680000 */ sw $t0, ($v1)
|
|
||||||
/* 52B948 802182A8 AC690004 */ sw $t1, 4($v1)
|
|
||||||
/* 52B94C 802182AC 0000882D */ daddu $s1, $zero, $zero
|
|
||||||
/* 52B950 802182B0 27B00018 */ addiu $s0, $sp, 0x18
|
|
||||||
.L802182B4:
|
|
||||||
/* 52B954 802182B4 C6000010 */ lwc1 $f0, 0x10($s0)
|
|
||||||
/* 52B958 802182B8 E7A00010 */ swc1 $f0, 0x10($sp)
|
|
||||||
/* 52B95C 802182BC 8E020014 */ lw $v0, 0x14($s0)
|
|
||||||
/* 52B960 802182C0 AFA20014 */ sw $v0, 0x14($sp)
|
|
||||||
/* 52B964 802182C4 8E040000 */ lw $a0, ($s0)
|
|
||||||
/* 52B968 802182C8 8E050004 */ lw $a1, 4($s0)
|
|
||||||
/* 52B96C 802182CC 8E060008 */ lw $a2, 8($s0)
|
|
||||||
/* 52B970 802182D0 8E07000C */ lw $a3, 0xc($s0)
|
|
||||||
/* 52B974 802182D4 0C01C994 */ jal fx_ice_shard
|
|
||||||
/* 52B978 802182D8 26310001 */ addiu $s1, $s1, 1
|
|
||||||
/* 52B97C 802182DC 8C43000C */ lw $v1, 0xc($v0)
|
|
||||||
/* 52B980 802182E0 C6000018 */ lwc1 $f0, 0x18($s0)
|
|
||||||
/* 52B984 802182E4 E460004C */ swc1 $f0, 0x4c($v1)
|
|
||||||
/* 52B988 802182E8 8C43000C */ lw $v1, 0xc($v0)
|
|
||||||
/* 52B98C 802182EC C600001C */ lwc1 $f0, 0x1c($s0)
|
|
||||||
/* 52B990 802182F0 E4600050 */ swc1 $f0, 0x50($v1)
|
|
||||||
/* 52B994 802182F4 8C43000C */ lw $v1, 0xc($v0)
|
|
||||||
/* 52B998 802182F8 C6000020 */ lwc1 $f0, 0x20($s0)
|
|
||||||
/* 52B99C 802182FC E4600054 */ swc1 $f0, 0x54($v1)
|
|
||||||
/* 52B9A0 80218300 8C42000C */ lw $v0, 0xc($v0)
|
|
||||||
/* 52B9A4 80218304 C6000024 */ lwc1 $f0, 0x24($s0)
|
|
||||||
/* 52B9A8 80218308 E4400058 */ swc1 $f0, 0x58($v0)
|
|
||||||
/* 52B9AC 8021830C 2A22000F */ slti $v0, $s1, 0xf
|
|
||||||
/* 52B9B0 80218310 1440FFE8 */ bnez $v0, .L802182B4
|
|
||||||
/* 52B9B4 80218314 26100028 */ addiu $s0, $s0, 0x28
|
|
||||||
/* 52B9B8 80218318 8FBF0278 */ lw $ra, 0x278($sp)
|
|
||||||
/* 52B9BC 8021831C 8FB10274 */ lw $s1, 0x274($sp)
|
|
||||||
/* 52B9C0 80218320 8FB00270 */ lw $s0, 0x270($sp)
|
|
||||||
/* 52B9C4 80218324 24020002 */ addiu $v0, $zero, 2
|
|
||||||
/* 52B9C8 80218328 03E00008 */ jr $ra
|
|
||||||
/* 52B9CC 8021832C 27BD0280 */ addiu $sp, $sp, 0x280
|
|
@ -1,49 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_80231000_543570
|
|
||||||
/* 543570 80231000 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
||||||
/* 543574 80231004 AFB3001C */ sw $s3, 0x1c($sp)
|
|
||||||
/* 543578 80231008 0080982D */ daddu $s3, $a0, $zero
|
|
||||||
/* 54357C 8023100C AFBF0020 */ sw $ra, 0x20($sp)
|
|
||||||
/* 543580 80231010 AFB20018 */ sw $s2, 0x18($sp)
|
|
||||||
/* 543584 80231014 AFB10014 */ sw $s1, 0x14($sp)
|
|
||||||
/* 543588 80231018 AFB00010 */ sw $s0, 0x10($sp)
|
|
||||||
/* 54358C 8023101C 8E71000C */ lw $s1, 0xc($s3)
|
|
||||||
/* 543590 80231020 8E250000 */ lw $a1, ($s1)
|
|
||||||
/* 543594 80231024 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 543598 80231028 26310004 */ addiu $s1, $s1, 4
|
|
||||||
/* 54359C 8023102C 0040802D */ daddu $s0, $v0, $zero
|
|
||||||
/* 5435A0 80231030 8E250000 */ lw $a1, ($s1)
|
|
||||||
/* 5435A4 80231034 26310004 */ addiu $s1, $s1, 4
|
|
||||||
/* 5435A8 80231038 0C0B1EAF */ jal evt_get_variable
|
|
||||||
/* 5435AC 8023103C 0260202D */ daddu $a0, $s3, $zero
|
|
||||||
/* 5435B0 80231040 0040902D */ daddu $s2, $v0, $zero
|
|
||||||
/* 5435B4 80231044 2402FF81 */ addiu $v0, $zero, -0x7f
|
|
||||||
/* 5435B8 80231048 16020002 */ bne $s0, $v0, .L80231054
|
|
||||||
/* 5435BC 8023104C 00000000 */ nop
|
|
||||||
/* 5435C0 80231050 8E700148 */ lw $s0, 0x148($s3)
|
|
||||||
.L80231054:
|
|
||||||
/* 5435C4 80231054 0C09A75B */ jal get_actor
|
|
||||||
/* 5435C8 80231058 0200202D */ daddu $a0, $s0, $zero
|
|
||||||
/* 5435CC 8023105C 0040202D */ daddu $a0, $v0, $zero
|
|
||||||
/* 5435D0 80231060 0C099117 */ jal get_actor_part
|
|
||||||
/* 5435D4 80231064 0240282D */ daddu $a1, $s2, $zero
|
|
||||||
/* 5435D8 80231068 8E250000 */ lw $a1, ($s1)
|
|
||||||
/* 5435DC 8023106C 26310004 */ addiu $s1, $s1, 4
|
|
||||||
/* 5435E0 80231070 0040802D */ daddu $s0, $v0, $zero
|
|
||||||
/* 5435E4 80231074 92060073 */ lbu $a2, 0x73($s0)
|
|
||||||
/* 5435E8 80231078 0C0B2026 */ jal evt_set_variable
|
|
||||||
/* 5435EC 8023107C 0260202D */ daddu $a0, $s3, $zero
|
|
||||||
/* 5435F0 80231080 8E250000 */ lw $a1, ($s1)
|
|
||||||
/* 5435F4 80231084 92060072 */ lbu $a2, 0x72($s0)
|
|
||||||
/* 5435F8 80231088 0C0B2026 */ jal evt_set_variable
|
|
||||||
/* 5435FC 8023108C 0260202D */ daddu $a0, $s3, $zero
|
|
||||||
/* 543600 80231090 8FBF0020 */ lw $ra, 0x20($sp)
|
|
||||||
/* 543604 80231094 8FB3001C */ lw $s3, 0x1c($sp)
|
|
||||||
/* 543608 80231098 8FB20018 */ lw $s2, 0x18($sp)
|
|
||||||
/* 54360C 8023109C 8FB10014 */ lw $s1, 0x14($sp)
|
|
||||||
/* 543610 802310A0 8FB00010 */ lw $s0, 0x10($sp)
|
|
||||||
/* 543614 802310A4 24020002 */ addiu $v0, $zero, 2
|
|
||||||
/* 543618 802310A8 03E00008 */ jr $ra
|
|
||||||
/* 54361C 802310AC 27BD0028 */ addiu $sp, $sp, 0x28
|
|
@ -1,14 +0,0 @@
|
|||||||
.set noat # allow manual use of $at
|
|
||||||
.set noreorder # don't insert nops after branches
|
|
||||||
|
|
||||||
glabel func_8023102C_54840C
|
|
||||||
/* 54840C 8023102C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
||||||
/* 548410 80231030 AFBF0010 */ sw $ra, 0x10($sp)
|
|
||||||
/* 548414 80231034 0C09A75B */ jal get_actor
|
|
||||||
/* 548418 80231038 8C840148 */ lw $a0, 0x148($a0)
|
|
||||||
/* 54841C 8023103C 8C430008 */ lw $v1, 8($v0)
|
|
||||||
/* 548420 80231040 A0600006 */ sb $zero, 6($v1)
|
|
||||||
/* 548424 80231044 8FBF0010 */ lw $ra, 0x10($sp)
|
|
||||||
/* 548428 80231048 24020002 */ addiu $v0, $zero, 2
|
|
||||||
/* 54842C 8023104C 03E00008 */ jr $ra
|
|
||||||
/* 548430 80231050 27BD0018 */ addiu $sp, $sp, 0x18
|
|
@ -52,7 +52,7 @@ glabel func_80238668_704158
|
|||||||
/* 704214 80238724 3C028024 */ lui $v0, %hi(D_8023C1B0)
|
/* 704214 80238724 3C028024 */ lui $v0, %hi(D_8023C1B0)
|
||||||
/* 704218 80238728 2442C1B0 */ addiu $v0, $v0, %lo(D_8023C1B0)
|
/* 704218 80238728 2442C1B0 */ addiu $v0, $v0, %lo(D_8023C1B0)
|
||||||
/* 70421C 8023872C AFA20014 */ sw $v0, 0x14($sp)
|
/* 70421C 8023872C AFA20014 */ sw $v0, 0x14($sp)
|
||||||
/* 704220 80238730 0C01C3C4 */ jal fx_3C
|
/* 704220 80238730 0C01C3C4 */ jal fx_bulb_glow
|
||||||
/* 704224 80238734 E7A00010 */ swc1 $f0, 0x10($sp)
|
/* 704224 80238734 E7A00010 */ swc1 $f0, 0x10($sp)
|
||||||
.L80238738:
|
.L80238738:
|
||||||
/* 704228 80238738 8E020070 */ lw $v0, 0x70($s0)
|
/* 704228 80238738 8E020070 */ lw $v0, 0x70($s0)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
.set noat # allow manual use of $at
|
.set noat # allow manual use of $at
|
||||||
.set noreorder # don't insert nops after branches
|
.set noreorder # don't insert nops after branches
|
||||||
|
|
||||||
glabel fx_3C_appendGfx
|
glabel bulb_glow_appendGfx
|
||||||
/* 37A66C E007827C 27BDFFA0 */ addiu $sp, $sp, -0x60
|
/* 37A66C E007827C 27BDFFA0 */ addiu $sp, $sp, -0x60
|
||||||
/* 37A670 E0078280 0080302D */ daddu $a2, $a0, $zero
|
/* 37A670 E0078280 0080302D */ daddu $a2, $a0, $zero
|
||||||
/* 37A674 E0078284 AFBF005C */ sw $ra, 0x5c($sp)
|
/* 37A674 E0078284 AFBF005C */ sw $ra, 0x5c($sp)
|
@ -1,7 +1,7 @@
|
|||||||
.set noat # allow manual use of $at
|
.set noat # allow manual use of $at
|
||||||
.set noreorder # don't insert nops after branches
|
.set noreorder # don't insert nops after branches
|
||||||
|
|
||||||
glabel fx_3C_main
|
glabel bulb_glow_main
|
||||||
/* 37A3F0 E0078000 27BDFFB0 */ addiu $sp, $sp, -0x50
|
/* 37A3F0 E0078000 27BDFFB0 */ addiu $sp, $sp, -0x50
|
||||||
/* 37A3F4 E0078004 F7B40038 */ sdc1 $f20, 0x38($sp)
|
/* 37A3F4 E0078004 F7B40038 */ sdc1 $f20, 0x38($sp)
|
||||||
/* 37A3F8 E0078008 4485A000 */ mtc1 $a1, $f20
|
/* 37A3F8 E0078008 4485A000 */ mtc1 $a1, $f20
|
||||||
@ -12,14 +12,14 @@ glabel fx_3C_main
|
|||||||
/* 37A40C E007801C 27A40010 */ addiu $a0, $sp, 0x10
|
/* 37A40C E007801C 27A40010 */ addiu $a0, $sp, 0x10
|
||||||
/* 37A410 E0078020 F7B80048 */ sdc1 $f24, 0x48($sp)
|
/* 37A410 E0078020 F7B80048 */ sdc1 $f24, 0x48($sp)
|
||||||
/* 37A414 E0078024 4487C000 */ mtc1 $a3, $f24
|
/* 37A414 E0078024 4487C000 */ mtc1 $a3, $f24
|
||||||
/* 37A418 E0078028 3C02E008 */ lui $v0, %hi(fx_3C_init)
|
/* 37A418 E0078028 3C02E008 */ lui $v0, %hi(bulb_glow_init)
|
||||||
/* 37A41C E007802C 24428124 */ addiu $v0, $v0, %lo(fx_3C_init)
|
/* 37A41C E007802C 24428124 */ addiu $v0, $v0, %lo(bulb_glow_init)
|
||||||
/* 37A420 E0078030 AFA20018 */ sw $v0, 0x18($sp)
|
/* 37A420 E0078030 AFA20018 */ sw $v0, 0x18($sp)
|
||||||
/* 37A424 E0078034 3C02E008 */ lui $v0, %hi(fx_3C_update)
|
/* 37A424 E0078034 3C02E008 */ lui $v0, %hi(bulb_glow_update)
|
||||||
/* 37A428 E0078038 2442812C */ addiu $v0, $v0, %lo(fx_3C_update)
|
/* 37A428 E0078038 2442812C */ addiu $v0, $v0, %lo(bulb_glow_update)
|
||||||
/* 37A42C E007803C AFA2001C */ sw $v0, 0x1c($sp)
|
/* 37A42C E007803C AFA2001C */ sw $v0, 0x1c($sp)
|
||||||
/* 37A430 E0078040 3C02E008 */ lui $v0, %hi(fx_3C_render)
|
/* 37A430 E0078040 3C02E008 */ lui $v0, %hi(bulb_glow_render)
|
||||||
/* 37A434 E0078044 24428210 */ addiu $v0, $v0, %lo(fx_3C_render)
|
/* 37A434 E0078044 24428210 */ addiu $v0, $v0, %lo(bulb_glow_render)
|
||||||
/* 37A438 E0078048 AFA20020 */ sw $v0, 0x20($sp)
|
/* 37A438 E0078048 AFA20020 */ sw $v0, 0x20($sp)
|
||||||
/* 37A43C E007804C 2402003C */ addiu $v0, $zero, 0x3c
|
/* 37A43C E007804C 2402003C */ addiu $v0, $zero, 0x3c
|
||||||
/* 37A440 E0078050 AFBF0034 */ sw $ra, 0x34($sp)
|
/* 37A440 E0078050 AFBF0034 */ sw $ra, 0x34($sp)
|
@ -1,7 +1,7 @@
|
|||||||
.set noat # allow manual use of $at
|
.set noat # allow manual use of $at
|
||||||
.set noreorder # don't insert nops after branches
|
.set noreorder # don't insert nops after branches
|
||||||
|
|
||||||
glabel fx_3C_update
|
glabel bulb_glow_update
|
||||||
/* 37A51C E007812C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
/* 37A51C E007812C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||||
/* 37A520 E0078130 AFBF0010 */ sw $ra, 0x10($sp)
|
/* 37A520 E0078130 AFBF0010 */ sw $ra, 0x10($sp)
|
||||||
/* 37A524 E0078134 8C850000 */ lw $a1, ($a0)
|
/* 37A524 E0078134 8C850000 */ lw $a1, ($a0)
|
@ -107,7 +107,7 @@ glabel lightning_main
|
|||||||
/* 36E358 E006C188 3C07429A */ lui $a3, 0x429a
|
/* 36E358 E006C188 3C07429A */ lui $a3, 0x429a
|
||||||
/* 36E35C E006C18C 0000202D */ daddu $a0, $zero, $zero
|
/* 36E35C E006C18C 0000202D */ daddu $a0, $zero, $zero
|
||||||
/* 36E360 E006C190 E7B40010 */ swc1 $f20, 0x10($sp)
|
/* 36E360 E006C190 E7B40010 */ swc1 $f20, 0x10($sp)
|
||||||
/* 36E364 E006C194 0C01E000 */ jal fx_3C_main
|
/* 36E364 E006C194 0C01E000 */ jal bulb_glow_main
|
||||||
/* 36E368 E006C198 AFB20014 */ sw $s2, 0x14($sp)
|
/* 36E368 E006C198 AFB20014 */ sw $s2, 0x14($sp)
|
||||||
/* 36E36C E006C19C 0801B087 */ j .LE006C21C
|
/* 36E36C E006C19C 0801B087 */ j .LE006C21C
|
||||||
/* 36E370 E006C1A0 2A820003 */ slti $v0, $s4, 3
|
/* 36E370 E006C1A0 2A820003 */ slti $v0, $s4, 3
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
- fx_energy_shockwave
|
- fx_energy_shockwave
|
||||||
- fx_shimmer_wave
|
- fx_shimmer_wave
|
||||||
- fx_aura
|
- fx_aura
|
||||||
- fx_3C
|
- fx_bulb_glow
|
||||||
- fx_3D
|
- fx_3D
|
||||||
- fx_blast
|
- fx_blast
|
||||||
- fx_fire_flower
|
- fx_fire_flower
|
||||||
|
@ -2968,15 +2968,15 @@ segments:
|
|||||||
- [0x377070, c, aura]
|
- [0x377070, c, aura]
|
||||||
- [0x377F00]
|
- [0x377F00]
|
||||||
- [0x377F80, bin] # aura gfx
|
- [0x377F80, bin] # aura gfx
|
||||||
- name: effect_effect_3C
|
- name: effect_bulb_glow
|
||||||
dir: effects
|
dir: effects
|
||||||
type: code
|
type: code
|
||||||
start: 0x37A3F0
|
start: 0x37A3F0
|
||||||
vram: 0xE0078000
|
vram: 0xE0078000
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x37A3F0, c, effect_3C]
|
- [0x37A3F0, c, bulb_glow]
|
||||||
- [0x37ACF0, data]
|
- [0x37ACF0, data]
|
||||||
- [0x37ADD0, bin] # effect_3C gfx
|
- [0x37ADD0, bin] # bulb_glow gfx
|
||||||
- name: effect_effect_3D
|
- name: effect_effect_3D
|
||||||
dir: effects
|
dir: effects
|
||||||
type: code
|
type: code
|
||||||
@ -4344,54 +4344,53 @@ segments:
|
|||||||
vram: 0x80218000
|
vram: 0x80218000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x52B6A0, c]
|
- [0x52B6A0, c, actor/general_guy]
|
||||||
- [0x52B7C0, c]
|
- [0x52B7C0, c, actor/toy_tank]
|
||||||
- [0x52B9D0, data]
|
- [0x52B8F0, c, actor/light_bulb]
|
||||||
|
- [0x52B9D0, c, stage/omo_07]
|
||||||
|
- [0x52B9D0, c, area]
|
||||||
- dir: battle/area_omo2_1
|
- dir: battle/area_omo2_1
|
||||||
type: code
|
type: code
|
||||||
start: 0x543570
|
start: 0x543570
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x543570, c]
|
- [0x543570, c, actor/shy_squad]
|
||||||
- [0x543620, data]
|
|
||||||
- dir: battle/area_omo2_2
|
- dir: battle/area_omo2_2
|
||||||
type: code
|
type: code
|
||||||
start: 0x5483E0
|
start: 0x5483E0
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x5483E0, c]
|
- [0x5483E0, c, actor/stilt_guy]
|
||||||
- [0x548500, data]
|
|
||||||
- dir: battle/area_omo2_3
|
- dir: battle/area_omo2_3
|
||||||
type: code
|
type: code
|
||||||
start: 0x54CC70
|
start: 0x54CC70
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x54CC70, c]
|
- [0x54CC70, c, actor/shy_stack]
|
||||||
- [0x54CCA0, data]
|
|
||||||
- dir: battle/area_omo2_4
|
- dir: battle/area_omo2_4
|
||||||
type: code
|
type: code
|
||||||
start: 0x552440
|
start: 0x552440
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x552440, data]
|
- [0x552440, c, actor/signal_guy]
|
||||||
- dir: battle/area_omo2_5
|
- dir: battle/area_omo2_5
|
||||||
type: code
|
type: code
|
||||||
start: 0x552BB0
|
start: 0x552BB0
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x552BB0, data]
|
- [0x552BB0, c, actor/shy_squad_dup]
|
||||||
- dir: battle/area_omo2_6
|
- dir: battle/area_omo2_6
|
||||||
type: code
|
type: code
|
||||||
start: 0x556C90
|
start: 0x556C90
|
||||||
vram: 0x80231000
|
vram: 0x80231000
|
||||||
overlay: True
|
overlay: True
|
||||||
subsegments:
|
subsegments:
|
||||||
- [0x556C90, data]
|
- [0x556C90, c, actor/shy_guy_dup]
|
||||||
- dir: battle/area_omo3
|
- dir: battle/area_omo3
|
||||||
type: code
|
type: code
|
||||||
start: 0x5573E0
|
start: 0x5573E0
|
||||||
|
@ -1206,7 +1206,7 @@ fx_shimmer_burst = 0x80070D90; // type:func rom:0x4C190
|
|||||||
fx_energy_shockwave = 0x80070DF0; // type:func rom:0x4C1F0
|
fx_energy_shockwave = 0x80070DF0; // type:func rom:0x4C1F0
|
||||||
fx_shimmer_wave = 0x80070E50; // type:func rom:0x4C250
|
fx_shimmer_wave = 0x80070E50; // type:func rom:0x4C250
|
||||||
fx_aura = 0x80070EB0; // type:func rom:0x4C2B0
|
fx_aura = 0x80070EB0; // type:func rom:0x4C2B0
|
||||||
fx_3C = 0x80070F10; // type:func rom:0x4C310
|
bulb_glow = 0x80070F10; // type:func rom:0x4C310
|
||||||
fx_3D = 0x80070F70; // type:func rom:0x4C370
|
fx_3D = 0x80070F70; // type:func rom:0x4C370
|
||||||
fx_blast = 0x80070FD0; // type:func rom:0x4C3D0
|
fx_blast = 0x80070FD0; // type:func rom:0x4C3D0
|
||||||
fx_fire_flower = 0x80071030; // type:func rom:0x4C430
|
fx_fire_flower = 0x80071030; // type:func rom:0x4C430
|
||||||
@ -7837,12 +7837,12 @@ D_E0076EA0 = 0xE0076EA0; // type:data rom:0x377F10
|
|||||||
D_E0076EB0 = 0xE0076EB0; // type:data rom:0x377F20
|
D_E0076EB0 = 0xE0076EB0; // type:data rom:0x377F20
|
||||||
D_E0076EC0 = 0xE0076EC0; // type:data rom:0x377F30
|
D_E0076EC0 = 0xE0076EC0; // type:data rom:0x377F30
|
||||||
D_E0076ED0 = 0xE0076ED0; // type:data rom:0x377F40
|
D_E0076ED0 = 0xE0076ED0; // type:data rom:0x377F40
|
||||||
fx_3C_main = 0xE0078000; // type:func rom:0x37A3F0
|
bulb_glow_main = 0xE0078000; // type:func rom:0x37A3F0
|
||||||
fx_3C_init = 0xE0078124; // type:func rom:0x37A514
|
bulb_glow_init = 0xE0078124; // type:func rom:0x37A514
|
||||||
fx_3C_update = 0xE007812C; // type:func rom:0x37A51C
|
bulb_glow_update = 0xE007812C; // type:func rom:0x37A51C
|
||||||
fx_3C_render = 0xE0078210; // type:func rom:0x37A600
|
bulb_glow_render = 0xE0078210; // type:func rom:0x37A600
|
||||||
func_E0078274 = 0xE0078274; // type:func rom:0x37A664
|
func_E0078274 = 0xE0078274; // type:func rom:0x37A664
|
||||||
fx_3C_appendGfx = 0xE007827C; // type:func rom:0x37A66C
|
bulb_glow_appendGfx = 0xE007827C; // type:func rom:0x37A66C
|
||||||
fx_3D_main = 0xE007A000; // type:func rom:0x37C540
|
fx_3D_main = 0xE007A000; // type:func rom:0x37C540
|
||||||
fx_3D_init = 0xE007A504; // type:func rom:0x37CA44
|
fx_3D_init = 0xE007A504; // type:func rom:0x37CA44
|
||||||
fx_3D_update = 0xE007A50C; // type:func rom:0x37CA4C
|
fx_3D_update = 0xE007A50C; // type:func rom:0x37CA4C
|
||||||
@ -11201,7 +11201,7 @@ b_area_omo2_UnfadeBackgroundToBlack = 0x80218098; // type:func rom:0x52B738
|
|||||||
func_80218120_52B7C0 = 0x80218120; // type:func rom:0x52B7C0
|
func_80218120_52B7C0 = 0x80218120; // type:func rom:0x52B7C0
|
||||||
func_802181F4_52B894 = 0x802181F4; // type:func rom:0x52B894
|
func_802181F4_52B894 = 0x802181F4; // type:func rom:0x52B894
|
||||||
func_80218250_52B8F0 = 0x80218250; // type:func rom:0x52B8F0
|
func_80218250_52B8F0 = 0x80218250; // type:func rom:0x52B8F0
|
||||||
func_80231000_543570 = 0x80231000; // type:func rom:0x543570
|
b_area_omo2_1_shy_squad_GetActorPartSize = 0x80231000; // type:func rom:0x543570
|
||||||
b_area_omo2_2_GetSelectedMoveID = 0x80231000; // type:func rom:0x5483E0
|
b_area_omo2_2_GetSelectedMoveID = 0x80231000; // type:func rom:0x5483E0
|
||||||
func_8023102C_54840C = 0x8023102C; // type:func rom:0x54840C
|
func_8023102C_54840C = 0x8023102C; // type:func rom:0x54840C
|
||||||
b_area_omo2_2_UnkBattleFunc1 = 0x80231054; // type:func rom:0x548434
|
b_area_omo2_2_UnkBattleFunc1 = 0x80231054; // type:func rom:0x548434
|
||||||
|
Loading…
Reference in New Issue
Block a user