area_spooky (#894)

* obk_01

* obk_02

* obk_03

* obk_06

* obk_05

* checkpoint

* chandelier documentation

* obk_04

* obk_09

* obk_07

* obk done

* tabs

* kmr_22

* kmr_11

* last thing

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-12-25 00:10:23 -05:00 committed by GitHub
parent cf2099772d
commit cbdce77daf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
278 changed files with 17008 additions and 5533 deletions

View File

@ -1668,11 +1668,11 @@ enum ItemIDs {
ITEM_LETTER_TO_MINHT = 0x0000003E,
ITEM_UNUSED_LETTER02 = 0x0000003F,
ITEM_LETTER10 = 0x00000040,
ITEM_LETTER11 = 0x00000041,
ITEM_LETTER_TO_IGOR = 0x00000041,
ITEM_UNUSED_LETTER03 = 0x00000042,
ITEM_UNUSED_LETTER04 = 0x00000043,
ITEM_UNUSED_LETTER05 = 0x00000044,
ITEM_LETTER12 = 0x00000045,
ITEM_LETTER_TO_FRANKY = 0x00000045,
ITEM_LETTER13 = 0x00000046,
ITEM_LETTER14 = 0x00000047,
ITEM_LETTER15 = 0x00000048,
@ -4353,6 +4353,25 @@ enum CopiedVtxUnit {
VTX_COPY_F = 0xF,
};
enum ModelAnimUnit {
MDL_ANIMATOR_0 = 0x0,
MDL_ANIMATOR_1 = 0x1,
MDL_ANIMATOR_2 = 0x2,
MDL_ANIMATOR_3 = 0x3,
MDL_ANIMATOR_4 = 0x4,
MDL_ANIMATOR_5 = 0x5,
MDL_ANIMATOR_6 = 0x6,
MDL_ANIMATOR_7 = 0x7,
MDL_ANIMATOR_8 = 0x8,
MDL_ANIMATOR_9 = 0x9,
MDL_ANIMATOR_A = 0xA,
MDL_ANIMATOR_B = 0xB,
MDL_ANIMATOR_C = 0xC,
MDL_ANIMATOR_D = 0xD,
MDL_ANIMATOR_E = 0xE,
MDL_ANIMATOR_F = 0xF,
};
enum EnemyFlags {
ENEMY_FLAGS_1 = 0x00000001,
ENEMY_FLAGS_2 = 0x00000002,

View File

@ -461,7 +461,7 @@ void disable_npc_shadow(Npc* npc);
void update_npc_blur(Npc* npc);
void appendGfx_npc_blur(Npc* npc);
void appendGfx_npc_blur(void* appendData);
void npc_enable_collisions(void);

View File

@ -264,6 +264,7 @@ ApiStatus AddBadge(Evt* script, s32 isInitialCall);
ApiStatus RemoveBadge(Evt* script, s32 isInitialCall);
ApiStatus SetItemPos(Evt* script, s32 isInitialCall);
ApiStatus SetItemFlags(Evt* script, s32 isInitialCall);
ApiStatus SetItemAlpha(Evt* script, s32 isInitialCall);
ApiStatus AddCoin(Evt* script, s32 isInitialCall);
ApiStatus AddStarPoints(Evt* script, s32 isInitialCall);
ApiStatus AddStarPieces(Evt* script, s32 isInitialCall);

View File

@ -574,29 +574,70 @@
/// Prints variable name and value
#define EVT_DEBUG_PRINT_VAR(VAR) EVT_CMD(EVT_OP_DEBUG_PRINT_VAR, VAR),
/****** VECTOR OPERATIONS *********************************************************************************************/
// expand vector components
#define EVT_AS_VEC2(baseVar) (baseVar), (baseVar + 1)
#define EVT_AS_VEC3(baseVar) (baseVar), (baseVar + 1), (baseVar + 2)
// extract components from vector
#define EVT_VEC_X(baseVar) (baseVar)
#define EVT_VEC_Y(baseVar) (baseVar + 1)
#define EVT_VEC_Z(baseVar) (baseVar + 2)
#define EVT_VEC2_OP(OPERATION, MUT_BASE, x, y) \
OPERATION(MUT_BASE + 0, x) \
OPERATION(MUT_BASE + 1, y)
#define EVT_VEC3_OP(OPERATION, MUT_BASE, x, y, z) \
OPERATION(MUT_BASE + 0, x) \
OPERATION(MUT_BASE + 1, y) \
OPERATION(MUT_BASE + 2, z)
#define EVT_VEC2_VOP(OPERATION, MUT_BASE, AMT_BASE) \
OPERATION(MUT_BASE + 0, AMT_BASE + 0) \
OPERATION(MUT_BASE + 1, AMT_BASE + 1)
#define EVT_VEC3_VOP(OPERATION, MUT_BASE, AMT_BASE) \
OPERATION(MUT_BASE + 0, AMT_BASE + 0) \
OPERATION(MUT_BASE + 1, AMT_BASE + 1) \
OPERATION(MUT_BASE + 2, AMT_BASE + 2)
#define EVT_VEC2I_SET(baseVar, x, y) EVT_VEC2_OP(EVT_SET, baseVar, x, y)
#define EVT_VEC2F_SET(baseVar, x, y) EVT_VEC2_OP(EVT_SETF, baseVar, x, y)
#define EVT_VEC3I_SET(baseVar, x, y, z) EVT_VEC3_OP(EVT_SET, baseVar, x, y, z)
#define EVT_VEC3F_SET(baseVar, x, y, z) EVT_VEC3_OP(EVT_SETF, baseVar, x, y, z)
#define EVT_VEC2I_VSET(baseVar, baseSrc) EVT_VEC2_VOP(EVT_SET, baseVar, baseSrc)
#define EVT_VEC2F_VSET(baseVar, baseSrc) EVT_VEC2_VOP(EVT_SETF, baseVar, baseSrc)
#define EVT_VEC3I_VSET(baseVar, baseSrc) EVT_VEC3_VOP(EVT_SET, baseVar, baseSrc)
#define EVT_VEC3F_VSET(baseVar, baseSrc) EVT_VEC3_VOP(EVT_SETF, baseVar, baseSrc)
#define EVT_VEC2I_ADD(baseVar, x, y) EVT_VEC2_OP(EVT_ADD, baseVar, x, y)
#define EVT_VEC2F_ADD(baseVar, x, y) EVT_VEC2_OP(EVT_ADDF, baseVar, x, y)
#define EVT_VEC3I_ADD(baseVar, x, y, z) EVT_VEC3_OP(EVT_ADD, baseVar, x, y, z)
#define EVT_VEC3F_ADD(baseVar, x, y, z) EVT_VEC3_OP(EVT_ADDF, baseVar, x, y, z)
#define EVT_VEC2I_VADD(baseVar, baseAmt) EVT_VEC2_VOP(EVT_ADD, baseVar, baseAmt)
#define EVT_VEC2F_VADD(baseVar, baseAmt) EVT_VEC2_VOP(EVT_ADDF, baseVar, baseAmt)
#define EVT_VEC3I_VADD(baseVar, baseAmt) EVT_VEC3_VOP(EVT_ADD, baseVar, baseAmt)
#define EVT_VEC3F_VADD(baseVar, baseAmt) EVT_VEC3_VOP(EVT_ADDF, baseVar, baseAmt)
#define EVT_VEC2I_SUB(baseVar, x, y) EVT_VEC2_OP(EVT_SUB, baseVar, x, y)
#define EVT_VEC2F_SUB(baseVar, x, y) EVT_VEC2_OP(EVT_SUBF, baseVar, x, y)
#define EVT_VEC3I_SUB(baseVar, x, y, z) EVT_VEC3_OP(EVT_SUB, baseVar, x, y, z)
#define EVT_VEC3F_SUB(baseVar, x, y, z) EVT_VEC3_OP(EVT_SUBF, baseVar, x, y, z)
#define EVT_VEC2I_VSUB(baseVar, baseAmt) EVT_VEC2_VOP(EVT_SUB, baseVar, baseAmt)
#define EVT_VEC2F_VSUB(baseVar, baseAmt) EVT_VEC2_VOP(EVT_SUBF, baseVar, baseAmt)
#define EVT_VEC3I_VSUB(baseVar, baseAmt) EVT_VEC3_VOP(EVT_SUB, baseVar, baseAmt)
#define EVT_VEC3F_VSUB(baseVar, baseAmt) EVT_VEC3_VOP(EVT_SUBF, baseVar, baseAmt)
/****** COMMON SCRIPTS ************************************************************************************************/
#define EVT_IF_TRUE(b) EVT_IF_NE(b, 0)
#define EVT_IF_FALSE(b) EVT_IF_EQ(b, 0)
#define EVT_SET_VEC2(baseVar, x, y, z) \
EVT_SET(baseVar + 0, x) \
EVT_SET(baseVar + 1, y)
#define EVT_SETF_VEC2(baseVar, x, y, z) \
EVT_SETF(baseVar + 0, x) \
EVT_SETF(baseVar + 1, y)
#define EVT_SET_VEC3(baseVar, x, y, z) \
EVT_SET(baseVar + 0, x) \
EVT_SET(baseVar + 1, y) \
EVT_SET(baseVar + 2, z)
#define EVT_SETF_VEC3(baseVar, x, y, z) \
EVT_SETF(baseVar + 0, x) \
EVT_SETF(baseVar + 1, y) \
EVT_SETF(baseVar + 2, z)
#define EVT_EXIT_WALK(walkDistance, exitIdx, map, entryIdx) \
{ \
EVT_SET_GROUP(EVT_GROUP_1B) \

View File

@ -35,5 +35,6 @@ extern EvtScript EnterSplitDoubleDoor;
extern EvtScript BaseExitDoor;
extern EvtScript BaseEnterDoor;
extern EvtScript EnterPostPipe;
extern EvtScript ItemShopInteract;
#endif

View File

@ -70,12 +70,12 @@ EvtScript D_800939B4 = {
EVT_LOOP(30)
EVT_CALL(SetNpcRotation, NPC_SELF, 0, LVar0, 0)
EVT_CALL(func_8005DD54)
EVT_CALL(func_802CFD30, NPC_SELF, 6, LVar2, LVar2, LVar2, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_6, LVar2, LVar2, LVar2, 0)
EVT_ADD(LVar0, 30)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcRotation, NPC_SELF, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_SELF, 6, 255, 255, 255, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_6, 255, 255, 255, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_40000, FALSE)
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(func_8005DDF0)

View File

@ -41,6 +41,9 @@ enum {
#define as_SetScale(node, x, y, z) AS_SET_SCALE, node, AS_F(x), AS_F(y), AS_F(z),
#define as_DisableMirroring AS_OP_19,
#define AS_MODEL_ID(modelID) ((modelID) + 1)
#define AS_NULL_MODEL 0
// used in entity models
#define ENTITY_ANIN_NULL (void*)(0xFFFFFFFF)
#define ENTITY_ANIM_NULL (void*)(0xFFFFFFFF)
#endif

View File

@ -917,7 +917,7 @@ typedef struct BGMPlayer {
/* 0x0C4 */ s32 masterVolumeStep;
/* 0x0C8 */ s32 masterVolumeTarget;
/* 0x0CC */ s32 masterVolumeTime;
/* 0x0D0 */ f32 unk_D0;
/* 0x0D0 */ f32 playbackRate;
/* 0x0D4 */ SeqArgs seqCmdArgs;
/* 0x0D8 */ SegData* segLoopStartLabels[32];
/* 0x158 */ SegData* segActiveLoopEndPos[4];
@ -931,7 +931,7 @@ typedef struct BGMPlayer {
/* 0x208 */ u16 masterTempoBPM;
/* 0x20A */ u16 maxTempo;
/* 0x20C */ u16 masterPitchShift;
/* 0x20E */ s16 unk_20E;
/* 0x20E */ s16 detune;
/* 0x210 */ u8 segLoopDepth;
/* 0x211 */ u8 unk_211;
/* 0x212 */ u8 unk_212[8];

View File

@ -537,7 +537,7 @@ void au_bgm_player_init(BGMPlayer* player, s32 priority, s32 reverbType, AuGloba
player->masterVolumeTarget = 0;
player->masterVolumeStep = 0;
player->masterPitchShift = 0;
player->unk_20E = 0;
player->detune = 0;
player->unk_220 = 0;
player->trackVolsConfig = NULL;
player->bFadeConfigSetsVolume = FALSE;
@ -547,7 +547,7 @@ void au_bgm_player_init(BGMPlayer* player, s32 priority, s32 reverbType, AuGloba
*(s32*)player->segLoopCounters = 0;
player->unk_222 = 0;
player->unk_223 = 0;
player->unk_D0 = 1.0f;
player->playbackRate = 1.0f;
player->unk_22A[0] = 0;
player->unk_22A[1] = 1;
player->unk_22A[2] = 0;
@ -744,7 +744,7 @@ void au_bgm_player_initialize(BGMPlayer* player) {
}
func_80050900(player);
player->unk_D0 = 128.0f; // set to 1.0 later om...
player->playbackRate = 128.0f; // set to 1.0 later om...
player->masterTempo = BGM_DEFAULT_TEMPO;
player->masterTempoBPM = BGM_DEFAULT_TEMPO / 100;
player->unk_21E = 0x80;
@ -753,7 +753,7 @@ void au_bgm_player_initialize(BGMPlayer* player) {
player->unk_74 = 0;
player->masterTempoTarget = 0;
player->masterPitchShift = 0;
player->unk_20E = 0;
player->detune = 0;
player->masterVolumeTime = 0;
player->masterVolumeTarget = 0;
player->masterVolumeStep = 0;
@ -772,7 +772,7 @@ void au_bgm_player_initialize(BGMPlayer* player) {
player->bFadeConfigSetsVolume = FALSE;
player->unk_233 = 1;
player->unk_211 = 0;
player->unk_D0 = 1.0f;
player->playbackRate = 1.0f;
for (i = 0; i < ARRAY_COUNT(player->unk_212); i++) {
func_8004E844(player, i);
@ -1252,7 +1252,7 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
+ track->subTrackCoarseTune
+ track->subTrackFineTune
- note->ins->keyBase;
temp = (note->adjustedPitch + track->segTrackTune) + player->unk_20E;
temp = (note->adjustedPitch + track->segTrackTune) + player->detune;
if (drumInfo->randTune != 0) {
note->unk_14 = au_bgm_get_random_pitch(player->randomValue1, temp, drumInfo->randTune);
temp = note->unk_14;
@ -1283,7 +1283,7 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
note->pitchRatio = au_compute_pitch_ratio(
note->adjustedPitch
+ track->segTrackTune
+ player->unk_20E)
+ player->detune)
* track->instrument->pitchRatio;
if (track->unk_57 != 0) {
@ -1359,8 +1359,8 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
}
}
if (track->isDrumTrack) {
if (track->changed.tune || (player->unk_20E != 0)) {
note->pitchRatio = au_compute_pitch_ratio(((note->adjustedPitch + note->unk_14) + track->segTrackTune) + player->unk_20E) * note->ins->pitchRatio;
if (track->changed.tune || (player->detune != 0)) {
note->pitchRatio = au_compute_pitch_ratio(((note->adjustedPitch + note->unk_14) + track->segTrackTune) + player->detune) * note->ins->pitchRatio;
if (voice->pitchRatio != note->pitchRatio) {
voice->pitchRatio = note->pitchRatio;
voice->unk_flags_43 |= AU_VOICE_SYNC_FLAGS_PITCH;
@ -1398,15 +1398,15 @@ void au_bgm_player_update_playing(BGMPlayer *player) {
var_a1_5 = -var_a1_5;
}
note->pitchRatio = au_compute_pitch_ratio(var_a1_5 + ((note->adjustedPitch + track->segTrackTune) + player->unk_20E)) * note->ins->pitchRatio;
note->pitchRatio = au_compute_pitch_ratio(var_a1_5 + ((note->adjustedPitch + track->segTrackTune) + player->detune)) * note->ins->pitchRatio;
if (voice->pitchRatio != note->pitchRatio) {
voice->pitchRatio = note->pitchRatio;
voice->unk_flags_43 |= AU_VOICE_SYNC_FLAGS_PITCH;
}
}
} else if (track->changed.tune || (player->unk_20E != 0)) {
} else if (track->changed.tune || (player->detune != 0)) {
note->pitchRatio = au_compute_pitch_ratio((note->adjustedPitch + track->segTrackTune) + player->unk_20E) * note->ins->pitchRatio;
note->pitchRatio = au_compute_pitch_ratio((note->adjustedPitch + track->segTrackTune) + player->detune) * note->ins->pitchRatio;
if (voice->pitchRatio != note->pitchRatio) {
voice->pitchRatio = note->pitchRatio;
voice->unk_flags_43 |= AU_VOICE_SYNC_FLAGS_PITCH;
@ -1457,7 +1457,7 @@ static s32 snd_bpm_to_tempo(BGMPlayer* player, u32 tempo) {
u32 maxTempo = player->maxTempo;
u32 ret = tempo;
ret *= player->unk_D0;
ret *= player->playbackRate;
if (maxTempo < ret) {
ret = maxTempo;
@ -1928,14 +1928,14 @@ void au_bgm_set_proximity_mix(s32 songName, u32 mix) {
}
}
void func_80050770(BGMPlayer* player, f32 arg1) {
if (arg1 > 2.0) {
arg1 = 2.0f;
} else if (arg1 < 0.25) {
arg1 = 0.25f;
void au_bgm_set_playback_rate(BGMPlayer* player, f32 rate) {
if (rate > 2.0) {
rate = 2.0f;
} else if (rate < 0.25) {
rate = 0.25f;
}
player->unk_D0 = arg1;
player->playbackRate = rate;
player->masterTempo = snd_bpm_to_tempo(player, player->masterTempoBPM);
player->nextUpdateStep = player->masterTempo * 10;
player->masterTempoTime = 0;
@ -1943,14 +1943,14 @@ void func_80050770(BGMPlayer* player, f32 arg1) {
player->masterTempoStep = 0;
}
void func_80050818(BGMPlayer* player, s32 arg1) {
if (arg1 > 1200) {
arg1 = 1200;
} else if (arg1 < -2400) {
arg1 = -2400;
void au_bgm_player_set_detune(BGMPlayer* player, s32 detune) {
if (detune > 1200) {
detune = 1200;
} else if (detune < -2400) {
detune = -2400;
}
player->unk_20E = arg1;
player->detune = detune;
}
void au_bgm_change_track_volume(BGMPlayer* player, s32 trackIdx, s16 time, u8 volume) {

View File

@ -655,7 +655,7 @@ AuResult snd_song_get_playing_info(s32 songName, BGMHeader** outFile, BGMPlayer*
return status;
}
AuResult func_80055D38(s32 songName, f32 arg1) {
AuResult snd_song_set_playback_rate(s32 songName, f32 rate) {
BGMPlayer* bgmPlayer;
BGMHeader* bgmFile;
AuResult status;
@ -663,13 +663,13 @@ AuResult func_80055D38(s32 songName, f32 arg1) {
status = snd_song_get_playing_info(songName, &bgmFile, &bgmPlayer);
if (status == AU_RESULT_OK) {
func_80050770(bgmPlayer, arg1);
au_bgm_set_playback_rate(bgmPlayer, rate);
}
return status;
}
AuResult func_80055D8C(s32 songName, s32 arg1) {
AuResult snd_song_set_detune(s32 songName, s32 detune) {
BGMPlayer* bgmPlayer;
BGMHeader* bgmFile;
AuResult status;
@ -677,7 +677,7 @@ AuResult func_80055D8C(s32 songName, s32 arg1) {
status = snd_song_get_playing_info(songName, &bgmFile, &bgmPlayer);
if (status == AU_RESULT_OK) {
func_80050818(bgmPlayer, arg1);
au_bgm_player_set_detune(bgmPlayer, detune);
}
return status;

View File

@ -158,8 +158,8 @@ void au_BGMCmd_FC_Jump(BGMPlayer* player, BGMPlayerTrack* track);
void au_BGMCmd_FF(BGMPlayer* player, BGMPlayerTrack* track);
void au_BGMCmd_NOP(BGMPlayer* player, BGMPlayerTrack* track);
void au_bgm_set_proximity_mix(s32 songName, u32 mix);
void func_80050770(BGMPlayer* player, f32 arg1);
void func_80050818(BGMPlayer* player, s32 arg1);
void au_bgm_set_playback_rate(BGMPlayer* player, f32 arg1);
void au_bgm_player_set_detune(BGMPlayer* player, s32 arg1);
void au_bgm_change_track_volume(BGMPlayer* player, s32 trackIdx, s16 arg2, u8 arg3);
void au_bgm_set_track_volumes(BGMPlayer* player, u8* arg1, s32 arg2);
void func_80050888(BGMPlayer* player, BGMPlayerTrack* track, s32 target, s32 duration);
@ -216,8 +216,8 @@ AuResult snd_set_song_variation(s32 songName, s32 variation);
*/
AuResult snd_song_get_playing_info(s32 songName, BGMHeader** outTrackData, BGMPlayer** outPlayer);
/*
AuResult func_80055D38(s32 songName, f32 arg1);
AuResult func_80055D8C(s32 songName, s32 arg1);
AuResult snd_song_set_playback_rate(s32 songName, f32 arg1);
AuResult snd_song_set_detune(s32 songName, s32 arg1);
AuResult func_80055DDC(s32 songName, s32 arg1);
AuResult snd_song_clear_track_volumes(s32 songName, MusicTrackVols arg1);
u8* func_80055EB4(MusicTrackVols arg0);

View File

@ -46,8 +46,8 @@ AuResult func_80055C64(s32 songName);
AuResult func_80055C94(s32 songName);
AuResult snd_set_song_variation(s32 songName, s32 variation);
//AuResult snd_song_get_playing_info(s32 songName, BGMHeader** outTrackData, BGMPlayer** outPlayer);
AuResult func_80055D38(s32 songName, f32 arg1);
AuResult func_80055D8C(s32 songName, s32 arg1);
AuResult snd_song_set_playback_rate(s32 songName, f32 arg1);
AuResult snd_song_set_detune(s32 songName, s32 arg1);
AuResult snd_song_set_track_volumes(s32 songName, MusicTrackVols arg1);
AuResult snd_song_clear_track_volumes(s32 songName, MusicTrackVols arg1);
AuResult snd_song_set_track_vol_mute(s32 arg0, s32 arg1);

View File

@ -10,23 +10,23 @@ extern Gfx Entity_BellbellPlant_RenderNode5[];
StaticAnimatorNode Entity_BellbellPlant_Node5 = {
.displayList = Entity_BellbellPlant_RenderNode5,
.rot = { -1092, 0, 0 },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_BellbellPlant_Node4 = {
.displayList = Entity_BellbellPlant_RenderNode4,
.rot = { -2455, 0, 0 },
.pos = { 15.0f, 39.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_BellbellPlant_Node5,
};
StaticAnimatorNode Entity_BellbellPlant_Node3 = {
.displayList = Entity_BellbellPlant_RenderNode3,
.rot = { -1092, 0, 0 },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_BellbellPlant_Node2 = {
@ -40,7 +40,7 @@ StaticAnimatorNode Entity_BellbellPlant_Node2 = {
StaticAnimatorNode Entity_BellbellPlant_Node1 = {
.displayList = Entity_BellbellPlant_RenderNode1,
.rot = { -2457, 0, 0 },
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_BellbellPlant_Node2,
};
@ -50,7 +50,7 @@ StaticAnimatorNode* Entity_BellbellPlant_Mesh[] = {
&Entity_BellbellPlant_Node3,
&Entity_BellbellPlant_Node4,
&Entity_BellbellPlant_Node5,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_BellbellPlant_AnimationUse = {

View File

@ -12,61 +12,61 @@ extern Gfx Entity_CymbalPlant_RenderNode1[];
StaticAnimatorNode Entity_CymbalPlant_Node10 = {
.displayList = Entity_CymbalPlant_RenderNode10,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node9 = {
.displayList = Entity_CymbalPlant_RenderNode9,
.pos = { -2.0f, -26.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node8 = {
.displayList = Entity_CymbalPlant_RenderNode8,
.pos = { -2.0f, -26.0f, 0.0f },
.sibling = &Entity_CymbalPlant_Node9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node7 = {
.displayList = Entity_CymbalPlant_RenderNode7,
.pos = { -2.0f, -26.0f, 0.0f },
.sibling = &Entity_CymbalPlant_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node6 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 2.0f, 26.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_CymbalPlant_Node7,
};
StaticAnimatorNode Entity_CymbalPlant_Node5 = {
.displayList = Entity_CymbalPlant_RenderNode5,
.pos = { 3.0f, -26.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node4 = {
.displayList = Entity_CymbalPlant_RenderNode4,
.pos = { 3.0f, -26.0f, 0.0f },
.sibling = &Entity_CymbalPlant_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node3 = {
.displayList = Entity_CymbalPlant_RenderNode3,
.pos = { 3.0f, -26.0f, 0.0f },
.sibling = &Entity_CymbalPlant_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_CymbalPlant_Node2 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { -3.0f, 26.0f, 0.0f },
.sibling = &Entity_CymbalPlant_Node6,
.child = &Entity_CymbalPlant_Node3,
@ -79,8 +79,8 @@ StaticAnimatorNode Entity_CymbalPlant_Node1 = {
};
StaticAnimatorNode Entity_CymbalPlant_NodeParent = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_CymbalPlant_Node1,
};
@ -96,7 +96,7 @@ StaticAnimatorNode* Entity_CymbalPlant_Mesh[] = {
&Entity_CymbalPlant_Node8,
&Entity_CymbalPlant_Node9,
&Entity_CymbalPlant_Node10,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_CymbalPlant_AnimationGrab = {

View File

@ -7,19 +7,19 @@ extern Gfx Entity_HitFloatingYellowBlock_RenderBlock1[];
StaticAnimatorNode Entity_HitFloatingYellowBlock_NodeBlock2 = {
.displayList = Entity_HitFloatingYellowBlock_RenderBlock2,
.pos = { 0.0f, 25.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitFloatingYellowBlock_NodeBlock1 = {
.displayList = Entity_HitFloatingYellowBlock_RenderBlock1,
.sibling = &Entity_HitFloatingYellowBlock_NodeBlock2,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitFloatingYellowBlock_NodeMain = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_HitFloatingYellowBlock_NodeBlock1,
};
@ -27,7 +27,7 @@ StaticAnimatorNode* Entity_HitFloatingYellowBlock_Mesh[] = {
&Entity_HitFloatingYellowBlock_NodeMain,
&Entity_HitFloatingYellowBlock_NodeBlock1,
&Entity_HitFloatingYellowBlock_NodeBlock2,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_HitFloatingYellowBlock_AnimationHit = {

View File

@ -7,19 +7,19 @@ extern Gfx Entity_HitRedBlock_RenderBlock1[];
StaticAnimatorNode Entity_HitRedBlock_NodeBlock2 = {
.displayList = Entity_HitRedBlock_RenderBlock2,
.pos = { 0.0f, 25.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitRedBlock_NodeBlock1 = {
.displayList = Entity_HitRedBlock_RenderBlock1,
.sibling = &Entity_HitRedBlock_NodeBlock2,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitRedBlock_NodeMain = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_HitRedBlock_NodeBlock1,
};
@ -27,7 +27,7 @@ StaticAnimatorNode* Entity_HitRedBlock_Mesh[] = {
&Entity_HitRedBlock_NodeMain,
&Entity_HitRedBlock_NodeBlock1,
&Entity_HitRedBlock_NodeBlock2,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_HitRedBlock_AnimationHit = {

View File

@ -7,19 +7,19 @@ extern Gfx Entity_HitYellowBlock_RenderBlock1[];
StaticAnimatorNode Entity_HitYellowBlock_NodeBlock2 = {
.displayList = Entity_HitYellowBlock_RenderBlock2,
.pos = { 0.0f, 25.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitYellowBlock_NodeBlock1 = {
.displayList = Entity_HitYellowBlock_RenderBlock1,
.sibling = &Entity_HitYellowBlock_NodeBlock2,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_HitYellowBlock_NodeMain = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_HitYellowBlock_NodeBlock1,
};
@ -27,7 +27,7 @@ StaticAnimatorNode* Entity_HitYellowBlock_Mesh[] = {
&Entity_HitYellowBlock_NodeMain,
&Entity_HitYellowBlock_NodeBlock1,
&Entity_HitYellowBlock_NodeBlock2,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_HitYellowBlock_AnimationHit = {

View File

@ -144,8 +144,8 @@ AnimScript Entity_MunchlesiaBeginChew_Animation = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node9 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 7,
.vtxList = D_0A000000_E815F0,
};
@ -153,7 +153,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node9 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node8 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E815F0,
};
@ -161,7 +161,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node8 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node7 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E815F0,
};
@ -169,7 +169,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node7 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node6 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E815F0,
};
@ -177,7 +177,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node6 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node5 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E815F0,
};
@ -185,7 +185,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node5 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node4 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E815F0,
};
@ -193,7 +193,7 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node4 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node3 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E815F0,
};
@ -201,16 +201,16 @@ StaticAnimatorNode Entity_MunchlesiaBeginChew_Node3 = {
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node2 = {
.displayList = Entity_MunchlesiaBeginChew_Render,
.sibling = &Entity_MunchlesiaBeginChew_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E815F0,
};
StaticAnimatorNode Entity_MunchlesiaBeginChew_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaBeginChew_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaBeginChew_Mesh[] = {
@ -223,5 +223,5 @@ StaticAnimatorNode* Entity_MunchlesiaBeginChew_Mesh[] = {
&Entity_MunchlesiaBeginChew_Node7,
&Entity_MunchlesiaBeginChew_Node8,
&Entity_MunchlesiaBeginChew_Node9,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -5,13 +5,13 @@ extern Gfx Entity_MunchlesiaChewing_Render[];
StaticAnimatorNode Entity_MunchlesiaChewing_Node1 = {
.displayList = Entity_MunchlesiaChewing_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaChewing_Mesh[] = {
&Entity_MunchlesiaChewing_Node1,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_MunchlesiaChewing_Animation = {

View File

@ -141,8 +141,8 @@ AnimScript Entity_MunchlesiaEnvelop_Animation = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node8 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E7B0E0,
};
@ -150,7 +150,7 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node8 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node7 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E7B0E0,
};
@ -158,7 +158,7 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node7 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node6 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E7B0E0,
};
@ -166,7 +166,7 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node6 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node5 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E7B0E0,
};
@ -174,7 +174,7 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node5 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node4 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E7B0E0,
};
@ -182,7 +182,7 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node4 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node3 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E7B0E0,
};
@ -190,16 +190,16 @@ StaticAnimatorNode Entity_MunchlesiaEnvelop_Node3 = {
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node2 = {
.displayList = Entity_MunchlesiaEnvelop_Render,
.sibling = &Entity_MunchlesiaEnvelop_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E7B0E0,
};
StaticAnimatorNode Entity_MunchlesiaEnvelop_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaEnvelop_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaEnvelop_Mesh[] = {
@ -211,5 +211,5 @@ StaticAnimatorNode* Entity_MunchlesiaEnvelop_Mesh[] = {
&Entity_MunchlesiaEnvelop_Node6,
&Entity_MunchlesiaEnvelop_Node7,
&Entity_MunchlesiaEnvelop_Node8,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -141,8 +141,8 @@ AnimScript Entity_MunchlesiaGrab_Animation = {
StaticAnimatorNode Entity_MunchlesiaGrab_Node8 = {
.displayList = Entity_MunchlesiaGrab_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E74BD0,
};
@ -150,7 +150,7 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node8 = {
StaticAnimatorNode Entity_MunchlesiaGrab_Node7 = {
.displayList = Entity_MunchlesiaGrab_Render,
.sibling = &Entity_MunchlesiaGrab_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E74BD0,
};
@ -159,7 +159,7 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node6 = {
.displayList = Entity_MunchlesiaGrab_Render,
.pos = { 0.0f, 1.0f, 0.0f },
.sibling = &Entity_MunchlesiaGrab_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E74BD0,
};
@ -168,7 +168,7 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node5 = {
.displayList = Entity_MunchlesiaGrab_Render,
.pos = { 0.0f, 2.0f, 0.0f },
.sibling = &Entity_MunchlesiaGrab_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E74BD0,
};
@ -177,7 +177,7 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node4 = {
.displayList = Entity_MunchlesiaGrab_Render,
.pos = { 0.0f, 2.0f, 0.0f },
.sibling = &Entity_MunchlesiaGrab_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E74BD0,
};
@ -186,7 +186,7 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node3 = {
.displayList = Entity_MunchlesiaGrab_Render,
.pos = { 0.0f, 3.0f, 0.0f },
.sibling = &Entity_MunchlesiaGrab_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E74BD0,
};
@ -195,16 +195,16 @@ StaticAnimatorNode Entity_MunchlesiaGrab_Node2 = {
.displayList = Entity_MunchlesiaGrab_Render,
.pos = { 0.0f, 4.0f, 0.0f },
.sibling = &Entity_MunchlesiaGrab_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E74BD0,
};
StaticAnimatorNode Entity_MunchlesiaGrab_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaGrab_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaGrab_Mesh[] = {
@ -216,5 +216,5 @@ StaticAnimatorNode* Entity_MunchlesiaGrab_Mesh[] = {
&Entity_MunchlesiaGrab_Node6,
&Entity_MunchlesiaGrab_Node7,
&Entity_MunchlesiaGrab_Node8,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -144,8 +144,8 @@ AnimScript Entity_MunchlesiaReset1_Animation = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node9 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 7,
.vtxList = D_0A000000_E91890,
};
@ -153,7 +153,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node9 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node8 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E91890,
};
@ -161,7 +161,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node8 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node7 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E91890,
};
@ -169,7 +169,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node7 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node6 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E91890,
};
@ -177,7 +177,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node6 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node5 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E91890,
};
@ -185,7 +185,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node5 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node4 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E91890,
};
@ -193,7 +193,7 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node4 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node3 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E91890,
};
@ -201,16 +201,16 @@ StaticAnimatorNode Entity_MunchlesiaReset1_Node3 = {
StaticAnimatorNode Entity_MunchlesiaReset1_Node2 = {
.displayList = Entity_MunchlesiaReset1_Render,
.sibling = &Entity_MunchlesiaReset1_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E91890,
};
StaticAnimatorNode Entity_MunchlesiaReset1_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaReset1_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaReset1_Mesh[] = {
@ -223,5 +223,5 @@ StaticAnimatorNode* Entity_MunchlesiaReset1_Mesh[] = {
&Entity_MunchlesiaReset1_Node7,
&Entity_MunchlesiaReset1_Node8,
&Entity_MunchlesiaReset1_Node9,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -156,8 +156,8 @@ AnimScript Entity_MunchlesiaReset_AnimationReset = {
StaticAnimatorNode Entity_MunchlesiaReset_Node8 = {
.displayList = Entity_MunchlesiaReset_Render,
.pos = { 0.0f, 4.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E6E660,
};
@ -166,7 +166,7 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node7 = {
.displayList = Entity_MunchlesiaReset_Render,
.pos = { 0.0f, 4.0f, 0.0f },
.sibling = &Entity_MunchlesiaReset_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E6E660,
};
@ -175,7 +175,7 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node6 = {
.displayList = Entity_MunchlesiaReset_Render,
.pos = { 0.0f, 5.0f, 0.0f },
.sibling = &Entity_MunchlesiaReset_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E6E660,
};
@ -184,7 +184,7 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node5 = {
.displayList = Entity_MunchlesiaReset_Render,
.pos = { 0.0f, 4.0f, 0.0f },
.sibling = &Entity_MunchlesiaReset_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E6E660,
};
@ -193,7 +193,7 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node4 = {
.displayList = Entity_MunchlesiaReset_Render,
.pos = { 0.0f, 2.0f, 0.0f },
.sibling = &Entity_MunchlesiaReset_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E6E660,
};
@ -201,7 +201,7 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node4 = {
StaticAnimatorNode Entity_MunchlesiaReset_Node3 = {
.displayList = Entity_MunchlesiaReset_Render,
.sibling = &Entity_MunchlesiaReset_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E6E660,
};
@ -209,16 +209,16 @@ StaticAnimatorNode Entity_MunchlesiaReset_Node3 = {
StaticAnimatorNode Entity_MunchlesiaReset_Node2 = {
.displayList = Entity_MunchlesiaReset_Render,
.sibling = &Entity_MunchlesiaReset_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E6E660,
};
StaticAnimatorNode Entity_MunchlesiaReset_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaReset_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaReset_Mesh[] = {
@ -230,5 +230,5 @@ StaticAnimatorNode* Entity_MunchlesiaReset_Mesh[] = {
&Entity_MunchlesiaReset_Node6,
&Entity_MunchlesiaReset_Node7,
&Entity_MunchlesiaReset_Node8,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -144,8 +144,8 @@ AnimScript Entity_MunchlesiaSpitOut_Animation = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node9 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 7,
.vtxList = D_0A000000_E8A9E0,
};
@ -153,7 +153,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node9 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node8 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 6,
.vtxList = D_0A000000_E8A9E0,
};
@ -161,7 +161,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node8 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node7 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 5,
.vtxList = D_0A000000_E8A9E0,
};
@ -169,7 +169,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node7 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node6 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 4,
.vtxList = D_0A000000_E8A9E0,
};
@ -177,7 +177,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node6 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node5 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 3,
.vtxList = D_0A000000_E8A9E0,
};
@ -185,7 +185,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node5 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node4 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399 * 2,
.vtxList = D_0A000000_E8A9E0,
};
@ -193,7 +193,7 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node4 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node3 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vertexStartOffset = 399,
.vtxList = D_0A000000_E8A9E0,
};
@ -201,16 +201,16 @@ StaticAnimatorNode Entity_MunchlesiaSpitOut_Node3 = {
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node2 = {
.displayList = Entity_MunchlesiaSpitOut_Render,
.sibling = &Entity_MunchlesiaSpitOut_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
.vtxList = D_0A000000_E8A9E0,
};
StaticAnimatorNode Entity_MunchlesiaSpitOut_Node1 = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_MunchlesiaSpitOut_Node2,
.vertexStartOffset = (s32)ENTITY_ANIN_NULL,
.vtxList = ENTITY_ANIN_NULL,
.vertexStartOffset = (s32)ENTITY_ANIM_NULL,
.vtxList = ENTITY_ANIM_NULL,
};
StaticAnimatorNode* Entity_MunchlesiaSpitOut_Mesh[] = {
@ -223,5 +223,5 @@ StaticAnimatorNode* Entity_MunchlesiaSpitOut_Mesh[] = {
&Entity_MunchlesiaSpitOut_Node7,
&Entity_MunchlesiaSpitOut_Node8,
&Entity_MunchlesiaSpitOut_Node9,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};

View File

@ -9,32 +9,32 @@ extern Gfx Entity_PinkFlower_RenderNode5[];
StaticAnimatorNode Entity_PinkFlower_Node5 = {
.displayList = Entity_PinkFlower_RenderNode5,
.pos = { 0.0f, -30.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_PinkFlower_Node4 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 0.0f, 30.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_PinkFlower_Node5,
};
StaticAnimatorNode Entity_PinkFlower_Node3 = {
.displayList = Entity_PinkFlower_RenderNode3,
.sibling = &Entity_PinkFlower_Node4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_PinkFlower_Node2 = {
.displayList = Entity_PinkFlower_RenderNode2,
.sibling = &Entity_PinkFlower_Node3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_PinkFlower_Node1 = {
.displayList = Entity_PinkFlower_RenderNode1,
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_PinkFlower_Node2,
};
@ -44,7 +44,7 @@ StaticAnimatorNode* Entity_PinkFlower_Mesh[] = {
&Entity_PinkFlower_Node3,
&Entity_PinkFlower_Node4,
&Entity_PinkFlower_Node5,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_PinkFlower_AnimationLightUp = {

View File

@ -10,70 +10,70 @@ extern Gfx Entity_ScriptSpring_RenderPart6[];
extern Gfx Entity_ScriptSpring_RenderPart7[];
StaticAnimatorNode Entity_ScriptSpring_NodePart9 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 0.0f, 5.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart8 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart7 = {
.displayList = Entity_ScriptSpring_RenderPart7,
.sibling = &Entity_ScriptSpring_NodePart8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart6 = {
.displayList = Entity_ScriptSpring_RenderPart6,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart5 = {
.displayList = Entity_ScriptSpring_RenderPart5,
.pos = { 0.0f, 8.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart4 = {
.displayList = Entity_ScriptSpring_RenderPart4,
.pos = { 0.0f, 12.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart3 = {
.displayList = Entity_ScriptSpring_RenderPart3,
.pos = { 0.0f, 16.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart2 = {
.displayList = Entity_ScriptSpring_RenderPart2,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_NodePart1 = {
.displayList = Entity_ScriptSpring_RenderPart1,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_ScriptSpring_NodePart2,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_ScriptSpring_ParentNode = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_ScriptSpring_NodePart1,
};
@ -88,7 +88,7 @@ StaticAnimatorNode* Entity_ScriptSpring_Mesh[] = {
&Entity_ScriptSpring_NodePart7,
&Entity_ScriptSpring_NodePart8,
&Entity_ScriptSpring_NodePart9,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_ScriptSpring_AnimLaunch = {

View File

@ -10,70 +10,70 @@ extern Gfx Entity_SimpleSpring_RenderPart6[];
extern Gfx Entity_SimpleSpring_RenderPart7[];
StaticAnimatorNode Entity_SimpleSpring_NodePart9 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 0.0f, 5.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart8 = {
.displayList = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart9,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart7 = {
.displayList = Entity_SimpleSpring_RenderPart7,
.sibling = &Entity_SimpleSpring_NodePart8,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart6 = {
.displayList = Entity_SimpleSpring_RenderPart6,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart7,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart5 = {
.displayList = Entity_SimpleSpring_RenderPart5,
.pos = { 0.0f, 8.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart6,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart4 = {
.displayList = Entity_SimpleSpring_RenderPart4,
.pos = { 0.0f, 12.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart5,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart3 = {
.displayList = Entity_SimpleSpring_RenderPart3,
.pos = { 0.0f, 16.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart4,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart2 = {
.displayList = Entity_SimpleSpring_RenderPart2,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart3,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_NodePart1 = {
.displayList = Entity_SimpleSpring_RenderPart1,
.pos = { 0.0f, 20.0f, 0.0f },
.sibling = &Entity_SimpleSpring_NodePart2,
.child = ENTITY_ANIN_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_SimpleSpring_ParentNode = {
.displayList = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIN_NULL,
.displayList = ENTITY_ANIM_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_SimpleSpring_NodePart1,
};
@ -88,7 +88,7 @@ StaticAnimatorNode* Entity_SimpleSpring_Mesh[] = {
&Entity_SimpleSpring_NodePart7,
&Entity_SimpleSpring_NodePart8,
&Entity_SimpleSpring_NodePart9,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_SimpleSpring_AnimLaunch = {

View File

@ -8,20 +8,20 @@ StaticAnimatorNode Entity_TrumpetPlant_Node2 = {
.displayList = Entity_TrumpetPlant_RenderNode2,
.rot = { 0, 0, 5461 },
.pos = { 0.0f, 15.0f, 0.0f },
.sibling = ENTITY_ANIN_NULL,
.child = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = ENTITY_ANIM_NULL,
};
StaticAnimatorNode Entity_TrumpetPlant_Node1 = {
.displayList = Entity_TrumpetPlant_RenderNode1,
.sibling = ENTITY_ANIN_NULL,
.sibling = ENTITY_ANIM_NULL,
.child = &Entity_TrumpetPlant_Node2,
};
StaticAnimatorNode* Entity_TrumpetPlant_Mesh[] = {
&Entity_TrumpetPlant_Node1,
&Entity_TrumpetPlant_Node2,
ENTITY_ANIN_NULL,
ENTITY_ANIM_NULL,
};
AnimScript Entity_TrumpetPlant_AnimationUse = {

View File

@ -968,7 +968,7 @@ ApiStatus PartnerIsFlying(Evt* script, s32 isInitialCall) {
ApiStatus func_802CFD30(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32 npcId = evt_get_variable(script, *args++);
Bytecode var1 = evt_get_variable(script, *args++);
Bytecode foldType = evt_get_variable(script, *args++);
Bytecode var2 = evt_get_variable(script, *args++);
Bytecode var3 = evt_get_variable(script, *args++);
Bytecode var4 = evt_get_variable(script, *args++);
@ -979,7 +979,7 @@ ApiStatus func_802CFD30(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
func_8003D624(npc, var1, var2, var3, var4, var5, npc->unk_A2);
func_8003D624(npc, foldType, var2, var3, var4, var5, npc->unk_A2);
return ApiStatus_DONE2;
}

View File

@ -1025,7 +1025,8 @@ void update_npc_blur(Npc* npc) {
motionBlur->index = index;
}
void appendGfx_npc_blur(Npc* npc) {
void appendGfx_npc_blur(void* appendData) {
Npc* npc = (Npc*) appendData;
Matrix4f sp20, sp60;
f32 x, y, z;
f32 yaw;
@ -1993,70 +1994,70 @@ s32 npc_get_collider_below(Npc* npc) {
}
void func_8003D3BC(Npc* npc) {
s32 temp_s4 = npc->unk_98;
s32 temp_s0 = npc->unk_9A;
s32 temp_s5 = npc->unk_9C;
s32 temp_s2 = npc->unk_9E;
s32 temp_s6 = npc->unk_A0;
s32 temp_s3 = npc->unk_A2;
s32 foldType = npc->unk_98;
s32 foldArg1 = npc->unk_9A;
s32 foldArg2 = npc->unk_9C;
s32 foldArg3 = npc->unk_9E;
s32 foldArg4 = npc->unk_A0;
s32 foldArg5 = npc->unk_A2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, 0);
switch (temp_s4) {
switch (foldType) {
case FOLD_TYPE_NONE:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_NONE, 0, 0, 0, 0, foldArg5);
break;
case FOLD_TYPE_2:
case FOLD_TYPE_3:
npc->renderMode = 13;
npc->renderMode = RENDER_MODE_ALPHATEST;
// fallthrough
case FOLD_TYPE_1:
func_802DE894(npc->spriteInstanceID, temp_s4, 0, 0, 0, 0, temp_s3);
func_802DE894(npc->spriteInstanceID, foldType, 0, 0, 0, 0, foldArg5);
break;
case FOLD_TYPE_4:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_4, temp_s0, temp_s5, temp_s2, 0, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_4, foldArg1, foldArg2, foldArg3, 0, foldArg5);
break;
case FOLD_TYPE_6:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_6, temp_s0, temp_s5, temp_s2, 255, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_6, foldArg1, foldArg2, foldArg3, 255, foldArg5);
break;
case FOLD_TYPE_7:
npc->renderMode = 22;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_7, 255, 255, 255, temp_s0, temp_s3);
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_7, 255, 255, 255, foldArg1, foldArg5);
break;
case FOLD_TYPE_8:
npc->renderMode = 22;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_8, temp_s0, temp_s5, temp_s2, temp_s6, temp_s3);
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_8, foldArg1, foldArg2, foldArg3, foldArg4, foldArg5);
break;
case FOLD_TYPE_9:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_9, temp_s0, temp_s5, temp_s2, 255, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_9, foldArg1, foldArg2, foldArg3, 255, foldArg5);
break;
case FOLD_TYPE_A:
npc->renderMode = 22;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_A, temp_s0, temp_s5, temp_s2, temp_s6, temp_s3);
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_A, foldArg1, foldArg2, foldArg3, foldArg4, foldArg5);
break;
case FOLD_TYPE_5:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_5, temp_s0, temp_s5, temp_s2, 0, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_5, foldArg1, foldArg2, foldArg3, 0, foldArg5);
break;
case FOLD_TYPE_D:
npc->renderMode = 22;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_D, temp_s0, temp_s5, temp_s2, temp_s6, temp_s3);
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_D, foldArg1, foldArg2, foldArg3, foldArg4, foldArg5);
break;
case FOLD_TYPE_E:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_E, temp_s0, temp_s5, temp_s2, 255, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_E, foldArg1, foldArg2, foldArg3, 255, foldArg5);
break;
case FOLD_TYPE_F:
npc->renderMode = 13;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_F, temp_s0, 255, 0, 255, temp_s3);
npc->renderMode = RENDER_MODE_ALPHATEST;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_F, foldArg1, 255, 0, 255, foldArg5);
break;
case FOLD_TYPE_10:
npc->renderMode = 22;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_F, temp_s0, temp_s5, 0, temp_s5, temp_s3);
npc->renderMode = RENDER_MODE_SURFACE_XLU_LAYER2;
func_802DE894(npc->spriteInstanceID, FOLD_TYPE_F, foldArg1, foldArg2, 0, foldArg2, foldArg5);
break;
}
}

View File

@ -195,7 +195,7 @@ EvtScript N(802428CC) = {
EVT_END_IF
EVT_ADD(LVar1, 20)
EVT_CALL(SetNpcPos, NPC_Boo_05, LVar0, LVar1, LVar2)
EVT_CALL(func_802CFD30, NPC_Boo_05, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_05, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_WAIT(1)
EVT_RETURN
EVT_END
@ -213,7 +213,7 @@ EvtScript N(802429D4) = {
EVT_CALL(MakeLerp, 0, 255, 40, EASING_LINEAR)
EVT_LABEL(10)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, NPC_Boo_05, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_05, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(10)
@ -236,7 +236,7 @@ EvtScript N(80242B0C) = {
EVT_CALL(MakeLerp, 255, 0, 40, EASING_LINEAR)
EVT_LABEL(10)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, NPC_Boo_05, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_05, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(10)

View File

@ -370,9 +370,9 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, NPC_Boo_01, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_02, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_05, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_01, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_02, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_05, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcPos, NPC_Boo_01, 420, 300, 220)
@ -385,8 +385,8 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, NPC_Boo_01, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_02, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_01, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo_02, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SpeakToPlayer, NPC_Boo_03, ANIM_Boo_Tan_Flail, ANIM_Boo_Tan_Flail, 0, MSG_CH3_00A1)
@ -445,8 +445,8 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcPos, NPC_Boo_01, 0, -1000, 0)
@ -565,14 +565,14 @@ EvtScript N(EVS_Scene_TubbaRaid) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(12.5))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 4, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 4, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(func_802CFD30, 0, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 4, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 4, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_WAIT(10)
EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(3.0))

View File

@ -133,12 +133,12 @@ EvtScript N(EVS_Scene_BossDefeated) = {
EVT_IF_NE(LVar6, PARTNER_BOW)
EVT_SET(LVar5, 8)
EVT_CALL(SetNpcPos, NPC_Bow, 257, 25, 0)
EVT_CALL(func_802CFD30, 8, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 8, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_CALL(NpcFacePlayer, NPC_Bow, 0)
EVT_CALL(MakeLerp, 0, 240, 20, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, 8, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 8, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
@ -217,7 +217,7 @@ EvtScript N(EVS_Scene_BossDefeated) = {
EVT_CALL(MakeLerp, 240, 0, 20, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, 8, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 8, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP

View File

@ -53,8 +53,6 @@ extern ShopSellPriceData N(Shop_PriceList)[];
extern ShopItemLocation N(Shop_ItemPositions)[];
extern ShopOwner N(Shop_Owner);
extern EvtScript ItemShopInteract;
extern EvtScript N(80244450);
extern EvtScript N(8024CDA0);

View File

@ -27,7 +27,7 @@ s32 N(LetterList)[] = {
EvtScript N(EVS_ShopOwner_LetterDelivery) = {
EVT_CALL(N(LetterDelivery_Init),
NPC_Mouser_ShopOwner, ANIM_Mouser_Purple_Talk, ANIM_Mouser_Purple_Idle,
ITEM_LETTER19, ITEM_LETTER12,
ITEM_LETTER19, ITEM_LETTER_TO_FRANKY,
MSG_CH2_0089, MSG_CH2_008A, MSG_CH2_008B, MSG_CH2_008C,
EVT_PTR(N(LetterList)))
EVT_EXEC_WAIT(N(EVS_DoLetterDelivery))

View File

@ -77,9 +77,9 @@ EvtScript N(EVS_ParadePhase_Boos) = {
EVT_END_LOOP
EVT_WAIT(10)
EVT_CALL(N(SetUnusedAlpha), 255)
EVT_CALL(func_802CFD30, NPC_Boo1, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo2, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo3, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo1, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo2, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo3, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_CALL(EnableNpcShadow, NPC_Boo1, FALSE)
EVT_CALL(EnableNpcShadow, NPC_Boo2, FALSE)
EVT_CALL(EnableNpcShadow, NPC_Boo3, FALSE)
@ -97,9 +97,9 @@ EvtScript N(EVS_ParadePhase_Boos) = {
EVT_CALL(MakeLerp, 0, 255, 30, EASING_LINEAR)
EVT_LOOP(30)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, NPC_Boo1, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo2, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo3, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo1, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo2, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_Boo3, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(EnableNpcShadow, NPC_Boo1, TRUE)

View File

@ -27,7 +27,7 @@ EvtScript N(EVS_Scene_Epilogue) = {
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_SET_VEC3(LVar0, 230, 0, 350)
EVT_VEC3I_SET(LVar0, 230, 0, 350)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))

View File

@ -246,8 +246,8 @@ EvtScript N(EVS_Exit_Beanstalk) = {
EVT_SET(AF_FLO_RidingBeanstalk, TRUE)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o261, COLLIDER_FLAGS_UPPER_MASK)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o351, COLLIDER_FLAGS_UPPER_MASK)
EVT_SET_VEC3(LVar9, EVT_FLOAT(-59.0), EVT_FLOAT(22.0), EVT_FLOAT(125.0)) // target player pos
EVT_SET_VEC3(LVarC, EVT_FLOAT(-55.0), EVT_FLOAT(24.0), EVT_FLOAT(145.0)) // target partner pos
EVT_VEC3I_SET(LVar9, EVT_FLOAT(-59.0), EVT_FLOAT(22.0), EVT_FLOAT(125.0)) // target player pos
EVT_VEC3I_SET(LVarC, EVT_FLOAT(-55.0), EVT_FLOAT(24.0), EVT_FLOAT(145.0)) // target partner pos
EVT_CALL(PlayerMoveTo, LVar9, LVarB, 8)
EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(0.0))
EVT_CALL(NpcJump0, NPC_PARTNER, LVarC, LVarD, LVarE, 5)

View File

@ -310,9 +310,9 @@ EvtScript N(EVS_HuffNPuff_Defeat_Flashing) = {
EVT_CALL(MakeLerp, 0, 255, 10, EASING_QUADRATIC_OUT)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_01, 9, LVar0, LVar0, LVar0, 0)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_02, 9, LVar0, LVar0, LVar0, 0)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_03, 9, LVar0, LVar0, LVar0, 0)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_01, FOLD_TYPE_9, LVar0, LVar0, LVar0, 0)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_02, FOLD_TYPE_9, LVar0, LVar0, LVar0, 0)
EVT_CALL(func_802CFD30, NPC_HuffNPuff_03, FOLD_TYPE_9, LVar0, LVar0, LVar0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP

View File

@ -48,18 +48,18 @@ EvtScript N(EVS_Scene_TutankoopaAppears) = {
EVT_WAIT(30)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
EVT_END_THREAD
EVT_CALL(func_802CFD30, 1, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_CALL(SetNpcPos, NPC_Tutankoopa_02, 410, -905, 410)
EVT_CALL(SetNpcAnimation, NPC_Tutankoopa_02, ANIM_Tutankoopa_Anim10)
EVT_CALL(MakeLerp, 0, 255, 100, EASING_QUADRATIC_IN)
EVT_LABEL(2)
EVT_CALL(UpdateLerp)
EVT_CALL(func_802CFD30, 1, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(2)
EVT_END_IF
EVT_CALL(func_802CFD30, 1, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 1, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_WAIT(30)
EVT_SET(LVar0, 255)
EVT_LOOP(60)
@ -106,17 +106,17 @@ EvtScript N(EVS_Scene_TutankoopaAppears) = {
EVT_WAIT(59)
EVT_CALL(PlaySoundAtNpc, NPC_Tutankoopa_01, SOUND_3EF, 0)
EVT_END_THREAD
EVT_CALL(func_802CFD30, 0, 7, 255, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, 255, 0, 0, 0)
EVT_CALL(func_802CFE2C, 0, 0x00000800)
EVT_CALL(func_802CFD30, 0, 5, 14, 2, 1, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_5, 14, 2, 1, 0)
EVT_WAIT(39)
EVT_CALL(func_802CFE2C, 0, 0x00000800)
EVT_CALL(func_802CFD30, 0, 5, 13, 2, 1, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_5, 13, 2, 1, 0)
EVT_WAIT(39)
EVT_CALL(func_802CFE2C, 0, 0x00000800)
EVT_CALL(func_802CFD30, 0, 5, 12, 2, 1, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_5, 12, 2, 1, 0)
EVT_WAIT(55)
EVT_CALL(func_802CFD30, 0, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(SetNpcPos, NPC_Tutankoopa_02, 457, -1300, 316)
EVT_WAIT(10)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 438, -800, 332)

View File

@ -263,7 +263,7 @@ EvtScript N(EVS_UpdatePassengerPos) = {
EVT_ELSE
EVT_ADD(LVar0, -335)
EVT_END_IF
EVT_SET_VEC3(LVar3, LVar0, LVar1, LVar2)
EVT_VEC3I_VSET(LVar3, LVar0)
EVT_IF_EQ(MF_TrainReverseDir, FALSE)
EVT_ADD(LVar3, -57)
EVT_ELSE

View File

@ -21,6 +21,7 @@ enum {
};
enum {
AF_KMR_04 = AreaFlag(4),
AF_KMR_06 = AreaFlag(6),
AF_KMR_07 = AreaFlag(7),
AF_KMR_08 = AreaFlag(8),
@ -47,6 +48,7 @@ extern MapSettings kmr_24_settings;
extern MapSettings kmr_30_settings;
s32 kmr_21_map_init(void);
s32 kmr_22_map_init(void);
s32 kmr_23_map_init(void);
s32 kmr_24_map_init(void);

View File

@ -181,8 +181,8 @@ ApiStatus func_8024280C_8B287C(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE2;
}
#define UNK_NPC_POS_FUNC_NUM 7
#include "world/common/todo/UnkNpcPosFunc.inc.c"
#define KAMMY_NPC 7
#include "world/common/util/GetKammyBroomEmitterPos.inc.c"
#include "world/common/todo/SyncStatusMenu.inc.c"

View File

@ -89,10 +89,10 @@ EvtScript N(EVS_NpcIdle_Goomba_Ambush) = {
EVT_END_IF
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_F8, 0)
EVT_CALL(func_802CFE2C, NPC_SELF, 0x00002000)
EVT_CALL(func_802CFD30, NPC_SELF, 5, 6, 1, 1, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_5, 6, 1, 1, 0)
EVT_WAIT(15)
EVT_CALL(func_802CFE2C, NPC_SELF, 0x00002000)
EVT_CALL(func_802CFD30, NPC_SELF, 3, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_3, 0, 0, 0, 0)
EVT_THREAD
EVT_WAIT(2)
EVT_SETF(LVar0, EVT_FLOAT(0.0))
@ -107,7 +107,7 @@ EvtScript N(EVS_NpcIdle_Goomba_Ambush) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, TRUE)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(0.6))
EVT_CALL(NpcJump0, NPC_SELF, -35, 0, 25, 23)
EVT_CALL(func_802CFD30, NPC_SELF, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(InterpNpcYaw, NPC_SELF, 90, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_NO_AI, TRUE)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_40, FALSE)

View File

@ -1,15 +0,0 @@
#include "kmr_11.h"
static char* N(exit_str_0) = "kmr_24";
static char* N(exit_str_1) = "kmr_12";
static char* N(exit_str_2) = "kmr_10";
static char* N(exit_str_3) = "";
#include "common/foliage.inc.c"
#include "common/UnkFogFunc.inc.c"
ApiStatus func_8024027C_8DA37C(Evt* script, s32 isInitialCall) {
set_map_change_fade_rate(10);
return ApiStatus_DONE2;
}

View File

@ -1,24 +0,0 @@
#include "kmr_11.h"
#include "effects.h"
ApiStatus func_802402A0_8DA3A0(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
f32 temp_f24 = evt_get_float_variable(script, *args++);
f32 temp_f22 = evt_get_float_variable(script, *args++);
f32 temp_f20 = evt_get_float_variable(script, *args++);
s32 t4 = evt_get_variable(script, *args++);
fx_lens_flare(0, temp_f24, temp_f22, temp_f20, t4);
return ApiStatus_DONE2;
}
ApiStatus func_80240344_8DA444(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
gCameras[CAM_DEFAULT].vfov = evt_get_float_variable(script, *args++);
return ApiStatus_DONE2;
}
#include "world/common/enemy/ai/StationaryAI.inc.c"
#define UNK_NPC_POS_FUNC_NUM 4
#include "world/common/todo/UnkNpcPosFunc.inc.c"

View File

@ -1,11 +0,0 @@
#include "kmr_11.h"
ApiStatus func_80240EC0_8DAFC0(Evt* script, s32 isInitialCall) {
Entity* entity = get_entity_by_index(script->varTable[10]);
entity->position.x = script->varTable[0];
entity->position.y = script->varTable[1];
entity->position.z = script->varTable[2];
return ApiStatus_DONE2;
}

View File

@ -1,6 +0,0 @@
#include "kmr_11.h"
#define NAMESPACE dup_kmr_11
#include "common/foliage.inc.c"
#define NAMESPACE kmr_11

View File

@ -2,9 +2,59 @@
/// @brief Goomba Region - Goomba King's Castle
#include "common.h"
#include "../kmr.h"
#include "message_ids.h"
#include "map.h"
#include "../kmr.h"
#include "mapfs/kmr_11_shape.h"
#include "mapfs/kmr_11_hit.h"
#include "sprite/npc/GoombaKing.h"
#include "sprite/npc/WorldGoombario.h"
#include "sprite/npc/GoombaBros.h"
#include "sprite/npc/WorldKammy.h"
#include "animation_script.h"
enum {
NPC_BlueGoombaBro = 0,
NPC_RedGoombaBro = 1,
NPC_GoombaKing = 2,
NPC_Kammy = 4,
};
enum {
MV_SwitchEntityID = MapVar(0),
};
enum {
MF_SpawnFlag_StarPiece = MapFlag(10),
};
#define NAMESPACE kmr_11
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_SetupFoliage);
extern EvtScript N(EVS_Interact_SwitchBush);
extern EvtScript N(EVS_Scene_MeetGoombaKing);
extern EvtScript N(EVS_Scene_SelfDestruct);
extern EvtScript N(EVS_PlayFortressAnimation);
extern EvtScript N(EVS_PlayBridgeAnimation);
extern EvtScript N(EVS_Scene_KammyWatching);
extern EvtScript N(EVS_BadExit_kmr_24_0);
extern NpcGroupList N(DefaultNPCs);
extern StaticAnimatorNode* N(AnimSkeleton_Fortress)[];
extern StaticAnimatorNode* N(AnimSkeleton_Bridge)[];
extern AnimScript N(AnimScript_Fortress);
extern AnimScript N(AnimScript_Bridge);
API_CALLABLE(N(SetCameraVFov));
API_CALLABLE(N(SetupFog));
ApiStatus InitAnimatedModels(Evt* script, s32 isInitialCall);
ApiStatus SetAnimatedModelRenderMode(Evt* script, s32 isInitialCall);
ApiStatus DeleteAnimatedModel(Evt* script, s32 isInitialCall);

View File

@ -0,0 +1,14 @@
#include "kmr_11.h"
EntryList N(Entrances) = {
[kmr_11_ENTRY_0] { -925.0, 0.0, -53.0, 90.0 },
[kmr_11_ENTRY_1] { 770.0, 0.0, -525.0, 225.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_kmr_11 },
};

View File

@ -0,0 +1,265 @@
#include "kmr_11.h"
StaticAnimatorNode N(D_8024EEF0_8E8FF0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy32),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024EF1C_8E901C) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024EEF0_8E8FF0),
};
StaticAnimatorNode N(D_8024EF48_8E9048) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy31),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024EF74_8E9074) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024EF48_8E9048),
.sibling = &N(D_8024EF1C_8E901C),
};
StaticAnimatorNode N(D_8024EFA0_8E90A0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy30),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024EFCC_8E90CC) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024EFA0_8E90A0),
.sibling = &N(D_8024EF74_8E9074),
};
StaticAnimatorNode N(D_8024EFF8_8E90F8) = {
.pos = { 140.0f, -10.0f, -360.0f },
.rot = { AS_F(0.0f), AS_F(-180.0f), AS_F(0.0f) },
.child = &N(D_8024EFCC_8E90CC),
};
StaticAnimatorNode N(D_8024F024_8E9124) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F050_8E9150) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024F024_8E9124),
};
StaticAnimatorNode N(D_8024F07C_8E917C) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F0A8_8E91A8) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024F07C_8E917C),
.sibling = &N(D_8024F050_8E9150),
};
StaticAnimatorNode N(D_8024F0D4_8E91D4) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F100_8E9200) = {
.pos = { -159.0f, 0.0f, -126.0f },
.child = &N(D_8024F0D4_8E91D4),
.sibling = &N(D_8024F0A8_8E91A8),
};
StaticAnimatorNode N(D_8024F12C_8E922C) = {
.pos = { 0.0f, -10.0f, 0.0f },
.child = &N(D_8024F100_8E9200),
.sibling = &N(D_8024EFF8_8E90F8),
};
StaticAnimatorNode N(D_8024F158_8E9258) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_8024F12C_8E922C),
};
StaticAnimatorNode N(D_8024F184_8E9284) = {
.pos = { 0.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_dummy),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F1B0_8E92B0) = {
.pos = { 0.0f, 110.0f, 0.0f },
.child = &N(D_8024F184_8E9284),
};
StaticAnimatorNode N(D_8024F1DC_8E92DC) = {
.pos = { -237.0f, 109.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(-179.9945f) },
.modelID = AS_MODEL_ID(MODEL_b1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F208_8E9308) = {
.pos = { 312.0f, -169.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_b2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F234_8E9334) = {
.pos = { -237.0f, 169.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(-179.9945f) },
.modelID = AS_MODEL_ID(MODEL_b3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F260_8E9360) = {
.pos = { 312.0f, -229.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_b4),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F28C_8E938C) = {
.pos = { -237.0f, 229.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(-179.9945f) },
.modelID = AS_MODEL_ID(MODEL_b5),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F2B8_8E93B8) = {
.pos = { 312.0f, -289.0f, 155.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_b6),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024F2E4_8E93E4) = {
.pos = { 75.0f, 0.0f, 0.0f },
.sibling = &N(D_8024F2B8_8E93B8),
};
StaticAnimatorNode N(D_8024F310_8E9410) = {
.pos = { 30.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F2E4_8E93E4),
};
StaticAnimatorNode N(D_8024F33C_8E943C) = {
.pos = { 30.0f, 0.0f, 0.0f },
.child = &N(D_8024F310_8E9410),
};
StaticAnimatorNode N(D_8024F368_8E9468) = {
.pos = { 75.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F33C_8E943C),
.sibling = &N(D_8024F28C_8E938C),
};
StaticAnimatorNode N(D_8024F394_8E9494) = {
.pos = { 75.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(179.9945f) },
.child = &N(D_8024F368_8E9468),
.sibling = &N(D_8024F260_8E9360),
};
StaticAnimatorNode N(D_8024F3C0_8E94C0) = {
.pos = { 30.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F394_8E9494),
};
StaticAnimatorNode N(D_8024F3EC_8E94EC) = {
.pos = { 30.0f, 0.0f, 0.0f },
.child = &N(D_8024F3C0_8E94C0),
};
StaticAnimatorNode N(D_8024F418_8E9518) = {
.pos = { 75.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F3EC_8E94EC),
.sibling = &N(D_8024F234_8E9334),
};
StaticAnimatorNode N(D_8024F444_8E9544) = {
.pos = { 75.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(179.9945f) },
.child = &N(D_8024F418_8E9518),
.sibling = &N(D_8024F208_8E9308),
};
StaticAnimatorNode N(D_8024F470_8E9570) = {
.pos = { 30.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F444_8E9544),
};
StaticAnimatorNode N(D_8024F49C_8E959C) = {
.pos = { 30.0f, 0.0f, 0.0f },
.child = &N(D_8024F470_8E9570),
};
StaticAnimatorNode N(D_8024F4C8_8E95C8) = {
.pos = { 75.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024F49C_8E959C),
.sibling = &N(D_8024F1DC_8E92DC),
};
StaticAnimatorNode N(D_8024F4F4_8E95F4) = {
.pos = { 0.0f, 0.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(179.9945f) },
.child = &N(D_8024F4C8_8E95C8),
};
StaticAnimatorNode N(D_8024F520_8E9620) = {
.pos = { 0.0f, 110.0f, 0.0f },
.child = &N(D_8024F4F4_8E95F4),
.sibling = &N(D_8024F1B0_8E92B0),
};
StaticAnimatorNode N(D_8024F54C_8E964C) = {
.pos = { -266.0f, 0.0f, -99.0f },
.rot = { AS_F(0.0f), AS_F(12.695089f), AS_F(0.0f) },
.child = &N(D_8024F520_8E9620),
.sibling = &N(D_8024F158_8E9258),
};
StaticAnimatorNode N(D_8024F578_8E9678) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_8024F54C_8E964C),
};
StaticAnimatorNode* N(AnimSkeleton_Bridge)[] = {
&N(D_8024F578_8E9678), &N(D_8024F54C_8E964C), &N(D_8024F520_8E9620), &N(D_8024F4F4_8E95F4),
&N(D_8024F4C8_8E95C8), &N(D_8024F49C_8E959C), &N(D_8024F470_8E9570), &N(D_8024F444_8E9544),
&N(D_8024F418_8E9518), &N(D_8024F3EC_8E94EC), &N(D_8024F3C0_8E94C0), &N(D_8024F394_8E9494),
&N(D_8024F368_8E9468), &N(D_8024F33C_8E943C), &N(D_8024F310_8E9410), &N(D_8024F2E4_8E93E4),
&N(D_8024F2B8_8E93B8), &N(D_8024F28C_8E938C), &N(D_8024F260_8E9360), &N(D_8024F234_8E9334),
&N(D_8024F208_8E9308), &N(D_8024F1DC_8E92DC), &N(D_8024F1B0_8E92B0), &N(D_8024F184_8E9284),
&N(D_8024F158_8E9258), &N(D_8024F12C_8E922C), &N(D_8024F100_8E9200), &N(D_8024F0D4_8E91D4),
&N(D_8024F0A8_8E91A8), &N(D_8024F07C_8E917C), &N(D_8024F050_8E9150), &N(D_8024F024_8E9124),
&N(D_8024EFF8_8E90F8), &N(D_8024EFCC_8E90CC), &N(D_8024EFA0_8E90A0), &N(D_8024EF74_8E9074),
&N(D_8024EF48_8E9048), &N(D_8024EF1C_8E901C), &N(D_8024EEF0_8E8FF0), NULL
};

View File

@ -0,0 +1,763 @@
#include "kmr_11.h"
AnimScript N(AnimScript_Bridge) = {
AS_SET_ROTATION, 1, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 1, 0, 0, 0,
AS_SET_SCALE, 1, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 2, AS_F(0.0), AS_F(12.695), AS_F(0.0),
AS_SET_POS, 2, -266, 0, -99,
AS_SET_SCALE, 2, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 3, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 3, 0, 110, 0,
AS_SET_SCALE, 3, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(179.995),
AS_SET_POS, 4, 0, 0, 0,
AS_SET_SCALE, 4, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 5, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 5, 75, 0, 0,
AS_SET_SCALE, 5, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 6, 30, 0, 0,
AS_SET_SCALE, 6, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 7, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 7, 30, 0, 0,
AS_SET_SCALE, 7, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(179.995),
AS_SET_POS, 8, 75, 0, 0,
AS_SET_SCALE, 8, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 9, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 9, 75, 0, 0,
AS_SET_SCALE, 9, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 10, 30, 0, 0,
AS_SET_SCALE, 10, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 11, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 11, 30, 0, 0,
AS_SET_SCALE, 11, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(179.995),
AS_SET_POS, 12, 75, 0, 0,
AS_SET_SCALE, 12, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 13, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 13, 75, 0, 0,
AS_SET_SCALE, 13, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 14, 30, 0, 0,
AS_SET_SCALE, 14, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 15, AS_F(0.0), AS_F(0.0), AS_F(-89.995),
AS_SET_POS, 15, 30, 0, 0,
AS_SET_SCALE, 15, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 16, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 16, 75, 0, 0,
AS_SET_SCALE, 16, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 17, AS_F(0.0), AS_F(-12.695), AS_F(0.0),
AS_SET_POS, 17, 312, -289, 155,
AS_SET_SCALE, 17, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 18, AS_F(0.0), AS_F(-12.695), AS_F(-179.995),
AS_SET_POS, 18, -237, 229, 155,
AS_SET_SCALE, 18, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 19, AS_F(0.0), AS_F(-12.695), AS_F(0.0),
AS_SET_POS, 19, 312, -229, 155,
AS_SET_SCALE, 19, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 20, AS_F(0.0), AS_F(-12.695), AS_F(-179.995),
AS_SET_POS, 20, -237, 169, 155,
AS_SET_SCALE, 20, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 21, AS_F(0.0), AS_F(-12.695), AS_F(0.0),
AS_SET_POS, 21, 312, -169, 155,
AS_SET_SCALE, 21, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 22, AS_F(0.0), AS_F(-12.695), AS_F(-179.995),
AS_SET_POS, 22, -237, 109, 155,
AS_SET_SCALE, 22, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 23, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 23, 0, 110, 0,
AS_SET_SCALE, 23, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 24, AS_F(0.0), AS_F(-12.695), AS_F(0.0),
AS_SET_POS, 24, 0, 0, 0,
AS_SET_SCALE, 24, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 25, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 25, 0, 0, 0,
AS_SET_SCALE, 25, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 26, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 26, 0, -10, 0,
AS_SET_SCALE, 26, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 27, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 27, -159, 0, -126,
AS_SET_SCALE, 27, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 28, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 28, 0, 0, 0,
AS_SET_SCALE, 28, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 29, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 29, -159, 0, -126,
AS_SET_SCALE, 29, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 30, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 30, 0, 0, 0,
AS_SET_SCALE, 30, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 31, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 31, -159, 0, -126,
AS_SET_SCALE, 31, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 32, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 32, 0, 0, 0,
AS_SET_SCALE, 32, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 33, AS_F(0.0), AS_F(-180.0), AS_F(0.0),
AS_SET_POS, 33, 140, -10, -360,
AS_SET_SCALE, 33, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 34, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 34, -159, 0, -126,
AS_SET_SCALE, 34, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 35, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 35, 0, 0, 0,
AS_SET_SCALE, 35, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 36, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 36, -159, 0, -126,
AS_SET_SCALE, 36, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 37, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 37, 0, 0, 0,
AS_SET_SCALE, 37, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 38, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 38, -159, 0, -126,
AS_SET_SCALE, 38, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_SET_ROTATION, 39, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 39, 0, 0, 0,
AS_SET_SCALE, 39, AS_F(1.0), AS_F(1.0), AS_F(1.0),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(179.975),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(0.09),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(179.89),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(0.095),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(179.985),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(0.1),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(179.82),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(0.295),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(179.675),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(0.31),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(179.85),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(0.32),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(179.505),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(0.65),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(179.315),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(0.665),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(179.56),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(0.675),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(179.03),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(1.175),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(178.775),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(1.2),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(179.085),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(1.215),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(178.37),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(1.91),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(178.035),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(1.94),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(178.385),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(1.955),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(177.51),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(2.89),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(177.05),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(2.915),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(177.44),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(2.94),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(176.44),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(4.135),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(175.8),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(4.17),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(176.215),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(4.19),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(175.15),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(5.69),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(174.245),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(5.725),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(174.675),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(5.745),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(173.615),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(7.575),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(172.355),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(7.61),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(172.805),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(7.63),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(171.825),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(9.83),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(170.1),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(9.86),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(170.555),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(9.885),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(169.77),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(12.475),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(167.455),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(12.51),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(167.905),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(12.53),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(167.425),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(15.55),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(164.38),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(15.585),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(164.815),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(15.605),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(164.785),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(19.09),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(160.845),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(19.115),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(161.27),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(19.145),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(161.835),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(23.115),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(156.825),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(23.145),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(157.225),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(23.165),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(158.55),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(27.665),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(152.275),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(27.69),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(152.655),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(27.715),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(154.925),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(32.77),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(147.17),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(32.795),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(147.53),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(32.815),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(150.94),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(38.46),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(141.485),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(38.485),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(141.81),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(38.505),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(146.59),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(44.765),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(135.185),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(44.785),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(135.475),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(44.805),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(141.85),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(51.72),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(128.235),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(51.74),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(128.495),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(51.755),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(136.705),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(59.355),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(120.605),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(59.37),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(120.83),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(59.385),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(131.15),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(67.7),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(112.265),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(67.715),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(112.46),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(67.725),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(125.16),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(76.79),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(103.18),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(76.8),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(103.34),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(76.815),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(118.725),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(86.65),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(93.325),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(86.665),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(93.455),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(86.67),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(111.835),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(97.32),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(82.66),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(97.325),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(82.755),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(97.33),
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(104.465),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(108.825),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(71.16),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(108.83),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(71.23),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(108.835),
AS_WAIT, 1,
AS_SET_POS, 3, 3, 128, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(96.605),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(121.2),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(58.79),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(121.2),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(58.84),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(121.205),
AS_SET_POS, 23, 3, 128, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 6, 145, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(88.245),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(134.47),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(45.525),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(134.47),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(45.55),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(134.47),
AS_SET_POS, 23, 6, 145, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 10, 159, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(79.37),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(148.67),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(31.315),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(148.67),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(31.335),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(148.67),
AS_SET_POS, 23, 10, 159, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 13, 170, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(69.96),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(163.84),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(16.155),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(163.84),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(16.16),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(163.84),
AS_SET_POS, 23, 13, 170, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 17, 180, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(60.0),
AS_SET_ROTATION, 6, AS_F(0.0), AS_F(0.0), AS_F(-180.0),
AS_SET_ROTATION, 8, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_ROTATION, 10, AS_F(0.0), AS_F(0.0), AS_F(-180.0),
AS_SET_ROTATION, 12, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_ROTATION, 14, AS_F(0.0), AS_F(0.0), AS_F(-180.0),
AS_SET_POS, 23, 17, 180, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 20, 187, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(58.41),
AS_SET_POS, 23, 20, 187, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 24, 193, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(56.84),
AS_SET_POS, 23, 24, 193, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 27, 197, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(55.29),
AS_SET_POS, 23, 27, 197, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 30, 199, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(53.75),
AS_SET_POS, 23, 30, 199, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 34, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(52.235),
AS_SET_POS, 23, 34, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 37, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(50.735),
AS_SET_POS, 23, 37, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 41, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(49.26),
AS_SET_POS, 23, 41, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 44, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(47.79),
AS_SET_POS, 23, 44, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 48, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(46.345),
AS_SET_POS, 23, 48, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 51, 200, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(44.92),
AS_SET_POS, 23, 51, 200, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 54, 199, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(43.515),
AS_SET_POS, 23, 54, 199, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 58, 197, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(42.115),
AS_SET_POS, 23, 58, 197, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 61, 195, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(40.745),
AS_SET_POS, 23, 61, 195, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 65, 191, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(39.385),
AS_SET_POS, 23, 65, 191, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 68, 186, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(38.04),
AS_SET_POS, 23, 68, 186, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 72, 180, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(36.725),
AS_SET_POS, 23, 72, 180, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 75, 173, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(35.415),
AS_SET_POS, 23, 75, 173, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 78, 165, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(34.125),
AS_SET_POS, 23, 78, 165, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 82, 156, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(32.855),
AS_SET_POS, 23, 82, 156, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 85, 146, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(31.605),
AS_SET_POS, 23, 85, 146, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 89, 136, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(30.36),
AS_SET_POS, 23, 89, 136, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 92, 124, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(29.14),
AS_SET_POS, 23, 92, 124, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 95, 111, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(27.94),
AS_SET_POS, 23, 95, 111, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 99, 98, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(26.76),
AS_SET_POS, 23, 99, 98, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 102, 84, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(25.59),
AS_SET_POS, 23, 102, 84, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 106, 68, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(24.435),
AS_SET_POS, 23, 106, 68, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 109, 52, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(23.305),
AS_SET_POS, 23, 109, 52, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 113, 36, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(22.18),
AS_SET_POS, 23, 113, 36, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 116, 18, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(21.085),
AS_SET_POS, 23, 116, 18, 0,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 0, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(19.995),
AS_SET_POS, 23, 120, 0, 0,
AS_SET_POS, 27, -149, 0, -126,
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(13.25),
AS_SET_POS, 27, -148, 0, -126,
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(6.535),
AS_SET_POS, 27, -145, -1, -126,
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 27, -141, -3, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 10, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(1.315),
AS_SET_POS, 23, 120, 10, 0,
AS_SET_POS, 27, -137, -5, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 17, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(2.18),
AS_SET_POS, 23, 120, 17, 0,
AS_SET_POS, 27, -133, -9, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 20, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(2.5),
AS_SET_POS, 23, 120, 20, 0,
AS_SET_POS, 27, -131, -13, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 17, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(2.39),
AS_SET_POS, 23, 120, 17, 0,
AS_SET_POS, 27, -130, -18, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 10, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(2.01),
AS_SET_POS, 23, 120, 10, 0,
AS_SET_POS, 27, -130, -23, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 0, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(1.24),
AS_SET_POS, 23, 120, 0, 0,
AS_SET_POS, 27, -131, -29, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 3, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 23, 120, 3, 0,
AS_SET_POS, 27, -133, -36, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 5, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(0.665),
AS_SET_POS, 23, 120, 5, 0,
AS_SET_POS, 27, -136, -43, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 4, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(1.0),
AS_SET_POS, 23, 120, 4, 0,
AS_SET_POS, 27, -139, -51, -126,
AS_WAIT, 1,
AS_SET_POS, 3, 120, 0, 0,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(0.675),
AS_SET_POS, 23, 120, 0, 0,
AS_SET_POS, 27, -142, -60, -126,
AS_WAIT, 1,
AS_SET_ROTATION, 4, AS_F(0.0), AS_F(0.0), AS_F(0.0),
AS_SET_POS, 27, -145, -70, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -149, -80, -126,
AS_SET_POS, 29, -149, 0, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -148, -90, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -147, -101, -126,
AS_SET_POS, 29, -148, -1, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -146, -113, -126,
AS_SET_POS, 29, -148, -3, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -146, -126, -126,
AS_SET_POS, 29, -147, -5, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -145, -139, -126,
AS_SET_POS, 29, -147, -9, -126,
AS_SET_POS, 31, -149, 0, -126,
AS_SET_POS, 34, -149, 0, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -145, -152, -126,
AS_SET_POS, 29, -146, -13, -126,
AS_SET_POS, 31, -148, 0, -126,
AS_SET_POS, 34, -148, 0, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -145, -167, -126,
AS_SET_POS, 29, -145, -18, -126,
AS_SET_POS, 31, -145, -1, -126,
AS_SET_POS, 34, -145, -1, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -145, -181, -126,
AS_SET_POS, 29, -144, -23, -126,
AS_SET_POS, 31, -141, -3, -126,
AS_SET_POS, 34, -141, -3, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -145, -197, -126,
AS_SET_POS, 29, -143, -29, -126,
AS_SET_POS, 31, -137, -5, -126,
AS_SET_POS, 34, -137, -5, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -146, -213, -126,
AS_SET_POS, 29, -142, -36, -126,
AS_SET_POS, 31, -133, -9, -126,
AS_SET_POS, 34, -133, -9, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -147, -229, -126,
AS_SET_POS, 29, -141, -43, -126,
AS_SET_POS, 31, -130, -13, -126,
AS_SET_POS, 34, -131, -13, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -147, -246, -126,
AS_SET_POS, 29, -139, -51, -126,
AS_SET_POS, 31, -130, -18, -126,
AS_SET_POS, 34, -130, -18, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -148, -263, -126,
AS_SET_POS, 29, -138, -60, -126,
AS_SET_POS, 31, -130, -23, -126,
AS_SET_POS, 34, -130, -23, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -148, -281, -126,
AS_SET_POS, 29, -137, -70, -126,
AS_SET_POS, 31, -131, -29, -126,
AS_SET_POS, 34, -131, -29, -126,
AS_WAIT, 1,
AS_SET_POS, 27, -149, -300, -126,
AS_SET_POS, 29, -135, -80, -126,
AS_SET_POS, 31, -132, -36, -126,
AS_SET_POS, 34, -133, -36, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -134, -90, -126,
AS_SET_POS, 31, -133, -43, -126,
AS_SET_POS, 34, -136, -43, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -133, -101, -126,
AS_SET_POS, 31, -135, -51, -126,
AS_SET_POS, 34, -139, -51, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -131, -113, -126,
AS_SET_POS, 31, -136, -60, -126,
AS_SET_POS, 34, -142, -60, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -130, -126, -126,
AS_SET_POS, 31, -138, -70, -126,
AS_SET_POS, 34, -145, -70, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -129, -139, -126,
AS_SET_POS, 31, -140, -80, -126,
AS_SET_POS, 34, -149, -80, -126,
AS_SET_POS, 38, -149, 0, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -128, -152, -126,
AS_SET_POS, 31, -142, -90, -126,
AS_SET_POS, 34, -148, -90, -126,
AS_SET_POS, 38, -148, 0, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -127, -167, -126,
AS_SET_POS, 31, -144, -101, -126,
AS_SET_POS, 34, -147, -101, -126,
AS_SET_POS, 38, -145, -1, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -126, -181, -126,
AS_SET_POS, 31, -146, -113, -126,
AS_SET_POS, 34, -146, -113, -126,
AS_SET_POS, 38, -141, -3, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -125, -197, -126,
AS_SET_POS, 31, -148, -126, -126,
AS_SET_POS, 34, -146, -126, -126,
AS_SET_POS, 38, -137, -5, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -124, -213, -126,
AS_SET_POS, 31, -150, -139, -126,
AS_SET_POS, 34, -145, -139, -126,
AS_SET_POS, 38, -133, -9, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -123, -229, -126,
AS_SET_POS, 31, -152, -152, -126,
AS_SET_POS, 34, -145, -152, -126,
AS_SET_POS, 38, -130, -13, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -123, -246, -126,
AS_SET_POS, 31, -154, -167, -126,
AS_SET_POS, 34, -145, -167, -126,
AS_SET_POS, 38, -130, -18, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -122, -263, -126,
AS_SET_POS, 31, -155, -181, -126,
AS_SET_POS, 34, -145, -181, -126,
AS_SET_POS, 38, -130, -23, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -122, -281, -126,
AS_SET_POS, 31, -157, -197, -126,
AS_SET_POS, 34, -145, -197, -126,
AS_SET_POS, 38, -131, -29, -126,
AS_WAIT, 1,
AS_SET_POS, 29, -122, -300, -126,
AS_SET_POS, 31, -158, -213, -126,
AS_SET_POS, 34, -146, -213, -126,
AS_SET_POS, 38, -132, -36, -126,
AS_WAIT, 1,
AS_SET_POS, 31, -160, -229, -126,
AS_SET_POS, 34, -147, -229, -126,
AS_SET_POS, 38, -133, -43, -126,
AS_WAIT, 1,
AS_SET_POS, 31, -161, -246, -126,
AS_SET_POS, 34, -147, -246, -126,
AS_SET_POS, 38, -135, -51, -126,
AS_WAIT, 1,
AS_SET_POS, 31, -161, -263, -126,
AS_SET_POS, 34, -148, -263, -126,
AS_SET_POS, 38, -136, -60, -126,
AS_WAIT, 1,
AS_SET_POS, 31, -162, -281, -126,
AS_SET_POS, 34, -148, -281, -126,
AS_SET_POS, 38, -138, -70, -126,
AS_WAIT, 1,
AS_SET_POS, 31, -162, -300, -126,
AS_SET_POS, 34, -149, -300, -126,
AS_SET_POS, 36, -149, 0, -126,
AS_SET_POS, 38, -140, -80, -126,
AS_WAIT, 1,
AS_SET_POS, 38, -142, -90, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -148, -1, -126,
AS_SET_POS, 38, -144, -101, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -148, -3, -126,
AS_SET_POS, 38, -146, -113, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -147, -5, -126,
AS_SET_POS, 38, -148, -126, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -147, -9, -126,
AS_SET_POS, 38, -150, -139, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -146, -13, -126,
AS_SET_POS, 38, -152, -152, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -145, -18, -126,
AS_SET_POS, 38, -154, -167, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -144, -23, -126,
AS_SET_POS, 38, -155, -181, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -143, -29, -126,
AS_SET_POS, 38, -157, -197, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -142, -36, -126,
AS_SET_POS, 38, -158, -213, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -141, -43, -126,
AS_SET_POS, 38, -160, -229, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -139, -51, -126,
AS_SET_POS, 38, -161, -246, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -138, -60, -126,
AS_SET_POS, 38, -161, -263, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -137, -70, -126,
AS_SET_POS, 38, -162, -281, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -135, -80, -126,
AS_SET_POS, 38, -162, -300, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -134, -90, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -133, -101, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -131, -113, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -130, -126, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -129, -139, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -128, -152, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -127, -167, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -126, -181, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -125, -197, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -124, -213, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -123, -229, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -123, -246, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -122, -263, -126,
AS_WAIT, 1,
AS_SET_POS, 36, -122, -281, -126,
AS_WAIT, 1,
AS_LOOP,
AS_SET_POS, 36, -122, -300, -126,
AS_WAIT, 1,
AS_END_LOOP,
AS_END,
};

View File

@ -0,0 +1,7 @@
#include "kmr_11.h"
EvtScript N(EVS_SetupMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_PLEASANT_PATH, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,150 @@
#include "kmr_11.h"
#define NAME_SUFFIX _Scripted
#include "common/foliage.inc.c"
#define NAME_SUFFIX
API_CALLABLE(N(SetupFog)) {
set_world_fog_dist(980, 1000);
set_world_fog_color(15, 5, 55, 255);
enable_world_fog();
return ApiStatus_DONE2;
}
API_CALLABLE(N(UseSlowerFadeOnMapChange)) {
set_map_change_fade_rate(10); // 20 is default
return ApiStatus_DONE2;
}
EvtScript N(EVS_PlayFortressAnimation) = {
EVT_CALL(LoadAnimatedModel, MDL_ANIMATOR_1, EVT_PTR(N(AnimSkeleton_Fortress)))
EVT_CALL(PlayModelAnimation, MDL_ANIMATOR_1, EVT_PTR(N(AnimScript_Fortress)))
EVT_CALL(SetAnimatedModelRootPosition, MDL_ANIMATOR_1, 0, 0, 0)
EVT_CALL(SetAnimatedModelRenderMode, MDL_ANIMATOR_1, RENDER_MODE_SURFACE_OPA)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_PlayBridgeAnimation) = {
EVT_CALL(LoadAnimatedModel, MDL_ANIMATOR_0, EVT_PTR(N(AnimSkeleton_Bridge)))
EVT_CALL(PlayModelAnimation, MDL_ANIMATOR_0, EVT_PTR(N(AnimScript_Bridge)))
EVT_CALL(SetAnimatedModelRootPosition, MDL_ANIMATOR_0, 0, 0, 0)
EVT_CALL(SetAnimatedModelRenderMode, MDL_ANIMATOR_0, RENDER_MODE_SURFACE_OPA)
EVT_RETURN
EVT_END
};
//@bug exit to 'Save and Continue?' map is not properly terminated!
EvtScript N(EVS_BadExit_kmr_24_0) = {
EVT_CALL(FadeOutMusic, 0, 1500)
EVT_CALL(GotoMapSpecial, EVT_PTR("kmr_24"), kmr_24_ENTRY_0, TRANSITION_10)
EVT_WAIT(100)
};
EvtScript N(EVS_ExitWalk_kmr_12_1) = {
EVT_SET_GROUP(EVT_GROUP_1B)
EVT_CALL(UseExitHeading, 60, kmr_11_ENTRY_0)
EVT_EXEC(ExitWalk)
EVT_CALL(GotoMap, EVT_PTR("kmr_12"), kmr_12_ENTRY_1)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_ExitWalk_kmr_10_0) = {
EVT_SET_GROUP(EVT_GROUP_1B)
EVT_CALL(UseExitHeading, 60, kmr_11_ENTRY_1)
EVT_EXEC(ExitWalk)
EVT_IF_GE(GB_StoryProgress, STORY_CH0_KAMMY_RETURNED_TO_BOWSER)
EVT_CALL(GotoMap, EVT_PTR("kmr_10"), kmr_10_ENTRY_0)
EVT_WAIT(100)
EVT_RETURN
EVT_ELSE
EVT_WAIT(10)
EVT_EXEC_WAIT(N(EVS_Scene_KammyWatching))
EVT_END_IF
EVT_UNBIND
EVT_RETURN
EVT_END
};
MAP_RODATA_PAD(1,exits)
EvtScript N(EVS_BindExitTriggers) = {
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_kmr_12_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_kmr_10_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiline, 1, 0)
EVT_RETURN
EVT_END
};
FoliageModelList N(SwitchBush_Models) = FOLIAGE_MODEL_LIST(MODEL_kusa4);
FoliageVectorList N(SwitchBush_Effects) = {
.count = 1,
.vectors = {
{ -381.0f, 12.0f, 82.0f },
}
};
SearchBushConfig N(SearchBush_SwitchBush) = {
.bush = &N(SwitchBush_Models),
.vectors = &N(SwitchBush_Effects),
.callback = &N(EVS_Interact_SwitchBush),
};
EvtScript N(EVS_Main) = {
EVT_SET(GB_WorldLocation, LOCATION_GOOMBA_ROAD)
EVT_CALL(SetSpriteShading, SHADING_NONE)
EVT_CALL(N(UseSlowerFadeOnMapChange))
EVT_SETUP_CAMERA_NO_LEAD()
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs)))
EVT_CALL(ClearDefeatedEnemies)
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_IF_LT(GB_StoryProgress, STORY_CH0_KAMMY_RETURNED_TO_BOWSER)
EVT_CALL(N(SetupFog))
EVT_END_IF
EVT_EXEC_WAIT(N(EVS_SetupFoliage))
EVT_CALL(InitAnimatedModels)
EVT_CALL(EnableModel, MODEL_eye_mask, FALSE)
EVT_IF_LT(GB_StoryProgress, STORY_CH0_HIT_GATEHOUSE_SWITCH)
EVT_CALL(EnableModel, MODEL_bb, FALSE)
EVT_ELSE
EVT_CALL(SetGroupEnabled, MODEL_ue, 0)
EVT_CALL(SetGroupEnabled, MODEL_sotokabe, 0)
EVT_CALL(SetGroupEnabled, MODEL_tobira, 0)
EVT_CALL(EnableModel, MODEL_b1, FALSE)
EVT_CALL(EnableModel, MODEL_b2, FALSE)
EVT_CALL(EnableModel, MODEL_b3, FALSE)
EVT_CALL(EnableModel, MODEL_b4, FALSE)
EVT_CALL(EnableModel, MODEL_b5, FALSE)
EVT_CALL(EnableModel, MODEL_b6, FALSE)
EVT_END_IF
EVT_IF_LT(GB_StoryProgress, STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_IF_EQ(GF_KMR11_GoombaBrosFledToCastle, FALSE)
EVT_EXEC(N(EVS_BindExitTriggers))
EVT_CALL(SetMusicTrack, 0, SONG_GOOMBA_BROS_RETREAT, 1, 8)
EVT_EXEC_WAIT(N(EVS_Scene_MeetGoombaKing))
EVT_SET(GF_KMR11_GoombaBrosFledToCastle, TRUE)
EVT_ELSE
EVT_EXEC(N(EVS_SetupMusic))
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_WAIT(1)
EVT_END_IF
EVT_ELSE
EVT_EXEC(N(EVS_SetupMusic))
EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers)))
EVT_EXEC(EnterWalk)
EVT_WAIT(1)
EVT_END_IF
EVT_SET(LVar0, EVT_PTR(N(SearchBush_SwitchBush)))
EVT_BIND_TRIGGER(EVT_PTR(N(searchBush_Scripted)), TRIGGER_WALL_PRESS_A, COLLIDER_kusa4, 1, 0)
EVT_CALL(SetGroupEnabled, MODEL_event_cam, 0)
EVT_CALL(TranslateGroup, MODEL_g172, NPC_DISPOSE_LOCATION)
EVT_CALL(TranslateGroup, MODEL_g173, NPC_DISPOSE_LOCATION)
EVT_IF_GE(GB_StoryProgress, STORY_CH0_HIT_GATEHOUSE_SWITCH)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_tt, COLLIDER_FLAGS_UPPER_MASK)
EVT_END_IF
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,465 @@
#include "kmr_11.h"
#include "effects.h"
API_CALLABLE(N(MakeLensFlare)) {
Bytecode* args = script->ptrReadPos;
f32 x = evt_get_float_variable(script, *args++);
f32 y = evt_get_float_variable(script, *args++);
f32 z = evt_get_float_variable(script, *args++);
s32 duration = evt_get_variable(script, *args++);
fx_lens_flare(0, x, y, z, duration);
return ApiStatus_DONE2;
}
API_CALLABLE(N(SetCameraVFov)) {
Bytecode* args = script->ptrReadPos;
gCameras[CAM_DEFAULT].vfov = evt_get_float_variable(script, *args++);
return ApiStatus_DONE2;
}
EvtScript N(EVS_GoombaKingBlastoff) = {
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(MakeLerp, 100, 10, 150, EASING_LINEAR)
EVT_LABEL(0)
EVT_CALL(UpdateLerp)
EVT_MULF(LVar0, EVT_FLOAT(0.01))
EVT_CALL(SetNpcScale, NPC_GoombaKing, LVar0, LVar0, LVar0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(0)
EVT_END_IF
EVT_END_THREAD
EVT_CALL(SetNpcJumpscale, NPC_GoombaKing, EVT_FLOAT(0.3))
EVT_CALL(NpcJump0, NPC_GoombaKing, -1600, 1000, -1600, 150)
EVT_CALL(PlaySoundAt, SOUND_55, 0, -1600, 1000, -1600)
EVT_CALL(N(MakeLensFlare), -1600, 1000, -1600, 40)
EVT_CALL(SetNpcPos, NPC_GoombaKing, 0, -1000, 0)
EVT_CALL(RemoveNpc, NPC_GoombaKing)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FocusCam_FortressExterior) = {
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE)
EVT_CALL(SetCamPitch, CAM_DEFAULT, -7, 0)
EVT_CALL(SetCamPosA, CAM_DEFAULT, -1208, 881)
EVT_CALL(SetCamPosB, CAM_DEFAULT, -524, -89)
EVT_CALL(SetCamPosC, CAM_DEFAULT, 0, 110)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 500)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FocusCam_BesidePlayer) = {
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE)
EVT_CALL(SetCamPitch, CAM_DEFAULT, -15, 25)
EVT_CALL(SetCamPosA, CAM_DEFAULT, -1208, 881)
EVT_CALL(SetCamPosB, CAM_DEFAULT, -579, -89)
EVT_CALL(SetCamPosC, CAM_DEFAULT, 0, 110)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 200)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FocusCam_Battlement) = {
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE)
EVT_CALL(SetCamPitch, CAM_DEFAULT, -7, 2)
EVT_CALL(SetCamPosA, CAM_DEFAULT, -1681, 511)
EVT_CALL(SetCamPosB, CAM_DEFAULT, -430, -92)
EVT_CALL(SetCamPosC, CAM_DEFAULT, 0, 200)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 250)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_RandomQuaking) = {
EVT_CALL(PlaySound, SOUND_A5)
EVT_LABEL(0)
EVT_CALL(RandInt, 10, LVar0)
EVT_ADD(LVar0, 5)
EVT_MULF(LVar0, EVT_FLOAT(0.1))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, LVar0)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust1) = {
EVT_PLAY_EFFECT(EFFECT_DUST, 0, -273, 345, -44, 70)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust2) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -253, 8, 118, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -253, 18, 138, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -253, 18, 98, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -253, 28, 118, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust3) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 1, -346, 147, -21, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust4) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 1, -336, 147, -21, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust5) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 1, -249, 147, -64, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust6) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 1, -239, 147, -64, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust7) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -158, -10, -175, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -158, 0, -155, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -158, 0, -195, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, -158, 10, -175, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_MakeDust8) = {
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, 263, -10, -264, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, 263, 0, -244, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, 263, 0, -284, 0)
EVT_PLAY_EFFECT(EFFECT_LANDING_DUST, 4, 263, 10, -264, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_PlayFX) = {
EVT_CALL(PlaySound, SOUND_1E1)
EVT_EXEC(N(EVS_FortressCollapse_MakeDust1))
EVT_WAIT(97)
EVT_CALL(PlaySound, SOUND_1E2)
EVT_EXEC(N(EVS_FortressCollapse_MakeDust2))
EVT_WAIT(95)
EVT_CALL(PlaySound, SOUND_A6)
EVT_EXEC(N(EVS_FortressCollapse_MakeDust3))
EVT_EXEC(N(EVS_FortressCollapse_MakeDust4))
EVT_WAIT(34)
EVT_CALL(PlaySound, SOUND_A6)
EVT_EXEC(N(EVS_FortressCollapse_MakeDust5))
EVT_EXEC(N(EVS_FortressCollapse_MakeDust6))
EVT_WAIT(40)
EVT_CALL(PlaySound, SOUND_A7)
EVT_WAIT(160)
EVT_CALL(PlaySound, SOUND_1E8)
EVT_WAIT(40)
EVT_CALL(PlaySound, SOUND_1E2)
EVT_EXEC(N(EVS_FortressCollapse_MakeDust7))
EVT_EXEC(N(EVS_FortressCollapse_MakeDust8))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_FortressCollapse_PlayerReactions) = {
EVT_CALL(DisablePartnerAI, 0)
EVT_WAIT(37)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001F)
EVT_WAIT(60)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_1002B)
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.8))
EVT_CALL(PlayerJump1, LVar0, LVar1, LVar2, 10)
EVT_WAIT(30)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_Running)
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(6.0))
EVT_CALL(SetNpcSpeed, NPC_PARTNER, EVT_FLOAT(6.0))
EVT_THREAD
EVT_CALL(NpcMoveTo, NPC_PARTNER, -573, 162, 0)
EVT_END_THREAD
EVT_CALL(PlayerMoveTo, -547, 147, 0)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002)
EVT_CALL(EnablePartnerAI)
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Scene_SelfDestruct) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT(15)
EVT_CALL(SetCamType, CAM_DEFAULT, 1, FALSE)
EVT_CALL(SetCamPitch, CAM_DEFAULT, 0, EVT_FLOAT(-12.5))
EVT_CALL(SetCamDistance, CAM_DEFAULT, 300)
EVT_CALL(SetCamPosA, CAM_DEFAULT, -389, -12)
EVT_CALL(SetCamPosB, CAM_DEFAULT, -469, 156)
EVT_CALL(SetPanTarget, CAM_DEFAULT, -389, 120, -12)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(SetNpcPos, NPC_GoombaKing, -380, 0, -42)
EVT_WAIT(20)
EVT_CALL(SetNpcJumpscale, NPC_GoombaKing, EVT_FLOAT(0.8))
EVT_CALL(NpcFacePlayer, NPC_GoombaKing, 0)
EVT_CALL(PlaySoundAtNpc, NPC_GoombaKing, SOUND_3E7, 0)
EVT_CALL(NpcJump1, NPC_GoombaKing, -380, 120, -42, 25)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0))
EVT_WAIT(10)
EVT_CALL(SetPlayerPos, -497, 0, 130)
EVT_CALL(InterpPlayerYaw, 270, 0)
EVT_CALL(SetNpcPos, NPC_PARTNER, -534, 0, 127)
EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00D8)
EVT_SET(GB_StoryProgress, STORY_CH0_HIT_GATEHOUSE_SWITCH)
EVT_CALL(EnableModel, MODEL_eye_mask, TRUE)
EVT_WAIT(1)
EVT_EXEC_GET_TID(N(EVS_RandomQuaking), LVarA)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(0.7))
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -100, 0)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(60)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00D9)
EVT_LOOP(100)
EVT_CALL(GetNpcPos, NPC_GoombaKing, LVar0, LVar1, LVar2)
EVT_SUB(LVar1, 1)
EVT_CALL(SetNpcPos, NPC_GoombaKing, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcPos, NPC_GoombaKing, -303, 286, -120)
EVT_CALL(FadeOutMusic, 0, 1000)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_ShockStill)
EVT_WAIT(30)
EVT_KILL_THREAD(LVarA)
EVT_THREAD
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 100, EVT_FLOAT(0.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 15, EVT_FLOAT(4.0))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 83, EVT_FLOAT(0.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(1.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 15, EVT_FLOAT(0.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(1.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 170, EVT_FLOAT(0.5))
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(3.0))
EVT_WAIT(50)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(4.0))
EVT_WAIT(20)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(0.5))
EVT_WAIT(20)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(0.2))
EVT_CALL(PlaySound, SOUND_4A5)
EVT_END_THREAD
EVT_EXEC(N(EVS_PlayFortressAnimation))
EVT_EXEC(N(EVS_FortressCollapse_PlayFX))
EVT_EXEC(N(EVS_FortressCollapse_PlayerReactions))
EVT_WAIT(380)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, -150, 0)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(20)
EVT_EXEC(N(EVS_GoombaKingBlastoff))
EVT_EXEC(N(EVS_PlayBridgeAnimation))
EVT_WAIT(150)
EVT_WAIT(50)
EVT_CALL(EnableModel, MODEL_o416, FALSE)
EVT_CALL(EnableModel, MODEL_o415, FALSE)
EVT_CALL(EnableModel, MODEL_eye_mask, FALSE)
EVT_CALL(DeleteAnimatedModel, 1)
EVT_CALL(DeleteAnimatedModel, 0)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(0.8))
EVT_LOOP(2)
EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2)
EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10)
EVT_WAIT(3)
EVT_END_LOOP
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH0_00DA)
EVT_CALL(EnablePartnerAI)
EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_tt, COLLIDER_FLAGS_UPPER_MASK)
EVT_SET(GB_StoryProgress, STORY_CH0_OPENED_BRIDGE_TO_TOAD_TOWN)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtScript N(EVS_BouncePlayerAndPartner) = {
EVT_THREAD
EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(2.0))
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(PlayerJump1, LVar0, LVar1, LVar2, LVar3)
EVT_END_THREAD
EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(2.0))
EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2)
EVT_CALL(NpcJump1, NPC_PARTNER, LVar0, LVar1, LVar2, LVar3)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Scene_MeetGoombaKing_Impl) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_EXEC_WAIT(N(EVS_FocusCam_FortressExterior))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(0.3))
EVT_CALL(PanToTarget, CAM_DEFAULT, EVT_FLOAT(0.5), 1)
EVT_WAIT(170)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, -830, 0, -70)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, -800, 0, -20)
EVT_CALL(SetNpcAnimation, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_CryRun)
EVT_CALL(SetNpcAnimation, NPC_RedGoombaBro, ANIM_GoombaBros_Red_CryRun)
EVT_CALL(SetNpcSpeed, NPC_BlueGoombaBro, EVT_FLOAT(4.0))
EVT_CALL(SetNpcSpeed, NPC_RedGoombaBro, EVT_FLOAT(4.0))
EVT_WAIT(50)
EVT_THREAD
EVT_CALL(NpcMoveTo, NPC_BlueGoombaBro, -521, -100, 0)
EVT_END_THREAD
EVT_CALL(NpcMoveTo, NPC_RedGoombaBro, -504, -74, 0)
EVT_CALL(SpeakToPlayer, NPC_RedGoombaBro, ANIM_GoombaBros_Red_CryWalk, ANIM_GoombaBros_Red_CryIdle, 5, MSG_CH0_00C3)
EVT_CALL(SpeakToPlayer, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_CryWalk, ANIM_GoombaBros_Blue_CryIdle, 5, MSG_CH0_00C4)
EVT_CALL(PlaySoundAtCollider, COLLIDER_tt, SOUND_METAL_DOOR_OPEN, 0)
EVT_CALL(MakeLerp, 0, 90, 30, EASING_COS_IN_OUT)
EVT_LABEL(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_o416, LVar0, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_o415, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(0)
EVT_END_IF
EVT_THREAD
EVT_CALL(NpcMoveTo, NPC_BlueGoombaBro, -353, -93, 0)
EVT_END_THREAD
EVT_CALL(NpcMoveTo, NPC_RedGoombaBro, -364, -77, 0)
EVT_CALL(MakeLerp, 90, 0, 30, EASING_COS_IN_OUT)
EVT_LABEL(1)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_o416, LVar0, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_o415, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(PlaySoundAtCollider, COLLIDER_tt, SOUND_METAL_DOOR_CLOSE, 0)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.5))
EVT_CALL(SetPlayerPos, -920, 0, -35)
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(3.0))
EVT_CALL(PlayerMoveTo, -575, -60, 0)
EVT_WAIT(30)
EVT_CALL(DisablePartnerAI, 0)
EVT_WAIT(10)
EVT_CALL(PlayerFaceNpc, NPC_PARTNER, FALSE)
EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH0_00C5)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_WAIT(40)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.2))
EVT_SET(LVar3, 2)
EVT_EXEC(N(EVS_BouncePlayerAndPartner))
EVT_WAIT(60)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.6))
EVT_SET(LVar3, 4)
EVT_EXEC(N(EVS_BouncePlayerAndPartner))
EVT_WAIT(60)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0))
EVT_SET(LVar3, 6)
EVT_EXEC(N(EVS_BouncePlayerAndPartner))
EVT_WAIT(60)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.5))
EVT_SET(LVar3, 8)
EVT_EXEC(N(EVS_BouncePlayerAndPartner))
EVT_WAIT(28)
EVT_CALL(SetMusicTrack, 0, SONG_GOOMBA_KING_THEME, 0, 8)
EVT_WAIT(32)
EVT_CALL(SetNpcAnimation, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_Idle)
EVT_CALL(SetNpcAnimation, NPC_RedGoombaBro, ANIM_GoombaBros_Red_Idle)
EVT_CALL(SetNpcJumpscale, NPC_BlueGoombaBro, EVT_FLOAT(0.8))
EVT_CALL(SetNpcJumpscale, NPC_RedGoombaBro, EVT_FLOAT(0.8))
EVT_THREAD
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, -400, 0, -162)
EVT_CALL(PlaySoundAtNpc, NPC_BlueGoombaBro, SOUND_10F, 0)
EVT_CALL(NpcJump0, NPC_BlueGoombaBro, -432, 130, -146, 30)
EVT_END_THREAD
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, -400, 0, -41)
EVT_CALL(PlaySoundAtNpc, NPC_RedGoombaBro, SOUND_10F, 0)
EVT_CALL(NpcJump0, NPC_RedGoombaBro, -412, 130, -35, 30)
EVT_WAIT(10)
EVT_THREAD
EVT_CALL(SetNpcJumpscale, NPC_GoombaKing, EVT_FLOAT(0.8))
EVT_CALL(SetNpcPos, NPC_GoombaKing, -405, 0, -91)
EVT_CALL(PlaySoundAtNpc, NPC_GoombaKing, SOUND_3E7, 0)
EVT_CALL(NpcJump0, NPC_GoombaKing, -419, 119, -91, 30)
EVT_CALL(PlaySoundAt, SOUND_20EC, 0, -330, 0, -130)
EVT_CALL(PlaySoundAt, SOUND_20B4, 0, -330, 0, -130)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -725, 117, -137, 100)
EVT_PLAY_EFFECT(EFFECT_DROP_LEAVES, 0, -617, 108, -137, 100)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(1.0))
EVT_END_THREAD
EVT_EXEC_WAIT(N(EVS_FocusCam_Battlement))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(55)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00C6)
EVT_CALL(SpeakToPlayer, NPC_RedGoombaBro, ANIM_GoombaBros_Red_Walk, ANIM_GoombaBros_Red_Idle, 0, MSG_CH0_00C7)
EVT_CALL(SpeakToPlayer, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_Walk, ANIM_GoombaBros_Blue_Idle, 0, MSG_CH0_00C8)
EVT_EXEC_WAIT(N(EVS_FocusCam_BesidePlayer))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(DisablePartnerAI, 0)
EVT_WAIT(5)
EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH0_00C9)
EVT_CALL(DisablePartnerAI, 0)
EVT_EXEC_WAIT(N(EVS_FocusCam_Battlement))
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(5)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00CA)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0)
EVT_WAIT(30)
EVT_CALL(SetNpcVar, NPC_GoombaKing, 0, 1)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Scene_MeetGoombaKing) = {
EVT_CALL(N(SetCameraVFov), 32)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 0, 0, 0)
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_EXEC(N(EVS_Scene_MeetGoombaKing_Impl))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,441 @@
#include "kmr_11.h"
#include "world/common/enemy/complete/GoombaBros_Stationary.inc.c"
EvtScript N(EVS_NpcIdle_GoombaBros_01) = {
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcIdle_GoombaBros_02) = {
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcIdle_GoombaKing) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_IF_EQ(GF_KMR11_GoombaBrosFledToCastle, TRUE)
EVT_CALL(GetNpcPos, NPC_GoombaKing, LVar0, LVar1, LVar2)
EVT_CALL(AwaitPlayerApproach, LVar0, LVar2, 300)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(3.0))
EVT_CALL(PlayerMoveTo, -564, -64, 0)
EVT_ELSE
EVT_LABEL(0)
EVT_CALL(GetSelfVar, 0, LVar0)
EVT_IF_EQ(LVar0, 0)
EVT_WAIT(1)
EVT_GOTO(0)
EVT_END_IF
EVT_END_IF
EVT_CASE_GE(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_RETURN
EVT_END_SWITCH
EVT_CALL(SetNpcJumpscale, NPC_RedGoombaBro, EVT_FLOAT(0.8))
EVT_CALL(SetNpcJumpscale, NPC_BlueGoombaBro, EVT_FLOAT(0.8))
EVT_CALL(SetNpcJumpscale, NPC_GoombaKing, EVT_FLOAT(0.8))
EVT_THREAD
EVT_CALL(GetNpcPos, NPC_RedGoombaBro, LVar0, LVar1, LVar2)
EVT_CALL(GetAngleToPlayer, NPC_RedGoombaBro, LVar3)
EVT_CALL(AddVectorPolar, LVar0, LVar2, EVT_FLOAT(100.0), LVar3)
EVT_CALL(PlaySoundAtNpc, NPC_RedGoombaBro, SOUND_10F, 0)
EVT_CALL(NpcJump0, NPC_RedGoombaBro, LVar0, 0, LVar2, 30)
EVT_END_THREAD
EVT_THREAD
EVT_CALL(GetNpcPos, NPC_BlueGoombaBro, LVar0, LVar1, LVar2)
EVT_CALL(GetAngleToPlayer, NPC_BlueGoombaBro, LVar3)
EVT_CALL(AddVectorPolar, LVar0, LVar2, EVT_FLOAT(100.0), LVar3)
EVT_CALL(PlaySoundAtNpc, NPC_BlueGoombaBro, SOUND_10F, 0)
EVT_CALL(NpcJump0, NPC_BlueGoombaBro, LVar0, 0, LVar2, 30)
EVT_END_THREAD
EVT_THREAD
EVT_CALL(GetNpcPos, NPC_GoombaKing, LVar0, LVar1, LVar2)
EVT_CALL(GetAngleToPlayer, NPC_GoombaKing, LVar3)
EVT_CALL(AddVectorPolar, LVar0, LVar2, EVT_FLOAT(100.0), LVar3)
EVT_CALL(PlaySoundAtNpc, NPC_GoombaKing, SOUND_3E7, 0)
EVT_CALL(NpcJump0, NPC_GoombaKing, LVar0, 0, LVar2, 30)
EVT_END_THREAD
EVT_WAIT(15)
EVT_CALL(StartBossBattle, SONG_GOOMBA_KING_BATTLE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Scene_BossDefeated) = {
EVT_CALL(SetEncounterStatusFlags, ENCOUNTER_STATUS_FLAGS_2, TRUE)
EVT_CALL(N(SetupFog))
EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(15.0), EVT_FLOAT(-8.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0))
EVT_CALL(N(SetCameraVFov), 25)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Walk, ANIM_GoombaKing_Idle, 0, MSG_CH0_00D1)
EVT_CALL(SetNpcSpeed, NPC_BlueGoombaBro, EVT_FLOAT(6.0))
EVT_CALL(SetNpcSpeed, NPC_RedGoombaBro, EVT_FLOAT(6.0))
EVT_CALL(SetNpcSpeed, NPC_GoombaKing, EVT_FLOAT(6.0))
EVT_CALL(SetNpcAnimation, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_Run)
EVT_CALL(SetNpcAnimation, NPC_RedGoombaBro, ANIM_GoombaBros_Red_Run)
EVT_CALL(SetNpcAnimation, NPC_GoombaKing, ANIM_GoombaKing_Run)
EVT_THREAD
EVT_CALL(NpcMoveTo, NPC_GoombaKing, -358, -107, 0)
EVT_END_THREAD
EVT_THREAD
EVT_WAIT(20)
EVT_CALL(NpcMoveTo, NPC_BlueGoombaBro, -396, -121, 0)
EVT_END_THREAD
EVT_THREAD
EVT_WAIT(20)
EVT_CALL(NpcMoveTo, NPC_RedGoombaBro, -396, -89, 0)
EVT_END_THREAD
EVT_WAIT(2)
EVT_CALL(PlaySoundAtCollider, COLLIDER_tt, SOUND_METAL_DOOR_OPEN, 0)
EVT_CALL(MakeLerp, 0, 90, 20, EASING_COS_IN_OUT)
EVT_LABEL(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_o416, LVar0, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_o415, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(0)
EVT_END_IF
EVT_WAIT(5)
EVT_CALL(MakeLerp, 90, 0, 20, EASING_COS_IN_OUT)
EVT_LABEL(1)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, MODEL_o416, LVar0, 0, -1, 0)
EVT_CALL(RotateModel, MODEL_o415, LVar0, 0, 1, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 1)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(PlaySoundAtCollider, COLLIDER_tt, SOUND_METAL_DOOR_CLOSE, 0)
EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(2.0))
EVT_SET(GB_StoryProgress, STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_EXEC(N(EVS_SetupMusic))
EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(4.0), 0, EVT_FLOAT(250.0), EVT_FLOAT(15.0), EVT_FLOAT(-7.5))
EVT_WAIT(10)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH0_00D2)
EVT_CALL(EnablePartnerAI)
EVT_WAIT(10)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_THREAD
EVT_WAIT(40)
EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(4.0))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_END_THREAD
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, NPC_DISPOSE_LOCATION)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, NPC_DISPOSE_LOCATION)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcDefeat_GoombaKing) = {
EVT_CALL(GetBattleOutcome, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(OUTCOME_PLAYER_WON)
EVT_EXEC_WAIT(N(EVS_Scene_BossDefeated))
EVT_CASE_EQ(OUTCOME_PLAYER_LOST)
EVT_CASE_EQ(OUTCOME_PLAYER_FLED)
EVT_CALL(SetPlayerSpeed, EVT_FLOAT(6.0))
EVT_CALL(PlayerMoveTo, -954, -50, 0)
EVT_END_SWITCH
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcDefeat_GoombaBros_01) = {
EVT_CALL(GetBattleOutcome, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(OUTCOME_PLAYER_WON)
EVT_CASE_EQ(OUTCOME_PLAYER_LOST)
EVT_CASE_EQ(OUTCOME_PLAYER_FLED)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcDefeat_GoombaBros_02) = {
EVT_CALL(GetBattleOutcome, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(OUTCOME_PLAYER_WON)
EVT_CASE_EQ(OUTCOME_PLAYER_LOST)
EVT_CASE_EQ(OUTCOME_PLAYER_FLED)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcAuxAI_Kammy) = {
EVT_IF_GE(GB_StoryProgress, STORY_CH0_KAMMY_RETURNED_TO_BOWSER)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_IF
EVT_RETURN
EVT_END
};
#define KAMMY_NPC NPC_Kammy
#include "world/common/util/GetKammyBroomEmitterPos.inc.c"
EvtScript N(EVS_NpcAux_Kammy) = {
EVT_LABEL(1)
// wait to be activated
EVT_CALL(GetSelfVar, 0, LVar0)
EVT_WAIT(1)
EVT_IF_EQ(LVar0, 0)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(GetNpcPos, NPC_Kammy, LVar6, LVar7, LVar8)
EVT_LABEL(0)
EVT_CALL(N(GetKammyBroomEmitterPos))
EVT_CALL(GetNpcPos, NPC_Kammy, LVar9, LVarA, LVarB)
EVT_VEC3I_VSET(LVar3, LVar9)
EVT_VEC3I_VSUB(LVar3, LVar6)
EVT_VEC3I_VSET(LVar6, LVar9)
EVT_IF_EQ(LVar3, 0)
EVT_IF_EQ(LVar5, 0)
EVT_ELSE
EVT_PLAY_EFFECT(EFFECT_PURPLE_RING, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0))
EVT_END_IF
EVT_ELSE
EVT_PLAY_EFFECT(EFFECT_PURPLE_RING, 0, LVar0, LVar1, LVar2, LVar3, LVar4, LVar5, EVT_FLOAT(1.0))
EVT_END_IF
EVT_WAIT(3)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
s32 N(KammyFloatingOffsets)[] = {
1, 2, 3, 2, 1,
-1, -2, -3, -2, -1,
};
EvtScript N(EVS_NpcAI_Kammy) = {
EVT_LABEL(0)
EVT_USE_BUF(EVT_PTR(N(KammyFloatingOffsets)))
EVT_LOOP(ARRAY_COUNT(N(KammyFloatingOffsets)))
EVT_BUF_READ1(LVar1)
EVT_CALL(GetNpcPos, NPC_SELF, LVar2, LVar3, LVar4)
EVT_ADD(LVar3, LVar1)
EVT_CALL(SetNpcPos, NPC_SELF, LVar2, LVar3, LVar4)
EVT_WAIT(3)
EVT_END_LOOP
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_GoombaBros_01) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_GoombaBros_01)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_GoombaBros_01)))
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_IF_EQ(GF_KMR11_GoombaBrosFledToCastle, TRUE)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, -432, 130, -146)
EVT_END_IF
EVT_CASE_GE(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, NPC_DISPOSE_LOCATION)
EVT_CALL(SetNpcFlagBits, NPC_BlueGoombaBro, NPC_FLAG_GRAVITY, FALSE)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_GoombaBros_02) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_GoombaBros_02)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_GoombaBros_02)))
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_IF_EQ(GF_KMR11_GoombaBrosFledToCastle, TRUE)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, -412, 130, -35)
EVT_END_IF
EVT_CASE_GE(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, NPC_DISPOSE_LOCATION)
EVT_CALL(SetNpcFlagBits, NPC_RedGoombaBro, NPC_FLAG_GRAVITY, FALSE)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_GoombaKing) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_GoombaKing)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_GoombaKing)))
EVT_CALL(SetNpcCollisionSize, NPC_SELF, 70, 50)
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH0_DEFEATED_GOOMBA_KING)
EVT_IF_EQ(GF_KMR11_GoombaBrosFledToCastle, TRUE)
EVT_CALL(SetNpcPos, NPC_GoombaKing, -419, 119, -91)
EVT_END_IF
EVT_CASE_LT(STORY_CH0_HIT_GATEHOUSE_SWITCH)
EVT_CALL(SetNpcPos, NPC_GoombaKing, -358, 0, -107)
EVT_CASE_GE(STORY_CH0_HIT_GATEHOUSE_SWITCH)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
NpcSettings N(NpcSettings_Kammy) = {
.defaultAnim = ANIM_WorldKammy_Anim0A,
.height = 24,
.radius = 24,
.otherAI = &N(EVS_NpcAuxAI_Kammy),
.ai = &N(EVS_NpcAI_Kammy),
.aux = &N(EVS_NpcAux_Kammy),
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_800 | ENEMY_FLAGS_200000,
};
StaticNpc N(NpcData_Enemies)[] = {
{
.id = NPC_BlueGoombaBro,
.settings = &N(NpcSettings_GoombaBros_Stationary),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 270,
.flags = ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000,
.init = &N(EVS_NpcInit_GoombaBros_01),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.territory = {
.wander = {
.isFlying = FALSE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 0, 0, 0 },
.wanderSize = { 100 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 0, 0, 0 },
.detectSize = { 100 },
}
},
.animations = {
.idle = ANIM_GoombaBros_Blue_Idle,
.walk = ANIM_GoombaBros_Blue_Walk,
.run = ANIM_GoombaBros_Blue_Run,
.chase = ANIM_GoombaBros_Blue_Run,
.anim_4 = ANIM_GoombaBros_Blue_Idle,
.anim_5 = ANIM_GoombaBros_Blue_Idle,
.death = ANIM_GoombaBros_Blue_Hurt,
.hit = ANIM_GoombaBros_Blue_Hurt,
.anim_8 = ANIM_GoombaBros_Blue_Run,
.anim_9 = ANIM_GoombaBros_Blue_Run,
.anim_A = ANIM_GoombaBros_Blue_Run,
.anim_B = ANIM_GoombaBros_Blue_Run,
.anim_C = ANIM_GoombaBros_Blue_Run,
.anim_D = ANIM_GoombaBros_Blue_Run,
.anim_E = ANIM_GoombaBros_Blue_Run,
.anim_F = ANIM_GoombaBros_Blue_Run,
},
},
{
.id = NPC_RedGoombaBro,
.settings = &N(NpcSettings_GoombaBros_Stationary),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 0,
.flags = ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000,
.init = &N(EVS_NpcInit_GoombaBros_02),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.territory = {
.wander = {
.isFlying = FALSE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 0, 0, 0 },
.wanderSize = { 100 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 0, 0, 0 },
.detectSize = { 100 },
}
},
.animations = {
.idle = ANIM_GoombaBros_Red_Idle,
.walk = ANIM_GoombaBros_Red_Walk,
.run = ANIM_GoombaBros_Red_Run,
.chase = ANIM_GoombaBros_Red_Run,
.anim_4 = ANIM_GoombaBros_Red_Idle,
.anim_5 = ANIM_GoombaBros_Red_Idle,
.death = ANIM_GoombaBros_Red_Hurt,
.hit = ANIM_GoombaBros_Red_Hurt,
.anim_8 = ANIM_GoombaBros_Red_Run,
.anim_9 = ANIM_GoombaBros_Red_Run,
.anim_A = ANIM_GoombaBros_Red_Run,
.anim_B = ANIM_GoombaBros_Red_Run,
.anim_C = ANIM_GoombaBros_Red_Run,
.anim_D = ANIM_GoombaBros_Red_Run,
.anim_E = ANIM_GoombaBros_Red_Run,
.anim_F = ANIM_GoombaBros_Red_Run,
},
},
{
.id = NPC_GoombaKing,
.settings = &N(NpcSettings_GoombaBros_Stationary),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 0,
.flags = ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000,
.init = &N(EVS_NpcInit_GoombaKing),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.territory = {
.wander = {
.isFlying = FALSE,
.moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED,
.wanderShape = SHAPE_CYLINDER,
.centerPos = { 0, 0, 0 },
.wanderSize = { 100 },
.detectShape = SHAPE_CYLINDER,
.detectPos = { 0, 0, 0 },
.detectSize = { 100 },
}
},
.animations = {
.idle = ANIM_GoombaKing_Idle,
.walk = ANIM_GoombaKing_Walk,
.run = ANIM_GoombaKing_Run,
.chase = ANIM_GoombaKing_Run,
.anim_4 = ANIM_GoombaKing_Idle,
.anim_5 = ANIM_GoombaKing_Idle,
.death = ANIM_GoombaKing_Dead,
.hit = ANIM_GoombaKing_Dead,
.anim_8 = ANIM_GoombaKing_Run,
.anim_9 = ANIM_GoombaKing_Run,
.anim_A = ANIM_GoombaKing_Run,
.anim_B = ANIM_GoombaKing_Run,
.anim_C = ANIM_GoombaKing_Run,
.anim_D = ANIM_GoombaKing_Run,
.anim_E = ANIM_GoombaKing_Run,
.anim_F = ANIM_GoombaKing_Run,
},
},
};
StaticNpc N(NpcData_Kammy) = {
.id = NPC_Kammy,
.settings = &N(NpcSettings_Kammy),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 100,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_200000,
.initVarCount = 1,
.initVar = { .value = 0 },
.animations = {},
};
NpcGroupList N(DefaultNPCs) = {
NPC_GROUP(N(NpcData_Enemies), BTL_KMR_PART_2_FORMATION_01),
NPC_GROUP(N(NpcData_Kammy)),
{}
};

View File

@ -0,0 +1,102 @@
#include "kmr_11.h"
#include "entity.h"
#include "effects.h"
API_CALLABLE(N(SetBlueSwitchPosition)) {
Entity* entity = get_entity_by_index(script->varTable[10]);
entity->position.x = script->varTable[0];
entity->position.y = script->varTable[1];
entity->position.z = script->varTable[2];
return ApiStatus_DONE2;
}
EvtScript N(EVS_Scene_OverhearEnemies) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(GetNpcPos, NPC_GoombaKing, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, LVar0, LVar1, LVar2)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00D3)
EVT_CALL(SpeakToPlayer, NPC_RedGoombaBro, ANIM_GoombaBros_Red_Talk, ANIM_GoombaBros_Red_Idle, 0, MSG_CH0_00D4)
EVT_CALL(SpeakToPlayer, NPC_GoombaKing, ANIM_GoombaKing_Idle, ANIM_GoombaKing_Idle, 0, MSG_CH0_00D5)
EVT_CALL(SpeakToPlayer, NPC_BlueGoombaBro, ANIM_GoombaBros_Blue_Talk, ANIM_GoombaBros_Blue_Idle, 0, MSG_CH0_00D6)
EVT_CALL(SpeakToPlayer, NPC_RedGoombaBro, ANIM_GoombaBros_Red_Talk, ANIM_GoombaBros_Red_Idle, 0, MSG_CH0_00D7)
EVT_CALL(SetNpcPos, NPC_RedGoombaBro, NPC_DISPOSE_LOCATION)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, NPC_DISPOSE_LOCATION)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
// NPC_BlueGoombaBro is reused here to do the blue switch jumping
EvtScript N(EVS_TetherSwitchToBlueGoomba) = {
EVT_LABEL(10)
EVT_CALL(GetNpcPos, NPC_BlueGoombaBro, LVar0, LVar1, LVar2)
EVT_SET(LVarA, MV_SwitchEntityID)
EVT_CALL(N(SetBlueSwitchPosition))
EVT_WAIT(1)
EVT_GOTO(10)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Interact_SwitchBush) = {
EVT_IF_GE(GB_StoryProgress, STORY_CH0_FOUND_GATEHOUSE_SWITCH)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, -377, -8, 81)
EVT_CALL(SetNpcFlagBits, NPC_BlueGoombaBro, NPC_FLAG_1000000, TRUE)
EVT_EXEC_GET_TID(N(EVS_TetherSwitchToBlueGoomba), LVarB)
EVT_CALL(SetNpcJumpscale, NPC_BlueGoombaBro, EVT_FLOAT(2.0))
EVT_CALL(NpcJump0, NPC_BlueGoombaBro, -445, 0, 92, 15)
EVT_CALL(PlaySoundAt, SOUND_48, 0, -469, 1, 92)
EVT_CALL(SetNpcJumpscale, NPC_BlueGoombaBro, EVT_FLOAT(2.0))
EVT_CALL(NpcJump0, NPC_BlueGoombaBro, -469, 0, 92, 7)
EVT_KILL_THREAD(LVarB)
EVT_CALL(SetNpcPos, NPC_BlueGoombaBro, 0, -1000, 0)
EVT_SET(GB_StoryProgress, STORY_CH0_FOUND_GATEHOUSE_SWITCH)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_OnBreak_SpecialBrick) = {
EVT_CALL(PlaySound, SOUND_B)
EVT_CALL(PlaySoundAt, SOUND_2108, 0, 665, 35, 70)
EVT_PLAY_EFFECT(EFFECT_SPARKLES, 0, 665, 48, 70, 10)
EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 665, 35, 70, 45, ITEM_SUPER_SHROOM, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_KMR11_ItemBlock_SuperShroom)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_MakeEntities) = {
EVT_IF_LE(GB_StoryProgress, STORY_CH0_FOUND_GATEHOUSE_SWITCH)
EVT_IF_EQ(GB_StoryProgress, STORY_CH0_FOUND_GATEHOUSE_SWITCH)
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueSwitch), -469, 0, 153, 0, MAKE_ENTITY_END)
EVT_CALL(AssignSwitchFlag, EVT_INDEX_OF_AREA_FLAG(AF_KMR_04))
EVT_SET(MV_SwitchEntityID, LVar0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Scene_SelfDestruct)), TRIGGER_AREA_FLAG_SET, AF_KMR_04, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Scene_OverhearEnemies)), TRIGGER_WALL_PRESS_A, COLLIDER_tt, 1, 0)
EVT_ELSE
EVT_CALL(MakeEntity, EVT_PTR(Entity_BlueSwitch), NPC_DISPOSE_LOCATION, 0, MAKE_ENTITY_END)
EVT_CALL(AssignSwitchFlag, EVT_INDEX_OF_AREA_FLAG(AF_KMR_04))
EVT_SET(MV_SwitchEntityID, LVar0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Scene_SelfDestruct)), TRIGGER_AREA_FLAG_SET, AF_KMR_04, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Scene_OverhearEnemies)), TRIGGER_WALL_PRESS_A, COLLIDER_tt, 1, 0)
EVT_END_IF
EVT_END_IF
EVT_CALL(MakeEntity, EVT_PTR(Entity_BrickBlock), 625, -25, 110, 45, MAKE_ENTITY_END)
EVT_IF_EQ(GF_KMR11_ItemBlock_SuperShroom, FALSE)
EVT_CALL(AssignScript, EVT_PTR(N(EVS_OnBreak_SpecialBrick)))
EVT_ELSE
EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 665, 35, 70, 45, ITEM_SUPER_SHROOM, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, GF_KMR11_ItemBlock_SuperShroom)
EVT_END_IF
EVT_CALL(MakeEntity, EVT_PTR(Entity_HiddenPanel), 550, 0, -550, 0, MODEL_point, MAKE_ENTITY_END)
EVT_CALL(AssignPanelFlag, GF_KMR11_HiddenPanel)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,59 @@
#include "kmr_11.h"
Vec3f N(FlightPath_Away)[] = {
{ 0.0, 0.0, 0.0 },
{ 100.0, 50.0, 0.0 },
{ 200.0, 150.0, 0.0 },
{ 250.0, 400.0, 0.0 },
};
EvtScript N(EVS_Scene_KammyWatching) = {
EVT_CALL(SetMusicTrack, 0, SONG_KAMMY_KOOPA_THEME, 0, 8)
EVT_CALL(SetNpcVar, NPC_Kammy, 0, 1)
EVT_CALL(SetNpcPos, NPC_Kammy, 100, 182, -353)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 100, 0, -220)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 100, 0, -220)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 1176)
EVT_CALL(SetCamPosA, CAM_DEFAULT, 59, -159)
EVT_CALL(SetCamPosB, CAM_DEFAULT, -24, -256)
EVT_CALL(SetCamPitch, CAM_DEFAULT, 8, -5)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(60)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 100, 0, -220)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 100, 190, -353)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 250)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(30)
EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 100, 0, -220)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 100, 190, -353)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 1000)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(0.65))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_WAIT(30)
EVT_THREAD
EVT_CALL(GetNpcPos, NPC_Kammy, LVar7, LVar8, LVar9)
EVT_CALL(LoadPath, 80, EVT_PTR(N(FlightPath_Away)), ARRAY_COUNT(N(FlightPath_Away)), EASING_LINEAR)
EVT_LABEL(0)
EVT_CALL(GetNextPathPos)
EVT_ADD(LVar1, LVar7)
EVT_ADD(LVar2, LVar8)
EVT_ADD(LVar3, LVar9)
EVT_CALL(SetNpcPos, NPC_Kammy, LVar1, LVar2, LVar3)
EVT_WAIT(1)
EVT_IF_EQ(LVar0, 1)
EVT_GOTO(0)
EVT_END_IF
EVT_END_THREAD
EVT_THREAD
EVT_LOOP(24)
EVT_CALL(PlaySoundAtNpc, NPC_Kammy, SOUND_295, 0)
EVT_WAIT(4)
EVT_END_LOOP
EVT_END_THREAD
EVT_WAIT(110)
EVT_EXEC_WAIT(N(EVS_BadExit_kmr_24_0))
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,133 @@
#include "kmr_11.h"
#include "common/foliage.inc.c"
FoliageModelList N(Bush2_BushModels) = FOLIAGE_MODEL_LIST(MODEL_kusa1);
FoliageVectorList N(Bush2_Effects) = {
.count = 1,
.vectors = {
{ -257.0f, 13.0f, 32.0f },
}
};
SearchBushConfig N(SearchBush_Bush2) = {
.bush = &N(Bush2_BushModels),
.vectors = &N(Bush2_Effects),
};
FoliageModelList N(Bush3_BushModels) = FOLIAGE_MODEL_LIST(MODEL_kusa2);
FoliageVectorList N(Bush3_Effects) = {
.count = 1,
.vectors = {
{ 415.0f, 21.0f, -208.0f },
}
};
SearchBushConfig N(SearchBush_Bush3) = {
.bush = &N(Bush3_BushModels),
.vectors = &N(Bush3_Effects),
};
FoliageModelList N(Bush4_BushModels) = FOLIAGE_MODEL_LIST(MODEL_o517);
FoliageVectorList N(Bush4_Effects) = {
.count = 1,
.vectors = {
{ -905.0f, 21.0f, 72.0f },
}
};
SearchBushConfig N(SearchBush_Bush4) = {
.bush = &N(Bush4_BushModels),
.vectors = &N(Bush4_Effects),
};
FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o349);
FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o352);
FoliageDropList N(Tree1_Drops) = {
.count = 1,
.drops = {
{
.itemID = ITEM_STAR_PIECE,
.pos = { -711, 121, -105 },
.spawnMode = ITEM_SPAWN_MODE_FALL_NEVER_VANISH,
.pickupFlag = GF_KMR11_Tree1_StarPiece,
.spawnFlag = MF_SpawnFlag_StarPiece,
},
}
};
FoliageVectorList N(Tree1_Effects) = {
.count = 2,
.vectors = {
{ -725.0f, 117.0f, -137.0f },
{ -617.0f, 108.0f, -137.0f },
}
};
ShakeTreeConfig N(ShakeTree_Tree1) = {
.leaves = &N(Tree1_LeafModels),
.trunk = &N(Tree1_TrunkModels),
.drops = &N(Tree1_Drops),
.vectors = &N(Tree1_Effects),
};
BombTrigger N(BombPos_Tree1) = {
.pos = { -665.0f, 0.0f, -149.0f },
.radius = 0.0f
};
FoliageModelList N(Tree2_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o458);
FoliageModelList N(Tree2_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o461);
FoliageDropList N(Tree2_Drops) = {
.count = 1,
.drops = {
{
.itemID = ITEM_COIN,
.pos = { 307, 115, -462 },
.spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ONCE,
.pickupFlag = GF_KMR11_Tree2_Coin,
},
}
};
FoliageVectorList N(Tree2_Effects) = {
.count = 2,
.vectors = {
{ 259.0f, 77.0f, -443.0f },
{ 354.0f, 96.0f, -500.0f },
}
};
ShakeTreeConfig N(ShakeTree_Tree2) = {
.leaves = &N(Tree2_LeafModels),
.trunk = &N(Tree2_TrunkModels),
.drops = &N(Tree2_Drops),
.vectors = &N(Tree2_Effects),
};
BombTrigger N(BombPos_Tree2) = {
.pos = { 320.0f, 0.0f, -496.0f },
.radius = 0.0f
};
EvtScript N(EVS_SetupFoliage) = {
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush2)))
EVT_BIND_TRIGGER(EVT_PTR(N(searchBush)), TRIGGER_WALL_PRESS_A, COLLIDER_kusa1, 1, 0)
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush3)))
EVT_BIND_TRIGGER(EVT_PTR(N(searchBush)), TRIGGER_WALL_PRESS_A, COLLIDER_kusa2, 1, 0)
EVT_SET(LVar0, EVT_PTR(N(SearchBush_Bush4)))
EVT_BIND_TRIGGER(EVT_PTR(N(searchBush)), TRIGGER_WALL_PRESS_A, COLLIDER_o419, 1, 0)
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree1)))
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_tree1, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree1)), 1, 0)
EVT_SET(LVar0, EVT_PTR(N(ShakeTree_Tree2)))
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_tree2, 1, 0)
EVT_BIND_TRIGGER(EVT_PTR(N(shakeTree)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Tree2)), 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,733 @@
#include "kmr_11.h"
StaticAnimatorNode N(D_80247010_8E1110) = {
.pos = { -334.0f, -285.0f, -118.0f },
.rot = { AS_F(0.0f), AS_F(-164.94827f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_td1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024703C_8E113C) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_80247010_8E1110),
};
StaticAnimatorNode N(D_80247068_8E1168) = {
.pos = { -3.0f, -20.0f, -103.0f },
.rot = { AS_F(-180.0f), AS_F(152.24768f), AS_F(0.0f) },
.child = &N(D_8024703C_8E113C),
};
StaticAnimatorNode N(D_80247094_8E1194) = {
.pos = { -129.0f, -285.0f, -386.0f },
.rot = { AS_F(0.0f), AS_F(135.04807f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_te1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802470C0_8E11C0) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_80247094_8E1194),
};
StaticAnimatorNode N(D_802470EC_8E11EC) = {
.pos = { -77.0f, -20.0f, -101.0f },
.rot = { AS_F(-180.0f), AS_F(-147.74864f), AS_F(0.0f) },
.child = &N(D_802470C0_8E11C0),
.sibling = &N(D_80247068_8E1168),
};
StaticAnimatorNode N(D_80247118_8E1218) = {
.pos = { 205.0f, -285.0f, -342.0f },
.rot = { AS_F(0.0f), AS_F(75.0499f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tf1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247144_8E1244) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_80247118_8E1218),
};
StaticAnimatorNode N(D_80247170_8E1270) = {
.pos = { -111.0f, -20.0f, -35.0f },
.rot = { AS_F(-180.0f), AS_F(-87.74499f), AS_F(0.0f) },
.child = &N(D_80247144_8E1244),
.sibling = &N(D_802470EC_8E11EC),
};
StaticAnimatorNode N(D_8024719C_8E129C) = {
.pos = { 334.0f, -285.0f, -31.0f },
.rot = { AS_F(0.0f), AS_F(15.046235f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_ta1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802471C8_8E12C8) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_8024719C_8E129C),
};
StaticAnimatorNode N(D_802471F4_8E12F4) = {
.pos = { -71.0f, -20.0f, 27.0f },
.rot = { AS_F(-180.0f), AS_F(-27.746819f), AS_F(0.0f) },
.child = &N(D_802471C8_8E12C8),
.sibling = &N(D_80247170_8E1270),
};
StaticAnimatorNode N(D_80247220_8E1320) = {
.pos = { 129.0f, -285.0f, 236.0f },
.rot = { AS_F(0.0f), AS_F(-44.94644f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tb1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024724C_8E134C) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_80247220_8E1320),
};
StaticAnimatorNode N(D_80247278_8E1378) = {
.pos = { 2.0f, -20.0f, 24.0f },
.rot = { AS_F(-180.0f), AS_F(32.245857f), AS_F(0.0f) },
.child = &N(D_8024724C_8E134C),
.sibling = &N(D_802471F4_8E12F4),
};
StaticAnimatorNode N(D_802472A4_8E13A4) = {
.pos = { -205.0f, -285.0f, 192.0f },
.rot = { AS_F(0.0f), AS_F(-104.94461f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tc1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802472D0_8E13D0) = {
.pos = { 0.0f, 89.0f, 0.0f },
.rot = { AS_F(-180.0f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_802472A4_8E13A4),
};
StaticAnimatorNode N(D_802472FC_8E13FC) = {
.pos = { 36.0f, -20.0f, -41.0f },
.rot = { AS_F(-180.0f), AS_F(92.24952f), AS_F(0.0f) },
.child = &N(D_802472D0_8E13D0),
.sibling = &N(D_80247278_8E1378),
};
StaticAnimatorNode N(D_80247328_8E1428) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_802472FC_8E13FC),
};
StaticAnimatorNode N(D_80247354_8E1454) = {
.pos = { -334.0f, -196.0f, -117.0f },
.rot = { AS_F(0.0f), AS_F(-164.94827f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_td2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247380_8E1480) = {
.pos = { -3.0f, -109.0f, -103.0f },
.rot = { AS_F(-180.0f), AS_F(152.24768f), AS_F(0.0f) },
.child = &N(D_80247354_8E1454),
};
StaticAnimatorNode N(D_802473AC_8E14AC) = {
.pos = { -129.0f, -196.0f, -385.0f },
.rot = { AS_F(0.0f), AS_F(135.04807f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_te2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802473D8_8E14D8) = {
.pos = { -77.0f, -109.0f, -101.0f },
.rot = { AS_F(-180.0f), AS_F(-147.74864f), AS_F(0.0f) },
.child = &N(D_802473AC_8E14AC),
.sibling = &N(D_80247380_8E1480),
};
StaticAnimatorNode N(D_80247404_8E1504) = {
.pos = { 205.0f, -196.0f, -341.0f },
.rot = { AS_F(0.0f), AS_F(75.0499f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tf2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247430_8E1530) = {
.pos = { -111.0f, -109.0f, -35.0f },
.rot = { AS_F(-180.0f), AS_F(-87.74499f), AS_F(0.0f) },
.child = &N(D_80247404_8E1504),
.sibling = &N(D_802473D8_8E14D8),
};
StaticAnimatorNode N(D_8024745C_8E155C) = {
.pos = { 334.0f, -196.0f, -30.0f },
.rot = { AS_F(0.0f), AS_F(15.046235f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_ta2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247488_8E1588) = {
.pos = { -71.0f, -109.0f, 27.0f },
.rot = { AS_F(-180.0f), AS_F(-27.746819f), AS_F(0.0f) },
.child = &N(D_8024745C_8E155C),
.sibling = &N(D_80247430_8E1530),
};
StaticAnimatorNode N(D_802474B4_8E15B4) = {
.pos = { 129.0f, -196.0f, 237.0f },
.rot = { AS_F(0.0f), AS_F(-44.94644f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tb2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802474E0_8E15E0) = {
.pos = { 2.0f, -109.0f, 24.0f },
.rot = { AS_F(-180.0f), AS_F(32.245857f), AS_F(0.0f) },
.child = &N(D_802474B4_8E15B4),
.sibling = &N(D_80247488_8E1588),
};
StaticAnimatorNode N(D_8024750C_8E160C) = {
.pos = { -205.0f, -196.0f, 193.0f },
.rot = { AS_F(0.0f), AS_F(-104.94461f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tc2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247538_8E1638) = {
.pos = { 36.0f, -109.0f, -41.0f },
.rot = { AS_F(-180.0f), AS_F(92.24952f), AS_F(0.0f) },
.child = &N(D_8024750C_8E160C),
.sibling = &N(D_802474E0_8E15E0),
};
StaticAnimatorNode N(D_80247564_8E1664) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247538_8E1638),
.sibling = &N(D_80247328_8E1428),
};
StaticAnimatorNode N(D_80247590_8E1690) = {
.pos = { -129.0f, -106.0f, -384.0f },
.rot = { AS_F(0.0f), AS_F(135.04807f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_te3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802475BC_8E16BC) = {
.pos = { -76.0f, -106.0f, -100.0f },
.rot = { AS_F(0.0f), AS_F(-147.74864f), AS_F(0.0f) },
.child = &N(D_80247590_8E1690),
};
StaticAnimatorNode N(D_802475E8_8E16E8) = {
.pos = { -334.0f, -106.0f, -116.0f },
.rot = { AS_F(0.0f), AS_F(-164.94827f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_td3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247614_8E1714) = {
.pos = { -3.0f, -106.0f, -103.0f },
.rot = { AS_F(0.0f), AS_F(152.24768f), AS_F(0.0f) },
.child = &N(D_802475E8_8E16E8),
.sibling = &N(D_802475BC_8E16BC),
};
StaticAnimatorNode N(D_80247640_8E1740) = {
.pos = { 205.0f, -106.0f, -340.0f },
.rot = { AS_F(0.0f), AS_F(75.0499f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tf3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024766C_8E176C) = {
.pos = { -110.0f, -106.0f, -35.0f },
.rot = { AS_F(0.0f), AS_F(-87.74499f), AS_F(0.0f) },
.child = &N(D_80247640_8E1740),
.sibling = &N(D_80247614_8E1714),
};
StaticAnimatorNode N(D_80247698_8E1798) = {
.pos = { 334.0f, -106.0f, -29.0f },
.rot = { AS_F(0.0f), AS_F(15.046235f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_ta3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802476C4_8E17C4) = {
.pos = { -71.0f, -106.0f, 26.0f },
.rot = { AS_F(0.0f), AS_F(-27.746819f), AS_F(0.0f) },
.child = &N(D_80247698_8E1798),
.sibling = &N(D_8024766C_8E176C),
};
StaticAnimatorNode N(D_802476F0_8E17F0) = {
.pos = { 129.0f, -106.0f, 238.0f },
.rot = { AS_F(0.0f), AS_F(-44.94644f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tb3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_8024771C_8E181C) = {
.pos = { 1.0f, -106.0f, 23.0f },
.rot = { AS_F(0.0f), AS_F(32.245857f), AS_F(0.0f) },
.child = &N(D_802476F0_8E17F0),
.sibling = &N(D_802476C4_8E17C4),
};
StaticAnimatorNode N(D_80247748_8E1848) = {
.pos = { -205.0f, -106.0f, 194.0f },
.rot = { AS_F(0.0f), AS_F(-104.94461f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_tc3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247774_8E1874) = {
.pos = { 35.0f, -106.0f, -41.0f },
.rot = { AS_F(0.0f), AS_F(92.24952f), AS_F(0.0f) },
.child = &N(D_80247748_8E1848),
.sibling = &N(D_8024771C_8E181C),
};
StaticAnimatorNode N(D_802477A0_8E18A0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247774_8E1874),
.sibling = &N(D_80247564_8E1664),
};
StaticAnimatorNode N(D_802477CC_8E18CC) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_802477A0_8E18A0),
};
StaticAnimatorNode N(D_802477F8_8E18F8) = {
.pos = { -266.0f, 0.0f, -99.0f },
.rot = { AS_F(0.0f), AS_F(12.695089f), AS_F(0.0f) },
.child = &N(D_802477CC_8E18CC),
};
StaticAnimatorNode N(D_80247824_8E1924) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy27),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247850_8E1950) = {
.pos = { -50.0f, -224.0f, 0.0f },
.child = &N(D_80247824_8E1924),
};
StaticAnimatorNode N(D_8024787C_8E197C) = {
.pos = { -67.0f, 0.0f, 86.0f },
.rot = { AS_F(0.0f), AS_F(-44.99588f), AS_F(0.0f) },
.child = &N(D_80247850_8E1950),
};
StaticAnimatorNode N(D_802478A8_8E19A8) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy28),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802478D4_8E19D4) = {
.pos = { -75.0f, -400.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-180.0f) },
.child = &N(D_802478A8_8E19A8),
};
StaticAnimatorNode N(D_80247900_8E1A00) = {
.pos = { -53.0f, 0.0f, 72.0f },
.rot = { AS_F(0.0f), AS_F(-44.99588f), AS_F(0.0f) },
.child = &N(D_802478D4_8E19D4),
.sibling = &N(D_8024787C_8E197C),
};
StaticAnimatorNode N(D_8024792C_8E1A2C) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy29),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247958_8E1A58) = {
.pos = { -50.0f, -224.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_8024792C_8E1A2C),
};
StaticAnimatorNode N(D_80247984_8E1A84) = {
.pos = { -58.0f, 0.0f, 55.0f },
.rot = { AS_F(0.0f), AS_F(-44.99588f), AS_F(0.0f) },
.child = &N(D_80247958_8E1A58),
.sibling = &N(D_80247900_8E1A00),
};
StaticAnimatorNode N(D_802479B0_8E1AB0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247984_8E1A84),
};
StaticAnimatorNode N(D_802479DC_8E1ADC) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy21),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247A08_8E1B08) = {
.pos = { -50.0f, -224.0f, 0.0f },
.child = &N(D_802479DC_8E1ADC),
};
StaticAnimatorNode N(D_80247A34_8E1B34) = {
.pos = { -288.0f, 0.0f, 204.0f },
.rot = { AS_F(0.0f), AS_F(-89.99725f), AS_F(0.0f) },
.child = &N(D_80247A08_8E1B08),
};
StaticAnimatorNode N(D_80247A60_8E1B60) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy22),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247A8C_8E1B8C) = {
.pos = { -75.0f, -400.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-180.0f) },
.child = &N(D_80247A60_8E1B60),
};
StaticAnimatorNode N(D_80247AB8_8E1BB8) = {
.pos = { -300.0f, 0.0f, 201.0f },
.rot = { AS_F(0.0f), AS_F(-89.99725f), AS_F(0.0f) },
.child = &N(D_80247A8C_8E1B8C),
.sibling = &N(D_80247A34_8E1B34),
};
StaticAnimatorNode N(D_80247AE4_8E1BE4) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy23),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247B10_8E1C10) = {
.pos = { -50.0f, -224.0f, 0.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-89.99725f) },
.child = &N(D_80247AE4_8E1BE4),
};
StaticAnimatorNode N(D_80247B3C_8E1C3C) = {
.pos = { -269.0f, 0.0f, 186.0f },
.rot = { AS_F(0.0f), AS_F(-89.99725f), AS_F(0.0f) },
.child = &N(D_80247B10_8E1C10),
.sibling = &N(D_80247AB8_8E1BB8),
};
StaticAnimatorNode N(D_80247B68_8E1C68) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247B3C_8E1C3C),
.sibling = &N(D_802479B0_8E1AB0),
};
StaticAnimatorNode N(D_80247B94_8E1C94) = {
.pos = { 0.0f, -20.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy7),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247BC0_8E1CC0) = {
.pos = { 0.0f, -400.0f, 203.0f },
.child = &N(D_80247B94_8E1C94),
};
StaticAnimatorNode N(D_80247BEC_8E1CEC) = {
.pos = { -271.0f, 0.0f, 53.0f },
.child = &N(D_80247BC0_8E1CC0),
};
StaticAnimatorNode N(D_80247C18_8E1D18) = {
.pos = { 0.0f, -20.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy8),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247C44_8E1D44) = {
.pos = { 0.0f, -400.0f, 203.0f },
.child = &N(D_80247C18_8E1D18),
};
StaticAnimatorNode N(D_80247C70_8E1D70) = {
.pos = { -271.0f, 0.0f, 53.0f },
.rot = { AS_F(0.0f), AS_F(9.997864f), AS_F(0.0f) },
.child = &N(D_80247C44_8E1D44),
.sibling = &N(D_80247BEC_8E1CEC),
};
StaticAnimatorNode N(D_80247C9C_8E1D9C) = {
.pos = { 0.0f, -20.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy9),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247CC8_8E1DC8) = {
.pos = { 0.0f, -400.0f, 203.0f },
.child = &N(D_80247C9C_8E1D9C),
};
StaticAnimatorNode N(D_80247CF4_8E1DF4) = {
.pos = { -271.0f, 0.0f, 53.0f },
.rot = { AS_F(0.0f), AS_F(74.994965f), AS_F(0.0f) },
.child = &N(D_80247CC8_8E1DC8),
.sibling = &N(D_80247C70_8E1D70),
};
StaticAnimatorNode N(D_80247D20_8E1E20) = {
.pos = { 0.0f, -20.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy10),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247D4C_8E1E4C) = {
.pos = { 0.0f, -400.0f, 203.0f },
.rot = { AS_F(0.0f), AS_F(89.99725f), AS_F(0.0f) },
.child = &N(D_80247D20_8E1E20),
};
StaticAnimatorNode N(D_80247D78_8E1E78) = {
.pos = { -271.0f, 0.0f, 53.0f },
.rot = { AS_F(0.0f), AS_F(49.994812f), AS_F(0.0f) },
.child = &N(D_80247D4C_8E1E4C),
.sibling = &N(D_80247CF4_8E1DF4),
};
StaticAnimatorNode N(D_80247DA4_8E1EA4) = {
.pos = { 0.0f, -20.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy11),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247DD0_8E1ED0) = {
.pos = { 0.0f, -400.0f, 203.0f },
.child = &N(D_80247DA4_8E1EA4),
};
StaticAnimatorNode N(D_80247DFC_8E1EFC) = {
.pos = { -271.0f, 0.0f, 53.0f },
.rot = { AS_F(0.0f), AS_F(-19.995728f), AS_F(0.0f) },
.child = &N(D_80247DD0_8E1ED0),
.sibling = &N(D_80247D78_8E1E78),
};
StaticAnimatorNode N(D_80247E28_8E1F28) = {
.pos = { -30.0f, 20.0f, -30.0f },
.child = &N(D_80247DFC_8E1EFC),
.sibling = &N(D_80247B68_8E1C68),
};
StaticAnimatorNode N(D_80247E54_8E1F54) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy6),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247E80_8E1F80) = {
.pos = { -135.0f, -400.0f, -191.0f },
.rot = { AS_F(0.0f), AS_F(0.0f), AS_F(-180.0f) },
.child = &N(D_80247E54_8E1F54),
};
StaticAnimatorNode N(D_80247EAC_8E1FAC) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy5),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247ED8_8E1FD8) = {
.pos = { -150.0f, -400.0f, -191.0f },
.child = &N(D_80247EAC_8E1FAC),
.sibling = &N(D_80247E80_8E1F80),
};
StaticAnimatorNode N(D_80247F04_8E2004) = {
.pos = { 0.0f, 0.0f, 0.0f },
.modelID = AS_MODEL_ID(MODEL_dummy4),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247F30_8E2030) = {
.pos = { -135.0f, -400.0f, -191.0f },
.child = &N(D_80247F04_8E2004),
.sibling = &N(D_80247ED8_8E1FD8),
};
StaticAnimatorNode N(D_80247F5C_8E205C) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247F30_8E2030),
.sibling = &N(D_80247E28_8E1F28),
};
StaticAnimatorNode N(D_80247F88_8E2088) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247F5C_8E205C),
.sibling = &N(D_802477F8_8E18F8),
};
StaticAnimatorNode N(D_80247FB4_8E20B4) = {
.pos = { 276.0f, -401.0f, 194.0f },
.rot = { AS_F(0.0f), AS_F(-12.695089f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_top),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80247FE0_8E20E0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80247FB4_8E20B4),
};
StaticAnimatorNode N(D_8024800C_8E210C) = {
.pos = { 8.0f, 26.0f, 104.0f },
.rot = { AS_F(0.0f), AS_F(-177.84662f), AS_F(0.0f) },
.child = &N(D_80247FE0_8E20E0),
};
StaticAnimatorNode N(D_80248038_8E2138) = {
.pos = { -6.0f, 0.0f, 197.0f },
.rot = { AS_F(0.0f), AS_F(177.84662f), AS_F(0.0f) },
.child = &N(D_8024800C_8E210C),
};
StaticAnimatorNode N(D_80248064_8E2164) = {
.pos = { 3.0f, 0.0f, 87.0f },
.rot = { AS_F(89.99725f), AS_F(0.0f), AS_F(0.0f) },
.child = &N(D_80248038_8E2138),
};
StaticAnimatorNode N(D_80248090_8E2190) = {
.pos = { 300.0f, -250.0f, -150.0f },
.rot = { AS_F(0.0f), AS_F(12.695089f), AS_F(0.0f) },
.child = &N(D_80248064_8E2164),
.sibling = &N(D_80247F88_8E2088),
};
StaticAnimatorNode N(D_802480BC_8E21BC) = {
.pos = { 346.0f, -335.0f, -34.0f },
.rot = { AS_F(0.0f), AS_F(14.996796f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_mado3),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_802480E8_8E21E8) = {
.pos = { -343.0f, -55.0f, -56.0f },
.rot = { AS_F(0.0f), AS_F(-14.996796f), AS_F(-34.998016f) },
.child = &N(D_802480BC_8E21BC),
};
StaticAnimatorNode N(D_80248114_8E2214) = {
.pos = { 176.0f, -206.0f, -342.0f },
.rot = { AS_F(0.0f), AS_F(74.994965f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_mado1),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80248140_8E2240) = {
.pos = { -376.0f, -106.0f, -82.0f },
.rot = { AS_F(29.999084f), AS_F(-74.994965f), AS_F(0.0f) },
.child = &N(D_80248114_8E2214),
.sibling = &N(D_802480E8_8E21E8),
};
StaticAnimatorNode N(D_8024816C_8E226C) = {
.pos = { 122.0f, -212.0f, 235.0f },
.rot = { AS_F(0.0f), AS_F(-44.99588f), AS_F(0.0f) },
.modelID = AS_MODEL_ID(MODEL_mado2),
.vtxList = 0,
.vertexStartOffset = -1
};
StaticAnimatorNode N(D_80248198_8E2298) = {
.pos = { -252.0f, -102.0f, -80.0f },
.rot = { AS_F(0.0f), AS_F(44.99588f), AS_F(89.99725f) },
.child = &N(D_8024816C_8E226C),
.sibling = &N(D_80248140_8E2240),
};
StaticAnimatorNode N(D_802481C4_8E22C4) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_80248198_8E2298),
.sibling = &N(D_80248090_8E2190),
};
StaticAnimatorNode N(D_802481F0_8E22F0) = {
.pos = { 0.0f, 0.0f, 0.0f },
.child = &N(D_802481C4_8E22C4),
};
StaticAnimatorNode* N(AnimSkeleton_Fortress)[] = {
&N(D_802481F0_8E22F0), &N(D_802481C4_8E22C4), &N(D_80248198_8E2298), &N(D_8024816C_8E226C),
&N(D_80248140_8E2240), &N(D_80248114_8E2214), &N(D_802480E8_8E21E8), &N(D_802480BC_8E21BC),
&N(D_80248090_8E2190), &N(D_80248064_8E2164), &N(D_80248038_8E2138), &N(D_8024800C_8E210C),
&N(D_80247FE0_8E20E0), &N(D_80247FB4_8E20B4), &N(D_80247F88_8E2088), &N(D_80247F5C_8E205C),
&N(D_80247F30_8E2030), &N(D_80247F04_8E2004), &N(D_80247ED8_8E1FD8), &N(D_80247EAC_8E1FAC),
&N(D_80247E80_8E1F80), &N(D_80247E54_8E1F54), &N(D_80247E28_8E1F28), &N(D_80247DFC_8E1EFC),
&N(D_80247DD0_8E1ED0), &N(D_80247DA4_8E1EA4), &N(D_80247D78_8E1E78), &N(D_80247D4C_8E1E4C),
&N(D_80247D20_8E1E20), &N(D_80247CF4_8E1DF4), &N(D_80247CC8_8E1DC8), &N(D_80247C9C_8E1D9C),
&N(D_80247C70_8E1D70), &N(D_80247C44_8E1D44), &N(D_80247C18_8E1D18), &N(D_80247BEC_8E1CEC),
&N(D_80247BC0_8E1CC0), &N(D_80247B94_8E1C94), &N(D_80247B68_8E1C68), &N(D_80247B3C_8E1C3C),
&N(D_80247B10_8E1C10), &N(D_80247AE4_8E1BE4), &N(D_80247AB8_8E1BB8), &N(D_80247A8C_8E1B8C),
&N(D_80247A60_8E1B60), &N(D_80247A34_8E1B34), &N(D_80247A08_8E1B08), &N(D_802479DC_8E1ADC),
&N(D_802479B0_8E1AB0), &N(D_80247984_8E1A84), &N(D_80247958_8E1A58), &N(D_8024792C_8E1A2C),
&N(D_80247900_8E1A00), &N(D_802478D4_8E19D4), &N(D_802478A8_8E19A8), &N(D_8024787C_8E197C),
&N(D_80247850_8E1950), &N(D_80247824_8E1924), &N(D_802477F8_8E18F8), &N(D_802477CC_8E18CC),
&N(D_802477A0_8E18A0), &N(D_80247774_8E1874), &N(D_80247748_8E1848), &N(D_8024771C_8E181C),
&N(D_802476F0_8E17F0), &N(D_802476C4_8E17C4), &N(D_80247698_8E1798), &N(D_8024766C_8E176C),
&N(D_80247640_8E1740), &N(D_80247614_8E1714), &N(D_802475E8_8E16E8), &N(D_802475BC_8E16BC),
&N(D_80247590_8E1690), &N(D_80247564_8E1664), &N(D_80247538_8E1638), &N(D_8024750C_8E160C),
&N(D_802474E0_8E15E0), &N(D_802474B4_8E15B4), &N(D_80247488_8E1588), &N(D_8024745C_8E155C),
&N(D_80247430_8E1530), &N(D_80247404_8E1504), &N(D_802473D8_8E14D8), &N(D_802473AC_8E14AC),
&N(D_80247380_8E1480), &N(D_80247354_8E1454), &N(D_80247328_8E1428), &N(D_802472FC_8E13FC),
&N(D_802472D0_8E13D0), &N(D_802472A4_8E13A4), &N(D_80247278_8E1378), &N(D_8024724C_8E134C),
&N(D_80247220_8E1320), &N(D_802471F4_8E12F4), &N(D_802471C8_8E12C8), &N(D_8024719C_8E129C),
&N(D_80247170_8E1270), &N(D_80247144_8E1244), &N(D_80247118_8E1218), &N(D_802470EC_8E11EC),
&N(D_802470C0_8E11C0), &N(D_80247094_8E1194), &N(D_80247068_8E1168), &N(D_8024703C_8E113C),
&N(D_80247010_8E1110), NULL
};

File diff suppressed because it is too large Load Diff

View File

@ -63,14 +63,14 @@ EvtScript N(EVS_NpcIdle_Goomba) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Goomba_Idle)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_F8, 0)
EVT_CALL(func_802CFE2C, NPC_SELF, 0x00002000)
EVT_CALL(func_802CFD30, NPC_SELF, 5, 6, 1, 1, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_5, 6, 1, 1, 0)
EVT_WAIT(12)
EVT_WAIT(5)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_32C, 0)
EVT_CALL(EnableNpcShadow, NPC_SELF, TRUE)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(0.6))
EVT_CALL(NpcJump0, NPC_SELF, -35, 0, 30, 23)
EVT_CALL(func_802CFD30, NPC_SELF, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(InterpNpcYaw, NPC_SELF, 90, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_40000 | NPC_FLAG_200000, FALSE)
EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAGS_20, 0)

View File

@ -1,16 +0,0 @@
#include "kmr_22.h"
static char* N(exit_str_0) = "kpa_63";
static char* N(exit_str_1) = "sam_02";
static char* N(exit_str_2) = "flo_00";
static char* N(exit_str_3) = "jan_00";
static char* N(exit_str_4) = "omo_03";
static char* N(exit_str_5) = "mim_01";
static char* N(exit_str_6) = "iwa_10";
static char* N(exit_str_7) = "nok_11";
static char* N(exit_str_8) = "kmr_00";
static char* N(exit_str_9) = "";
ApiStatus func_80240000_8FF670(Evt* script, s32 isInitialCall) {
return ApiStatus_DONE1;
}

View File

@ -1,83 +0,0 @@
#include "kmr_22.h"
#include "effects.h"
extern s16 D_80240DE0_900450[];
BSS EffectInstance* D_802483C0;
BSS s32 D_802483C4;
ApiStatus func_80240010_8FF680(Evt* script, s32 isInitialCall) {
s32 var_s0 = script->varTable[0];
s32 x, y;
s32 xOffset = 0;
if (var_s0 == 0) {
var_s0 = 9;
xOffset = 38;
}
if (isInitialCall) {
set_curtain_scale_goal(1.0f);
D_802483C0 = fx_chapter_change(var_s0, 100.0f, 100.0f, 0.0f, 1.0f, 0);
D_802483C4 = 0;
}
x = xOffset + 117;
if (D_802483C4 >= 0) {
if (D_802483C4 < 0x14) {
x -= D_80240DE0_900450[D_802483C4];
}
} else {
x = xOffset - 193;
}
y = 58;
D_802483C0->data.chapterChange->chapterPos.x = x;
D_802483C0->data.chapterChange->chapterPos.y = y;
x = xOffset + 117;
if (D_802483C4 >= 10) {
if (D_802483C4 < 30) {
y -= D_80240DE0_900450[D_802483C4 - 10];
}
} else {
y = -252;
}
D_802483C0->data.chapterChange->endOfPos.x = x;
D_802483C0->data.chapterChange->endOfPos.y = y;
x = 280;
if (D_802483C4 >= 20) {
if (D_802483C4 < 40) {
x += D_80240DE0_900450[D_802483C4 - 20];
}
} else {
x = 590;
}
y = 90;
D_802483C0->data.chapterChange->unk_40 = x;
D_802483C0->data.chapterChange->unk_44 = y;
D_802483C4++;
return ApiStatus_BLOCK;
}
ApiStatus func_802401E0_8FF850(Evt* script, s32 isInitialCall) {
set_curtain_scale_goal(2.0f);
return ApiStatus_DONE2;
}
ApiStatus func_80240208_8FF878(Evt* script, s32 isInitialCall) {
ApiStatus ret;
if (gGameStatusPtr->pressedButtons[0] & BUTTON_START) {
ret = ApiStatus_DONE2;
} else {
ret = ApiStatus_BLOCK;
}
if (gGameStatusPtr->pressedButtons[0] & BUTTON_A) {
ret = ApiStatus_DONE2;
script->varTable[0] = -1;
}
return ret;
}

View File

@ -2,9 +2,76 @@
/// @brief Goomba Region - Chapter Start
#include "common.h"
#include "../kmr.h"
#include "message_ids.h"
#include "map.h"
#include "../kmr.h"
#include "mapfs/kmr_22_shape.h"
#include "mapfs/kmr_22_hit.h"
#include "sprite/npc/Tutankoopa.h"
#include "sprite/npc/ChainChomp.h"
#include "sprite/npc/WorldTubba.h"
#include "sprite/npc/GeneralGuy.h"
#include "sprite/npc/HuffNPuff.h"
#include "sprite/npc/TuffPuff.h"
#include "sprite/npc/CrystalKing.h"
#include "sprite/npc/WorldBowser.h"
enum {
NPC_Eldstar = 0,
NPC_Mamar = 1,
NPC_Skolar = 2,
NPC_Muskular = 3,
NPC_Misstar = 4,
NPC_Klevar = 5,
NPC_Kalmar = 6,
NPC_KoopaBros_01 = 7,
NPC_KoopaBros_02 = 8,
NPC_KoopaBros_03 = 9,
NPC_KoopaBros_04 = 10,
NPC_Tutankoopa = 11,
NPC_ChainChomp_01 = 12,
NPC_ChainChomp_02 = 13,
NPC_ChainChomp_03 = 14,
NPC_ChainChomp_04 = 15,
NPC_ChainChomp_05 = 16,
NPC_Tubba = 17,
NPC_GeneralGuy = 18,
NPC_ShyGuy_01 = 19,
NPC_ShyGuy_02 = 20,
NPC_LavaPiranhaHead = 21,
NPC_LavaBud_01 = 22,
NPC_LavaBud_02 = 23,
NPC_HuffNPuff_Body = 25,
NPC_HuffNPuff_Face = 26,
NPC_HuffNPuff_Arms = 27,
NPC_TuffPuff_01 = 28,
NPC_TuffPuff_02 = 29,
NPC_CrystalKing = 30,
NPC_IceCube = 31,
NPC_IceSphere = 32,
NPC_IceSpike = 33,
NPC_Bowser = 34,
};
enum {
MV_VinesData = MapVar(0),
MV_BossDefeated = MapVar(10),
};
#define NAMESPACE kmr_22
extern EvtScript N(EVS_Main);
extern NpcGroupList N(NpcGroup_Chapter1);
extern NpcGroupList N(NpcGroup_Chapter2);
extern NpcGroupList N(NpcGroup_Chapter3);
extern NpcGroupList N(NpcGroup_Chapter4);
extern NpcGroupList N(NpcGroup_Chapter5);
extern NpcGroupList N(NpcGroup_Chapter6);
extern NpcGroupList N(NpcGroup_Chapter7);
extern NpcGroupList N(NpcGroup_Chapter8);
extern API_CALLABLE(SetAnimatorFlags);
extern API_CALLABLE(GetAnimatedPositionByTreeIndex);
extern API_CALLABLE(GetAnimatedRotationByTreeIndex);

View File

@ -0,0 +1,23 @@
#include "kmr_22.h"
s32 N(map_init)(void) {
return TRUE;
}
EntryList N(Entrances) = {
[kmr_22_ENTRY_0] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_1] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_2] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_3] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_4] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_5] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_6] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_7] { 0.0, 0.0, 0.0, 90.0 },
[kmr_22_ENTRY_8] { 0.0, 0.0, 0.0, 90.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};

View File

@ -0,0 +1,186 @@
#include "kmr_22.h"
#include "effects.h"
BSS EffectInstance* N(ChapterEffect);
BSS s32 N(ChapterEffectTime);
s16 N(AnimTextOffsets)[] = {
310, 290, 270, 250, 230,
210, 190, 170, 150, 130,
110, 90, 70, 50, 32,
16, 8, 4, 2, 1,
};
API_CALLABLE(N(ManageEffects)) {
s32 var_s0 = script->varTable[0];
s32 x, y;
s32 xOffset = 0;
if (var_s0 == 0) {
var_s0 = 9;
xOffset = 38;
}
if (isInitialCall) {
set_curtain_scale_goal(1.0f);
N(ChapterEffect) = fx_chapter_change(var_s0, 100.0f, 100.0f, 0.0f, 1.0f, 0);
N(ChapterEffectTime) = 0;
}
x = xOffset + 117;
if (N(ChapterEffectTime) >= 0) {
if (N(ChapterEffectTime) < 20) {
x -= N(AnimTextOffsets)[N(ChapterEffectTime)];
}
} else {
x = xOffset - 193;
}
y = 58;
N(ChapterEffect)->data.chapterChange->chapterPos.x = x;
N(ChapterEffect)->data.chapterChange->chapterPos.y = y;
x = xOffset + 117;
if (N(ChapterEffectTime) >= 10) {
if (N(ChapterEffectTime) < 30) {
y -= N(AnimTextOffsets)[N(ChapterEffectTime) - 10];
}
} else {
y = -252;
}
N(ChapterEffect)->data.chapterChange->endOfPos.x = x;
N(ChapterEffect)->data.chapterChange->endOfPos.y = y;
x = 280;
if (N(ChapterEffectTime) >= 20) {
if (N(ChapterEffectTime) < 40) {
x += N(AnimTextOffsets)[N(ChapterEffectTime) - 20];
}
} else {
x = 590;
}
y = 90;
N(ChapterEffect)->data.chapterChange->unk_40 = x;
N(ChapterEffect)->data.chapterChange->unk_44 = y;
N(ChapterEffectTime)++;
return ApiStatus_BLOCK;
}
API_CALLABLE(N(DismissCurtains)) {
set_curtain_scale_goal(2.0f);
return ApiStatus_DONE2;
}
API_CALLABLE(N(WaitForContinueInput)) {
ApiStatus ret;
if (gGameStatusPtr->pressedButtons[0] & BUTTON_START) {
ret = ApiStatus_DONE2;
} else {
ret = ApiStatus_BLOCK;
}
if (gGameStatusPtr->pressedButtons[0] & BUTTON_A) {
ret = ApiStatus_DONE2;
script->varTable[0] = -1;
}
return ret;
}
EvtScript N(EVS_EnterMap) = {
EVT_CALL(GetEntryID, LVar0)
EVT_THREAD
EVT_CALL(N(ManageEffects))
EVT_END_THREAD
EVT_WAIT(50)
EVT_CALL(N(WaitForContinueInput))
EVT_CALL(FadeOutMusic, 0, 2000)
EVT_WAIT(30)
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(kmr_22_ENTRY_0)
EVT_CALL(GotoMapSpecial, EVT_PTR("kmr_00"), kmr_00_ENTRY_0, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_1)
EVT_CALL(GotoMapSpecial, EVT_PTR("nok_11"), nok_11_ENTRY_0, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_2)
EVT_CALL(GotoMapSpecial, EVT_PTR("iwa_10"), iwa_10_ENTRY_0, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_3)
EVT_CALL(GotoMapSpecial, EVT_PTR("mim_01"), mim_01_ENTRY_1, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_4)
EVT_CALL(GotoMapSpecial, EVT_PTR("omo_03"), omo_03_ENTRY_4, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_5)
EVT_CALL(GotoMapSpecial, EVT_PTR("jan_00"), jan_00_ENTRY_0, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_6)
EVT_CALL(GotoMapSpecial, EVT_PTR("flo_00"), flo_00_ENTRY_0, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_7)
EVT_CALL(GotoMapSpecial, EVT_PTR("sam_02"), sam_02_ENTRY_2, TRANSITION_6)
EVT_CASE_EQ(kmr_22_ENTRY_8)
EVT_CALL(GotoMapSpecial, EVT_PTR("kpa_63"), kpa_63_ENTRY_1, TRANSITION_6)
EVT_END_SWITCH
EVT_CALL(N(DismissCurtains))
EVT_WAIT(100)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_Main) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(GetEntryID, LVar0)
EVT_IF_EQ(LVar0, kmr_22_ENTRY_0)
EVT_CALL(SetPlayerPos, -200, 0, 0)
EVT_ELSE
EVT_CALL(SetPlayerPos, -95, 0, 0)
EVT_END_IF
EVT_CALL(SetPlayerFlagBits, PS_FLAGS_NO_FLIPPING, TRUE)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_WAIT(1)
EVT_CALL(SetPlayerAnimation, ANIM_Mario_BeforeJump)
EVT_CALL(GetCurrentPartnerID, LVar0)
EVT_IF_NE(LVar0, PARTNER_NONE)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, FALSE)
EVT_CALL(SetNpcPos, NPC_PARTNER, 0, -1000, 0)
EVT_END_IF
EVT_CALL(SetSpriteShading, SHADING_NONE)
EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, CAM_DEFAULT, 208, 208, 208)
EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE)
EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE)
EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE)
EVT_CALL(SetCamPitch, CAM_DEFAULT, 0, 0)
EVT_CALL(SetCamDistance, CAM_DEFAULT, 440)
EVT_CALL(SetCamPosA, CAM_DEFAULT, 0, 100)
EVT_CALL(SetCamPosB, CAM_DEFAULT, 0, 0)
EVT_CALL(SetCamPosC, CAM_DEFAULT, 0, 65)
EVT_CALL(SetPanTarget, CAM_DEFAULT, 0, 0, 0)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0))
EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1)
EVT_CALL(GetEntryID, LVar0)
EVT_SWITCH(LVar0)
EVT_CASE_EQ(kmr_22_ENTRY_1)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter1)))
EVT_CASE_EQ(kmr_22_ENTRY_2)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter2)))
EVT_CASE_EQ(kmr_22_ENTRY_3)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter3)))
EVT_CASE_EQ(kmr_22_ENTRY_4)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter4)))
EVT_CASE_EQ(kmr_22_ENTRY_5)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter5)))
EVT_CASE_EQ(kmr_22_ENTRY_6)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter6)))
EVT_CASE_EQ(kmr_22_ENTRY_7)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter7)))
EVT_CASE_EQ(kmr_22_ENTRY_8)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup_Chapter8)))
EVT_END_SWITCH
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_WAIT(1)
EVT_EXEC(N(EVS_EnterMap))
EVT_CALL(SetMusicTrack, 0, SONG_CHAPTER_START, 0, 8)
EVT_CALL(ClearAmbientSounds, 250)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,809 @@
#include "kmr_22.h"
#include "world/common/npc/StarSpirit.h"
#include "world/common/npc/KoopaBros.h"
#include "world/common/enemy/complete/ShyGuy.h"
MAP_RODATA_PAD(1,npc)
NpcSettings N(NpcSettings_Dummy) = {
.height = 24,
.radius = 24,
.level = 99,
};
// Kolorado?
NpcSettings N(NpcSettings_Unused) = {
.height = 40,
.radius = 24,
.level = 99,
};
#include "npc/lava_piranha.inc.c"
#include "npc/chapter_1.inc.c"
#include "npc/chapter_2.inc.c"
#include "npc/chapter_3.inc.c"
#include "npc/chapter_4.inc.c"
#include "npc/chapter_5.inc.c"
#include "npc/chapter_6.inc.c"
#include "npc/chapter_7.inc.c"
#include "npc/chapter_8.inc.c"
StaticNpc N(NpcData_Chapter1)[] = {
{
.id = NPC_Eldstar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Eldstar),
.drops = ELDSTAR_DROPS,
.animations = ELDSTAR_ANIMS,
},
{
.id = NPC_KoopaBros_01,
.settings = &N(NpcSettings_Dummy),
.pos = { 10.0f, 0.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_KoopaBros),
.drops = KOOPA_BROS_DROPS,
.animations = BLACK_KOOPA_BROS_ANIMS,
},
{
.id = NPC_KoopaBros_02,
.settings = &N(NpcSettings_Dummy),
.pos = { 90.0f, 10.0f, 91.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_KoopaBros),
.drops = KOOPA_BROS_DROPS,
.animations = BLACK_KOOPA_BROS_ANIMS,
},
{
.id = NPC_KoopaBros_03,
.settings = &N(NpcSettings_Dummy),
.pos = { 86.0f, 0.0f, -7.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_KoopaBros),
.drops = KOOPA_BROS_DROPS,
.animations = BLACK_KOOPA_BROS_ANIMS,
},
{
.id = NPC_KoopaBros_04,
.settings = &N(NpcSettings_Dummy),
.pos = { 54.0f, -2.0f, -47.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_KoopaBros),
.drops = KOOPA_BROS_DROPS,
.animations = BLACK_KOOPA_BROS_ANIMS,
},
};
StaticNpc N(NpcData_Chapter2)[] = {
{
.id = NPC_Mamar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Mamar),
.drops = MAMAR_DROPS,
.animations = MAMAR_ANIMS,
},
{
.id = NPC_Tutankoopa,
.settings = &N(NpcSettings_Dummy),
.pos = { 78.0f, 19.0f, 20.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Tutankoopa),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Tutankoopa_Anim01,
.walk = ANIM_Tutankoopa_Anim01,
.run = ANIM_Tutankoopa_Anim01,
.chase = ANIM_Tutankoopa_Anim01,
.anim_4 = ANIM_Tutankoopa_Anim01,
.anim_5 = ANIM_Tutankoopa_Anim01,
.death = ANIM_Tutankoopa_Anim06,
.hit = ANIM_Tutankoopa_Anim06,
.anim_8 = ANIM_Tutankoopa_Anim01,
.anim_9 = ANIM_Tutankoopa_Anim01,
.anim_A = ANIM_Tutankoopa_Anim01,
.anim_B = ANIM_Tutankoopa_Anim01,
.anim_C = ANIM_Tutankoopa_Anim01,
.anim_D = ANIM_Tutankoopa_Anim01,
.anim_E = ANIM_Tutankoopa_Anim01,
.anim_F = ANIM_Tutankoopa_Anim01,
},
},
{
.id = NPC_ChainChomp_01,
.settings = &N(NpcSettings_Dummy),
.pos = { 23.0f, -4.0f, -180.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_ChainChomp),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_ChainChomp_Anim00,
.walk = ANIM_ChainChomp_Anim00,
.run = ANIM_ChainChomp_Anim00,
.chase = ANIM_ChainChomp_Anim00,
.anim_4 = ANIM_ChainChomp_Anim00,
.anim_5 = ANIM_ChainChomp_Anim00,
.death = ANIM_ChainChomp_Anim00,
.hit = ANIM_ChainChomp_Anim00,
.anim_8 = ANIM_ChainChomp_Anim00,
.anim_9 = ANIM_ChainChomp_Anim00,
.anim_A = ANIM_ChainChomp_Anim00,
.anim_B = ANIM_ChainChomp_Anim00,
.anim_C = ANIM_ChainChomp_Anim00,
.anim_D = ANIM_ChainChomp_Anim00,
.anim_E = ANIM_ChainChomp_Anim00,
.anim_F = ANIM_ChainChomp_Anim00,
},
},
{
.id = NPC_ChainChomp_02,
.settings = &N(NpcSettings_Dummy),
.pos = { 23.0f, -4.0f, -180.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_ChainChomp_Anim00,
.walk = ANIM_ChainChomp_Anim00,
.run = ANIM_ChainChomp_Anim00,
.chase = ANIM_ChainChomp_Anim00,
.anim_4 = ANIM_ChainChomp_Anim00,
.anim_5 = ANIM_ChainChomp_Anim00,
.death = ANIM_ChainChomp_Anim00,
.hit = ANIM_ChainChomp_Anim00,
.anim_8 = ANIM_ChainChomp_Anim00,
.anim_9 = ANIM_ChainChomp_Anim00,
.anim_A = ANIM_ChainChomp_Anim00,
.anim_B = ANIM_ChainChomp_Anim00,
.anim_C = ANIM_ChainChomp_Anim00,
.anim_D = ANIM_ChainChomp_Anim00,
.anim_E = ANIM_ChainChomp_Anim00,
.anim_F = ANIM_ChainChomp_Anim00,
},
},
{
.id = NPC_ChainChomp_03,
.settings = &N(NpcSettings_Dummy),
.pos = { 23.0f, -4.0f, -180.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_ChainChomp_Anim00,
.walk = ANIM_ChainChomp_Anim00,
.run = ANIM_ChainChomp_Anim00,
.chase = ANIM_ChainChomp_Anim00,
.anim_4 = ANIM_ChainChomp_Anim00,
.anim_5 = ANIM_ChainChomp_Anim00,
.death = ANIM_ChainChomp_Anim00,
.hit = ANIM_ChainChomp_Anim00,
.anim_8 = ANIM_ChainChomp_Anim00,
.anim_9 = ANIM_ChainChomp_Anim00,
.anim_A = ANIM_ChainChomp_Anim00,
.anim_B = ANIM_ChainChomp_Anim00,
.anim_C = ANIM_ChainChomp_Anim00,
.anim_D = ANIM_ChainChomp_Anim00,
.anim_E = ANIM_ChainChomp_Anim00,
.anim_F = ANIM_ChainChomp_Anim00,
},
},
{
.id = NPC_ChainChomp_04,
.settings = &N(NpcSettings_Dummy),
.pos = { 23.0f, -4.0f, -180.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_ChainChomp_Anim00,
.walk = ANIM_ChainChomp_Anim00,
.run = ANIM_ChainChomp_Anim00,
.chase = ANIM_ChainChomp_Anim00,
.anim_4 = ANIM_ChainChomp_Anim00,
.anim_5 = ANIM_ChainChomp_Anim00,
.death = ANIM_ChainChomp_Anim00,
.hit = ANIM_ChainChomp_Anim00,
.anim_8 = ANIM_ChainChomp_Anim00,
.anim_9 = ANIM_ChainChomp_Anim00,
.anim_A = ANIM_ChainChomp_Anim00,
.anim_B = ANIM_ChainChomp_Anim00,
.anim_C = ANIM_ChainChomp_Anim00,
.anim_D = ANIM_ChainChomp_Anim00,
.anim_E = ANIM_ChainChomp_Anim00,
.anim_F = ANIM_ChainChomp_Anim00,
},
},
{
.id = NPC_ChainChomp_05,
.settings = &N(NpcSettings_Dummy),
.pos = { 23.0f, -4.0f, -180.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_ChainChomp_Anim00,
.walk = ANIM_ChainChomp_Anim00,
.run = ANIM_ChainChomp_Anim00,
.chase = ANIM_ChainChomp_Anim00,
.anim_4 = ANIM_ChainChomp_Anim00,
.anim_5 = ANIM_ChainChomp_Anim00,
.death = ANIM_ChainChomp_Anim00,
.hit = ANIM_ChainChomp_Anim00,
.anim_8 = ANIM_ChainChomp_Anim00,
.anim_9 = ANIM_ChainChomp_Anim00,
.anim_A = ANIM_ChainChomp_Anim00,
.anim_B = ANIM_ChainChomp_Anim00,
.anim_C = ANIM_ChainChomp_Anim00,
.anim_D = ANIM_ChainChomp_Anim00,
.anim_E = ANIM_ChainChomp_Anim00,
.anim_F = ANIM_ChainChomp_Anim00,
},
},
};
StaticNpc N(NpcData_Chapter3)[] = {
{
.id = NPC_Skolar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Skolar),
.drops = SKOLAR_DROPS,
.animations = SKOLAR_ANIMS,
},
{
.id = NPC_Tubba,
.settings = &N(NpcSettings_Dummy),
.pos = { 54.0f, -1.0f, 1.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Tubba),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_WorldTubba_Anim06,
.walk = ANIM_WorldTubba_Anim09,
.run = ANIM_WorldTubba_Anim0C,
.chase = ANIM_WorldTubba_Anim0C,
.anim_4 = ANIM_WorldTubba_Anim00,
.anim_5 = ANIM_WorldTubba_Anim00,
.death = ANIM_WorldTubba_Anim00,
.hit = ANIM_WorldTubba_Anim00,
.anim_8 = ANIM_WorldTubba_Anim00,
.anim_9 = ANIM_WorldTubba_Anim00,
.anim_A = ANIM_WorldTubba_Anim00,
.anim_B = ANIM_WorldTubba_Anim00,
.anim_C = ANIM_WorldTubba_Anim00,
.anim_D = ANIM_WorldTubba_Anim00,
.anim_E = ANIM_WorldTubba_Anim00,
.anim_F = ANIM_WorldTubba_Anim00,
},
},
};
StaticNpc N(NpcData_Chapter4)[] = {
{
.id = NPC_Muskular,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Muskular),
.drops = MUSKULAR_DROPS,
.animations = MUSKULAR_ANIMS,
},
{
.id = NPC_GeneralGuy,
.settings = &N(NpcSettings_Dummy),
.pos = { 97.0f, 0.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_GeneralGuy),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_GeneralGuy_Anim02,
.walk = ANIM_GeneralGuy_Anim02,
.run = ANIM_GeneralGuy_Anim02,
.chase = ANIM_GeneralGuy_Anim02,
.anim_4 = ANIM_GeneralGuy_Anim02,
.anim_5 = ANIM_GeneralGuy_Anim02,
.death = ANIM_GeneralGuy_Anim02,
.hit = ANIM_GeneralGuy_Anim02,
.anim_8 = ANIM_GeneralGuy_Anim02,
.anim_9 = ANIM_GeneralGuy_Anim02,
.anim_A = ANIM_GeneralGuy_Anim02,
.anim_B = ANIM_GeneralGuy_Anim02,
.anim_C = ANIM_GeneralGuy_Anim02,
.anim_D = ANIM_GeneralGuy_Anim02,
.anim_E = ANIM_GeneralGuy_Anim02,
.anim_F = ANIM_GeneralGuy_Anim02,
},
},
{
.id = NPC_ShyGuy_01,
.settings = &N(NpcSettings_Dummy),
.pos = { 17.0f, 0.0f, -14.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_ShyGuy),
.drops = SHY_GUY_NO_DROPS,
.animations = RED_SHY_GUY_ANIMS,
},
{
.id = NPC_ShyGuy_02,
.settings = &N(NpcSettings_Dummy),
.pos = { 47.0f, 0.0f, 25.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_ShyGuy),
.drops = SHY_GUY_NO_DROPS,
.animations = RED_SHY_GUY_ANIMS,
},
};
StaticNpc N(NpcData_Chapter5)[] = {
{
.id = NPC_Misstar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Misstar),
.drops = MISSTAR_DROPS,
.animations = MISSTAR_ANIMS,
},
{
.id = NPC_LavaPiranhaHead,
.settings = &N(NpcSettings_Dummy),
.pos = { 0.0f, 0.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_4,
.init = &N(EVS_NpcInit_LavaPiranhaHead),
.drops = LAVA_PIRANHA_NO_DROPS,
.animations = LAVA_PIRANHA_HEAD_ANIMS,
.extraAnimations = N(D_80243848_902EB8),
},
{
.id = NPC_LavaBud_01,
.settings = &N(NpcSettings_Dummy),
.pos = { 0.0f, 0.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4,
.init = &N(EVS_NpcInit_LavaBud_01),
.drops = LAVA_PIRANHA_NO_DROPS,
.animations = LAVA_PIRANHA_BUD_ANIMS,
.extraAnimations = N(D_80243854_902EC4),
},
{
.id = NPC_LavaBud_02,
.settings = &N(NpcSettings_Dummy),
.pos = { 0.0f, 0.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4,
.init = &N(EVS_NpcInit_LavaBud_01),
.drops = LAVA_PIRANHA_NO_DROPS,
.animations = LAVA_PIRANHA_BUD_ANIMS,
.extraAnimations = N(D_80243854_902EC4),
},
};
StaticNpc N(NpcData_Chapter6)[] = {
{
.id = NPC_Klevar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Klevar),
.drops = KLEVAR_DROPS,
.animations = KLEVAR_ANIMS,
},
{
.id = NPC_HuffNPuff_Body,
.settings = &N(NpcSettings_Dummy),
.pos = { 70.0f, 109.0f, 1.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_HuffNPuff_Body),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_HuffNPuff_Anim01,
.walk = ANIM_HuffNPuff_Anim01,
.run = ANIM_HuffNPuff_Anim01,
.chase = ANIM_HuffNPuff_Anim01,
.anim_4 = ANIM_HuffNPuff_Anim01,
.anim_5 = ANIM_HuffNPuff_Anim01,
.death = ANIM_HuffNPuff_Anim01,
.hit = ANIM_HuffNPuff_Anim01,
.anim_8 = ANIM_HuffNPuff_Anim01,
.anim_9 = ANIM_HuffNPuff_Anim01,
.anim_A = ANIM_HuffNPuff_Anim01,
.anim_B = ANIM_HuffNPuff_Anim01,
.anim_C = ANIM_HuffNPuff_Anim01,
.anim_D = ANIM_HuffNPuff_Anim01,
.anim_E = ANIM_HuffNPuff_Anim01,
.anim_F = ANIM_HuffNPuff_Anim01,
},
},
{
.id = NPC_HuffNPuff_Face,
.settings = &N(NpcSettings_Dummy),
.pos = { 70.0f, 109.0f, 1.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_HuffNPuff_Face),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_HuffNPuff_Anim01,
.walk = ANIM_HuffNPuff_Anim01,
.run = ANIM_HuffNPuff_Anim01,
.chase = ANIM_HuffNPuff_Anim01,
.anim_4 = ANIM_HuffNPuff_Anim01,
.anim_5 = ANIM_HuffNPuff_Anim01,
.death = ANIM_HuffNPuff_Anim01,
.hit = ANIM_HuffNPuff_Anim01,
.anim_8 = ANIM_HuffNPuff_Anim01,
.anim_9 = ANIM_HuffNPuff_Anim01,
.anim_A = ANIM_HuffNPuff_Anim01,
.anim_B = ANIM_HuffNPuff_Anim01,
.anim_C = ANIM_HuffNPuff_Anim01,
.anim_D = ANIM_HuffNPuff_Anim01,
.anim_E = ANIM_HuffNPuff_Anim01,
.anim_F = ANIM_HuffNPuff_Anim01,
},
},
{
.id = NPC_HuffNPuff_Arms,
.settings = &N(NpcSettings_Dummy),
.pos = { 70.0f, 109.0f, 1.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_HuffNPuff_Arms),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_HuffNPuff_Anim01,
.walk = ANIM_HuffNPuff_Anim01,
.run = ANIM_HuffNPuff_Anim01,
.chase = ANIM_HuffNPuff_Anim01,
.anim_4 = ANIM_HuffNPuff_Anim01,
.anim_5 = ANIM_HuffNPuff_Anim01,
.death = ANIM_HuffNPuff_Anim01,
.hit = ANIM_HuffNPuff_Anim01,
.anim_8 = ANIM_HuffNPuff_Anim01,
.anim_9 = ANIM_HuffNPuff_Anim01,
.anim_A = ANIM_HuffNPuff_Anim01,
.anim_B = ANIM_HuffNPuff_Anim01,
.anim_C = ANIM_HuffNPuff_Anim01,
.anim_D = ANIM_HuffNPuff_Anim01,
.anim_E = ANIM_HuffNPuff_Anim01,
.anim_F = ANIM_HuffNPuff_Anim01,
},
},
{
.id = NPC_TuffPuff_01,
.settings = &N(NpcSettings_Dummy),
.pos = { 60.0f, 40.0f, -50.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_TuffPuff_01),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_TuffPuff_Still,
.walk = ANIM_TuffPuff_Still,
.run = ANIM_TuffPuff_Grin,
.chase = ANIM_TuffPuff_Grin,
.anim_4 = ANIM_TuffPuff_Still,
.anim_5 = ANIM_TuffPuff_Still,
.death = ANIM_TuffPuff_Hurt,
.hit = ANIM_TuffPuff_Hurt,
.anim_8 = ANIM_TuffPuff_Grin,
.anim_9 = ANIM_TuffPuff_Idle,
.anim_A = ANIM_TuffPuff_Idle,
.anim_B = ANIM_TuffPuff_Idle,
.anim_C = ANIM_TuffPuff_Idle,
.anim_D = ANIM_TuffPuff_Idle,
.anim_E = ANIM_TuffPuff_Idle,
.anim_F = ANIM_TuffPuff_Idle,
},
},
{
.id = NPC_TuffPuff_02,
.settings = &N(NpcSettings_Dummy),
.pos = { 14.0f, 61.0f, 1.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_TuffPuff_Still,
.walk = ANIM_TuffPuff_Still,
.run = ANIM_TuffPuff_Grin,
.chase = ANIM_TuffPuff_Grin,
.anim_4 = ANIM_TuffPuff_Still,
.anim_5 = ANIM_TuffPuff_Still,
.death = ANIM_TuffPuff_Hurt,
.hit = ANIM_TuffPuff_Hurt,
.anim_8 = ANIM_TuffPuff_Grin,
.anim_9 = ANIM_TuffPuff_Idle,
.anim_A = ANIM_TuffPuff_Idle,
.anim_B = ANIM_TuffPuff_Idle,
.anim_C = ANIM_TuffPuff_Idle,
.anim_D = ANIM_TuffPuff_Idle,
.anim_E = ANIM_TuffPuff_Idle,
.anim_F = ANIM_TuffPuff_Idle,
},
},
};
StaticNpc N(NpcData_Chapter7)[] = {
{
.id = NPC_Kalmar,
.settings = &N(NpcSettings_Dummy),
.pos = { -62.0f, 96.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Kalmar),
.drops = KALMAR_DROPS,
.animations = KALMAR_ANIMS,
},
{
.id = NPC_CrystalKing,
.settings = &N(NpcSettings_Dummy),
.pos = { 60.0f, -2.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_CrystalKing),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_CrystalKing_Anim09,
.walk = ANIM_CrystalKing_Anim09,
.run = ANIM_CrystalKing_Anim09,
.chase = ANIM_CrystalKing_Anim09,
.anim_4 = ANIM_CrystalKing_Anim09,
.anim_5 = ANIM_CrystalKing_Anim09,
.death = ANIM_CrystalKing_Anim09,
.hit = ANIM_CrystalKing_Anim09,
.anim_8 = ANIM_CrystalKing_Anim09,
.anim_9 = ANIM_CrystalKing_Anim09,
.anim_A = ANIM_CrystalKing_Anim09,
.anim_B = ANIM_CrystalKing_Anim09,
.anim_C = ANIM_CrystalKing_Anim09,
.anim_D = ANIM_CrystalKing_Anim09,
.anim_E = ANIM_CrystalKing_Anim09,
.anim_F = ANIM_CrystalKing_Anim09,
},
},
{
.id = NPC_IceCube,
.settings = &N(NpcSettings_Dummy),
.pos = { 10.0f, 31.0f, -12.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_IceCube),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_CrystalKing_Anim09,
.walk = ANIM_CrystalKing_Anim09,
.run = ANIM_CrystalKing_Anim09,
.chase = ANIM_CrystalKing_Anim09,
.anim_4 = ANIM_CrystalKing_Anim09,
.anim_5 = ANIM_CrystalKing_Anim09,
.death = ANIM_CrystalKing_Anim09,
.hit = ANIM_CrystalKing_Anim09,
.anim_8 = ANIM_CrystalKing_Anim09,
.anim_9 = ANIM_CrystalKing_Anim09,
.anim_A = ANIM_CrystalKing_Anim09,
.anim_B = ANIM_CrystalKing_Anim09,
.anim_C = ANIM_CrystalKing_Anim09,
.anim_D = ANIM_CrystalKing_Anim09,
.anim_E = ANIM_CrystalKing_Anim09,
.anim_F = ANIM_CrystalKing_Anim09,
},
},
{
.id = NPC_IceSphere,
.settings = &N(NpcSettings_Dummy),
.pos = { 40.0f, 68.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_IceSphere),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_CrystalKing_Anim09,
.walk = ANIM_CrystalKing_Anim09,
.run = ANIM_CrystalKing_Anim09,
.chase = ANIM_CrystalKing_Anim09,
.anim_4 = ANIM_CrystalKing_Anim09,
.anim_5 = ANIM_CrystalKing_Anim09,
.death = ANIM_CrystalKing_Anim09,
.hit = ANIM_CrystalKing_Anim09,
.anim_8 = ANIM_CrystalKing_Anim09,
.anim_9 = ANIM_CrystalKing_Anim09,
.anim_A = ANIM_CrystalKing_Anim09,
.anim_B = ANIM_CrystalKing_Anim09,
.anim_C = ANIM_CrystalKing_Anim09,
.anim_D = ANIM_CrystalKing_Anim09,
.anim_E = ANIM_CrystalKing_Anim09,
.anim_F = ANIM_CrystalKing_Anim09,
},
},
{
.id = NPC_IceSpike,
.settings = &N(NpcSettings_Dummy),
.pos = { 96.0f, 53.0f, 0.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_IceSpike),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_CrystalKing_Anim09,
.walk = ANIM_CrystalKing_Anim09,
.run = ANIM_CrystalKing_Anim09,
.chase = ANIM_CrystalKing_Anim09,
.anim_4 = ANIM_CrystalKing_Anim09,
.anim_5 = ANIM_CrystalKing_Anim09,
.death = ANIM_CrystalKing_Anim09,
.hit = ANIM_CrystalKing_Anim09,
.anim_8 = ANIM_CrystalKing_Anim09,
.anim_9 = ANIM_CrystalKing_Anim09,
.anim_A = ANIM_CrystalKing_Anim09,
.anim_B = ANIM_CrystalKing_Anim09,
.anim_C = ANIM_CrystalKing_Anim09,
.anim_D = ANIM_CrystalKing_Anim09,
.anim_E = ANIM_CrystalKing_Anim09,
.anim_F = ANIM_CrystalKing_Anim09,
},
},
};
StaticNpc N(NpcData_Chapter8) = {
.id = NPC_Bowser,
.settings = &N(NpcSettings_Dummy),
.pos = { 58.0f, 0.0f, 20.0f },
.yaw = 270,
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_Bowser),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_WorldBowser_Idle,
.walk = ANIM_WorldBowser_Idle,
.run = ANIM_WorldBowser_Idle,
.chase = ANIM_WorldBowser_Idle,
.anim_4 = ANIM_WorldBowser_Idle,
.anim_5 = ANIM_WorldBowser_Idle,
.death = ANIM_WorldBowser_Idle,
.hit = ANIM_WorldBowser_Idle,
.anim_8 = ANIM_WorldBowser_Idle,
.anim_9 = ANIM_WorldBowser_Idle,
.anim_A = ANIM_WorldBowser_Idle,
.anim_B = ANIM_WorldBowser_Idle,
.anim_C = ANIM_WorldBowser_Idle,
.anim_D = ANIM_WorldBowser_Idle,
.anim_E = ANIM_WorldBowser_Idle,
.anim_F = ANIM_WorldBowser_Idle,
},
};
NpcGroupList N(NpcGroup_Chapter1) = {
NPC_GROUP(N(NpcData_Chapter1)),
{}
};
NpcGroupList N(NpcGroup_Chapter2) = {
NPC_GROUP(N(NpcData_Chapter2)),
{}
};
NpcGroupList N(NpcGroup_Chapter3) = {
NPC_GROUP(N(NpcData_Chapter3)),
{}
};
NpcGroupList N(NpcGroup_Chapter4) = {
NPC_GROUP(N(NpcData_Chapter4)),
{}
};
NpcGroupList N(NpcGroup_Chapter5) = {
NPC_GROUP(N(NpcData_Chapter5)),
{}
};
NpcGroupList N(NpcGroup_Chapter6) = {
NPC_GROUP(N(NpcData_Chapter6)),
{}
};
NpcGroupList N(NpcGroup_Chapter7) = {
NPC_GROUP(N(NpcData_Chapter7)),
{}
};
NpcGroupList N(NpcGroup_Chapter8) = {
NPC_GROUP(N(NpcData_Chapter8)),
{}
};

View File

@ -0,0 +1,13 @@
EvtScript N(EVS_NpcInit_Eldstar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldEldstar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_KoopaBros) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_KoopaBros_Black_Anim1B)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,33 @@
EvtScript N(EVS_NpcInit_Mamar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldMamar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_Tutankoopa) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Tutankoopa_Anim08)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_ChainChomp) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_ChainChomp_Anim03)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_SELF, 5, -25, -180)
EVT_CALL(SetNpcAnimation, NPC_ChainChomp_02, ANIM_ChainChomp_Anim02)
EVT_CALL(func_802CFD30, 13, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_ChainChomp_02, 35, -14, -180)
EVT_CALL(SetNpcAnimation, NPC_ChainChomp_03, ANIM_ChainChomp_Anim02)
EVT_CALL(func_802CFD30, 14, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_ChainChomp_03, 52, -18, -180)
EVT_CALL(SetNpcAnimation, NPC_ChainChomp_04, ANIM_ChainChomp_Anim02)
EVT_CALL(func_802CFD30, 15, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_ChainChomp_04, 69, -19, -180)
EVT_CALL(SetNpcAnimation, NPC_ChainChomp_05, ANIM_ChainChomp_Anim02)
EVT_CALL(func_802CFD30, 16, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_ChainChomp_05, 86, -19, -180)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,13 @@
EvtScript N(EVS_NpcInit_Skolar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldSkolar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_Tubba) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim10)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,20 @@
EvtScript N(EVS_NpcInit_Muskular) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldMuskular_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_GeneralGuy) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_GeneralGuy_Anim03)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_ShyGuy) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_ShyGuy_Red_Anim02)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,6 @@
EvtScript N(EVS_NpcInit_Misstar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldMisstar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,41 @@
EvtScript N(EVS_NpcInit_Klevar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldKlevar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_HuffNPuff_Body) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim1A)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_SELF, 40, 45, 1)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_HuffNPuff_Face) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim1B)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_SELF, 40, 45, 1)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_HuffNPuff_Arms) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim1C)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_SELF, 40, 45, 1)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_TuffPuff_01) = {
EVT_CALL(SetNpcAnimation, NPC_TuffPuff_01, ANIM_TuffPuff_Idle)
EVT_CALL(func_802CFD30, 28, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_TuffPuff_01, 120, -1, -51)
EVT_CALL(SetNpcAnimation, NPC_TuffPuff_02, ANIM_TuffPuff_Idle)
EVT_CALL(func_802CFD30, 29, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcPos, NPC_TuffPuff_02, -40, 59, 1)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,34 @@
EvtScript N(EVS_NpcInit_Kalmar) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldKalmar_Still)
EVT_CALL(func_802CFD30, -1, 8, 0, 0, 0, 128)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_CrystalKing) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_CrystalKing_Anim09)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_IceCube) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_CrystalKing_Anim0A)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_IceSphere) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_CrystalKing_Anim0B)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_IceSpike) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_CrystalKing_Anim0C)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,6 @@
EvtScript N(EVS_NpcInit_Bowser) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldBowser_Talk)
EVT_CALL(func_802CFD30, -1, 14, 80, 80, 80, 0)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,234 @@
#include "world/common/enemy/complete/LavaPiranha.h"
#include "world/common/lava_piranha/part1.inc.c"
#include "world/area_kmr/kmr_22/lava_piranha_vine.png.inc.c"
#include "world/area_kmr/kmr_22/lava_piranha_vine.pal.inc.c"
#include "world/area_kmr/kmr_22/lava_piranha_vine.gfx.inc.c"
#include "world/common/lava_piranha/part2.inc.c"
#include "world/common/lava_piranha/LoadAnimationFromTable.inc.c"
EvtScript N(EVS_NpcAux_LavaPiranhaHead) = {
EVT_CALL(GetSelfVar, 0, LVar0)
EVT_USE_ARRAY(LVar0)
EVT_LABEL(0)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaPiranhaHead, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaPiranhaHead, LVar0, 0, LVar2)
EVT_CALL(N(MarkVineInterpolationDirty))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_0, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 7, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 8, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_01, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_01, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_1, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_02, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_02, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_2, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 0, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_LavaPiranhaHead) = {
EVT_CALL(func_802CFD30, 21, 14, 80, 80, 80, 0)
EVT_CALL(func_802CFD30, 22, 14, 80, 80, 80, 0)
EVT_CALL(func_802CFD30, 23, 14, 80, 80, 80, 0)
EVT_CALL(SetNpcAnimation, NPC_LavaPiranhaHead, ANIM_LavaPiranha_Anim03)
EVT_CALL(SetNpcAnimation, NPC_LavaBud_01, ANIM_LavaBud_Anim03)
EVT_CALL(SetNpcAnimation, NPC_LavaBud_02, ANIM_LavaBud_Anim03)
EVT_CALL(EnableNpcShadow, NPC_LavaPiranhaHead, FALSE)
EVT_CALL(EnableNpcShadow, NPC_LavaBud_01, FALSE)
EVT_CALL(EnableNpcShadow, NPC_LavaBud_02, FALSE)
EVT_MALLOC_ARRAY(64, LVar0)
EVT_CALL(SetSelfVar, 0, LVar0)
EVT_USE_ARRAY(LVar0)
EVT_CALL(BindNpcAux, NPC_SELF, EVT_PTR(N(EVS_NpcAux_LavaPiranhaHead)))
EVT_CALL(LoadAnimatedModel, VINE_0, EVT_PTR(N(AnimModel_MainHeadVine)))
EVT_CALL(N(LoadAnimationFromTable), VINE_0, 0)
EVT_CALL(PlayModelAnimation, VINE_0, VINE_0_BASE)
EVT_CALL(SetAnimatedModelRootPosition, VINE_0, -40, 0, 0)
EVT_CALL(SetAnimatorFlags, VINE_0, MODEL_ANIMATOR_FLAGS_HIDDEN, 1)
EVT_CALL(LoadAnimatedModel, VINE_1, EVT_PTR(N(AnimModel_SideHeadVine)))
EVT_CALL(N(LoadAnimationFromTable), VINE_1, 31)
EVT_CALL(PlayModelAnimation, VINE_1, VINE_1_BASE)
EVT_CALL(SetAnimatedModelRootPosition, VINE_1, -40, 0, 0)
EVT_CALL(SetAnimatorFlags, VINE_1, MODEL_ANIMATOR_FLAGS_HIDDEN, 1)
EVT_CALL(LoadAnimatedModel, VINE_2, EVT_PTR(N(AnimModel_SideHeadVine)))
EVT_CALL(N(LoadAnimationFromTable), VINE_2, 31)
EVT_CALL(PlayModelAnimation, VINE_2, VINE_2_BASE)
EVT_CALL(SetAnimatedModelRootPosition, VINE_2, 10, 0, 20)
EVT_CALL(SetAnimatorFlags, VINE_2, MODEL_ANIMATOR_FLAGS_HIDDEN, 1)
EVT_CALL(LoadAnimatedModel, VINE_3, EVT_PTR(N(AnimModel_ExtraVine)))
EVT_CALL(N(LoadAnimationFromTable), VINE_3, 34)
EVT_CALL(PlayModelAnimation, VINE_3, VINE_3_BASE)
EVT_CALL(SetAnimatedModelRootPosition, VINE_3, -40, 0, 0)
EVT_CALL(SetAnimatorFlags, VINE_3, MODEL_ANIMATOR_FLAGS_HIDDEN, 1)
EVT_CALL(N(CreateVineRenderer))
EVT_RETURN
EVT_END
};
EvtScript N(EVS_NpcInit_LavaBud_01) = {
EVT_RETURN
EVT_END
};
s32 N(D_80243848_902EB8)[] = {
ANIM_LavaPiranha_Anim03,
ANIM_LavaPiranha_Anim0E,
-1
};
s32 N(D_80243854_902EC4)[] = {
ANIM_LavaBud_Anim03,
-1
};

View File

@ -529,7 +529,7 @@ EvtScript N(EVS_NpcInit_Eldstar_01) = {
EvtScript N(EVS_NpcInit_Eldstar_02) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, ENEMY_ANIM_8)
EVT_CALL(func_802CFD30, NPC_SELF, 8, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_SELF, FOLD_TYPE_8, 0, 0, 0, 0)
EVT_CALL(SetNpcPos, NPC_SELF, 0, 94, 0)
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_RETURN

View File

@ -45,7 +45,7 @@ EvtScript N(EVS_Kolorado_TrompImpact) = {
EVT_CALL(func_802CDE68, 0, 13)
EVT_CALL(SetNpcRotation, NPC_Kolorado, 0, 0, 250)
EVT_CALL(SetNpcAnimation, NPC_Kolorado, ANIM_Kolorado_HurtStill)
EVT_CALL(func_802CFD30, 0, 4, EVT_FLOAT(3.0), EVT_FLOAT(3.0), 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_4, EVT_FLOAT(3.0), EVT_FLOAT(3.0), 0, 0)
EVT_CALL(PlaySoundAtNpc, NPC_Kolorado, SOUND_HIT_PLAYER_NORMAL, 0)
EVT_THREAD
EVT_CALL(SetNpcCollisionSize, NPC_Kolorado, 20, 24)
@ -70,7 +70,7 @@ EvtScript N(EVS_Kolorado_HurtInit) = {
EVT_CALL(func_802CDE68, 0, 13)
EVT_CALL(SetNpcRotation, NPC_Kolorado, 0, 0, 250)
EVT_CALL(SetNpcAnimation, NPC_Kolorado, ANIM_Kolorado_HurtStill)
EVT_CALL(func_802CFD30, 0, 4, EVT_FLOAT(3.0), EVT_FLOAT(3.0), 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_4, EVT_FLOAT(3.0), EVT_FLOAT(3.0), 0, 0)
EVT_RETURN
EVT_END
};

View File

@ -5,323 +5,13 @@
#include "world/common/npc/StarSpirit.h"
#include "world/common/enemy/complete/LavaPiranha.h"
enum {
VINE_0 = 0,
VINE_1 = 1,
VINE_2 = 2,
VINE_3 = 3,
NUM_VINES = 4
};
#include "world/common/lava_piranha/part1.inc.c"
enum {
VINE_0_BASE = 0x80200000,
VINE_1_BASE = 0x80204000,
VINE_2_BASE = 0x80207000,
VINE_3_BASE = 0x8020A000,
}; // TODO shiftability -- hard-coded addresses in gBackgroundImage
#include "world/lava_piranha/vine.png.inc.c"
#include "world/lava_piranha/vine.pal.inc.c"
#include "world/lava_piranha/vine.gfx.inc.c"
#include "./kzn_19_anim1.c"
#include "./kzn_19_anim2.c"
#include "./kzn_19_anim3.c"
#include "world/area_kzn/kzn_19/lava_piranha_vine.png.inc.c"
#include "world/area_kzn/kzn_19/lava_piranha_vine.pal.inc.c"
#include "world/area_kzn/kzn_19/lava_piranha_vine.gfx.inc.c"
#define PIRANHA_DMA_ENTRY(name) \
(s32) world_model_anim_kzn_##name##_ROM_START,\
(s32) world_model_anim_kzn_##name##_ROM_END,\
(s32) world_model_anim_kzn_##name##_VRAM
s32 N(VineAnimationsDmaTable)[] = {
PIRANHA_DMA_ENTRY(00),
PIRANHA_DMA_ENTRY(01),
PIRANHA_DMA_ENTRY(02),
PIRANHA_DMA_ENTRY(03),
PIRANHA_DMA_ENTRY(04),
PIRANHA_DMA_ENTRY(05),
PIRANHA_DMA_ENTRY(06),
PIRANHA_DMA_ENTRY(07),
PIRANHA_DMA_ENTRY(08),
PIRANHA_DMA_ENTRY(09),
PIRANHA_DMA_ENTRY(0A),
PIRANHA_DMA_ENTRY(0B),
PIRANHA_DMA_ENTRY(0C),
PIRANHA_DMA_ENTRY(0D),
PIRANHA_DMA_ENTRY(0E),
PIRANHA_DMA_ENTRY(0F),
PIRANHA_DMA_ENTRY(10),
PIRANHA_DMA_ENTRY(11),
PIRANHA_DMA_ENTRY(12),
PIRANHA_DMA_ENTRY(13),
PIRANHA_DMA_ENTRY(14),
PIRANHA_DMA_ENTRY(15),
PIRANHA_DMA_ENTRY(16),
PIRANHA_DMA_ENTRY(17),
PIRANHA_DMA_ENTRY(18),
PIRANHA_DMA_ENTRY(19),
PIRANHA_DMA_ENTRY(1A),
PIRANHA_DMA_ENTRY(1B),
PIRANHA_DMA_ENTRY(1C),
PIRANHA_DMA_ENTRY(1D),
PIRANHA_DMA_ENTRY(1E),
PIRANHA_DMA_ENTRY(1F),
PIRANHA_DMA_ENTRY(20),
PIRANHA_DMA_ENTRY(21),
PIRANHA_DMA_ENTRY(22),
PIRANHA_DMA_ENTRY(23),
PIRANHA_DMA_ENTRY(24),
};
BSS s32 N(VineRenderState);
MAP_STATIC_PAD(1, unk_static_pad);
void N(make_vine_interpolation)(LavaPiranhaVine* vine) {
Evt dummyEvt;
Evt* dummyEvtPtr = &dummyEvt;
s32 args[4];
s32 count;
// setup dummy call to LoadPath
args[0] = 3 * vine->boneCount; // generate three output samples per input
args[1] = (s32) &vine->bonePos; // points
args[2] = vine->boneCount; // num vectors
args[3] = EASING_LINEAR;
dummyEvtPtr->ptrReadPos = args;
LoadPath(dummyEvtPtr, 1);
count = 0;
do {
GetNextPathPos(dummyEvtPtr, 1);
vine->points[count].x = evt_get_float_variable(dummyEvtPtr, LVar1);
vine->points[count].y = evt_get_float_variable(dummyEvtPtr, LVar2);
vine->points[count].z = evt_get_float_variable(dummyEvtPtr, LVar3);
count++;
} while (dummyEvtPtr->varTable[0] != 0);
vine->numPoints = count;
}
API_CALLABLE(N(SetVineBonePos)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 x = evt_get_variable(script, *args++);
s32 y = evt_get_variable(script, *args++);
s32 z = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[vineIdx];
vine->bonePos[jointIdx].x = x;
vine->bonePos[jointIdx].y = y;
vine->bonePos[jointIdx].z = z;
return ApiStatus_DONE2;
}
API_CALLABLE(N(SetVineBoneRot)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 rx = evt_get_variable(script, *args++);
s32 ry = evt_get_variable(script, *args++);
s32 rz = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[vineIdx];
vine->boneRot[jointIdx] = rz;
return ApiStatus_DONE2;
}
API_CALLABLE(N(SetVineBoneScale)) {
Bytecode* args = script->ptrReadPos;
s32 vineIdx = evt_get_variable(script, *args++);
s32 jointIdx = evt_get_variable(script, *args++);
s32 sx = evt_get_variable(script, *args++);
s32 sy = evt_get_variable(script, *args++);
s32 sz = evt_get_variable(script, *args++);
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[vineIdx];
// do nothing
return ApiStatus_DONE2;
}
void N(appendGfx_piranha_vines)(void* data) {
Vtx_t* vtxBuffer;
Vtx_t* vtx;
f32 boneLength;
s32 boneCount;
f32 angle;
f32 nextAngle;
f32 curAngle1;
f32 curAngle2;
f32 alphaCoord;
f32 alphaFrac;
s32 nearest;
s32 numPoints;
s32 i, j;
f32 deltaX, deltaY;
f32 posX, posY, posZ;
if (N(VineRenderState) == -1) {
return;
}
if (N(VineRenderState) == 0) {
for (i = 0; i < NUM_VINES; i++) {
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[i];
switch (i) {
default:
return;
case 0:
boneCount = 9;
boneLength = 10.0f;
break;
case 1:
boneCount = 7;
boneLength = 8.0f;
break;
case 2:
boneCount = 7;
boneLength = 8.0f;
break;
case 3:
boneCount = 5;
boneLength = 8.0f;
break;
}
vine->boneCount = boneCount;
vine->boneLength = boneLength;
for (j = 0; j < boneCount; j++) {
if (j == (boneCount - 1)) {
vine->boneRot[j] += 90.0f;
} else {
curAngle1 = vine->boneRot[j];
nextAngle = vine->boneRot[j + 1];
if (nextAngle - curAngle1 > 180.0f) {
curAngle1 += 360.0f;
} else if (nextAngle - curAngle1 < -180.0f) {
nextAngle += 360.0f;
}
// average cur and next angles
vine->boneRot[j] = ((curAngle1 + nextAngle) / 2.0) + 90.0;
}
}
N(make_vine_interpolation)(vine);
}
N(VineRenderState) = 1;
}
gDPPipeSync(gMasterGfxPos++);
gSPDisplayList(gMasterGfxPos++, N(lava_piranha_vine_gfx));
for (i = 0; i < NUM_VINES; i++) {
LavaPiranhaVine* vines = (LavaPiranhaVine*) evt_get_variable(NULL, MV_VinesData);
LavaPiranhaVine* vine = &vines[i];
boneLength = vine->boneLength;
boneCount = vine->boneCount;
numPoints = vine->numPoints;
// we'll build the vertex data and place it in the display list, so jump forward
// here and leave space behind for the gSPBranchList command followed by two vertices
// for each point in numPoints
vtxBuffer = (Vtx_t*)(gMasterGfxPos + 1);
gSPBranchList(gMasterGfxPos, &gMasterGfxPos[1 + 2 * (2 * numPoints)]);
vtx = (Vtx_t*) (++gMasterGfxPos);
gMasterGfxPos = &gMasterGfxPos[2 * (2 * numPoints)];
for (j = 0; j < numPoints; j++) {
posX = vine->points[j].x;
posY = vine->points[j].y;
posZ = vine->points[j].z;
alphaCoord = ((f32) j * boneCount) / numPoints;
nearest = (s32) alphaCoord;
alphaFrac = alphaCoord - (f32)nearest;
if (nearest + 1 >= boneCount) {
angle = vine->boneRot[boneCount - 1];
} else {
curAngle2 = vine->boneRot[nearest];
nextAngle = vine->boneRot[nearest + 1];
if (nextAngle - curAngle2 > 180.0f) {
nextAngle -= 360.0f;
}
if (nextAngle - curAngle2 < -180.0f) {
nextAngle += 360.0f;
}
angle = ((nextAngle - curAngle2) * alphaFrac) + curAngle2;
}
deltaX = sin_deg(angle) * boneLength;
deltaY = -cos_deg(angle) * boneLength;
vtx->ob[0] = posX + deltaX;
vtx->ob[1] = posY + deltaY;
vtx->ob[2] = posZ;
vtx->tc[0] = j * 0x140;
vtx->tc[1] = 0;
vtx->cn[0] = j * 50;
vtx->cn[1] = j * 120;;
vtx->cn[2] = j * 30;
vtx++;
vtx->ob[0] = posX - deltaX;
vtx->ob[1] = posY - deltaY;
vtx->ob[2] = posZ;
vtx->tc[0] = j * 0x140;
vtx->tc[1] = 0x400;
vtx->cn[0] = j * 50;
vtx->cn[1] = j * 120;;
vtx->cn[2] = j * 30;
vtx++;
}
for (j = 0; j < numPoints - 1; j++) {
gSPVertex(gMasterGfxPos++, &vtxBuffer[2*j], 4, 0);
gSP2Triangles(gMasterGfxPos++, 1, 0, 2, 0, 1, 2, 3, 0);
}
}
gDPPipeSync(gMasterGfxPos++);
}
void N(worker_render_piranha_vines)(void) {
RenderTask renderTask;
renderTask.appendGfx = &N(appendGfx_piranha_vines);
renderTask.appendGfxArg = 0;
renderTask.distance = 10;
renderTask.renderMode = RENDER_MODE_SURFACE_OPA;
queue_render_task(&renderTask);
}
API_CALLABLE(N(MarkVineInterpolationDirty)) {
N(VineRenderState) = 0;
return ApiStatus_DONE2;
}
API_CALLABLE(N(CreateVineRenderer)) {
LavaPiranhaVine* data = heap_malloc(NUM_VINES * sizeof(*data));
evt_set_variable(script, MV_VinesData, (s32) data);
N(VineRenderState) = -1;
create_worker_world(NULL, &N(worker_render_piranha_vines));
return ApiStatus_DONE2;
}
#include "world/common/lava_piranha/part2.inc.c"
#include "world/common/complete/LetterDelivery.inc.c"
@ -485,39 +175,7 @@ EvtScript N(EVS_Misstar_Escape) = {
EVT_END
};
API_CALLABLE(N(LoadAnimationFromTable)) {
Bytecode* args = script->ptrReadPos;
s32 type = evt_get_variable(script, *args++);
s32 index = evt_get_variable(script, *args++);
switch (type) {
case VINE_0:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_0_BASE);
break;
case VINE_1:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_1_BASE);
break;
case VINE_2:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_2_BASE);
break;
case VINE_3:
dma_copy(
(u8*) N(VineAnimationsDmaTable)[3 * index + 0],
(u8*) N(VineAnimationsDmaTable)[3 * index + 1],
(void*) VINE_3_BASE);
break;
}
return ApiStatus_DONE2;
}
#include "world/common/lava_piranha/LoadAnimationFromTable.inc.c"
EvtScript N(EVS_PlayVinesAnim_Emerge) = {
EVT_THREAD
@ -715,166 +373,166 @@ EvtScript N(EVS_NpcAux_LavaPiranha) = {
EVT_WAIT(1)
EVT_END_LOOP
EVT_LABEL(0)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaPiranhaHead, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaPiranhaHead, LVar0, 0, LVar2)
EVT_CALL(N(MarkVineInterpolationDirty))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_0, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 7, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 8, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_01, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_01, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_1, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_02, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_02, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_2, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 0, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_WAIT(1)
EVT_GOTO(0)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaPiranhaHead, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaPiranhaHead, LVar0, 0, LVar2)
EVT_CALL(N(MarkVineInterpolationDirty))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 10, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_0, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 9, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 7, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_0, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_0, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_0, 8, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_01, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_01, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_1, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_1, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_1, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_1, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcPos, NPC_LavaBud_02, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(SetNpcRotation, NPC_LavaBud_02, LVar0, 0, LVar2)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 8, LVar0, LVar1, LVar2)
EVT_ADD(LVar2, 90)
EVT_CALL(N(SetVineBoneRot), VINE_2, 0, LVar0, 0, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 0, 1, 1, 1)
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_SUB(LVar2, 2)
EVT_CALL(N(SetVineBonePos), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 7, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 5, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_2, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_2, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_2, 6, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 0, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 0, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 6, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 1, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 1, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 2, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 5, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 3, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 3, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_CALL(GetAnimatedPositionByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBonePos), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(GetAnimatedRotationByTreeIndex, VINE_3, 2, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneRot), VINE_3, 4, LVar0, LVar1, LVar2)
EVT_CALL(N(SetVineBoneScale), VINE_3, 4, EVT_FLOAT(0.71484375), EVT_FLOAT(0.71484375), EVT_FLOAT(1.0))
EVT_WAIT(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};

View File

@ -86,5 +86,3 @@ extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(IntroNPCs);
extern NpcGroupList N(EpilogueNPCs);
extern NpcGroupList N(DefaultNPCs);
extern EvtScript ItemShopInteract;

View File

@ -29,7 +29,7 @@ EvtScript N(EVS_LuigiExitPipe_Intro) = {
EVT_WAIT(2)
EVT_CALL(PlaySoundAtNpc, NPC_Luigi_Intro, SOUND_ENTER_PIPE, 0)
EVT_CALL(func_802CFE2C, 0, 0x100)
EVT_CALL(func_802CFD30, 0, 5, 2, 1, 1, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_5, 2, 1, 1, 0)
EVT_CALL(SetNpcPos, NPC_Luigi_Intro, -100, -10, -370)
EVT_CALL(GetNpcPos, NPC_Luigi_Intro, LVar0, LVar1, LVar2)
EVT_LOOP(45)
@ -37,7 +37,7 @@ EvtScript N(EVS_LuigiExitPipe_Intro) = {
EVT_CALL(SetNpcPos, NPC_Luigi_Intro, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(func_802CFD30, 0, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(SetNpcPos, NPC_Luigi_Intro, -100, 30, -370)
EVT_WAIT(3)
EVT_CALL(EnableNpcShadow, NPC_Luigi_Intro, TRUE)

View File

@ -29,7 +29,7 @@ EvtScript N(EVS_LuigiExitPipe_Epilogue) = {
EVT_WAIT(2)
EVT_CALL(PlaySoundAtNpc, NPC_Luigi_Epilogue, SOUND_ENTER_PIPE, 0)
EVT_CALL(func_802CFE2C, 25, 0x100)
EVT_CALL(func_802CFD30, 25, 5, 2, 1, 1, 0)
EVT_CALL(func_802CFD30, 25, FOLD_TYPE_5, 2, 1, 1, 0)
EVT_CALL(SetNpcPos, NPC_Luigi_Epilogue, -100, -10, -370)
EVT_CALL(GetNpcPos, NPC_Luigi_Epilogue, LVar0, LVar1, LVar2)
EVT_LOOP(45)
@ -37,7 +37,7 @@ EvtScript N(EVS_LuigiExitPipe_Epilogue) = {
EVT_CALL(SetNpcPos, NPC_Luigi_Epilogue, LVar0, LVar1, LVar2)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(func_802CFD30, 25, 0, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 25, FOLD_TYPE_NONE, 0, 0, 0, 0)
EVT_CALL(SetNpcPos, NPC_Luigi_Epilogue, -100, 30, -370)
EVT_WAIT(3)
EVT_CALL(EnableNpcShadow, NPC_Luigi_Epilogue, TRUE)

View File

@ -193,7 +193,7 @@ StaticNpc N(NpcData_ShyGuy_01)[] = {
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_10000 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_400000,
.init = &N(EVS_NpcInit_ShyGuyThief),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
},
{
.id = NPC_ShyGuy_02,
@ -203,7 +203,7 @@ StaticNpc N(NpcData_ShyGuy_01)[] = {
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_10000 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_400000,
.init = &N(EVS_NpcInit_ShyGuy_02),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
.tattle = MSG_NpcTattle_MAC_ShyGuyShopOwner,
},
{
@ -214,7 +214,7 @@ StaticNpc N(NpcData_ShyGuy_01)[] = {
.flags = ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_IGNORE_TOUCH,
.init = &N(EVS_NpcInit_GardenShyGuy1),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
.tattle = MSG_NpcTattle_MAC_ShyGuyShopOwner,
},
};

View File

@ -2367,7 +2367,7 @@ StaticNpc N(NpcData_ShyGuys)[] = {
.flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800,
.init = &N(EVS_NpcInit_ShyGuy_01),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
},
{
.id = NPC_ToadHouseShyGuy,
@ -2377,7 +2377,7 @@ StaticNpc N(NpcData_ShyGuys)[] = {
.flags = ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_400000 | ENEMY_FLAGS_IGNORE_TOUCH,
.init = &N(EVS_NpcInit_ShyGuy_02),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
},
{
.id = NPC_GardenShyGuy1,
@ -2387,7 +2387,7 @@ StaticNpc N(NpcData_ShyGuys)[] = {
.flags = ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_400000 | ENEMY_FLAGS_IGNORE_TOUCH,
.init = &N(EVS_NpcInit_GardenShyGuy1),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
},
{
.id = NPC_GardenShyGuy2,
@ -2397,7 +2397,7 @@ StaticNpc N(NpcData_ShyGuys)[] = {
.flags = ENEMY_FLAGS_8 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_100000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_400000 | ENEMY_FLAGS_IGNORE_TOUCH,
.init = &N(EVS_NpcInit_GardenShyGuy2),
.drops = SHY_GUY_NO_DROPS,
.animations = SHY_GUY_ANIMS,
.animations = RED_SHY_GUY_ANIMS,
},
};

View File

@ -8,7 +8,7 @@ EvtScript N(D_8024ACA4_82DF64) = {
EVT_END_IF
EVT_LOOP(10)
EVT_ADDF(LVar0, LVar1)
EVT_CALL(func_802CFD30, 9, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 9, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN

View File

@ -1,7 +1,5 @@
#include "mac_04.h"
extern EvtScript ItemShopInteract;
#include "world/common/npc/Toad_Wander.inc.c"
#include "world/common/npc/Toad_Stationary.inc.c"

View File

@ -107,7 +107,7 @@ EvtScript N(EVS_Scene_BootlersInvitation) = {
EVT_END_THREAD
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetNpcPos, NPC_Bootler, 200, 44, 0)
EVT_CALL(func_802CFD30, 0, 7, 0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, 0, 0, 0, 0)
EVT_SET(MV_Unk_00, TRUE)
EVT_CALL(SetMusicTrack, 0, SONG_BOOS_MANSION, 0, 8)
EVT_WAIT(20)
@ -125,7 +125,7 @@ EvtScript N(EVS_Scene_BootlersInvitation) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_WAIT(20)
@ -150,7 +150,7 @@ EvtScript N(EVS_Scene_BootlersInvitation) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_WAIT(25)
@ -163,7 +163,7 @@ EvtScript N(EVS_Scene_BootlersInvitation) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_END_THREAD
@ -176,7 +176,7 @@ EvtScript N(EVS_Scene_BootlersInvitation) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_SET(GB_StoryProgress, STORY_CH3_INVITED_TO_BOOS_MANSION)

View File

@ -46,7 +46,7 @@ EvtScript N(D_80242560_BB95D0) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(90)
EVT_ADDF(LVar0, EVT_FLOAT(2.6669922))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SpeakToPlayer, NPC_Bootler, ANIM_Bootler_Talk, ANIM_Bootler_Idle, 0, MSG_CH3_0028)
@ -69,7 +69,7 @@ EvtScript N(D_80242560_BB95D0) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(90)
EVT_SUBF(LVar0, EVT_FLOAT(2.6669922))
EVT_CALL(func_802CFD30, 0, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, 0, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(RemoveNpc, NPC_Bootler)

View File

@ -18,8 +18,8 @@ EvtScript N(EVS_EnterMap) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, NPC_GateBoo_01, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_01, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_WAIT(10)

View File

@ -329,8 +329,8 @@ EvtScript N(EVS_Scene_UnlockGate) = {
EVT_SETF(LVar0, EVT_FLOAT(0.0))
EVT_LOOP(20)
EVT_ADDF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, NPC_GateBoo_01, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_01, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_WAIT(10)
@ -359,8 +359,8 @@ EvtScript N(EVS_Scene_UnlockGate) = {
EVT_SETF(LVar0, EVT_FLOAT(240.0))
EVT_LOOP(20)
EVT_SUBF(LVar0, EVT_FLOAT(12.0))
EVT_CALL(func_802CFD30, NPC_GateBoo_01, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, 7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_01, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_CALL(func_802CFD30, NPC_GateBoo_02, FOLD_TYPE_7, LVar0, 0, 0, 0)
EVT_WAIT(1)
EVT_END_LOOP
EVT_CALL(SetNpcPos, NPC_GateBoo_01, 0, -1000, 0)

View File

@ -1,28 +1,34 @@
#include "obk_03.h"
#include "common.h"
#include "model.h"
#include "mapfs/obk_03_shape.h"
#include "mapfs/obk_03_hit.h"
// identical to (copy-pasted from) obk_05_RockingChair_UpdatePhysics aside from a few constants
// TODO de-duplicate?
ApiStatus func_802408D0_BC4B50(Evt* script, s32 isInitialCall) {
typedef struct RockingChairPhysics {
/* 0x00 */ f32 angleDelta;
/* 0x04 */ f32 angularAccel;
/* 0x08 */ f32 rotationAngle;
/* 0x0C */ f32 verticalOffset;
/* 0x10 */ f32 angleB;
/* 0x14 */ f32 angleA;
/* 0x18 */ f32 mass;
/* 0x1C */ f32 equilibriumAngle;
} RockingChairPhysics; // size = 0x20
#ifndef ROCKING_CHAIR_CENTER_X
#error ROCKING_CHAIR_CENTER_X is not defined!
#endif
enum RockingChairState {
CHAIR_STATE_INITIAL = 0,
CHAIR_STATE_PLAYER_TOUCHING = 1,
CHAIR_STATE_PLAYER_NOT_TOUCHING = 2
};
/*
Also assumes the following are defined:
MODEL_i1, MODEL_i2, MODEL_i3
COLLIDER_i1, COLLIDER_i2, COLLIDER_i3
*/
typedef struct RockingChairPhysics {
/* 0x00 */ f32 angleDelta;
/* 0x04 */ f32 angularAccel;
/* 0x08 */ f32 rotationAngle;
/* 0x0C */ f32 verticalOffset;
/* 0x10 */ f32 angleB;
/* 0x14 */ f32 angleA;
/* 0x18 */ f32 mass;
/* 0x1C */ f32 equilibriumAngle;
} RockingChairPhysics; // size = 0x20
enum RockingChairState {
CHAIR_STATE_INITIAL = 0,
CHAIR_STATE_PLAYER_TOUCHING = 1,
CHAIR_STATE_PLAYER_NOT_TOUCHING = 2
};
API_CALLABLE(N(UpdateRockingChair)) {
PlayerStatus* playerStatus = &gPlayerStatus;
CollisionStatus* collisionStatus = &gCollisionStatus;
RockingChairPhysics* physics;
@ -72,13 +78,13 @@ ApiStatus func_802408D0_BC4B50(Evt* script, s32 isInitialCall) {
script->functionTemp[0] = CHAIR_STATE_PLAYER_NOT_TOUCHING;
}
if (fabsf(physics->rotationAngle) < 5.0f) {
physics->angularAccel = fabsf(-170.0 - playerStatus->position.x) / 200.0f;
physics->angularAccel = fabsf(ROCKING_CHAIR_CENTER_X - playerStatus->position.x) / 200.0f;
} else {
physics->angularAccel = 0.1f;
}
if (playerStatus->position.x <= -170.0) {
if (playerStatus->position.x <= ROCKING_CHAIR_CENTER_X) {
physics->angleB += physics->angularAccel;
physics->equilibriumAngle = SQ(fabsf(-170.0 - playerStatus->position.x)) / 50.0f;
physics->equilibriumAngle = SQ(fabsf(ROCKING_CHAIR_CENTER_X - playerStatus->position.x)) / 50.0f;
if (physics->equilibriumAngle > 15.0f) {
physics->equilibriumAngle = 15.0f;
}
@ -87,7 +93,7 @@ ApiStatus func_802408D0_BC4B50(Evt* script, s32 isInitialCall) {
}
} else {
physics->angleA += physics->angularAccel;
physics->equilibriumAngle = -SQ(-fabsf(-170.0 - playerStatus->position.x) * 0.5f) / 50.0f;
physics->equilibriumAngle = -SQ(-fabsf(ROCKING_CHAIR_CENTER_X - playerStatus->position.x) * 0.5f) / 50.0f;
if (physics->equilibriumAngle < -5.0f) {
physics->equilibriumAngle = -5.0f;
}

View File

@ -0,0 +1,110 @@
#include "common.h"
#ifndef TRAFFIC_BOO_START_Y
#error TRAFFIC_BOO_START_Y must be defined!
#endif
#ifndef TRAFFIC_BOO_START_Z
#error TRAFFIC_BOO_START_Z must be defined!
#endif
enum {
TRAFFIC_BOO_INIT = 0,
TRAFFIC_BOO_WAIT = 1,
TRAFFIC_BOO_MOVE = 2,
};
s16 N(TrafficBooAlphas)[] = {
50, 60, 200, 240
};
API_CALLABLE(N(TrafficBooInit)) {
script->functionTemp[1] = TRAFFIC_BOO_INIT;
return ApiStatus_DONE2;
}
API_CALLABLE(N(UpdateTrafficBooMotion)) {
Npc* npc = get_npc_safe(script->owner2.npcID);
switch (script->functionTemp[1]) {
case TRAFFIC_BOO_INIT:
// choose random wait time
npc->duration = rand_int(180) + 30;
// choose random position offset
npc->pos.z = TRAFFIC_BOO_START_Z;
npc->pos.y = rand_int(50) + TRAFFIC_BOO_START_Y;
// choose random speed
npc->moveSpeed = (2.0f * rand_float()) + 2.0f;
// chose random direction
if (rand_int(100) < 50) {
npc->pos.x = 270.0f;
npc->yaw = 270.0f;
} else {
npc->pos.x = -270.0f;
npc->yaw = 90.0f;
}
// wait before moving
script->functionTemp[1] = TRAFFIC_BOO_WAIT;
break;
case TRAFFIC_BOO_WAIT:
npc->duration--;
if (npc->duration == 0) {
// begin moving
script->functionTemp[1] = TRAFFIC_BOO_MOVE;
}
break;
case TRAFFIC_BOO_MOVE:
npc_move_heading(npc, npc->moveSpeed, npc->yaw);
if (npc->pos.x < -280.0f || npc->pos.x > 280.0f) {
script->functionTemp[1] = TRAFFIC_BOO_INIT;
}
break;
}
return ApiStatus_DONE2;
}
API_CALLABLE(N(UpdateTrafficBooAlpha)) {
s32 alpha = script->varTable[0];
s32 nextChangeTime = script->varTable[1];
s32 targetAlpha;
if (nextChangeTime == 0) {
// choose a new target alpha and schedule a time for the next update
script->functionTemp[2] = N(TrafficBooAlphas)[rand_int(ARRAY_COUNT(N(TrafficBooAlphas)) - 1)];
nextChangeTime = rand_int(50) + 30;
}
nextChangeTime--;
targetAlpha = script->functionTemp[2];
if (alpha < targetAlpha) {
alpha += 10;
if (targetAlpha < alpha) {
alpha = targetAlpha;
}
}
if (targetAlpha < alpha) {
alpha -= 10;
if (alpha < targetAlpha) {
alpha = targetAlpha;
}
}
script->varTable[0] = alpha;
script->varTable[1] = nextChangeTime;
return ApiStatus_DONE2;
}
EvtScript N(EVS_NpcIdle_TrafficBoo) = {
EVT_SET(LVar0, 0)
EVT_SET(LVar1, 0)
EVT_CALL(N(TrafficBooInit))
EVT_LOOP(0)
EVT_CALL(N(UpdateTrafficBooMotion))
EVT_CALL(N(UpdateTrafficBooAlpha))
EVT_CALL(func_802CFD30, -1, 7, LVar0, 0, 0, 0)
EVT_CALL(SetNpcRenderMode, NPC_SELF, RENDER_MODE_SURFACE_XLU_LAYER1)
EVT_WAIT(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};

View File

@ -2,24 +2,42 @@
#define _WORLD_AREA_OBK_OBK_H_
enum {
AB_OBK_0 = AreaByte(0),
AB_OBK_1 = AreaByte(1),
AB_OBK_2 = AreaByte(2),
AB_OBK_3 = AreaByte(3),
AB_OBK_4 = AreaByte(4),
AB_OBK_5 = AreaByte(5),
AB_OBK_6 = AreaByte(6),
AB_OBK_7 = AreaByte(7),
AB_OBK_8 = AreaByte(8),
AB_OBK_9 = AreaByte(9),
AB_OBK_A = AreaByte(10),
AB_OBK_B = AreaByte(11),
AB_OBK_C = AreaByte(12),
AB_OBK_D = AreaByte(13),
AB_OBK_E = AreaByte(14),
AB_OBK_F = AreaByte(15),
AB_OBK_0 = AreaByte(0),
AB_OBK_1 = AreaByte(1),
AB_OBK_2 = AreaByte(2),
AB_OBK_3 = AreaByte(3),
AB_OBK_4 = AreaByte(4),
AB_OBK_5 = AreaByte(5),
AB_OBK_6 = AreaByte(6),
AB_OBK_7 = AreaByte(7),
AB_OBK_8 = AreaByte(8),
AB_OBK_9 = AreaByte(9),
AB_OBK_A = AreaByte(10),
AB_OBK_B = AreaByte(11),
AB_OBK_C = AreaByte(12),
AB_OBK_D = AreaByte(13),
AB_OBK_E = AreaByte(14),
AB_OBK_F = AreaByte(15),
};
#define AF_OBK(index) AreaFlag(index)
enum {
AF_OBK01_CabinetMoved = AreaFlag(1),
AF_OBK01_IsPlayerNearPortrait = AreaFlag(3),
AF_OBK01_WasPlayerNearPortrait = AreaFlag(4),
AF_OBK03_HitFirstSwitch = AreaFlag(5),
AF_OBK03_HitSecondSwitch = AreaFlag(6),
AF_OBK03_HitThirdSwitch = AreaFlag(7),
AF_OBK_08 = AreaFlag(8),
};
extern MapSettings obk_01_settings;
extern MapSettings obk_02_settings;
extern MapSettings obk_03_settings;
extern MapSettings obk_04_settings;
extern MapSettings obk_05_settings;
extern MapSettings obk_06_settings;
extern MapSettings obk_07_settings;
extern MapSettings obk_08_settings;
extern MapSettings obk_09_settings;
#endif

View File

@ -1,259 +0,0 @@
#include "obk_01.h"
#include "model.h"
static char* N(exit_str_0) = "mim_11";
static char* N(exit_str_1) = "obk_02";
static char* N(exit_str_2) = "obk_05";
static char* N(exit_str_3) = "obk_07";
static char* N(exit_str_4) = "obk_08";
static char* N(exit_str_5) = "obk_09";
extern s32 D_80241C58_BBEDF8[];
#include "world/common/todo/UnsetCamera0MoveFlag1.inc.c"
#include "world/common/todo/SetCamera0MoveFlag1.inc.c"
ApiStatus func_80240038_BBD1D8(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
gCameras[CAM_DEFAULT].vfov = (s32) evt_get_float_variable(script, *args++);
return ApiStatus_DONE2;
}
ApiStatus func_8024007C_BBD21C(Evt* script, s32 isInitialCall) {
u32 pressedButtons = gGameStatusPtr->pressedButtons[0];
s32 val;
if (pressedButtons & BUTTON_A) {
val = TRUE;
} else {
val = FALSE;
}
script->varTable[6] = val;
return ApiStatus_DONE2;
}
typedef struct UnkObk01 {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s32* unk_08;
/* 0x0C */ f32 unk_0C; // some angle
/* 0x10 */ f32 unk_10; // some y
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ Matrix4f unk_1C;
/* 0x5C */ Model* models[4];
} UnkObk01; // size = 0x6C;
ApiStatus func_80240098_BBD238(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;
Bytecode* args = script->ptrReadPos;
Matrix4f sp18;
f32 temp_f20;
f32 var_f22;
s32 var_a0;
s32 temp_s0_2;
Model* model;
UnkObk01* temp_v0;
s32 i;
if (isInitialCall) {
script->functionTempPtr[1] = temp_v0 = heap_malloc(sizeof(*temp_v0));
temp_v0->unk_08 = (s32*) evt_get_variable(script, *args++);
temp_v0->unk_08[0] = (s32) temp_v0; // what is going on here?
for (i = 0; i < ARRAY_COUNT(temp_v0->models); i++) {
temp_v0->models[i] = get_model_from_list_index(get_model_list_index_from_tree_index(D_80241C58_BBEDF8[i]));
}
model = temp_v0->models[0];
copy_matrix(model->transformMatrix, temp_v0->unk_1C);
var_f22 = 0.0f;
temp_v0->unk_10 = var_f22;
temp_v0->unk_14 = var_f22;
temp_v0->unk_0C = 180.0f;
temp_v0->unk_18 = 10.0f;
temp_v0->unk_00 = 0;
script->functionTemp[0] = 0;
script->functionTemp[2] = 0;
script->functionTemp[3] = 0;
}
temp_v0 = script->functionTempPtr[1];
model = temp_v0->models[0];
var_f22 = temp_v0->unk_10;
if (temp_v0->unk_08[1] == 2) {
script->functionTemp[0] = 10;
temp_v0->unk_08[1] = 3;
temp_v0->unk_04 = 10;
}
switch (script->functionTemp[0]) {
case 0:
if (temp_v0->unk_08[1] != 0) {
var_f22 = 0.0f;
temp_v0->unk_04 = 35;
temp_v0->unk_10 = 0.0f;
temp_v0->unk_14 = 0.0f;
temp_v0->unk_18 = 10.0f;
temp_v0->unk_0C = 180.0f;
temp_v0->unk_00 |= 2 | 1;
script->functionTemp[0] = 1;
}
break;
case 1:
temp_v0->unk_04--;
if (temp_v0->unk_04 == -1) {
script->functionTemp[0] = 2;
}
break;
case 2:
temp_v0->unk_10 += -1.4666667f;
if (temp_v0->unk_10 < -220.0f) {
temp_v0->unk_10 = -220.0f;
script->functionTemp[0] = 3;
}
break;
case 3:
temp_v0->unk_18 -= 0.06666667f;
if (temp_v0->unk_18 < 0.0f) {
temp_v0->unk_18 = 0.0f;
script->functionTemp[0] = 4;
temp_v0->unk_00 &= ~0x1;
temp_v0->unk_00 |= 0x4;
}
break;
case 10:
temp_v0->unk_04--;
if (temp_v0->unk_04 == -1) {
script->functionTemp[0] = 11;
}
break;
case 11:
var_a0 = 0;
temp_v0->unk_00 &= ~0x4;
temp_v0->unk_10 += 4.0f;
if (temp_v0->unk_10 >= 0.0f) {
temp_v0->unk_10 = 0.0f;
var_a0 = 1;
}
temp_v0->unk_18 -= 0.2f;
if (temp_v0->unk_18 < 0.0f) {
var_a0++;
temp_v0->unk_18 = 0.0f;
temp_v0->unk_00 &= ~0x1;
}
if (var_a0 == 2) {
temp_v0->unk_08[1] = 0;
script->functionTemp[0] = 0;
}
break;
}
if (temp_v0->unk_00 & 1) {
temp_v0->unk_0C = clamp_angle(temp_v0->unk_0C + 3.6f);
temp_f20 = sin_deg(temp_v0->unk_0C) * temp_v0->unk_18;
if (temp_v0->unk_14 == 0.0f) {
temp_v0->unk_14 = 1.0f;
}
if (temp_f20 * temp_v0->unk_14 <= 0.0f) {
sfx_play_sound_at_player(SOUND_9D, 0);
}
temp_v0->unk_14 = temp_f20;
}
if (script->functionTemp[2] == 0) {
if (temp_v0->unk_10 != var_f22) {
sfx_play_sound_at_position(SOUND_8000000F, 0, 440.0f, temp_v0->unk_10, 271.0f);
script->functionTemp[2] = 1;
}
} else if (temp_v0->unk_10 == var_f22) {
sfx_stop_sound(SOUND_8000000F);
script->functionTemp[2] = 0;
}
temp_s0_2 = evt_get_variable(script, MapVar(11));
if (script->functionTemp[3] == 0) {
if (temp_s0_2 != script->varTable[1]) {
f32 x, y, z;
get_collider_center(0x6E, &x, &y, &z);
sfx_play_sound_at_position(SOUND_80000010, 0, x, y, z);
script->functionTemp[3] = 1;
}
} else if (temp_s0_2 == script->varTable[1]) {
sfx_stop_sound(SOUND_80000010);
script->functionTemp[3] = 0;
}
script->varTable[1] = temp_s0_2;
guTranslateF(model->transformMatrix, 0.0f, temp_v0->unk_10 - 300.0f, 0.0f);
guRotateF(sp18, temp_v0->unk_14, 0.0f, 0.0f, 1.0f);
guMtxCatF(model->transformMatrix, sp18, model->transformMatrix);
guTranslateF(sp18, 0.0f, 300.0f, 0.0f);
guMtxCatF(model->transformMatrix, sp18, model->transformMatrix);
guMtxCatF(temp_v0->unk_1C, model->transformMatrix, model->transformMatrix);
model->flags |= MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED;
for (i = 1; i < ARRAY_COUNT(temp_v0->models); i++) {
copy_matrix(model->transformMatrix, temp_v0->models[i]->transformMatrix);
temp_v0->models[i]->flags |= MODEL_FLAGS_USES_TRANSFORM_MATRIX | MODEL_FLAGS_HAS_TRANSFORM_APPLIED;
}
if (temp_v0->unk_00 & 2) {
playerStatus->position.x = (-sin_deg(temp_v0->unk_14) * (temp_v0->unk_10 - 300.0f)) + 445.0f;
playerStatus->position.y = ((cos_deg(temp_v0->unk_14) * (temp_v0->unk_10 - 300.0f)) - 135.0f) + 300.0f;
playerStatus->position.z = 279.0f;
}
return ApiStatus_BLOCK;
}
// unused?
ApiStatus func_802406AC_BBD84C(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32* var; // TODO what is this?
s32 temp_a1;
if (isInitialCall) {
var = (s32*) evt_get_variable(script, *args++);
script->functionTemp[1] = *var;
}
var = script->functionTempPtr[1];
if (gGameStatusPtr->pressedButtons[0] & BUTTON_A) {
if (*var & 4) {
script->varTable[0] = 1;
} else {
script->varTable[0] = 0;
}
*var &= ~2;
return ApiStatus_DONE2;
}
return ApiStatus_BLOCK;
}
ApiStatus func_80240730_BBD8D0(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32* var; // TODO what is this?
s32 temp_a1;
if (isInitialCall) {
var = (s32*) evt_get_variable(script, *args++);
script->functionTemp[1] = *var;
}
var = script->functionTempPtr[1];
if (*var & 4) {
*var &= ~2;
return ApiStatus_DONE2;
}
return ApiStatus_BLOCK;
}
ApiStatus func_80240790_BBD930(Evt* script, s32 isInitialCall) {
ItemEntity* item = get_item_entity(script->varTable[0]);
set_item_entity_flags(script->varTable[0], ITEM_ENTITY_FLAGS_TRANSPARENT);
item->alpha = -1;
return ApiStatus_DONE2;
}

View File

@ -1,109 +0,0 @@
#include "obk_01.h"
#include "world/common/todo/StashVars.inc.c"
#include "world/common/todo/GetItemName.inc.c"
#include "world/common/todo/GetNpcCollisionHeight.inc.c"
#include "world/common/todo/AddPlayerHandsOffset.inc.c"
INCLUDE_ASM(s32, "world/area_obk/obk_01/BBD980", func_80240B24_BBDCC4);
extern s32 N(ItemChoice_HasSelectedItem);
extern s32 N(ItemChoice_SelectedItemID);
ApiStatus N(ItemChoice_SaveSelected)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
N(ItemChoice_SelectedItemID) = evt_get_variable(script, *args++);
N(ItemChoice_HasSelectedItem) = TRUE;
return ApiStatus_DONE2;
}
BSS s32 obk_01_802458F0[114];
ApiStatus func_80240BB0_BBDD50(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos;
s32* ptr = (s32*) evt_get_variable(script, *args++);
s32 i;
if (ptr != NULL) {
for (i = 0; ptr[i] != 0; i++) {
obk_01_802458F0[i] = ptr[i];
}
obk_01_802458F0[i] = 0;
} else {
for (i = 0; i < 112; i++) {
obk_01_802458F0[i] = i + 16;
obk_01_802458F0[112] = 0;
}
}
return ApiStatus_DONE2;
}
extern s32 N(LetterDelivery_SavedNpcAnim);
#include "world/common/todo/LetterDelivery.inc.c"
ApiStatus func_80240F38_BBE0D8(Evt* script, s32 isInitialCall) {
Npc* npc = get_npc_safe(script->owner2.npcID);
if (isInitialCall) {
script->functionTemp[1] = 0;
}
switch (script->functionTemp[1]) {
case 0:
npc->pos.z = rand_int(100) + 180;
npc->pos.y = rand_int(100) - 200;
npc->moveSpeed = (2.0f * rand_float()) + 2.0f;
if (rand_int(100) < 50) {
npc->pos.x = 920.0f;
npc->yaw = 270.0f;
} else {
npc->pos.x = -20.0f;
npc->yaw = 90.0f;
}
script->functionTemp[1] = 1;
break;
case 1:
npc_move_heading(npc, npc->moveSpeed, npc->yaw);
if (npc->pos.x < -30.0f || npc->pos.x > 930.0f) {
script->functionTemp[1] = 0;
}
break;
}
return ApiStatus_BLOCK;
}
extern s16 D_80244A54_BC1BF4[];
ApiStatus func_80241094_BBE234(Evt* script, s32 isInitialCall) {
s32 var0 = script->varTable[0];
s32 var1 = script->varTable[1];
s32 temp;
if (var1 == 0) {
script->functionTemp[2] = D_80244A54_BC1BF4[rand_int(3)];
var1 = rand_int(50) + 30;
}
var1--;
temp = script->functionTemp[2];
if (var0 < temp) {
var0 += 10;
if (temp < var0) {
var0 = temp;
}
}
if (temp < var0) {
var0 -= 10;
if (var0 < temp) {
var0 = temp;
}
}
script->varTable[0] = var0;
script->varTable[1] = var1;
return ApiStatus_DONE2;
}

View File

@ -2,8 +2,35 @@
/// @brief Boo's Mansion - Foyer
#include "common.h"
#include "../obk.h"
#include "message_ids.h"
#include "map.h"
#include "../obk.h"
#include "mapfs/obk_01_shape.h"
#include "mapfs/obk_01_hit.h"
#include "sprite/npc/WorldParakarry.h"
#include "sprite/npc/Boo.h"
enum {
NPC_JumpScareBoo = 0,
NPC_TrafficBoo1 = 1,
NPC_TrafficBoo2 = 2,
NPC_UpstairsBoo = 3,
NPC_Franky = 4,
};
enum {
MV_UnusedPosOffset = MapVar(10),
MV_CabinetPosOffset = MapVar(11),
};
#define NAMESPACE obk_01
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupChandelier);
extern EvtScript N(EVS_SetupPortrait);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_Scene_JumpScareBoo);
extern NpcGroupList N(DefaultNPCs);
extern EvtScript N(EVS_MakeEntities);

View File

@ -0,0 +1,18 @@
#include "obk_01.h"
EntryList N(Entrances) = {
[obk_01_ENTRY_0] { 460.0, -420.0, 630.0, 0.0 },
[obk_01_ENTRY_1] { 250.0, -420.0, 15.0, 180.0 },
[obk_01_ENTRY_2] { 610.0, -420.0, 15.0, 180.0 },
[obk_01_ENTRY_3] { 250.0, -210.0, 15.0, 180.0 },
[obk_01_ENTRY_4] { 610.0, -210.0, 15.0, 180.0 },
[obk_01_ENTRY_5] { 270.0, 0.0, 15.0, 180.0 },
[obk_01_ENTRY_6] { 630.0, 0.0, 15.0, 180.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_obk_01 },
};

Some files were not shown because too many files have changed in this diff Show More