kmr + revisions (#828)

* kmr_07

* more kmr

* kzn cleanup 1-9

* kzn cleanup II

* arn/mgm/gv/end revision

* iwa I

* bubulb spelling

* rest of iwa

* more kmr

* enough kmr_23 for now

* quick fix

Co-authored-by: HailSanta <Hail2Santa@gmail.com>
This commit is contained in:
HailSanta 2022-10-17 03:46:24 -04:00 committed by GitHub
parent 64763ae586
commit 342887a94c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
420 changed files with 5315 additions and 6001 deletions

View File

@ -1932,13 +1932,11 @@ typedef struct PeachStarBeamFXData {
typedef struct ChapterChangeFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x04 */ Vec2f chapterPos;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x10 */ Vec2f endOfPos;
/* 0x18 */ s32 timeLeft;
/* 0x1C */ s32 lifetime;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
@ -1965,14 +1963,12 @@ typedef struct IceShardFXData {
typedef struct SpiritCardFXData {
/* 0x00 */ char unk_00[0x4];
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x10];
/* 0x20 */ s32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x24 */ f32 yaw;
/* 0x28 */ char unk_28[0xC];
/* 0x34 */ s8 unk_34;
/* 0x34 */ s8 chapter;
} SpiritCardFXData; // ?
#define MAX_LIL_OINKS 11

View File

@ -3608,6 +3608,38 @@ enum AnyPartnerAnims {
PARTNER_ANIM_9 = 0x109,
};
enum EnemyAnimIndices {
ENEMY_ANIM_INDEX_IDLE = 0,
ENEMY_ANIM_INDEX_WALK = 1,
ENEMY_ANIM_INDEX_RUN = 2,
ENEMY_ANIM_INDEX_CHASE = 3,
ENEMY_ANIM_INDEX_JUMP = 4,
ENEMY_ANIM_INDEX_05 = 5,
ENEMY_ANIM_INDEX_DEATH = 6,
ENEMY_ANIM_INDEX_HIT = 7,
ENEMY_ANIM_INDEX_MELEE_PRE = 8,
ENEMY_ANIM_INDEX_MELEE_HIT = 9,
};
enum AnyEnemyAnims {
ENEMY_ANIM_IDLE = 0x201,
ENEMY_ANIM_WALK = 0x202,
ENEMY_ANIM_RUN = 0x203,
ENEMY_ANIM_CHASE = 0x204,
ENEMY_ANIM_JUMP = 0x205,
ENEMY_ANIM_5 = 0x206,
ENEMY_ANIM_DEATH = 0x207,
ENEMY_ANIM_HIT = 0x208,
ENEMY_ANIM_8 = 0x209,
ENEMY_ANIM_9 = 0x20A,
ENEMY_ANIM_A = 0x20B,
ENEMY_ANIM_B = 0x20C,
ENEMY_ANIM_C = 0x20D,
ENEMY_ANIM_D = 0x20E,
ENEMY_ANIM_E = 0x20F,
ENEMY_ANIM_F = 0x210,
};
enum FirstStrikes {
FIRST_STRIKE_NONE = 0x00000000,
FIRST_STRIKE_PLAYER = 0x00000001,
@ -4266,19 +4298,6 @@ enum EnemyAIStates {
AI_STATE_PROJECTILE_HITBOX_33 = 33,
};
enum EnemyAIAnims {
ENEMY_ANIM_IDLE = 0,
ENEMY_ANIM_WALK = 1,
ENEMY_ANIM_RUN = 2,
ENEMY_ANIM_CHASE = 3,
ENEMY_ANIM_JUMP = 4,
ENEMY_ANIM_05 = 5,
ENEMY_ANIM_DEATH = 6,
ENEMY_ANIM_HIT = 7,
ENEMY_ANIM_MELEE_PRE = 8,
ENEMY_ANIM_MELEE_HIT = 9,
};
enum EnemyActionFlags {
AI_ACTION_JUMP_WHEN_SEE_PLAYER = 0x01,
AI_ACTION_02 = 0x02,
@ -4749,6 +4768,19 @@ enum EncounterStatusFlags {
ENCOUNTER_STATUS_FLAGS_80000000 = 0x80000000,
};
enum WindowImageFormat {
WINDOW_IMG_RGBA_16 = 0x02,
WINDOW_IMG_RGBA_32 = 0x03,
WINDOW_IMG_YUV_16 = 0x12,
WINDOW_IMG_CI_4 = 0x20,
WINDOW_IMG_CI_8 = 0x21,
WINDOW_IMG_IA_4 = 0x30,
WINDOW_IMG_IA_8 = 0x31,
WINDOW_IMG_IA_16 = 0x32,
WINDOW_IMG_I_4 = 0x40,
WINDOW_IMG_I_8 = 0x41,
};
enum WindowFlags {
WINDOW_FLAGS_INITIALIZED = 0x00000001,
WINDOW_FLAGS_FPUPDATE_CHANGED = 0x00000002,

View File

@ -142,6 +142,17 @@ typedef enum ShapeTypes {
SHAPE_TYPE_SPECIAL_GROUP = 10,
} ShapeTypes;
typedef struct ShapeFile {
/* 0x00 */ ModelNode* root;
/* 0x04 */ Vtx_t* vertexTable;
/* 0x08 */ char** modelNames;
/* 0x0C */ char** colliderNames;
/* 0x10 */ char** zoneNames;
/* 0x14 */ unsigned char pad_14[0xC];
// end header
/* 0x20 */ u8 data[0];
} ShapeFile; // size = variable
typedef ModelTreeInfo ModelTreeInfoList[0x200];
extern ModelTreeInfoList* mdl_currentModelTreeNodeInfo;
extern ModelList* gCurrentModels;

View File

@ -133,7 +133,7 @@ extern s16 D_800A0922;
extern char wMapTexName[];
extern char wMapHitName[];
extern char wMapShapeName[];
extern struct ModelNode* D_80210000;
extern struct ShapeFile* D_80210000; // shouldnt be a pointer
extern u8 D_802D9D70; // player alpha1 copy?
extern u8 D_802D9D71; // player alpha2 copy?

View File

@ -131,7 +131,7 @@ EvtScript EnemyNpcHit = {
EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_JUMP)
EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_HAMMER)
EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_PARTNER)
EVT_CALL(GetSelfAnimationFromTable, ENEMY_ANIM_HIT, LVar0)
EVT_CALL(GetSelfAnimationFromTable, ENEMY_ANIM_INDEX_HIT, LVar0)
EVT_EXEC_WAIT(EVS_NpcHitRecoil)
EVT_CASE_EQ(ENCOUNTER_TRIGGER_SPIN)
EVT_THREAD

View File

@ -268,7 +268,7 @@ void basic_ai_wander_init(Evt* script, MobileAISettings* npcAISettings, EnemyDet
// chose a random direction and move time
npc->duration = (npcAISettings->moveTime / 2) + rand_int((npcAISettings->moveTime / 2) + 1);
npc->yaw = clamp_angle(npc->yaw + rand_int(60) - 30.0f);
npc->currentAnim = enemy->animList[ENEMY_ANIM_WALK];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_WALK];
script->functionTemp[1] = 0;
if (enemy->territory->wander.moveSpeedOverride < 0) {
@ -378,7 +378,7 @@ void basic_ai_loiter_init(Evt* script, MobileAISettings* aiSettings, EnemyDetect
npc->duration = (aiSettings->waitTime / 2) + rand_int((aiSettings->waitTime / 2) + 1);
npc->yaw = clamp_angle(npc->yaw + rand_int(180) - 90.0f);
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_IDLE];
script->AI_TEMP_STATE = AI_STATE_LOITER;
}
@ -429,7 +429,7 @@ void basic_ai_found_player_jump_init(Evt* script, MobileAISettings* npcAISetting
Npc* npc = get_npc_unsafe(enemy->npcID);
ai_enemy_play_sound(npc, SOUND_3E1, 0);
npc->currentAnim = enemy->animList[ENEMY_ANIM_JUMP];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_JUMP];
npc->jumpVelocity = 10.0f;
npc->jumpScale = 2.5f;
npc->moveToPos.y = npc->pos.y;
@ -488,7 +488,7 @@ void basic_ai_chase_init(Evt* script, MobileAISettings* npcAISettings, EnemyDete
npc->duration = 0;
}
npc->currentAnim = enemy->animList[ENEMY_ANIM_CHASE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_CHASE];
npc->moveSpeed = npcAISettings->chaseSpeed;
script->AI_TEMP_STATE = AI_STATE_CHASE;
}
@ -501,7 +501,7 @@ void basic_ai_chase(Evt* script, MobileAISettings* aiSettings, EnemyDetectVolume
if (!basic_ai_check_player_dist(territory, enemy, aiSettings->chaseRadius, aiSettings->chaseOffsetDist, 1)) {
fx_emote(EMOTE_QUESTION, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 15, &sp28);
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_IDLE];
npc->duration = 20;
script->AI_TEMP_STATE = AI_STATE_LOSE_PLAYER;
return;
@ -514,7 +514,7 @@ void basic_ai_chase(Evt* script, MobileAISettings* aiSettings, EnemyDetectVolume
z = npc->pos.z;
if (npc_test_move_simple_with_slipping(npc->collisionChannel, &x, &y, &z, 1.0f, npc->yaw, npc->collisionHeight, npc->collisionRadius)) {
fx_emote(EMOTE_QUESTION, npc, 0, npc->collisionHeight, 1.0f, 2.0f, -20.0f, 0xC, &sp28);
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_IDLE];
npc->duration = 15;
script->AI_TEMP_STATE = AI_STATE_LOSE_PLAYER;
return;
@ -569,7 +569,7 @@ ApiStatus BasicAI_Main(Evt* script, s32 isInitialCall) {
script->AI_TEMP_STATE = AI_STATE_WANDER_INIT;
npc->duration = 0;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_IDLE];
npc->flags &= ~NPC_FLAG_JUMPING;
if (!enemy->territory->wander.isFlying) {

View File

@ -92,18 +92,18 @@ void shim_draw_msg(s32, s32, s32, s32, s32, s32);
s32 shim_get_msg_width(s32, u16);
void func_E010E000(ChapterChangeFXData* data, s32 arg1, UnkStruct* arg2) {
s32 unk_1C = data->unk_1C;
s32 unk_1C = data->lifetime;
UnkStruct* it;
f32 var0;
f32 var1;
f32 posX;
f32 posY;
s32 temp;
if (arg1 == 0) {
var0 = data->unk_04;
var1 = data->unk_08;
posX = data->chapterPos.x;
posY = data->chapterPos.y;
} else {
var0 = data->unk_10;
var1 = data->unk_14;
posX = data->endOfPos.x;
posY = data->endOfPos.y;
}
if (arg2 != NULL) {
@ -113,10 +113,10 @@ void func_E010E000(ChapterChangeFXData* data, s32 arg1, UnkStruct* arg2) {
temp = it->x - 384;
gDPSetTileSize(gMasterGfxPos++, 1, (unk_1C * 4 - temp) * 4, 0, (unk_1C * 4 - it->x + 511) * 4, 0);
gSPScisTextureRectangle(gMasterGfxPos++,
(var0 + it->x) * 4,
(var1 + it->y) * 4,
(var0 + it->x + it->width) * 4,
(var1 + it->y + it->height) * 4,
(posX + it->x) * 4,
(posY + it->y) * 4,
(posX + it->x + it->width) * 4,
(posY + it->y + it->height) * 4,
G_TX_RENDERTILE, 0, 0, 1024, 1024);
}
@ -124,7 +124,7 @@ void func_E010E000(ChapterChangeFXData* data, s32 arg1, UnkStruct* arg2) {
}
}
EffectInstance* chapter_change_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectInstance* chapter_change_main(s32 arg0, f32 posX, f32 posY, f32 arg3, f32 arg4, s32 duration) {
EffectBlueprint bp;
ChapterChangeFXData* data;
EffectInstance* effect;
@ -143,14 +143,14 @@ EffectInstance* chapter_change_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32
ASSERT(effect->data.chapterChange != NULL);
data->unk_00 = arg0;
data->unk_1C = 0;
if (arg5 <= 0) {
data->unk_18 = 1000;
data->lifetime = 0;
if (duration <= 0) {
data->timeLeft = 1000;
} else {
data->unk_18 = arg5;
data->timeLeft = duration;
}
data->unk_04 = data->unk_10 = arg1;
data->unk_08 = data->unk_14 = arg2;
data->chapterPos.x = data->endOfPos.x = posX;
data->chapterPos.y = data->endOfPos.y = posY;
data->unk_0C = arg3;
data->unk_50 = arg4;
data->unk_20 = 255;
@ -182,18 +182,18 @@ void chapter_change_init(EffectInstance* effect) {
void chapter_change_update(EffectInstance* effect) {
ChapterChangeFXData* data = effect->data.chapterChange;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_18 = 0x10;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
data->timeLeft = 16;
}
if (data->unk_18 < 1000) {
data->unk_18--;
if (data->timeLeft < 1000) {
data->timeLeft--;
}
data->unk_1C++;
data->lifetime++;
if (data->unk_18 < 0) {
if (data->timeLeft < 0) {
shim_remove_effect(effect);
}
}

View File

@ -20,8 +20,8 @@ void set_npc_animation(Npc* npc, u32 animID) {
if (animID - PARTNER_ANIM_WALK < 9) {
npc->currentAnim = gPartnerAnimations[playerData->currentPartner].anims[animID - PARTNER_ANIM_WALK];
} else if ((animID - 0x201) < 0x10) {
npc->currentAnim = get_enemy(npc->npcID)->animList[animID - 0x201];
} else if ((animID - ENEMY_ANIM_IDLE) < 0x10) {
npc->currentAnim = get_enemy(npc->npcID)->animList[animID - ENEMY_ANIM_IDLE];
} else {
npc->currentAnim = animID;
}

View File

@ -19,3 +19,8 @@ enum {
};
#define NAMESPACE arn_02
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_02.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_02_ENTRY_0] { -585.0, 60.0, 150.0, 90.0 },
[arn_02_ENTRY_1] { 880.0, 320.0, 150.0, 270.0 },
@ -14,17 +12,3 @@ MapSettings N(settings) = {
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_arn_02 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,15 @@
#include "arn_02.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -1,9 +1,5 @@
#include "arn_02.h"
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitWalk_arn_05_1) = EVT_EXIT_WALK(60, arn_02_ENTRY_0, "arn_05", arn_05_ENTRY_1);
EvtScript N(EVS_ExitWalk_arn_04_0) = EVT_EXIT_WALK(60, arn_02_ENTRY_1, "arn_04", arn_04_ENTRY_0);

View File

@ -32,3 +32,9 @@ enum {
};
#define NAMESPACE arn_03
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(BeforeNPCs);
extern NpcGroupList N(AfterNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_03.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_03_ENTRY_0] { -76.0, 165.0, 150.0, 90.0 },
[arn_03_ENTRY_1] { 576.0, 225.0, 150.0, 270.0 },
@ -14,17 +12,3 @@ MapSettings N(settings) = {
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_arn_03 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,15 @@
#include "arn_03.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -1,10 +1,5 @@
#include "arn_03.h"
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(BeforeNPCs);
extern NpcGroupList N(AfterNPCs);
EvtScript N(EVS_ExitWalk_arn_07_1) = EVT_EXIT_WALK(60, arn_03_ENTRY_0, "arn_07", arn_07_ENTRY_1);
EvtScript N(EVS_ExitWalk_arn_05_0) = EVT_EXIT_WALK(60, arn_03_ENTRY_1, "arn_05", arn_05_ENTRY_0);

View File

@ -1,5 +1,4 @@
#include "arn_03.h"
#include "entity.h"
#include "world/common/npc/Boo_Patrol.inc.c"
#include "world/common/npc/Boo.inc.c"

View File

@ -21,3 +21,8 @@ enum {
};
#define NAMESPACE arn_04
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_04.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_04_ENTRY_0] { -585.0, 60.0, 150.0, 90.0 },
[arn_04_ENTRY_1] { 820.0, 285.0, 150.0, 270.0 },
@ -14,17 +12,3 @@ MapSettings N(settings) = {
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_arn_04 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,15 @@
#include "arn_04.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -1,9 +1,4 @@
#include "arn_04.h"
#include "entity.h"
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitWalk_arn_02_1) = EVT_EXIT_WALK(60, arn_04_ENTRY_0, "arn_02", arn_02_ENTRY_1);
EvtScript N(EVS_ExitWalk_dgb_00_0) = EVT_EXIT_WALK(60, arn_04_ENTRY_1, "dgb_00", dgb_00_ENTRY_0);

View File

@ -9,10 +9,6 @@
#include "mapfs/arn_05_shape.h"
#include "mapfs/arn_05_hit.h"
#include "sprite/npc/Boo.h"
#include "sprite/npc/WorldBow.h"
#include "sprite/npc/WorldTubba.h"
enum {
NPC_Boo_01 = 0,
NPC_Boo_02 = 1,
@ -32,3 +28,10 @@ enum {
};
#define NAMESPACE arn_05
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupTubbaRaid);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(BeforeNPCs);
extern NpcGroupList N(AfterNPCs);

View File

@ -1,8 +1,6 @@
#include "arn_05.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_05_ENTRY_0] { -77.0, 135.0, 150.0, 90.0 },
[arn_05_ENTRY_1] { 577.0, 200.0, 150.0, 270.0 },
@ -15,19 +13,3 @@ MapSettings N(settings) = {
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_arn_05 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_SAW_TUBBA_EAT_BOO)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,18 @@
#include "arn_05.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_SAW_TUBBA_EAT_BOO)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_RETURN
EVT_END
};

View File

@ -1,11 +1,5 @@
#include "arn_05.h"
extern EvtScript N(EVS_SetupTubbaRaid);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
extern NpcGroupList N(NpcGroup1);
EvtScript N(EVS_ExitWalk_arn_03_1) = EVT_EXIT_WALK(60, arn_05_ENTRY_0, "arn_03", arn_03_ENTRY_1);
EvtScript N(EVS_ExitWalk_arn_02_0) = EVT_EXIT_WALK(60, arn_05_ENTRY_1, "arn_02", arn_02_ENTRY_0);
@ -35,9 +29,9 @@ EvtScript N(EVS_Main) = {
EVT_CALL(SetSpriteShading, SHADING_NONE)
EVT_SETUP_CAMERA_DEFAULT()
EVT_IF_LT(GB_StoryProgress, STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs)))
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(BeforeNPCs)))
EVT_ELSE
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(NpcGroup1)))
EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(AfterNPCs)))
EVT_END_IF
EVT_EXEC_WAIT(N(EVS_MakeEntities))
EVT_EXEC(N(EVS_SetupTubbaRaid))

View File

@ -1,15 +1,8 @@
#include "arn_05.h"
extern EvtScript(N(EVS_SetupMusic));
NpcSettings N(NpcSettings_Tubba) = {
.height = 90,
.radius = 65,
.level = 13,
.onHit = &EnemyNpcHit,
.onDefeat = &EnemyNpcDefeat,
};
#include "sprite/npc/WorldBow.h"
#include "world/common/enemy/complete/TubbaBlubba.inc.c"
#include "world/common/npc/Boo_Patrol.inc.c"
#include "world/common/npc/Boo.inc.c"
@ -243,11 +236,7 @@ StaticNpc N(NpcData_Boo_01)[] = {
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Boo_01),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.drops = BOO_DROPS,
.territory = {
.patrol = {
.isFlying = FALSE,
@ -262,24 +251,7 @@ StaticNpc N(NpcData_Boo_01)[] = {
.detectSize = { 50 },
}
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooD,
},
{
@ -289,29 +261,8 @@ StaticNpc N(NpcData_Boo_01)[] = {
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Boo_02),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooE,
},
{
@ -321,29 +272,8 @@ StaticNpc N(NpcData_Boo_01)[] = {
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Boo_03),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooF,
},
{
@ -353,29 +283,8 @@ StaticNpc N(NpcData_Boo_01)[] = {
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Boo_04),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooG,
},
{
@ -385,11 +294,7 @@ StaticNpc N(NpcData_Boo_01)[] = {
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Boo_05),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.drops = BOO_DROPS,
.territory = {
.patrol = {
.isFlying = FALSE,
@ -404,24 +309,7 @@ StaticNpc N(NpcData_Boo_01)[] = {
.detectSize = { 50 },
}
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.animations = GUSTY_BOO_ANIMS,
.tattle = MSG_NpcTattle_ARN_BooH,
},
};
@ -748,34 +636,13 @@ s32 N(extraAnimationList_80244390)[] = {
StaticNpc N(NpcData_Tubba) = {
.id = NPC_Tubba,
.settings = &N(NpcSettings_Tubba),
.settings = &N(NpcSettings_TubbaBlubba),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 270,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_JUMPING,
.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,
},
.drops = TUBBA_DROPS,
.animations = TUBBA_ANIMS,
.extraAnimations = N(extraAnimationList_80244390),
};
@ -839,29 +706,8 @@ StaticNpc N(NpcData_Boo_06)[] = {
.yaw = 90,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_4 | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_PROJECT_SHADOW | NPC_FLAG_400000,
.init = &N(EVS_NpcInit_Boo_06),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
},
{
.id = NPC_Boo_07,
@ -870,29 +716,8 @@ StaticNpc N(NpcData_Boo_06)[] = {
.yaw = 90,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_4 | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_PROJECT_SHADOW | NPC_FLAG_400000,
.init = &N(EVS_NpcInit_Boo_07),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
},
{
.id = NPC_Boo_08,
@ -901,29 +726,8 @@ StaticNpc N(NpcData_Boo_06)[] = {
.yaw = 90,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_4 | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_PROJECT_SHADOW | NPC_FLAG_400000,
.init = &N(EVS_NpcInit_Boo_08),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
},
{
.id = NPC_Boo_09,
@ -932,39 +736,18 @@ StaticNpc N(NpcData_Boo_06)[] = {
.yaw = 90,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_4 | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_PROJECT_SHADOW | NPC_FLAG_400000,
.init = &N(EVS_NpcInit_Boo_09),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_Boo_Tan_Idle,
.walk = ANIM_Boo_Tan_Walk,
.run = ANIM_Boo_Tan_Run,
.chase = ANIM_Boo_Tan_Run,
.anim_4 = ANIM_Boo_Tan_Idle,
.anim_5 = ANIM_Boo_Tan_Idle,
.death = ANIM_Boo_Tan_Still,
.hit = ANIM_Boo_Tan_Still,
.anim_8 = ANIM_Boo_Tan_Confused,
.anim_9 = ANIM_Boo_Tan_Run,
.anim_A = ANIM_Boo_Tan_Run,
.anim_B = ANIM_Boo_Tan_Run,
.anim_C = ANIM_Boo_Tan_Run,
.anim_D = ANIM_Boo_Tan_Run,
.anim_E = ANIM_Boo_Tan_Run,
.anim_F = ANIM_Boo_Tan_Run,
},
.drops = BOO_DROPS,
.animations = GUSTY_BOO_ANIMS,
},
};
NpcGroupList N(DefaultNPCs) = {
NpcGroupList N(BeforeNPCs) = {
NPC_GROUP(N(NpcData_Tubba)),
NPC_GROUP(N(NpcData_Boo_01)),
{}
};
NpcGroupList N(NpcGroup1) = {
NpcGroupList N(AfterNPCs) = {
NPC_GROUP(N(NpcData_Tubba)),
NPC_GROUP(N(NpcData_Boo_01)),
NPC_GROUP(N(NpcData_Boo_06)),

View File

@ -14,8 +14,6 @@
#include "sprite/npc/WorldBow.h"
#include "sprite/npc/Boo.h"
#include "sprite/npc/Bootler.h"
#include "sprite/npc/WorldSkolar.h"
#include "sprite/npc/Paragoomba.h"
enum {
NPC_TubbasHeart = 0,
@ -39,3 +37,15 @@ enum {
};
#define NAMESPACE arn_07
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_UnlockDoor);
extern EvtScript N(EVS_SetupWindmill);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript(N(EVS_SpawnStarCard));
extern EvtScript(N(EVS_ExitDoor_arn_08_0));
extern NpcGroupList N(DefaultNPCs);
extern NpcGroupList N(BossNPCs);
extern NpcGroupList N(SpiritNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_07.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_07_ENTRY_0] { 0.0, 20.0, -147.0, 180.0 },
[arn_07_ENTRY_1] { 485.0, 0.0, 0.0, 270.0 },
@ -16,24 +14,3 @@ MapSettings N(settings) = {
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_arn_07 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_LT(STORY_CH3_HEART_ESCAPED_WINDY_MILL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_EQ(STORY_CH3_BEGAN_PEACH_MISSION)
EVT_CALL(SetMusicTrack, 0, SONG_STAR_SPIRIT_THEME, 1, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,22 @@
#include "arn_07.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP)
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_LT(STORY_CH3_HEART_ESCAPED_WINDY_MILL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_CASE_EQ(STORY_CH3_BEGAN_PEACH_MISSION)
EVT_CALL(SetMusicTrack, 0, SONG_STAR_SPIRIT_THEME, 1, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_CALL(PlayAmbientSounds, AMBIENT_WIND)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,13 +1,5 @@
#include "arn_07.h"
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_UnlockDoor);
extern EvtScript N(EVS_SetupWindmill);
extern EvtScript N(EVS_SetupMusic);
extern NpcGroupList N(DefaultNPCs);
extern NpcGroupList N(BossNPCs);
extern NpcGroupList N(SpiritNPCs);
#include "world/common/todo/StarSpiritEffectFunc.inc.c"
s32 N(KeyList)[] = {

View File

@ -1,7 +1,5 @@
#include "arn_07.h"
extern EvtScript(N(EVS_UpdateWindmill));
MAP_RODATA_PAD(1,windmill);
API_CALLABLE(N(WrapWindmillAngle)) {
@ -14,6 +12,8 @@ API_CALLABLE(N(WrapWindmillAngle)) {
return ApiStatus_DONE2;
}
extern EvtScript(N(EVS_UpdateWindmill));
EvtScript N(EVS_SetupWindmill) = {
EVT_EXEC(N(EVS_UpdateWindmill))
EVT_RETURN

View File

@ -1,8 +1,6 @@
#include "arn_07.h"
#include "entity.h"
extern EvtScript(N(EVS_ExitDoor_arn_08_0));
MAP_RODATA_PAD(1,entity);
#include "world/common/todo/RemovePadlock.inc.c"

View File

@ -1,39 +1,11 @@
#include "arn_07.h"
#include "effects.h"
extern EvtScript(N(EVS_SetupMusic));
extern EvtScript(N(EVS_SpawnStarCard));
#include "world/common/enemy/complete/HyperParagoomba.inc.c"
#include "world/common/npc/TubbasHeart.inc.c"
NpcSettings N(NpcSettings_Tubba) = {
.height = 90,
.radius = 65,
.level = 13,
.onHit = &EnemyNpcHit,
.onDefeat = &EnemyNpcDefeat,
};
#include "world/common/enemy/complete/TubbaBlubba.inc.c"
#include "world/common/npc/Boo.inc.c"
NpcSettings N(NpcSettings_Skolar) = {
.height = 26,
.radius = 24,
.level = 99,
};
NpcSettings N(NpcSettings_Unused1) = {
.height = 20,
.radius = 20,
.level = 99,
};
NpcSettings N(NpcSettings_Unused2) = {
.height = 22,
.radius = 24,
.level = 99,
};
#include "world/common/npc/StarSpirit.inc.c"
API_CALLABLE(N(UpgradeStarPower)) {
PlayerData* playerData = &gPlayerData;
@ -591,34 +563,13 @@ EvtScript N(EVS_NpcInit_Skolar) = {
StaticNpc N(NpcData_Tubba)[] = {
{
.id = NPC_Tubba,
.settings = &N(NpcSettings_Tubba),
.settings = &N(NpcSettings_TubbaBlubba),
.pos = { 309.0f, 0.0f, 11.0f },
.yaw = 270,
.flags = NPC_FLAG_4 | NPC_FLAG_100 | NPC_FLAG_GRAVITY | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING | NPC_FLAG_40000 | NPC_FLAG_200000,
.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,
},
.drops = TUBBA_DROPS,
.animations = TUBBA_ANIMS,
.extraAnimations = N(ExtraAnims_Tubba),
},
{
@ -851,34 +802,13 @@ StaticNpc N(NpcData_HyperParagoomba_03) = {
StaticNpc N(NpcData_Skolar) = {
.id = NPC_Skolar,
.settings = &N(NpcSettings_Skolar),
.settings = &N(NpcSettings_StarSpirit),
.pos = { NPC_DISPOSE_LOCATION },
.yaw = 0,
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING,
.init = &N(EVS_NpcInit_Skolar),
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
.idle = ANIM_WorldSkolar_Idle,
.walk = ANIM_WorldSkolar_Idle,
.run = ANIM_WorldSkolar_Idle,
.chase = ANIM_WorldSkolar_Idle,
.anim_4 = ANIM_WorldSkolar_Idle,
.anim_5 = ANIM_WorldSkolar_Idle,
.death = ANIM_WorldSkolar_Idle,
.hit = ANIM_WorldSkolar_Idle,
.anim_8 = ANIM_WorldSkolar_Still,
.anim_9 = ANIM_WorldSkolar_Idle,
.anim_A = ANIM_WorldSkolar_Idle,
.anim_B = ANIM_WorldSkolar_Idle,
.anim_C = ANIM_WorldSkolar_Idle,
.anim_D = ANIM_WorldSkolar_Idle,
.anim_E = ANIM_WorldSkolar_Idle,
.anim_F = ANIM_WorldSkolar_Idle,
},
.drops = SKOLAR_DROPS,
.animations = SKOLAR_ANIMS,
};
NpcGroupList N(BossNPCs) = {

View File

@ -18,3 +18,11 @@ enum {
};
#define NAMESPACE arn_08
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_AnimateGears);
extern EvtScript N(EVS_SetupHole);
extern EvtScript N(EVS_PlayDemoScene);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupMusic);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_08.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_08_ENTRY_0] { -80.0, 0.0, 108.0, 45.0 },
[arn_08_ENTRY_1] { 0.0, 0.0, 0.0, 0.0 },
@ -14,17 +12,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_08 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(ClearAmbientSounds, 250)
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,15 @@
#include "arn_08.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_CALL(ClearAmbientSounds, 250)
EVT_RETURN
EVT_END
};

View File

@ -1,12 +1,5 @@
#include "arn_08.h"
extern EvtScript N(EVS_AnimateGears);
extern EvtScript N(EVS_SetupHole);
extern EvtScript N(EVS_PlayDemoScene);
extern EvtScript N(EVS_MakeEntities);
extern EvtScript N(EVS_SetupMusic);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitDoor_arn_07_0) = {
EVT_SET_GROUP(EVT_GROUP_1B)
EVT_CALL(DisablePlayerInput, TRUE)

View File

@ -16,3 +16,9 @@ enum {
};
#define NAMESPACE arn_09
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_LaunchPlayer);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_09.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_09_ENTRY_0] { 125.0, 0.0, 0.0, 270.0 },
[arn_09_ENTRY_1] { 0.0, 200.0, 0.0, 90.0 },
@ -13,16 +11,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_09 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "arn_09.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,11 +1,5 @@
#include "arn_09.h"
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_LaunchPlayer);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitDoor_arn_10_0) = EVT_EXIT_SPLIT_SINGLE_DOOR(arn_09_ENTRY_0, "arn_10", arn_10_ENTRY_0,
COLLIDER_tte, MODEL_doa, MODEL_o37, DOOR_SWING_OUT);

View File

@ -9,12 +9,14 @@
#include "mapfs/arn_10_shape.h"
#include "mapfs/arn_10_hit.h"
#include "sprite/npc/TubbasHeart.h"
#include "sprite/npc/Goomba.h"
enum {
NPC_TubbasHeart = 0,
NPC_HyperGoomba = 1,
};
#define NAMESPACE arn_10
extern EvtScript N(EVS_Main);
extern NpcGroupList N(DefaultNPCs);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);

View File

@ -1,7 +1,5 @@
#include "arn_10.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_10_ENTRY_0] { -225.0, 0.0, 0.0, 90.0 },
[arn_10_ENTRY_1] { 225.0, 0.0, 0.0, 270.0 },
@ -13,16 +11,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_10 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "arn_10.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,9 +1,5 @@
#include "arn_10.h"
extern NpcGroupList N(DefaultNPCs);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
EvtScript N(EVS_ExitDoor_arn_09_0) = EVT_EXIT_SINGLE_DOOR(arn_10_ENTRY_0, "arn_09", arn_09_ENTRY_0,
COLLIDER_ttw, MODEL_o44, DOOR_SWING_IN);

View File

@ -1,7 +1,7 @@
#include "arn_10.h"
#include "entity.h"
EvtScript N(80240BE0) = {
EvtScript N(EVS_ReadSign) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_0182, 160, 40)
EVT_CALL(DisablePlayerInput, FALSE)
@ -11,7 +11,7 @@ EvtScript N(80240BE0) = {
EvtScript N(EVS_MakeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(Entity_Signpost), 200, 0, -40, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80240BE0)))
EVT_CALL(AssignScript, EVT_PTR(N(EVS_ReadSign)))
EVT_RETURN
EVT_END
};

View File

@ -16,3 +16,7 @@ enum {
};
#define NAMESPACE arn_11
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_11.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_11_ENTRY_0] { -165.0, 0.0, 0.0, 90.0 },
};
@ -12,16 +10,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_11 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_WENT_DOWN_THE_WELL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "arn_11.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_WENT_DOWN_THE_WELL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,8 +1,5 @@
#include "arn_11.h"
extern EvtScript N(EVS_SetupMusic);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_SetupCamera) = {
EVT_CALL(SetCamType, CAM_DEFAULT, 6, TRUE)
EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(3.0))

View File

@ -9,12 +9,14 @@
#include "mapfs/arn_12_shape.h"
#include "mapfs/arn_12_hit.h"
#include "sprite/npc/TubbasHeart.h"
#include "sprite/npc/Goomba.h"
enum {
NPC_TubbasHeart = 0,
NPC_HyperGoomba = 1,
};
#define NAMESPACE arn_12
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_12.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_12_ENTRY_0] { -231.0, 0.0, 5.0, 90.0 },
[arn_12_ENTRY_1] { 231.0, 0.0, 5.0, 270.0 },
@ -13,16 +11,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_12 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "arn_12.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,9 +1,5 @@
#include "arn_12.h"
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitDoor_arn_10_1) = EVT_EXIT_SINGLE_DOOR(arn_12_ENTRY_0, "arn_10", arn_10_ENTRY_1,
COLLIDER_ttw, MODEL_o44, DOOR_SWING_IN);

View File

@ -9,12 +9,14 @@
#include "mapfs/arn_13_shape.h"
#include "mapfs/arn_13_hit.h"
#include "sprite/npc/TubbasHeart.h"
#include "sprite/npc/Goomba.h"
enum {
NPC_TubbasHeart = 0,
NPC_HyperGoomba = 1,
};
#define NAMESPACE arn_13
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -1,7 +1,5 @@
#include "arn_13.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
[arn_13_ENTRY_0] { -231.0, 0.0, 5.0, 90.0 },
[arn_13_ENTRY_1] { 231.0, 0.0, 5.0, 270.0 },
@ -13,16 +11,3 @@ MapSettings N(settings) = {
.entryCount = ENTRY_COUNT(N(Entrances)),
.tattle = { MSG_MapTattle_arn_13 },
};
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -0,0 +1,14 @@
#include "arn_13.h"
EvtScript N(EVS_SetupMusic) = {
EVT_SWITCH(GB_StoryProgress)
EVT_CASE_LT(STORY_CH3_HEART_FLED_FIRST_TUNNEL)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};

View File

@ -1,9 +1,5 @@
#include "arn_13.h"
extern EvtScript N(EVS_SetupMusic);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);
EvtScript N(EVS_ExitDoor_arn_12_1) = EVT_EXIT_SINGLE_DOOR(arn_13_ENTRY_0, "arn_12", arn_12_ENTRY_1,
COLLIDER_ttw, MODEL_o44, DOOR_SWING_IN);

View File

@ -7,14 +7,7 @@
#include "world/common/npc/Dryite_Stationary.inc.c"
#include "world/common/npc/Mouser.inc.c"
#include "world/common/npc/ThreeSisters.inc.c"
// toad kid?
NpcSettings N(NpcSettings_Unused1) = {
.height = 23,
.radius = 19,
.level = 99,
};
#include "world/common/npc/Toad_Stationary.inc.c"
#define CHUCK_QUIZMO_NPC_ID NPC_ChuckQuizmo
#include "world/common/complete/Quizmo.inc.c"
@ -393,35 +386,35 @@ StaticNpc N(PassiveNPCs)[] = {
StaticNpc N(ThreeSisterNPCs)[] = {
{
.id = NPC_ThreeSisters_01,
.settings = &N(NpcSettings_ThreeSisters),
.settings = &N(NpcSettings_Toad_Stationary),
.pos = { -141.0f, 0.0f, -18.0f },
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING | NPC_FLAG_NO_PROJECT_SHADOW,
.init = &N(EVS_NpcInit_ThreeSisters),
.yaw = 62,
.drops = THREE_SISTER_DROPS,
.animations = THREE_SISTER_ANIMS,
.drops = TOADETTE_DROPS,
.animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidA,
},
{
.id = NPC_ThreeSisters_02,
.settings = &N(NpcSettings_ThreeSisters),
.settings = &N(NpcSettings_Toad_Stationary),
.pos = { -124.0f, 0.0f, -61.0f },
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING | NPC_FLAG_NO_PROJECT_SHADOW,
.init = &N(EVS_NpcInit_ThreeSisters),
.yaw = 63,
.drops = THREE_SISTER_DROPS,
.animations = THREE_SISTER_ANIMS,
.drops = TOADETTE_DROPS,
.animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidB,
},
{
.id = NPC_ThreeSisters_03,
.settings = &N(NpcSettings_ThreeSisters),
.settings = &N(NpcSettings_Toad_Stationary),
.pos = { -80.0f, 0.0f, -35.0f },
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING | NPC_FLAG_NO_PROJECT_SHADOW,
.init = &N(EVS_NpcInit_ThreeSisters),
.yaw = 244,
.drops = THREE_SISTER_DROPS,
.animations = THREE_SISTER_ANIMS,
.drops = TOADETTE_DROPS,
.animations = TOADETTE_PINK_ANIMS,
.tattle = MSG_NpcTattle_TravelingMaidC,
},
};

View File

@ -47,18 +47,7 @@ NpcSettings N(NpcSettings_Archeologist) = {
#include "world/common/npc/Dryite_Stationary.inc.c"
#include "world/common/npc/Mouser.inc.c"
NpcSettings N(NpcSettings_ToadHouseKeeper) = {
.height = 30,
.radius = 24,
.level = 99,
};
// toad kid?
NpcSettings N(NpcSettings_Unused1) = {
.height = 23,
.radius = 19,
.level = 99,
};
#include "world/common/npc/Toad_Stationary.inc.c"
#include "npc_merlee.c"
@ -451,34 +440,13 @@ StaticNpc N(PassiveNPCs)[] = {
},
{
.id = NPC_Toad,
.settings = &N(NpcSettings_ToadHouseKeeper),
.settings = &N(NpcSettings_Toad_Stationary),
.pos = { -143.0f, 0.0f, -170.0f },
.flags = NPC_FLAG_PASSIVE | NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING | NPC_FLAG_NO_PROJECT_SHADOW,
.init = &N(EVS_NpcInit_ToadHouseKeeper),
.yaw = 180,
.drops = {
.dropFlags = NPC_DROP_FLAGS_80,
.heartDrops = NO_DROPS,
.flowerDrops = NO_DROPS,
},
.animations = {
ANIM_Toad_Red_Idle,
ANIM_Toad_Red_Walk,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Idle,
ANIM_Toad_Red_Idle,
ANIM_Toad_Red_Disappointed,
ANIM_Toad_Red_Disappointed,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
ANIM_Toad_Red_Run,
},
.drops = TOAD_DROPS,
.animations = TOAD_RED_ANIMS,
.tattle = MSG_NpcTattle_DRO_ToadHouseToad,
},
{

View File

@ -162,3 +162,10 @@ enum {
};
#define NAMESPACE end_00
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_ManageParade);
extern EvtScript N(EVS_OffsetNpcScroll);
API_CALLABLE(N(AddScrollToNpcPos));

View File

@ -0,0 +1,16 @@
#include "end_00.h"
s32 N(map_init)(void) {
gGameStatusPtr->playerSpriteSet = 3;
return FALSE;
}
EntryList N(Entrances) = {
[end_00_ENTRY_0] { 0.0, 0.0, 0.0, 0.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};

View File

@ -1,6 +0,0 @@
#include "end_00.h"
s32 N(map_init)(void) {
gGameStatusPtr->playerSpriteSet = 3;
return FALSE;
}

View File

@ -1,18 +1,5 @@
#include "end_00.h"
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_ManageParade); // EVS_ManageParade
EntryList N(Entrances) = {
[end_00_ENTRY_0] { 0.0, 0.0, 0.0, 0.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};
EvtScript N(EVS_Main) = {
EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 35, 16, 4096)
EVT_CALL(SetCamViewport, CAM_DEFAULT, 15, 28, 290, 128)

View File

@ -1,10 +1,6 @@
#include "end_00.h"
#include "effects.h"
extern EvtScript N(EVS_OffsetNpcScroll);
API_CALLABLE(N(AddScrollToNpcPos));
s32 N(UnusedAlpha) = 255;
API_CALLABLE(N(SetUnusedAlpha)) {

View File

@ -65,8 +65,8 @@ enum {
NPC_Merlar = 23,
NPC_SunSad = 24,
NPC_SunHappy = 25,
NPC_Bulbulb1 = 26,
NPC_Bulbulb2 = 27,
NPC_Bubulb1 = 26,
NPC_Bubulb2 = 27,
NPC_ShyGuyMarshall = 28,
NPC_GeneralGuy = 29,
NPC_BackupDancer1 = 30,
@ -125,3 +125,9 @@ enum {
};
#define NAMESPACE end_01
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_ManageParade);
extern EvtScript N(EVS_OffsetNpcScroll);
API_CALLABLE(N(AddScrollToNpcPos));

View File

@ -0,0 +1,15 @@
#include "end_01.h"
s32 N(map_init)(void) {
return FALSE;
}
EntryList N(Entrances) = {
[end_01_ENTRY_0] { 0.0, 0.0, 0.0, 0.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};

View File

@ -1,5 +0,0 @@
#include "end_01.h"
s32 N(map_init)(void) {
return FALSE;
}

View File

@ -1,23 +1,10 @@
#include "end_01.h"
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_ManageParade);
API_CALLABLE(N(WidenCameraFOV)) {
gCameras[CAM_DEFAULT].vfov = 35.0f;
return ApiStatus_DONE2;
}
EntryList N(Entrances) = {
[end_01_ENTRY_0] { 0.0, 0.0, 0.0, 0.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};
EvtScript N(EVS_Main) = {
EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096)
EVT_CALL(SetCamViewport, CAM_DEFAULT, 15, 28, 290, 128)

View File

@ -346,12 +346,12 @@ ParadeNpcInfo N(ParadeNpcsTable)[] = {
.pos = { 0.0f, -500.0f, 0.0f },
.yaw = 90.0f
},
[NPC_Bulbulb1] {
[NPC_Bubulb1] {
.initialAnim = ANIM_Bubulb_Pink_DarkWalk,
.pos = { -1850.0f, 0.0f, -20.0f },
.yaw = 270.0f
},
[NPC_Bulbulb2] {
[NPC_Bubulb2] {
.initialAnim = ANIM_Bubulb_Pink_DarkWalk,
.pos = { -1850.0f, 0.0f, 20.0f },
.yaw = 270.0f
@ -614,8 +614,8 @@ EvtScript N(EVS_ManageNpcPool) = {
EVT_CALL(N(CreateParadeNPC), NPC_Merlar)
EVT_CALL(N(CreateParadeNPC), NPC_SunSad)
EVT_CALL(N(CreateParadeNPC), NPC_SunHappy)
EVT_CALL(N(CreateParadeNPC), NPC_Bulbulb1)
EVT_CALL(N(CreateParadeNPC), NPC_Bulbulb2)
EVT_CALL(N(CreateParadeNPC), NPC_Bubulb1)
EVT_CALL(N(CreateParadeNPC), NPC_Bubulb2)
EVT_LOOP(0)
EVT_WAIT(1)
EVT_CALL(GetCamPosition, CAM_DEFAULT, LVar0, LVar1, LVar2)
@ -666,8 +666,8 @@ EvtScript N(EVS_ManageNpcPool) = {
EVT_CALL(DeleteNpc, NPC_Merlar)
EVT_CALL(DeleteNpc, NPC_SunSad)
EVT_CALL(DeleteNpc, NPC_SunHappy)
EVT_CALL(DeleteNpc, NPC_Bulbulb1)
EVT_CALL(DeleteNpc, NPC_Bulbulb2)
EVT_CALL(DeleteNpc, NPC_Bubulb1)
EVT_CALL(DeleteNpc, NPC_Bubulb2)
EVT_WAIT(1)
EVT_CALL(N(CreateParadeNPC), NPC_HornPlayer1)
EVT_CALL(N(CreateParadeNPC), NPC_HornPlayer2)

View File

@ -87,8 +87,8 @@ EvtScript N(EVS_Sun) = {
EVT_END
};
EvtScript N(EVS_Bulbulbs) = {
EVT_CALL(GetNpcPos, NPC_Bulbulb1, LVar0, LVar1, LVar2)
EvtScript N(EVS_Bubulbs) = {
EVT_CALL(GetNpcPos, NPC_Bubulb1, LVar0, LVar1, LVar2)
EVT_SET(LVar3, LVar0)
EVT_ADD(LVar3, -120)
EVT_LOOP(0)
@ -101,14 +101,14 @@ EvtScript N(EVS_Bulbulbs) = {
EVT_CALL(MakeLerp, 0, 360, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, NPC_Bulbulb1, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bulbulb2, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bubulb1, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bubulb2, 0, LVar0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(GetNpcPos, NPC_Bulbulb1, LVar0, LVar1, LVar2)
EVT_CALL(GetNpcPos, NPC_Bubulb1, LVar0, LVar1, LVar2)
EVT_SET(LVar3, LVar0)
EVT_ADD(LVar3, 100)
EVT_LOOP(0)
@ -121,8 +121,8 @@ EvtScript N(EVS_Bulbulbs) = {
EVT_CALL(MakeLerp, 0, 360, 10, EASING_LINEAR)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, NPC_Bulbulb1, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bulbulb2, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bubulb1, 0, LVar0, 0)
EVT_CALL(SetNpcRotation, NPC_Bubulb2, 0, LVar0, 0)
EVT_WAIT(1)
EVT_IF_EQ(LVar1, 0)
EVT_BREAK_LOOP
@ -143,7 +143,7 @@ EvtScript N(EVS_ParadePhase_Wizards) = {
EVT_END_LOOP
EVT_WAIT(1)
EVT_EXEC_GET_TID(N(EVS_TexPan_FlowerFloat_Base), LVarA)
EVT_EXEC(N(EVS_Bulbulbs))
EVT_EXEC(N(EVS_Bubulbs))
EVT_LOOP(0)
EVT_WAIT(1)
EVT_CALL(GetCamPosition, CAM_DEFAULT, LVar0, LVar1, LVar2)

View File

@ -2,10 +2,6 @@
#include "world/common/atomic/UnkFunc27.inc.c"
API_CALLABLE(N(AddScrollToNpcPos));
extern EvtScript N(EVS_OffsetNpcScroll);
EvtScript N(EVS_TexPan_ShyGuyFloat_Sides) = {
EVT_CALL(EnableTexPanning, MODEL_omo1, TRUE)
EVT_CALL(EnableTexPanning, MODEL_omo4, TRUE)

View File

@ -1078,7 +1078,7 @@ StaticNpc N(npcGroup_80245054)[] = {
ANIM_Bubulb_Pink_Idle,
ANIM_Bubulb_Pink_Idle,
},
.tattle = MSG_NpcTattle_FLO_BulbulbA,
.tattle = MSG_NpcTattle_FLO_BubulbA,
},
{
.id = NPC_BUBULB2,
@ -1111,7 +1111,7 @@ StaticNpc N(npcGroup_80245054)[] = {
ANIM_Bubulb_Purple_Idle,
ANIM_Bubulb_Purple_Idle,
},
.tattle = MSG_NpcTattle_FLO_BulbulbB,
.tattle = MSG_NpcTattle_FLO_BubulbB,
},
{
.id = NPC_BUBULB3,
@ -1144,7 +1144,7 @@ StaticNpc N(npcGroup_80245054)[] = {
ANIM_Bubulb_Green_Idle,
ANIM_Bubulb_Green_Idle,
},
.tattle = MSG_NpcTattle_FLO_BulbulbC,
.tattle = MSG_NpcTattle_FLO_BubulbC,
},
{
.id = NPC_BUBULB4,
@ -1177,7 +1177,7 @@ StaticNpc N(npcGroup_80245054)[] = {
ANIM_Bubulb_Yellow_Idle,
ANIM_Bubulb_Yellow_Idle,
},
.tattle = MSG_NpcTattle_FLO_BulbulbD,
.tattle = MSG_NpcTattle_FLO_BubulbD,
},
};

View File

@ -1145,18 +1145,18 @@ ApiStatus N(func_80240158_CA73F8)(Evt* script, s32 isInitialCall) {
add_vec2D_polar(&sp10, &sp14, 46.0f, clamp);
}
}
npc->currentAnim = enemy->animList[ENEMY_ANIM_RUN];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_RUN];
npc->yaw = atan2(npc->pos.x, npc->pos.z, sp10, sp14);
npc_move_heading(npc, 2.0f, npc->yaw);
} else if (temp_f4 > 0.2) {
npc->yaw = atan2(npc->pos.x, npc->pos.z, sp10, sp14);
npc->pos.x = sp10;
npc->pos.z = sp14;
npc->currentAnim = enemy->animList[ENEMY_ANIM_WALK];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_WALK];
} else {
npc->pos.x = sp10;
npc->pos.z = sp14;
npc->currentAnim = enemy->animList[ENEMY_ANIM_IDLE];
npc->currentAnim = enemy->animList[ENEMY_ANIM_INDEX_IDLE];
}
return ApiStatus_BLOCK;
}

View File

@ -10,3 +10,5 @@
#include "mapfs/gv_01_hit.h"
#define NAMESPACE gv_01
extern EvtScript N(EVS_Main);

View File

@ -0,0 +1,11 @@
#include "gv_01.h"
EntryList N(Entrances) = {
[gv_01_ENTRY_0] { 0.0, 0.0, 0.0, 90.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};

View File

@ -2,18 +2,6 @@
#include "sprite.h"
#include "hud_element.h"
extern EvtScript N(EVS_Main);
EntryList N(Entrances) = {
{ 0.0, 0.0, 0.0, 90.0 }, /* gv_01_ENTRY_0 */
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
};
#include "world/common/entity/Pipe.inc.c"
#include "world/common/entity/Pipe.data.inc.c"

View File

@ -21,7 +21,7 @@ enum {
};
enum {
AF_IWA_SpokeWithBulbulb = AreaFlag(1),
AF_IWA_SpokeWithBubulb = AreaFlag(1),
AF_IWA_SpokeWIthDryite = AreaFlag(2),
};

View File

@ -9,9 +9,6 @@
#include "mapfs/iwa_00_shape.h"
#include "mapfs/iwa_00_hit.h"
#include "sprite/npc/MontyMole.h"
#include "sprite/npc/Whacka.h"
enum {
NPC_MontyMole_01 = 0,
NPC_MontyMole_01_Hole = 1,
@ -22,3 +19,8 @@ enum {
};
#define NAMESPACE iwa_00
extern EvtScript N(EVS_Main);
extern EvtScript N(EVS_BindSlideTriggers);
extern EvtScript N(EVS_MakeEntities);
extern NpcGroupList N(DefaultNPCs);

View File

@ -0,0 +1,15 @@
#include "iwa_00.h"
EntryList N(Entrances) = {
[iwa_00_ENTRY_0] { 55.0, -5.0, -25.0, 90.0 },
[iwa_00_ENTRY_1] { 1313.0, 90.0, -40.0, 270.0 },
[iwa_00_ENTRY_2] { 625.0, -30.0, 259.0, 45.0 },
};
MapSettings N(settings) = {
.main = &N(EVS_Main),
.entryList = &N(Entrances),
.entryCount = ENTRY_COUNT(N(Entrances)),
.background = &gBackgroundImage,
.tattle = { MSG_MapTattle_iwa_00 },
};

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