mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 00:42:34 +01:00
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:
parent
cf2099772d
commit
cbdce77daf
@ -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,
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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) \
|
||||
|
@ -35,5 +35,6 @@ extern EvtScript EnterSplitDoubleDoor;
|
||||
extern EvtScript BaseExitDoor;
|
||||
extern EvtScript BaseEnterDoor;
|
||||
extern EvtScript EnterPostPipe;
|
||||
extern EvtScript ItemShopInteract;
|
||||
|
||||
#endif
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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];
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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 = {
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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,
|
||||
};
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
69
src/npc.c
69
src/npc.c
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
@ -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"
|
@ -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;
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
#include "kmr_11.h"
|
||||
|
||||
#define NAMESPACE dup_kmr_11
|
||||
#include "common/foliage.inc.c"
|
||||
#define NAMESPACE kmr_11
|
||||
|
@ -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);
|
||||
|
14
src/world/area_kmr/kmr_11/kmr_11_0_header.c
Normal file
14
src/world/area_kmr/kmr_11/kmr_11_0_header.c
Normal 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 },
|
||||
};
|
265
src/world/area_kmr/kmr_11/kmr_11_10_bridge_skeleton.c
Normal file
265
src/world/area_kmr/kmr_11/kmr_11_10_bridge_skeleton.c
Normal 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
|
||||
};
|
763
src/world/area_kmr/kmr_11/kmr_11_11_bridge_animation.c
Normal file
763
src/world/area_kmr/kmr_11/kmr_11_11_bridge_animation.c
Normal 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,
|
||||
};
|
7
src/world/area_kmr/kmr_11/kmr_11_1_music.c
Normal file
7
src/world/area_kmr/kmr_11/kmr_11_1_music.c
Normal 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
|
||||
};
|
150
src/world/area_kmr/kmr_11/kmr_11_2_main.c
Normal file
150
src/world/area_kmr/kmr_11/kmr_11_2_main.c
Normal 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
|
||||
};
|
465
src/world/area_kmr/kmr_11/kmr_11_3_scenes.c
Normal file
465
src/world/area_kmr/kmr_11/kmr_11_3_scenes.c
Normal 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
|
||||
};
|
441
src/world/area_kmr/kmr_11/kmr_11_4_npc.c
Normal file
441
src/world/area_kmr/kmr_11/kmr_11_4_npc.c
Normal 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)),
|
||||
{}
|
||||
};
|
102
src/world/area_kmr/kmr_11/kmr_11_5_entity.c
Normal file
102
src/world/area_kmr/kmr_11/kmr_11_5_entity.c
Normal 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
|
||||
};
|
59
src/world/area_kmr/kmr_11/kmr_11_6_kammy.c
Normal file
59
src/world/area_kmr/kmr_11/kmr_11_6_kammy.c
Normal 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
|
||||
};
|
133
src/world/area_kmr/kmr_11/kmr_11_7_foliage.c
Normal file
133
src/world/area_kmr/kmr_11/kmr_11_7_foliage.c
Normal 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
|
||||
};
|
733
src/world/area_kmr/kmr_11/kmr_11_8_fortress_skeleton.c
Normal file
733
src/world/area_kmr/kmr_11/kmr_11_8_fortress_skeleton.c
Normal 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
|
||||
};
|
2983
src/world/area_kmr/kmr_11/kmr_11_9_fortress_animation.c
Normal file
2983
src/world/area_kmr/kmr_11/kmr_11_9_fortress_animation.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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);
|
||||
|
23
src/world/area_kmr/kmr_22/kmr_22_0_header.c
Normal file
23
src/world/area_kmr/kmr_22/kmr_22_0_header.c
Normal 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)),
|
||||
};
|
186
src/world/area_kmr/kmr_22/kmr_22_1_main.c
Normal file
186
src/world/area_kmr/kmr_22/kmr_22_1_main.c
Normal 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
|
||||
};
|
809
src/world/area_kmr/kmr_22/kmr_22_2_npc.c
Normal file
809
src/world/area_kmr/kmr_22/kmr_22_2_npc.c
Normal 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)),
|
||||
{}
|
||||
};
|
13
src/world/area_kmr/kmr_22/npc/chapter_1.inc.c
Normal file
13
src/world/area_kmr/kmr_22/npc/chapter_1.inc.c
Normal 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
|
||||
};
|
33
src/world/area_kmr/kmr_22/npc/chapter_2.inc.c
Normal file
33
src/world/area_kmr/kmr_22/npc/chapter_2.inc.c
Normal 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
|
||||
};
|
13
src/world/area_kmr/kmr_22/npc/chapter_3.inc.c
Normal file
13
src/world/area_kmr/kmr_22/npc/chapter_3.inc.c
Normal 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
|
||||
};
|
20
src/world/area_kmr/kmr_22/npc/chapter_4.inc.c
Normal file
20
src/world/area_kmr/kmr_22/npc/chapter_4.inc.c
Normal 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
|
||||
};
|
6
src/world/area_kmr/kmr_22/npc/chapter_5.inc.c
Normal file
6
src/world/area_kmr/kmr_22/npc/chapter_5.inc.c
Normal 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
|
||||
};
|
41
src/world/area_kmr/kmr_22/npc/chapter_6.inc.c
Normal file
41
src/world/area_kmr/kmr_22/npc/chapter_6.inc.c
Normal 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
|
||||
};
|
34
src/world/area_kmr/kmr_22/npc/chapter_7.inc.c
Normal file
34
src/world/area_kmr/kmr_22/npc/chapter_7.inc.c
Normal 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
|
||||
};
|
6
src/world/area_kmr/kmr_22/npc/chapter_8.inc.c
Normal file
6
src/world/area_kmr/kmr_22/npc/chapter_8.inc.c
Normal 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
|
||||
};
|
234
src/world/area_kmr/kmr_22/npc/lava_piranha.inc.c
Normal file
234
src/world/area_kmr/kmr_22/npc/lava_piranha.inc.c
Normal 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
|
||||
};
|
@ -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
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -86,5 +86,3 @@ extern EvtScript N(EVS_MakeEntities);
|
||||
extern NpcGroupList N(IntroNPCs);
|
||||
extern NpcGroupList N(EpilogueNPCs);
|
||||
extern NpcGroupList N(DefaultNPCs);
|
||||
|
||||
extern EvtScript ItemShopInteract;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
110
src/world/area_obk/TrafficBoos.inc.c
Normal file
110
src/world/area_obk/TrafficBoos.inc.c
Normal 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
|
||||
};
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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);
|
||||
|
18
src/world/area_obk/obk_01/obk_01_0_header.c
Normal file
18
src/world/area_obk/obk_01/obk_01_0_header.c
Normal 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
Loading…
Reference in New Issue
Block a user