Convert DSL scripts into macro syntax (#570)

* convert half the workload of DSL scripts into macro syntax

* convert more DSL scripts to macro syntax
This commit is contained in:
Alexander Faßbender 2021-12-24 18:09:06 +01:00 committed by GitHub
parent be35cf4fc9
commit 3428ae1941
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
55 changed files with 14900 additions and 13975 deletions

View File

@ -69,7 +69,7 @@ enum {
EVT_OP_FBUF_PEEK, ///< Args: index, container
EVT_OP_USE_ARRAY, ///< Args: *s32
EVT_OP_USE_FLAGS, ///< Args: *s32
EVT_OP_NEW_ARRAY, ///< Allocates a new array. Args: length, s32*
EVT_OP_MALLOC_ARRAY, ///< Allocates a new array. Args: length, s32*
EVT_OP_BITWISE_AND, ///< Args: container, expression to bitwise AND with
EVT_OP_BITWISE_AND_CONST, ///< Args: container, value to bitwise AND with
EVT_OP_BITWISE_OR, ///< Args: container, expression to bitwise OR with

View File

@ -1540,7 +1540,7 @@ s32 evt_execute_next_command(Evt *script) {
case EVT_OP_USE_FLAGS:
status = evt_handle_set_flag_array(script);
break;
case EVT_OP_NEW_ARRAY:
case EVT_OP_MALLOC_ARRAY:
status = evt_handle_allocate_array(script);
break;
case EVT_OP_KILL_THREAD:

View File

@ -22,111 +22,119 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_05_tattle },
};
EvtSource N(802414E0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(802414E0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_1578)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_80241580) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 16;
EVT_VAR(2) = 30;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_03", 2);
sleep 100;
});
EvtSource N(exitSingleDoor_80241580) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 16)
EVT_SET(EVT_VAR(2), 30)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80241634) = SCRIPT({
UseDoorSounds(0);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 30;
EVT_VAR(3) = -1;
await EnterSingleDoor;
}
}
});
EvtSource N(enterSingleDoor_80241634) = {
EVT_CALL(UseDoorSounds, 0)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 30)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
if (EVT_STORY_PROGRESS < STORY_CH3_STAR_SPIRIT_RESCUED) {
MakeNpcs(1, N(npcGroupList_8024230C));
}
await N(makeEntities);
spawn N(802417F0);
ModifyColliderFlags(0, 18, 0x7FFFFE00);
EnableModel(20, 0);
bind N(exitSingleDoor_80241580) TRIGGER_WALL_PRESS_A 16;
spawn N(802414E0);
spawn N(enterSingleDoor_80241634);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_IF_LT(EVT_SAVE_VAR(0), -15)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024230C)))
EVT_END_IF
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(802417F0))
EVT_CALL(ModifyColliderFlags, 0, 18, 0x7FFFFE00)
EVT_CALL(EnableModel, 20, 0)
EVT_BIND_TRIGGER(N(exitSingleDoor_80241580), TRIGGER_WALL_PRESS_A, 16, 1, 0)
EVT_EXEC(N(802414E0))
EVT_EXEC(N(enterSingleDoor_80241634))
EVT_RETURN
EVT_END
};
static s32 N(pad_17E8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(802417F0) = SCRIPT({
N(func_80240000_C3AA10)();
func_802CA988(0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(func_80240030_C3AA40)();
EVT_SAVE_FLAG(1047) = 1;
GotoMap("dgb_06", 1);
sleep 100;
});
EvtSource N(802417F0) = {
EVT_CALL(N(func_80240000_C3AA10))
EVT_CALL(func_802CA988, 0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(func_80240030_C3AA40))
EVT_SET(EVT_SAVE_FLAG(1047), 1)
EVT_CALL(GotoMap, EVT_PTR("dgb_06"), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
static s32 N(pad_1868)[] = {
0x00000000, 0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
if (EVT_SAVE_FLAG(1047) == 0) {
MakeEntity(0x802BCE84, 510, -210, 100, 0, MAKE_ENTITY_END);
}
});
EvtSource N(makeEntities) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1047), 0)
EVT_CALL(MakeEntity, 0x802BCE84, 510, -210, 100, 0, MAKE_ENTITY_END)
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_18BC) = {
0x00000000,
};
EvtSource N(802418C0) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(802418C0) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(unk_missing_8024197C)[] = {
0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x0039000C, 0x00390007, 0x00390008, 0x00390011,
@ -153,13 +161,15 @@ NpcAISettings N(npcAISettings_802419AC) = {
.unk_2C = 1,
};
EvtSource N(npcAI_802419DC) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 10);
SetSelfVar(2, 14);
SetSelfVar(3, 18);
N(func_80240E80_C3B890)(N(npcAISettings_802419AC));
});
EvtSource N(npcAI_802419DC) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 10)
EVT_CALL(SetSelfVar, 2, 14)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(N(func_80240E80_C3B890), EVT_PTR(N(npcAISettings_802419AC)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80241A4C) = {
.height = 36,
@ -170,16 +180,18 @@ NpcSettings N(npcSettings_80241A4C) = {
.level = 13,
};
EvtSource N(npcAI_80241A78) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(npcAI_80241A78) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80241B20) = {
.height = 14,

View File

@ -18,113 +18,123 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_06_tattle },
};
EvtSource N(80240320) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240320) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_3B8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_802403C0) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 12;
EVT_VAR(2) = 5;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_04", 1);
sleep 100;
});
EvtSource N(exitSingleDoor_802403C0) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 12)
EVT_SET(EVT_VAR(2), 5)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_04"), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80240474) = SCRIPT({
UseDoorSounds(0);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 5;
EVT_VAR(3) = -1;
await EnterSingleDoor;
}
}
});
EvtSource N(enterSingleDoor_80240474) = {
EVT_CALL(UseDoorSounds, 0)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 5)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(589824);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
MakeNpcs(1, N(npcGroupList_80240B44));
await N(makeEntities);
if (EVT_SAVE_FLAG(1047) == 0) {
EnableGroup(28, 0);
} else {
EnableGroup(25, 0);
}
bind N(exitSingleDoor_802403C0) TRIGGER_WALL_PRESS_A 12;
spawn N(80240320);
spawn N(enterSingleDoor_80240474);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, 589824)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80240B44)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_IF_EQ(EVT_SAVE_FLAG(1047), 0)
EVT_CALL(EnableGroup, 28, 0)
EVT_ELSE
EVT_CALL(EnableGroup, 25, 0)
EVT_END_IF
EVT_BIND_TRIGGER(N(exitSingleDoor_802403C0), TRIGGER_WALL_PRESS_A, 12, 1, 0)
EVT_EXEC(N(80240320))
EVT_EXEC(N(enterSingleDoor_80240474))
EVT_RETURN
EVT_END
};
#include "world/common/StashVars.inc.c"
EvtSource N(80240624) = SCRIPT({
group 0;
SetTimeFreezeMode(2);
sleep 40;
ShowGotItem(EVT_VAR(0), 0, 0);
SetTimeFreezeMode(0);
return;
});
EvtSource N(80240624) = {
EVT_SET_GROUP(0)
EVT_CALL(SetTimeFreezeMode, 2)
EVT_WAIT_FRAMES(40)
EVT_CALL(ShowGotItem, EVT_VAR(0), 0, 0)
EVT_CALL(SetTimeFreezeMode, 0)
EVT_RETURN
EVT_RETURN
EVT_END
};
EvtSource N(8024068C) = SCRIPT({
DisablePlayerInput(TRUE);
EVT_VAR(0) = EVT_VAR(10);
if (EVT_VAR(10) != 0) {
await N(80240624);
}
match EVT_VAR(11) {
== 0 {
AddItem(EVT_VAR(10), EVT_VAR(0));
}
== 1 {
AddKeyItem(EVT_VAR(10));
}
== 2 {
AddBadge(EVT_VAR(10), EVT_VAR(0));
}
}
sleep 15;
DisablePlayerInput(FALSE);
});
EvtSource N(8024068C) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(EVT_VAR(0), EVT_VAR(10))
EVT_IF_NE(EVT_VAR(10), 0)
EVT_EXEC_WAIT(N(80240624))
EVT_END_IF
EVT_SWITCH(EVT_VAR(11))
EVT_CASE_EQ(0)
EVT_CALL(AddItem, EVT_VAR(10), EVT_VAR(0))
EVT_CASE_EQ(1)
EVT_CALL(AddKeyItem, EVT_VAR(10))
EVT_CASE_EQ(2)
EVT_CALL(AddBadge, EVT_VAR(10), EVT_VAR(0))
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(8024076C) = SCRIPT({
EVT_VAR(10) = 19;
EVT_VAR(11) = 1;
EVT_SAVE_FLAG(1048) = 1;
await N(8024068C);
});
EvtSource N(8024076C) = {
EVT_SET(EVT_VAR(10), 19)
EVT_SET(EVT_VAR(11), 1)
EVT_SET(EVT_SAVE_FLAG(1048), 1)
EVT_EXEC_WAIT(N(8024068C))
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EAE30, -300, 50, -200, 0, ITEM_NONE, MAKE_ENTITY_END);
AssignFlag(EVT_SAVE_FLAG(1048));
AssignScript(N(8024076C));
MakeEntity(0x802EA7E0, -125, 60, 175, 0, MAKE_ENTITY_END);
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EAE30, -300, 50, -200, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignFlag, EVT_SAVE_FLAG(1048))
EVT_CALL(AssignScript, EVT_PTR(N(8024076C)))
EVT_CALL(MakeEntity, 0x802EA7E0, -125, 60, 175, 0, MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};
static s32 N(pad_834)[] = {
0x00000000, 0x00000000, 0x00000000,
@ -136,24 +146,26 @@ NpcSettings N(npcSettings_80240840) = {
.level = 99,
};
EvtSource N(interact_8024086C) = SCRIPT({
if (EVT_AREA_FLAG(4) == 0) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_boo_Palette_01_Anim_4, NPC_ANIM_boo_Palette_01_Anim_1, 0, MESSAGE_ID(0x0E,
0x00F0));
EVT_AREA_FLAG(4) = 1;
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_boo_Palette_01_Anim_4, NPC_ANIM_boo_Palette_01_Anim_1, 0, MESSAGE_ID(0x0E,
0x00F1));
EVT_AREA_FLAG(4) = 0;
}
});
EvtSource N(interact_8024086C) = {
EVT_IF_EQ(EVT_AREA_FLAG(4), 0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_boo_Palette_01_Anim_4, NPC_ANIM_boo_Palette_01_Anim_1, 0, MESSAGE_ID(0x0E, 0x00F0))
EVT_SET(EVT_AREA_FLAG(4), 1)
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_boo_Palette_01_Anim_4, NPC_ANIM_boo_Palette_01_Anim_1, 0, MESSAGE_ID(0x0E, 0x00F1))
EVT_SET(EVT_AREA_FLAG(4), 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(init_802408FC) = SCRIPT({
if (EVT_STORY_PROGRESS >= STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) {
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
BindNpcInteract(NPC_SELF, N(interact_8024086C));
});
EvtSource N(init_802408FC) = {
EVT_IF_GE(EVT_SAVE_VAR(0), -26)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_END_IF
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_8024086C)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80240954) = {
.id = NPC_BOO,

View File

@ -21,91 +21,97 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_07_tattle },
};
EvtSource N(80241490) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80241490) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_1528)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_80241530) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 6;
EVT_VAR(2) = 22;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_02", 2);
sleep 100;
});
EvtSource N(exitSingleDoor_80241530) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 6)
EVT_SET(EVT_VAR(2), 22)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_802415E4) = SCRIPT({
UseDoorSounds(0);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 22;
EVT_VAR(3) = -1;
await EnterSingleDoor;
}
}
});
EvtSource N(enterSingleDoor_802415E4) = {
EVT_CALL(UseDoorSounds, 0)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 22)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
if (EVT_STORY_PROGRESS < STORY_CH3_STAR_SPIRIT_RESCUED) {
MakeNpcs(1, N(npcGroupList_80241E5C));
}
await N(makeEntities);
bind N(exitSingleDoor_80241530) TRIGGER_WALL_PRESS_A 6;
spawn N(80241490);
spawn N(enterSingleDoor_802415E4);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_IF_LT(EVT_SAVE_VAR(0), -15)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80241E5C)))
EVT_END_IF
EVT_EXEC_WAIT(N(makeEntities))
EVT_BIND_TRIGGER(N(exitSingleDoor_80241530), TRIGGER_WALL_PRESS_A, 6, 1, 0)
EVT_EXEC(N(80241490))
EVT_EXEC(N(enterSingleDoor_802415E4))
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
MakeItemEntity(ITEM_STAR_PIECE, -220, 75, -210, 17, EVT_SAVE_FLAG(1050));
MakeEntity(0x802EAED4, -370, 0, -200, 0, -1, MAKE_ENTITY_END);
MakeEntity(0x802EAED4, -410, 0, -200, 0, -1, MAKE_ENTITY_END);
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, -220, 75, -210, 17, EVT_SAVE_FLAG(1050))
EVT_CALL(MakeEntity, 0x802EAED4, -370, 0, -200, 0, -1, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, 0x802EAED4, -410, 0, -200, 0, -1, MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};
static s32 N(pad_17E4)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(802417F0) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(802417F0) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(extraAnimationList_802418AC)[] = {
NPC_ANIM_world_clubba_Palette_00_Anim_0,
@ -140,13 +146,15 @@ NpcAISettings N(npcAISettings_802418DC) = {
.unk_2C = 1,
};
EvtSource N(npcAI_8024190C) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 10);
SetSelfVar(2, 14);
SetSelfVar(3, 18);
N(func_80240E20_C3EA10)(N(npcAISettings_802418DC));
});
EvtSource N(npcAI_8024190C) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 10)
EVT_CALL(SetSelfVar, 2, 14)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(N(func_80240E20_C3EA10), EVT_PTR(N(npcAISettings_802418DC)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024197C) = {
.height = 36,
@ -157,16 +165,18 @@ NpcSettings N(npcSettings_8024197C) = {
.level = 13,
};
EvtSource N(npcAI_802419A8) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(npcAI_802419A8) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80241A50) = {
.height = 14,

View File

@ -30,95 +30,98 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_08_tattle },
};
EvtSource N(80243CF0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80243CF0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_3D88)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitDoubleDoor_80243D90) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 0;
EVT_VAR(1) = 14;
EVT_VAR(2) = 23;
EVT_VAR(3) = 25;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_01", 2);
sleep 100;
});
EvtSource N(exitDoubleDoor_80243D90) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 14)
EVT_SET(EVT_VAR(2), 23)
EVT_SET(EVT_VAR(3), 25)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_80243E44) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 1;
EVT_VAR(1) = 18;
EVT_VAR(2) = 18;
EVT_VAR(3) = 20;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_01", 4);
sleep 100;
});
EvtSource N(exitDoubleDoor_80243E44) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 18)
EVT_SET(EVT_VAR(2), 18)
EVT_SET(EVT_VAR(3), 20)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 4)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
const s32 N(pad_XXXX)[] = {
0x00000000, 0x00000000,
};
EvtSource N(enterDoubleDoor_80243EF8) = SCRIPT({
UseDoorSounds(3);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 23;
EVT_VAR(3) = 25;
await EnterDoubleDoor;
}
== 1 {
EVT_VAR(2) = 18;
EVT_VAR(3) = 20;
await EnterDoubleDoor;
}
}
});
EvtSource N(enterDoubleDoor_80243EF8) = {
EVT_CALL(UseDoorSounds, 3)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 23)
EVT_SET(EVT_VAR(3), 25)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_CASE_EQ(1)
EVT_SET(EVT_VAR(2), 18)
EVT_SET(EVT_VAR(3), 20)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_SMASHED_THE_BRIDGES {
MakeNpcs(1, N(npcGroupList_80246958));
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
MakeNpcs(1, N(npcGroupList_802469AC));
}
< STORY_CH6_RETURNED_TO_TOAD_TOWN {
MakeNpcs(1, N(npcGroupList_802469C4));
}
}
await N(802469E0);
bind N(exitDoubleDoor_80243D90) TRIGGER_WALL_PRESS_A 14;
bind N(exitDoubleDoor_80243E44) TRIGGER_WALL_PRESS_A 18;
spawn N(80243CF0);
spawn N(enterDoubleDoor_80243EF8);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-28)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246958)))
EVT_CASE_LT(-16)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802469AC)))
EVT_CASE_LT(60)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802469C4)))
EVT_END_SWITCH
EVT_EXEC_WAIT(N(802469E0))
EVT_BIND_TRIGGER(N(exitDoubleDoor_80243D90), TRIGGER_WALL_PRESS_A, 14, 1, 0)
EVT_BIND_TRIGGER(N(exitDoubleDoor_80243E44), TRIGGER_WALL_PRESS_A, 18, 1, 0)
EVT_EXEC(N(80243CF0))
EVT_EXEC(N(enterDoubleDoor_80243EF8))
EVT_RETURN
EVT_END
};
static s32 N(pad_40FC) = {
0x00000000,
@ -137,9 +140,11 @@ NpcAISettings N(npcAI_80244100) = {
.unk_2C = 1,
};
EvtSource N(80244130) = SCRIPT({
N(func_80240B94_C40944)(N(npcAI_80244100));
});
EvtSource N(80244130) = {
EVT_CALL(N(func_80240B94_C40944), EVT_PTR(N(npcAI_80244100)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244150) = {
.height = 90,
@ -164,22 +169,21 @@ NpcSettings N(npcSettings_802441A8) = {
.level = 13,
};
EvtSource N(802441D4) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(802441D4) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(extraAnimationList_80244290)[] = {
NPC_ANIM_world_clubba_Palette_00_Anim_0,
@ -214,13 +218,15 @@ NpcAISettings N(npcAISettings_802442C0) = {
.unk_2C = 3,
};
EvtSource N(npcAI_802442F0) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 5);
SetSelfVar(2, 8);
SetSelfVar(3, 12);
N(func_802414AC_C4125C)(N(npcAISettings_802442C0));
});
EvtSource N(npcAI_802442F0) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 5)
EVT_CALL(SetSelfVar, 2, 8)
EVT_CALL(SetSelfVar, 3, 12)
EVT_CALL(N(func_802414AC_C4125C), EVT_PTR(N(npcAISettings_802442C0)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244360) = {
.height = 36,
@ -231,16 +237,18 @@ NpcSettings N(npcSettings_80244360) = {
.level = 13,
};
EvtSource N(npcAI_8024438C) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(npcAI_8024438C) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244434) = {
.height = 14,
@ -256,10 +264,12 @@ f32 N(D_80244460_C44210)[] = {
1.5f, 20.0f,
};
EvtSource N(80244478) = SCRIPT({
SetSelfEnemyFlagBits(((0x00100000 | 0x01000000 | 0x02000000 | 0x04000000 | 0x08000000 | 0x10000000 | 0x20000000)), TRUE);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_Y_MOVEMENT)), TRUE);
});
EvtSource N(80244478) = {
EVT_CALL(SetSelfEnemyFlagBits, ((NPC_FLAG_MOTION_BLUR | NPC_FLAG_1000000 | NPC_FLAG_SIMPLIFIED_PHYSICS | NPC_FLAG_PARTICLE | NPC_FLAG_8000000 | NPC_FLAG_10000000 | NPC_FLAG_20000000)), TRUE)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_Y_MOVEMENT)), TRUE)
EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_802444B4) = {
.moveSpeed = 1.5f,
@ -276,86 +286,93 @@ NpcAISettings N(npcAISettings_802444B4) = {
const char N(dgb_00_name_hack)[];
EvtSource N(npcAI_802444E4) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -650);
SetSelfVar(6, 30);
SetSelfVar(1, 600);
N(func_802438F0_C436A0)(N(npcAISettings_802444B4));
DisablePlayerInput(TRUE);
sleep 2;
20:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetNpcPos(NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(4), EVT_VAR(2));
GetPlayerActionState(EVT_VAR(0));
if (EVT_VAR(0) != 0) {
sleep 1;
goto 20;
}
DisablePlayerPhysics(TRUE);
func_802D2B6C();
DisablePartnerAI(0);
group 0;
SetTimeFreezeMode(1);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 20;
EVT_VAR(2) += 2;
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
func_80045838(-1, 759, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_sentinel_Palette_00_Anim_8);
sleep 10;
SetPlayerAnimation(ANIM_80017);
sleep 10;
func_80045838(-1, 1838, 0);
spawn {
loop 100 {
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 1;
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 1;
SetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep 1;
}
}
spawn {
SetNpcAnimation(NPC_PARTNER, 0x108);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
}
sleep 30;
GotoMap(N(dgb_00_name_hack), 2);
sleep 100;
});
EvtSource N(npcAI_802444E4) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -650)
EVT_CALL(SetSelfVar, 6, 30)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_802438F0_C436A0), EVT_PTR(N(npcAISettings_802444B4)))
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(2)
EVT_LABEL(20)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(4), EVT_VAR(2))
EVT_CALL(GetPlayerActionState, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(20)
EVT_END_IF
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(func_802D2B6C)
EVT_CALL(DisablePartnerAI, 0)
EVT_SET_GROUP(0)
EVT_CALL(SetTimeFreezeMode, 1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 20)
EVT_ADD(EVT_VAR(2), 2)
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(func_80045838, -1, 759, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_sentinel_Palette_00_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetPlayerAnimation, ANIM_80017)
EVT_WAIT_FRAMES(10)
EVT_CALL(func_80045838, -1, 1838, 0)
EVT_THREAD
EVT_LOOP(100)
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 1)
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 1)
EVT_CALL(SetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_THREAD
EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_END_THREAD
EVT_WAIT_FRAMES(30)
EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(8024490C) = SCRIPT({
GetOwnerEncounterTrigger(EVT_VAR(0));
match EVT_VAR(0) {
== 1, 2, 4, 6 {
GetSelfAnimationFromTable(7, EVT_VAR(0));
await 0x800936DC;
}
}
});
EvtSource N(8024490C) = {
EVT_CALL(GetOwnerEncounterTrigger, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(1)
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(6)
EVT_CALL(GetSelfAnimationFromTable, 7, EVT_VAR(0))
EVT_EXEC_WAIT(0x800936DC)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(80244998) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
DoNpcDefeat();
}
== 1 {}
== 2 {
}
}
});
EvtSource N(80244998) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(1)
EVT_CASE_EQ(2)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802449FC) = {
.height = 38,
@ -371,117 +388,125 @@ NpcSettings N(npcSettings_80244A28) = {
.level = 99,
};
EvtSource N(idle_80244A54) = SCRIPT({
loop {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(0) >= -350) {
break loop;
}
sleep 1;
}
EVT_SAVE_VAR(203) = 8;
EVT_STORY_PROGRESS = STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL;
PlaySoundAtCollider(18, 455, 0);
MakeLerp(0, 80, 10, 0);
loop {
UpdateLerp();
RotateModel(18, EVT_VAR(0), 0, -1, 0);
RotateModel(20, EVT_VAR(0), 0, 1, 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
SetNpcAnimation(NPC_WORLD_TUBBA, NPC_ANIM_world_tubba_Palette_00_Anim_A);
SetNpcPos(NPC_SELF, -665, 210, 180);
SetNpcYaw(NPC_SELF, 90);
NpcMoveTo(NPC_SELF, -530, 180, 30);
spawn {
sleep 20;
MakeLerp(80, 0, 10, 0);
loop {
UpdateLerp();
RotateModel(18, EVT_VAR(0), 0, -1, 0);
RotateModel(20, EVT_VAR(0), 0, 1, 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
PlaySoundAtCollider(18, 456, 0);
}
NpcMoveTo(NPC_SELF, -500, 80, 10);
BindNpcAI(NPC_SELF, N(npcAI_80244D7C));
});
EvtSource N(idle_80244A54) = {
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GE(EVT_VAR(0), -350)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_SET(EVT_SAVE_VAR(203), 8)
EVT_SET(EVT_SAVE_VAR(0), -27)
EVT_CALL(PlaySoundAtCollider, 18, 455, 0)
EVT_CALL(MakeLerp, 0, 80, 10, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, 18, EVT_VAR(0), 0, -1, 0)
EVT_CALL(RotateModel, 20, EVT_VAR(0), 0, 1, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(SetNpcAnimation, 9, NPC_ANIM_world_tubba_Palette_00_Anim_A)
EVT_CALL(SetNpcPos, NPC_SELF, -665, 210, 180)
EVT_CALL(SetNpcYaw, NPC_SELF, 90)
EVT_CALL(NpcMoveTo, NPC_SELF, -530, 180, 30)
EVT_THREAD
EVT_WAIT_FRAMES(20)
EVT_CALL(MakeLerp, 80, 0, 10, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, 18, EVT_VAR(0), 0, -1, 0)
EVT_CALL(RotateModel, 20, EVT_VAR(0), 0, 1, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(PlaySoundAtCollider, 18, 456, 0)
EVT_END_THREAD
EVT_CALL(NpcMoveTo, NPC_SELF, -500, 80, 10)
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_80244D7C)))
EVT_RETURN
EVT_END
};
EvtSource N(80244D08) = SCRIPT({
10:
GetNpcPos(NPC_WORLD_TUBBA, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) > 0) {
sleep 1;
goto 10;
}
N(func_80243B98_C43948)();
});
EvtSource N(80244D08) = {
EVT_LABEL(10)
EVT_CALL(GetNpcPos, 9, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GT(EVT_VAR(1), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(10)
EVT_END_IF
EVT_CALL(N(func_80243B98_C43948))
EVT_RETURN
EVT_END
};
EvtSource N(npcAI_80244D7C) = SCRIPT({
N(func_80243C10_C439C0)();
spawn N(80244D08);
spawn {
loop {
PlaySoundAtNpc(NPC_SELF, SOUND_20F6, 4194304);
ShakeCam(0, 0, 5, 2.0);
sleep 5;
PlaySoundAtNpc(NPC_SELF, SOUND_20F6, 4194304);
ShakeCam(0, 0, 2, 1.0);
sleep 8;
}
}
N(func_80240B94_C40944)(N(npcAI_80244100));
});
EvtSource N(npcAI_80244D7C) = {
EVT_CALL(N(func_80243C10_C439C0))
EVT_EXEC(N(80244D08))
EVT_THREAD
EVT_LOOP(0)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304)
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(2.0))
EVT_WAIT_FRAMES(5)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304)
EVT_CALL(ShakeCam, 0, 0, 2, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(8)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(N(func_80240B94_C40944), EVT_PTR(N(npcAI_80244100)))
EVT_RETURN
EVT_END
};
const char N(dgb_01_name_hack)[];
EvtSource N(defeat_80244E58) = SCRIPT({
N(UnkFunc1)();
GotoMap(N(dgb_01_name_hack), 2);
sleep 100;
});
EvtSource N(defeat_80244E58) = {
EVT_CALL(N(UnkFunc1))
EVT_CALL(GotoMap, EVT_PTR(N(dgb_01_name_hack)), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(init_80244E94) = SCRIPT({
if (EVT_STORY_PROGRESS < STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) {
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_4)), TRUE);
return;
}
if (EVT_STORY_PROGRESS >= STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) {
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_4)), TRUE);
return;
}
SetNpcScale(NPC_SELF, 1.25, 1.25, 1.25);
BindNpcDefeat(NPC_SELF, N(defeat_80244E58));
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
if (EVT_SAVE_VAR(203) != 8) {
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_4)), TRUE);
} else {
SetNpcPos(NPC_SELF, -130, 0, 200);
BindNpcIdle(NPC_SELF, N(npcAI_80244D7C));
}
}
== 1 {
if (EVT_SAVE_VAR(203) != 8) {
BindNpcIdle(NPC_SELF, N(idle_80244A54));
} else {
SetNpcPos(NPC_SELF, -130, 210, 80);
BindNpcIdle(NPC_SELF, N(npcAI_80244D7C));
}
}
}
});
EvtSource N(init_80244E94) = {
EVT_IF_LT(EVT_SAVE_VAR(0), -28)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE)
EVT_RETURN
EVT_END_IF
EVT_IF_GE(EVT_SAVE_VAR(0), -26)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE)
EVT_RETURN
EVT_END_IF
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FIXED(1.25), EVT_FIXED(1.25), EVT_FIXED(1.25))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_80244E58)))
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_IF_NE(EVT_SAVE_VAR(203), 8)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE)
EVT_ELSE
EVT_CALL(SetNpcPos, NPC_SELF, -130, 0, 200)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80244D7C)))
EVT_END_IF
EVT_CASE_EQ(1)
EVT_IF_NE(EVT_SAVE_VAR(203), 8)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80244A54)))
EVT_ELSE
EVT_CALL(SetNpcPos, NPC_SELF, -130, 210, 80)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80244D7C)))
EVT_END_IF
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_802450A0) = {
.id = NPC_WORLD_TUBBA,
@ -788,59 +813,65 @@ StaticNpc N(npcGroup_80246020) = {
},
};
EvtSource N(idle_80246210) = SCRIPT({
0:
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7);
sleep 30;
loop 15 {
N(func_80243C50_C43A00)();
sleep 60;
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_C);
sleep 20;
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7);
sleep 30;
loop 5 {
N(func_80243C50_C43A00)();
sleep 60;
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_C);
sleep 15;
goto 0;
});
EvtSource N(idle_80246210) = {
EVT_LABEL(0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7)
EVT_WAIT_FRAMES(30)
EVT_LOOP(15)
EVT_CALL(N(func_80243C50_C43A00))
EVT_WAIT_FRAMES(60)
EVT_END_LOOP
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_C)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7)
EVT_WAIT_FRAMES(30)
EVT_LOOP(5)
EVT_CALL(N(func_80243C50_C43A00))
EVT_WAIT_FRAMES(60)
EVT_END_LOOP
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_C)
EVT_WAIT_FRAMES(15)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(interact_80246310) = SCRIPT({
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_8);
PlaySoundAtNpc(NPC_SELF, 0x2F1, 0);
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_2);
sleep 20;
GetNpcYaw(-1, EVT_VAR(0));
EVT_VAR(0) += 180;
InterpNpcYaw(NPC_SELF, EVT_VAR(0), 0);
sleep 10;
GetNpcYaw(-1, EVT_VAR(0));
EVT_VAR(0) += 180;
InterpNpcYaw(NPC_SELF, EVT_VAR(0), 0);
sleep 25;
GetNpcYaw(-1, EVT_VAR(0));
EVT_VAR(0) += 180;
InterpNpcYaw(NPC_SELF, EVT_VAR(0), 0);
sleep 15;
NpcFacePlayer(NPC_SELF, 0);
SpeakToPlayer(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_5, NPC_ANIM_world_clubba_Palette_00_Anim_2, 0, MESSAGE_ID(0x0E, 0x00F2));
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_6);
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7);
});
EvtSource N(interact_80246310) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_8)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2F1, 0)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_2)
EVT_WAIT_FRAMES(20)
EVT_CALL(GetNpcYaw, -1, EVT_VAR(0))
EVT_ADD(EVT_VAR(0), 180)
EVT_CALL(InterpNpcYaw, NPC_SELF, EVT_VAR(0), 0)
EVT_WAIT_FRAMES(10)
EVT_CALL(GetNpcYaw, -1, EVT_VAR(0))
EVT_ADD(EVT_VAR(0), 180)
EVT_CALL(InterpNpcYaw, NPC_SELF, EVT_VAR(0), 0)
EVT_WAIT_FRAMES(25)
EVT_CALL(GetNpcYaw, -1, EVT_VAR(0))
EVT_ADD(EVT_VAR(0), 180)
EVT_CALL(InterpNpcYaw, NPC_SELF, EVT_VAR(0), 0)
EVT_WAIT_FRAMES(15)
EVT_CALL(NpcFacePlayer, NPC_SELF, 0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_5, NPC_ANIM_world_clubba_Palette_00_Anim_2, 0, MESSAGE_ID(0x0E, 0x00F2))
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_6)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7)
EVT_RETURN
EVT_END
};
EvtSource N(init_802464C4) = SCRIPT({
SetNpcCollisionSize(-1, 36, 30);
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7);
BindNpcInteract(NPC_SELF, N(interact_80246310));
BindNpcIdle(NPC_SELF, N(idle_80246210));
});
EvtSource N(init_802464C4) = {
EVT_CALL(SetNpcCollisionSize, -1, 36, 30)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_clubba_Palette_00_Anim_7)
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80246310)))
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80246210)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80246528) = {
.id = NPC_WORLD_CLUBBA6,
@ -875,14 +906,17 @@ StaticNpc N(npcGroup_80246528) = {
.tattle = MESSAGE_ID(0x1A, 0x00B6),
};
EvtSource N(idle_80246718) = SCRIPT({
EvtSource N(idle_80246718) = {
EVT_RETURN
EVT_END
};
});
EvtSource N(init_80246728) = SCRIPT({
BindNpcIdle(NPC_SELF, N(idle_80246718));
SetNpcPos(NPC_SELF, 0, -1000, 0);
});
EvtSource N(init_80246728) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80246718)))
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80246768) = {
.id = NPC_WORLD_CLUBBA7,
@ -947,9 +981,10 @@ static s32 N(pad_69DC) = {
0x00000000,
};
EvtSource N(802469E0) = SCRIPT({
});
EvtSource N(802469E0) = {
EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc24.inc.c"

View File

@ -27,119 +27,127 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_09_tattle },
};
EvtSource N(80243880) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80243880) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_3918)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitDoubleDoor_80243920) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 0;
EVT_VAR(1) = 5;
EVT_VAR(2) = 10;
EVT_VAR(3) = 12;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_03", 4);
sleep 100;
});
EvtSource N(exitDoubleDoor_80243920) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 5)
EVT_SET(EVT_VAR(2), 10)
EVT_SET(EVT_VAR(3), 12)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 4)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_802439D4) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 1;
EVT_VAR(1) = 17;
EVT_VAR(2) = 17;
EVT_VAR(3) = 15;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_01", 3);
sleep 100;
});
EvtSource N(exitDoubleDoor_802439D4) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 17)
EVT_SET(EVT_VAR(2), 17)
EVT_SET(EVT_VAR(3), 15)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 3)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitSingleDoor_80243A88) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 2;
EVT_VAR(1) = 9;
EVT_VAR(2) = 20;
EVT_VAR(3) = 1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_12", 0);
sleep 100;
});
EvtSource N(exitSingleDoor_80243A88) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 2)
EVT_SET(EVT_VAR(1), 9)
EVT_SET(EVT_VAR(2), 20)
EVT_SET(EVT_VAR(3), 1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_12"), 0)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80243B3C) = EXIT_WALK_SCRIPT(40, 3, "dgb_10", 0);
EvtSource N(80243B98) = SCRIPT({
bind N(exitWalk_80243B3C) TRIGGER_FLOOR_ABOVE 11;
});
EvtSource N(80243B98) = {
EVT_BIND_TRIGGER(N(exitWalk_80243B3C), TRIGGER_FLOOR_ABOVE, 11, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(enterWalk_80243BC4) = SCRIPT({
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
UseDoorSounds(3);
EVT_VAR(2) = 10;
EVT_VAR(3) = 12;
await EnterDoubleDoor;
spawn N(80243B98);
}
== 1 {
UseDoorSounds(3);
EVT_VAR(2) = 17;
EVT_VAR(3) = 15;
await EnterDoubleDoor;
spawn N(80243B98);
}
== 2 {
UseDoorSounds(0);
EVT_VAR(2) = 20;
EVT_VAR(3) = 1;
await EnterSingleDoor;
spawn N(80243B98);
}
== 3 {
EVT_VAR(0) = N(80243B98);
spawn EnterWalk;
sleep 1;
}
}
});
EvtSource N(enterWalk_80243BC4) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(2), 10)
EVT_SET(EVT_VAR(3), 12)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_EXEC(N(80243B98))
EVT_CASE_EQ(1)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(2), 17)
EVT_SET(EVT_VAR(3), 15)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_EXEC(N(80243B98))
EVT_CASE_EQ(2)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(2), 20)
EVT_SET(EVT_VAR(3), 1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_EXEC(N(80243B98))
EVT_CASE_EQ(3)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80243B98)))
EVT_EXEC(EnterWalk)
EVT_WAIT_FRAMES(1)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
if (EVT_STORY_PROGRESS < STORY_CH3_STAR_SPIRIT_RESCUED) {
MakeNpcs(1, N(npcGroupList_8024533C));
}
spawn N(80243F6C);
bind N(exitDoubleDoor_80243920) TRIGGER_WALL_PRESS_A 5;
bind N(exitDoubleDoor_802439D4) TRIGGER_WALL_PRESS_A 17;
bind N(exitSingleDoor_80243A88) TRIGGER_WALL_PRESS_A 9;
spawn N(80243880);
spawn N(enterWalk_80243BC4);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_IF_LT(EVT_SAVE_VAR(0), -15)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024533C)))
EVT_END_IF
EVT_EXEC(N(80243F6C))
EVT_BIND_TRIGGER(N(exitDoubleDoor_80243920), TRIGGER_WALL_PRESS_A, 5, 1, 0)
EVT_BIND_TRIGGER(N(exitDoubleDoor_802439D4), TRIGGER_WALL_PRESS_A, 17, 1, 0)
EVT_BIND_TRIGGER(N(exitSingleDoor_80243A88), TRIGGER_WALL_PRESS_A, 9, 1, 0)
EVT_EXEC(N(80243880))
EVT_EXEC(N(enterWalk_80243BC4))
EVT_RETURN
EVT_END
};
static s32 N(pad_3E4C) = {
0x00000000,
@ -147,52 +155,55 @@ static s32 N(pad_3E4C) = {
Vec4f N(triggerCoord_80243E50) = { 300.0f, 0.0f, 88.0f, 0.0f };
EvtSource N(80243E60) = SCRIPT({
sleep 2;
PlayEffect(0x42, 1, 25, 3, 1, 10, 30, 0, 0, 0, 0, 0, 0, 0);
loop 10 {
EnableModel(29, 0);
EnableModel(25, 1);
sleep 1;
EnableModel(29, 1);
EnableModel(25, 0);
sleep 1;
}
ModifyColliderFlags(0, 13, 0x7FFFFE00);
EVT_SAVE_FLAG(1051) = 1;
unbind;
});
EvtSource N(80243E60) = {
EVT_WAIT_FRAMES(2)
EVT_CALL(PlayEffect, 0x42, 1, 25, 3, 1, 10, 30, 0, 0, 0, 0, 0, 0, 0)
EVT_LOOP(10)
EVT_CALL(EnableModel, 29, 0)
EVT_CALL(EnableModel, 25, 1)
EVT_WAIT_FRAMES(1)
EVT_CALL(EnableModel, 29, 1)
EVT_CALL(EnableModel, 25, 0)
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(ModifyColliderFlags, 0, 13, 0x7FFFFE00)
EVT_SET(EVT_SAVE_FLAG(1051), 1)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80243F6C) = SCRIPT({
if (EVT_SAVE_FLAG(1051) == 0) {
bind N(80243E60) TRIGGER_POINT_BOMB N(triggerCoord_80243E50);
EnableModel(29, 0);
} else {
EnableModel(25, 0);
ModifyColliderFlags(0, 13, 0x7FFFFE00);
}
});
EvtSource N(80243F6C) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1051), 0)
EVT_BIND_TRIGGER(N(80243E60), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243E50)), 1, 0)
EVT_CALL(EnableModel, 29, 0)
EVT_ELSE
EVT_CALL(EnableModel, 25, 0)
EVT_CALL(ModifyColliderFlags, 0, 13, 0x7FFFFE00)
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_3FF8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(80244000) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(80244000) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(extraAnimationList_802440BC)[] = {
NPC_ANIM_world_clubba_Palette_00_Anim_0,
@ -227,13 +238,15 @@ NpcAISettings N(npcAISettings_802440EC) = {
.unk_2C = 3,
};
EvtSource N(npcAI_8024411C) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 5);
SetSelfVar(2, 8);
SetSelfVar(3, 12);
N(func_8024061C_C471FC)(N(npcAISettings_802440EC));
});
EvtSource N(npcAI_8024411C) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 5)
EVT_CALL(SetSelfVar, 2, 8)
EVT_CALL(SetSelfVar, 3, 12)
EVT_CALL(N(func_8024061C_C471FC), EVT_PTR(N(npcAISettings_802440EC)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024418C) = {
.height = 36,
@ -259,13 +272,15 @@ NpcAISettings N(npcAISettings_802441B8) = {
.unk_2C = 1,
};
EvtSource N(npcAI_802441E8) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 10);
SetSelfVar(2, 14);
SetSelfVar(3, 18);
N(func_802410D4_C47CB4)(N(npcAISettings_802441B8));
});
EvtSource N(npcAI_802441E8) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 10)
EVT_CALL(SetSelfVar, 2, 14)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(N(func_802410D4_C47CB4), EVT_PTR(N(npcAISettings_802441B8)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244258) = {
.height = 36,
@ -276,16 +291,18 @@ NpcSettings N(npcSettings_80244258) = {
.level = 13,
};
EvtSource N(npcAI_80244284) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(npcAI_80244284) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024432C) = {
.height = 14,
@ -301,10 +318,12 @@ f32 N(D_80244358_C4AF38)[] = {
1.5f, 20.0f,
};
EvtSource N(80244370) = SCRIPT({
SetSelfEnemyFlagBits(((0x00100000 | 0x01000000 | 0x02000000 | 0x04000000 | 0x08000000 | 0x10000000 | 0x20000000)), TRUE);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_Y_MOVEMENT)), TRUE);
});
EvtSource N(80244370) = {
EVT_CALL(SetSelfEnemyFlagBits, ((NPC_FLAG_MOTION_BLUR | NPC_FLAG_1000000 | NPC_FLAG_SIMPLIFIED_PHYSICS | NPC_FLAG_PARTICLE | NPC_FLAG_8000000 | NPC_FLAG_10000000 | NPC_FLAG_20000000)), TRUE)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_NO_Y_MOVEMENT)), TRUE)
EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_802443AC) = {
.moveSpeed = 1.5f,
@ -321,86 +340,93 @@ NpcAISettings N(npcAISettings_802443AC) = {
const char N(dgb_00_name_hack)[];
EvtSource N(npcAI_802443DC) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -650);
SetSelfVar(6, 30);
SetSelfVar(1, 600);
N(func_80243578_C4A158)(N(npcAISettings_802443AC));
DisablePlayerInput(TRUE);
sleep 2;
20:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetNpcPos(NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(4), EVT_VAR(2));
GetPlayerActionState(EVT_VAR(0));
if (EVT_VAR(0) != 0) {
sleep 1;
goto 20;
}
DisablePlayerPhysics(TRUE);
func_802D2B6C();
DisablePartnerAI(0);
group 0;
SetTimeFreezeMode(1);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 20;
EVT_VAR(2) += 2;
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
func_80045838(-1, 759, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_sentinel_Palette_00_Anim_8);
sleep 10;
SetPlayerAnimation(ANIM_80017);
sleep 10;
func_80045838(-1, 1838, 0);
spawn {
loop 100 {
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 1;
SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 1;
SetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep 1;
}
}
spawn {
SetNpcAnimation(NPC_PARTNER, 0x108);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
GetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
}
sleep 30;
GotoMap(N(dgb_00_name_hack), 2);
sleep 100;
});
EvtSource N(npcAI_802443DC) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -650)
EVT_CALL(SetSelfVar, 6, 30)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_80243578_C4A158), EVT_PTR(N(npcAISettings_802443AC)))
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(2)
EVT_LABEL(20)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(4), EVT_VAR(2))
EVT_CALL(GetPlayerActionState, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(20)
EVT_END_IF
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(func_802D2B6C)
EVT_CALL(DisablePartnerAI, 0)
EVT_SET_GROUP(0)
EVT_CALL(SetTimeFreezeMode, 1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 20)
EVT_ADD(EVT_VAR(2), 2)
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(func_80045838, -1, 759, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_sentinel_Palette_00_Anim_8)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetPlayerAnimation, ANIM_80017)
EVT_WAIT_FRAMES(10)
EVT_CALL(func_80045838, -1, 1838, 0)
EVT_THREAD
EVT_LOOP(100)
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 1)
EVT_CALL(SetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 1)
EVT_CALL(SetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_END_THREAD
EVT_THREAD
EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(GetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_END_THREAD
EVT_WAIT_FRAMES(30)
EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(80244804) = SCRIPT({
GetOwnerEncounterTrigger(EVT_VAR(0));
match EVT_VAR(0) {
== 1, 2, 4, 6 {
GetSelfAnimationFromTable(7, EVT_VAR(0));
await 0x800936DC;
}
}
});
EvtSource N(80244804) = {
EVT_CALL(GetOwnerEncounterTrigger, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(1)
EVT_CASE_OR_EQ(2)
EVT_CASE_OR_EQ(4)
EVT_CASE_OR_EQ(6)
EVT_CALL(GetSelfAnimationFromTable, 7, EVT_VAR(0))
EVT_EXEC_WAIT(0x800936DC)
EVT_END_CASE_GROUP
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(80244890) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
DoNpcDefeat();
}
== 1 {}
== 2 {
}
}
});
EvtSource N(80244890) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(1)
EVT_CASE_EQ(2)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802448F4) = {
.height = 38,
@ -479,13 +505,15 @@ StaticNpc N(npcGroup_80244920)[] = {
},
};
EvtSource N(init_80244D00) = SCRIPT({
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 3) {
SetNpcPos(NPC_SELF, 240, 0, 88);
InterpNpcYaw(NPC_SELF, 270, 0);
}
});
EvtSource N(init_80244D00) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 3)
EVT_CALL(SetNpcPos, NPC_SELF, 240, 0, 88)
EVT_CALL(InterpNpcYaw, NPC_SELF, 270, 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80244D6C)[] = {
{

View File

@ -13,18 +13,18 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_10_tattle },
};
EvtSource N(80240250) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240250) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_2E8)[] = {
0x00000000, 0x00000000,
@ -32,246 +32,270 @@ static s32 N(pad_2E8)[] = {
EvtSource N(exitWalk_802402F0) = EXIT_WALK_SCRIPT(40, 0, "dgb_09", 3);
EvtSource N(8024034C) = SCRIPT({
bind N(exitWalk_802402F0) TRIGGER_FLOOR_ABOVE 8;
});
EvtSource N(8024034C) = {
EVT_BIND_TRIGGER(N(exitWalk_802402F0), TRIGGER_FLOOR_ABOVE, 8, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(enterWalk_80240378) = SCRIPT({
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(0) = N(8024034C);
spawn EnterWalk;
sleep 1;
}
== 1 {
UseSettingsFrom(0, 375, 0, -188);
SetPanTarget(0, 375, 0, -188);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
SetPlayerActionState(3);
sleep 1;
SetPlayerJumpscale(0.7001953125);
PlayerJump(375, 0, -188, 20);
PanToTarget(0, 0, 0);
DisablePlayerPhysics(FALSE);
DisablePlayerInput(FALSE);
SetPlayerActionState(0);
spawn N(8024034C);
}
}
});
EvtSource N(enterWalk_80240378) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(8024034C)))
EVT_EXEC(EnterWalk)
EVT_WAIT_FRAMES(1)
EVT_CASE_EQ(1)
EVT_CALL(UseSettingsFrom, 0, 375, 0, -188)
EVT_CALL(SetPanTarget, 0, 375, 0, -188)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(SetPlayerActionState, 3)
EVT_WAIT_FRAMES(1)
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_CALL(PlayerJump, 375, 0, -188, 20)
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_CALL(DisablePlayerPhysics, FALSE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(SetPlayerActionState, 0)
EVT_EXEC(N(8024034C))
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
spawn N(80240E68);
spawn N(80240250);
ModifyColliderFlags(0, 9, 0x7FFFFE00);
EnableModel(6, 0);
EnableModel(12, 0);
EnableModel(18, 0);
ModifyColliderFlags(0, 12, 0x7FFFFE00);
ModifyColliderFlags(0, 13, 0x7FFFFE00);
ModifyColliderFlags(0, 14, 0x7FFFFE00);
spawn N(enterWalk_80240378);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(80240E68))
EVT_EXEC(N(80240250))
EVT_CALL(ModifyColliderFlags, 0, 9, 0x7FFFFE00)
EVT_CALL(EnableModel, 6, 0)
EVT_CALL(EnableModel, 12, 0)
EVT_CALL(EnableModel, 18, 0)
EVT_CALL(ModifyColliderFlags, 0, 12, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 13, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00)
EVT_EXEC(N(enterWalk_80240378))
EVT_RETURN
EVT_END
};
static s32 N(pad_66C) = {
0x00000000,
};
EvtSource N(80240670) = SCRIPT({
buf_use EVT_VAR(0);
arr_new 6 EVT_VAR(10);
buf_read EVT_VAR(0);
EVT_ARRAY(0) = EVT_VAR(0);
buf_read EVT_VAR(0);
EVT_ARRAY(1) = EVT_VAR(0);
buf_read EVT_VAR(0);
EVT_ARRAY(2) = EVT_VAR(0);
buf_read EVT_VAR(0);
EVT_ARRAY(3) = EVT_VAR(0);
buf_read EVT_VAR(0);
EVT_ARRAY(4) = EVT_VAR(0);
buf_read EVT_VAR(0);
EVT_ARRAY(5) = EVT_VAR(0);
EVT_VAR(0) = EVT_VAR(10);
bind N(80240770) TRIGGER_FLOOR_TOUCH 0xF4ACD480; // TODO: what is this id? see also below TODO
});
EvtSource N(80240670) = {
EVT_USE_BUF(EVT_VAR(0))
EVT_MALLOC_ARRAY(6, EVT_VAR(10))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(0), EVT_VAR(0))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(1), EVT_VAR(0))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(2), EVT_VAR(0))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(3), EVT_VAR(0))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(4), EVT_VAR(0))
EVT_BUF_READ1(EVT_VAR(0))
EVT_SET(EVT_ARRAY(5), EVT_VAR(0))
EVT_SET(EVT_VAR(0), EVT_VAR(10))
EVT_BIND_TRIGGER(N(80240770), TRIGGER_FLOOR_TOUCH, EVT_ARRAY(0), 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(80240770) = SCRIPT({
arr_use EVT_VAR(0);
N(func_80240000_C4C390)();
if (EVT_VAR(0) == 0) {
return;
}
loop 5 {
ModifyColliderFlags(1, EVT_ARRAY(0), 0x7FFFFE00);
EnableModel(EVT_ARRAY(1), 1);
sleep 1;
ModifyColliderFlags(0, EVT_ARRAY(0), 0x7FFFFE00);
EnableModel(EVT_ARRAY(1), 0);
sleep 1;
}
if (EVT_ARRAY(5) != 0) {
await 0xF4ACD485; // TODO: what is this?
}
});
EvtSource N(80240770) = {
EVT_USE_ARRAY(EVT_VAR(0))
EVT_CALL(N(func_80240000_C4C390))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_RETURN
EVT_END_IF
EVT_LOOP(5)
EVT_CALL(ModifyColliderFlags, 1, EVT_ARRAY(0), 0x7FFFFE00)
EVT_CALL(EnableModel, EVT_ARRAY(1), 1)
EVT_WAIT_FRAMES(1)
EVT_CALL(ModifyColliderFlags, 0, EVT_ARRAY(0), 0x7FFFFE00)
EVT_CALL(EnableModel, EVT_ARRAY(1), 0)
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_IF_NE(EVT_ARRAY(5), 0)
EVT_EXEC_WAIT(EVT_ARRAY(5))
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(80240860) = SCRIPT({
buf_use EVT_VAR(0);
arr_new 6 EVT_VAR(9);
buf_read EVT_VAR(1);
EVT_ARRAY(0) = EVT_VAR(1);
buf_read EVT_VAR(1);
EVT_ARRAY(1) = EVT_VAR(1);
buf_read EVT_VAR(1);
EVT_ARRAY(2) = EVT_VAR(1);
buf_read EVT_VAR(1);
EVT_ARRAY(3) = EVT_VAR(1);
buf_read EVT_VAR(1);
EVT_ARRAY(4) = EVT_VAR(1);
buf_read EVT_VAR(1);
EVT_ARRAY(5) = EVT_VAR(1);
ParentColliderToModel(EVT_ARRAY(1), EVT_ARRAY(0));
0:
1:
GetPlayerActionState(EVT_VAR(10));
if (EVT_VAR(10) == 13) {
goto 2;
}
if (EVT_VAR(10) == 15) {
goto 2;
}
sleep 1;
goto 0;
2:
GetPlayerPos(EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
sleep 1;
if (EVT_VAR(2) != EVT_ARRAY(3)) {
goto 2;
}
N(func_802400A0_C4C430)();
if (EVT_VAR(0) == 1) {
await N(80240AF4);
}
if (EVT_VAR(0) == 2) {
await N(80240CB8);
}
3:
GetPlayerActionState(EVT_VAR(0));
sleep 1;
if (EVT_VAR(0) == 13) {
goto 3;
}
if (EVT_VAR(0) == 15) {
goto 3;
}
goto 0;
});
EvtSource N(80240860) = {
EVT_USE_BUF(EVT_VAR(0))
EVT_MALLOC_ARRAY(6, EVT_VAR(9))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(0), EVT_VAR(1))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(1), EVT_VAR(1))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(2), EVT_VAR(1))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(3), EVT_VAR(1))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(4), EVT_VAR(1))
EVT_BUF_READ1(EVT_VAR(1))
EVT_SET(EVT_ARRAY(5), EVT_VAR(1))
EVT_CALL(ParentColliderToModel, EVT_ARRAY(1), EVT_ARRAY(0))
EVT_LABEL(0)
EVT_LABEL(1)
EVT_CALL(GetPlayerActionState, EVT_VAR(10))
EVT_IF_EQ(EVT_VAR(10), 13)
EVT_GOTO(2)
EVT_END_IF
EVT_IF_EQ(EVT_VAR(10), 15)
EVT_GOTO(2)
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_LABEL(2)
EVT_CALL(GetPlayerPos, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(2), EVT_ARRAY(3))
EVT_GOTO(2)
EVT_END_IF
EVT_CALL(N(func_802400A0_C4C430))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_EXEC_WAIT(N(80240AF4))
EVT_END_IF
EVT_IF_EQ(EVT_VAR(0), 2)
EVT_EXEC_WAIT(N(80240CB8))
EVT_END_IF
EVT_LABEL(3)
EVT_CALL(GetPlayerActionState, EVT_VAR(0))
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(0), 13)
EVT_GOTO(3)
EVT_END_IF
EVT_IF_EQ(EVT_VAR(0), 15)
EVT_GOTO(3)
EVT_END_IF
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(80240AF4) = SCRIPT({
arr_use EVT_VAR(9);
GetPlayerPos(EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
MakeLerp(0, 5, 3, 1);
2:
UpdateLerp();
TranslateModel(EVT_ARRAY(0), 0, EVT_VAR(0), 0);
EVT_VAR(5) = EVT_VAR(3);
EVT_VAR(5) += EVT_VAR(0);
SetPlayerPos(EVT_VAR(2), EVT_VAR(5), EVT_VAR(4));
UpdateColliderTransform(EVT_ARRAY(1));
sleep 1;
if (EVT_VAR(1) == 1) {
goto 2;
}
MakeLerp(5, 0, 3, 1);
3:
UpdateLerp();
TranslateModel(EVT_ARRAY(0), 0, EVT_VAR(0), 0);
EVT_VAR(5) = EVT_VAR(3);
EVT_VAR(5) += EVT_VAR(0);
SetPlayerPos(EVT_VAR(2), EVT_VAR(5), EVT_VAR(4));
UpdateColliderTransform(EVT_ARRAY(1));
sleep 1;
if (EVT_VAR(1) == 1) {
goto 3;
}
});
EvtSource N(80240AF4) = {
EVT_USE_ARRAY(EVT_VAR(9))
EVT_CALL(GetPlayerPos, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_CALL(MakeLerp, 0, 5, 3, 1)
EVT_LABEL(2)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, EVT_ARRAY(0), 0, EVT_VAR(0), 0)
EVT_SET(EVT_VAR(5), EVT_VAR(3))
EVT_ADD(EVT_VAR(5), EVT_VAR(0))
EVT_CALL(SetPlayerPos, EVT_VAR(2), EVT_VAR(5), EVT_VAR(4))
EVT_CALL(UpdateColliderTransform, EVT_ARRAY(1))
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_GOTO(2)
EVT_END_IF
EVT_CALL(MakeLerp, 5, 0, 3, 1)
EVT_LABEL(3)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, EVT_ARRAY(0), 0, EVT_VAR(0), 0)
EVT_SET(EVT_VAR(5), EVT_VAR(3))
EVT_ADD(EVT_VAR(5), EVT_VAR(0))
EVT_CALL(SetPlayerPos, EVT_VAR(2), EVT_VAR(5), EVT_VAR(4))
EVT_CALL(UpdateColliderTransform, EVT_ARRAY(1))
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_GOTO(3)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(80240CB8) = SCRIPT({
arr_use EVT_VAR(9);
MakeItemEntity(EVT_ARRAY(5), EVT_ARRAY(2), EVT_ARRAY(3), EVT_ARRAY(4), 3, 0);
EVT_VAR(2) = 0;
MakeLerp(0, 150, 19, 4);
2:
UpdateLerp();
TranslateModel(EVT_ARRAY(0), 0, EVT_VAR(0), 0);
EVT_VAR(2) += 45;
RotateModel(EVT_ARRAY(0), EVT_VAR(2), 1, 0, 0);
sleep 1;
if (EVT_VAR(1) == 1) {
goto 2;
}
MakeLerp(150, 0, 19, 4);
3:
UpdateLerp();
TranslateModel(EVT_ARRAY(0), 0, EVT_VAR(0), 0);
EVT_VAR(2) += 45;
RotateModel(EVT_ARRAY(0), EVT_VAR(2), 1, 0, 0);
sleep 1;
if (EVT_VAR(1) == 1) {
goto 3;
}
});
EvtSource N(80240CB8) = {
EVT_USE_ARRAY(EVT_VAR(9))
EVT_CALL(MakeItemEntity, EVT_ARRAY(5), EVT_ARRAY(2), EVT_ARRAY(3), EVT_ARRAY(4), 3, 0)
EVT_SET(EVT_VAR(2), 0)
EVT_CALL(MakeLerp, 0, 150, 19, 4)
EVT_LABEL(2)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, EVT_ARRAY(0), 0, EVT_VAR(0), 0)
EVT_ADD(EVT_VAR(2), 45)
EVT_CALL(RotateModel, EVT_ARRAY(0), EVT_VAR(2), 1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_GOTO(2)
EVT_END_IF
EVT_CALL(MakeLerp, 150, 0, 19, 4)
EVT_LABEL(3)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, EVT_ARRAY(0), 0, EVT_VAR(0), 0)
EVT_ADD(EVT_VAR(2), 45)
EVT_CALL(RotateModel, EVT_ARRAY(0), EVT_VAR(2), 1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_GOTO(3)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(80240E68) = SCRIPT({
N(func_8024013C_C4C4CC)();
func_802CA988(0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(func_802401C0_C4C550)();
func_802D2B6C();
GotoMap("dgb_11", EVT_VAR(0));
sleep 100;
});
EvtSource N(80240E68) = {
EVT_CALL(N(func_8024013C_C4C4CC))
EVT_CALL(func_802CA988, 0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(func_802401C0_C4C550))
EVT_CALL(func_802D2B6C)
EVT_CALL(GotoMap, EVT_PTR("dgb_11"), EVT_VAR(0))
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
static s32 N(pad_EDC) = {
0x00000000,
};
EvtSource N(80240EE0) = SCRIPT({
EVT_SAVE_FLAG(1052) = 1;
});
EvtSource N(80240EE0) = {
EVT_SET(EVT_SAVE_FLAG(1052), 1)
EVT_RETURN
EVT_END
};
EvtSource N(80240F00) = SCRIPT({
EVT_SAVE_FLAG(1053) = 1;
});
EvtSource N(80240F00) = {
EVT_SET(EVT_SAVE_FLAG(1053), 1)
EVT_RETURN
EVT_END
};
EvtSource N(80240F20) = SCRIPT({
EVT_SAVE_FLAG(1054) = 1;
});
EvtSource N(80240F20) = {
EVT_SET(EVT_SAVE_FLAG(1054), 1)
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
if (EVT_SAVE_FLAG(1052) == 0) {
MakeEntity(0x802BCE84, 500, 0, -100, 0, MAKE_ENTITY_END);
AssignScript(N(80240EE0));
}
if (EVT_SAVE_FLAG(1053) == 0) {
MakeEntity(0x802BCE84, 500, 0, -250, 0, MAKE_ENTITY_END);
AssignScript(N(80240F00));
}
if (EVT_SAVE_FLAG(1054) == 0) {
MakeEntity(0x802BCE84, 375, 0, -250, 0, MAKE_ENTITY_END);
AssignScript(N(80240F20));
}
});
EvtSource N(makeEntities) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1052), 0)
EVT_CALL(MakeEntity, 0x802BCE84, 500, 0, -100, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80240EE0)))
EVT_END_IF
EVT_IF_EQ(EVT_SAVE_FLAG(1053), 0)
EVT_CALL(MakeEntity, 0x802BCE84, 500, 0, -250, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80240F00)))
EVT_END_IF
EVT_IF_EQ(EVT_SAVE_FLAG(1054), 0)
EVT_CALL(MakeEntity, 0x802BCE84, 375, 0, -250, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80240F20)))
EVT_END_IF
EVT_RETURN
EVT_END
};
ApiStatus N(func_80240000_C4C390)(Evt* script, s32 isInitialCall) {
PlayerStatus* playerStatus = &gPlayerStatus;

View File

@ -17,192 +17,202 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_11_tattle },
};
EvtSource N(802400D0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(802400D0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_168)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_80240170) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 11;
EVT_VAR(2) = 21;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_02", 3);
sleep 100;
});
EvtSource N(exitSingleDoor_80240170) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 11)
EVT_SET(EVT_VAR(2), 21)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 3)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80240224) = SCRIPT({
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
UseDoorSounds(0);
EVT_VAR(2) = 21;
EVT_VAR(3) = -1;
await EnterSingleDoor;
return;
}
== 1 {
UseSettingsFrom(0, 500, 0, -100);
SetPanTarget(0, 500, 0, -100);
EVT_VAR(3) = 1;
}
== 2 {
UseSettingsFrom(0, 500, 75, -250);
SetPanTarget(0, 500, 75, -250);
EVT_VAR(3) = 75;
}
== 3 {
SetZoneEnabled(5, 0);
UseSettingsFrom(0, 375, 0, -175);
SetPanTarget(0, 375, 0, -175);
EVT_AREA_FLAG(2) = 1;
EVT_VAR(3) = 1;
}
}
DisablePlayerInput(TRUE);
InterpPlayerYaw(180, 0);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
loop {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) <= EVT_VAR(3)) {
break loop;
}
sleep 1;
}
PanToTarget(0, 0, 0);
DisablePlayerInput(FALSE);
});
EvtSource N(enterSingleDoor_80240224) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(2), 21)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_RETURN
EVT_CASE_EQ(1)
EVT_CALL(UseSettingsFrom, 0, 500, 0, -100)
EVT_CALL(SetPanTarget, 0, 500, 0, -100)
EVT_SET(EVT_VAR(3), 1)
EVT_CASE_EQ(2)
EVT_CALL(UseSettingsFrom, 0, 500, 75, -250)
EVT_CALL(SetPanTarget, 0, 500, 75, -250)
EVT_SET(EVT_VAR(3), 75)
EVT_CASE_EQ(3)
EVT_CALL(SetZoneEnabled, 5, 0)
EVT_CALL(UseSettingsFrom, 0, 375, 0, -175)
EVT_CALL(SetPanTarget, 0, 375, 0, -175)
EVT_SET(EVT_AREA_FLAG(2), 1)
EVT_SET(EVT_VAR(3), 1)
EVT_END_SWITCH
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(InterpPlayerYaw, 180, 0)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_LE(EVT_VAR(1), EVT_VAR(3))
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
spawn N(802400D0);
bind N(exitSingleDoor_80240170) TRIGGER_WALL_PRESS_A 11;
spawn N(enterSingleDoor_80240224);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(802400D0))
EVT_BIND_TRIGGER(N(exitSingleDoor_80240170), TRIGGER_WALL_PRESS_A, 11, 1, 0)
EVT_EXEC(N(enterSingleDoor_80240224))
EVT_RETURN
EVT_END
};
static s32 N(pad_56C) = {
0x00000000,
};
EvtSource N(80240570) = SCRIPT({
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) >= EVT_VAR(3)) {
EVT_VAR(1) = EVT_VAR(3);
}
SetCamTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep 1;
goto 0;
});
EvtSource N(80240570) = {
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GE(EVT_VAR(1), EVT_VAR(3))
EVT_SET(EVT_VAR(1), EVT_VAR(3))
EVT_END_IF
EVT_CALL(SetCamTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(80240600) = SCRIPT({
PlayerJump(375, 270, -250, 20);
});
EvtSource N(80240600) = {
EVT_CALL(PlayerJump, 375, 270, -250, 20)
EVT_RETURN
EVT_END
};
EvtSource N(8024062C) = SCRIPT({
if (EVT_AREA_FLAG(3) == 1) {
return;
}
EVT_AREA_FLAG(3) = 1;
DisablePlayerInput(TRUE);
SetZoneEnabled(5, 0);
if (EVT_AREA_FLAG(2) == 0) {
if (EVT_SAVE_FLAG(1054) == 0) {
DisablePlayerPhysics(TRUE);
SetPlayerActionState(3);
sleep 1;
EVT_VAR(3) = 500;
EVT_VAR(10) = spawn N(80240570);
SetPlayerJumpscale(0.7001953125);
EVT_VAR(11) = spawn N(80240600);
loop {
sleep 1;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) >= 165) {
break loop;
}
}
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPlayerPos(EVT_VAR(0), 165, EVT_VAR(2));
kill EVT_VAR(11);
SetPlayerAnimation(0x80015);
ShakeCam(0, 0, 20, 1.0);
sleep 10;
SetPlayerAnimation(ANIM_10002);
SetPlayerJumpscale(0.0);
PlayerJump1(375, 25, -250, 10);
N(func_80240000_C4D3E0)();
PlaySoundAtPlayer(8326, 0);
SetPlayerJumpscale(0.7001953125);
PlayerJump(375, 0, -175, 15);
kill EVT_VAR(10);
SetPlayerActionState(0);
sleep 2;
SetZoneEnabled(5, 1);
DisablePlayerPhysics(FALSE);
DisablePlayerInput(FALSE);
EVT_AREA_FLAG(3) = 0;
} else {
DisablePlayerPhysics(TRUE);
SetPlayerActionState(3);
sleep 1;
spawn {
sleep 8;
GotoMap("dgb_10", 1);
sleep 100;
}
EVT_VAR(3) = 500;
EVT_VAR(10) = spawn N(80240570);
SetPlayerJumpscale(0.7001953125);
PlayerJump(375, 270, -250, 20);
EVT_AREA_FLAG(3) = 0;
}
} else {
SetPlayerActionState(3);
sleep 1;
EVT_VAR(3) = 25;
SetPlayerJumpscale(0.7001953125);
PlayerJump(375, 0, -175, 15);
EVT_AREA_FLAG(2) = 0;
kill EVT_VAR(10);
SetPlayerActionState(0);
sleep 2;
SetZoneEnabled(5, 1);
DisablePlayerInput(FALSE);
EVT_AREA_FLAG(3) = 0;
}
});
EvtSource N(8024062C) = {
EVT_IF_EQ(EVT_AREA_FLAG(3), 1)
EVT_RETURN
EVT_END_IF
EVT_SET(EVT_AREA_FLAG(3), 1)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetZoneEnabled, 5, 0)
EVT_IF_EQ(EVT_AREA_FLAG(2), 0)
EVT_IF_EQ(EVT_SAVE_FLAG(1054), 0)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(SetPlayerActionState, 3)
EVT_WAIT_FRAMES(1)
EVT_SET(EVT_VAR(3), 500)
EVT_EXEC_GET_TID(N(80240570), EVT_VAR(10))
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_EXEC_GET_TID(N(80240600), EVT_VAR(11))
EVT_LOOP(0)
EVT_WAIT_FRAMES(1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GE(EVT_VAR(1), 165)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPlayerPos, EVT_VAR(0), 165, EVT_VAR(2))
EVT_KILL_THREAD(EVT_VAR(11))
EVT_CALL(SetPlayerAnimation, 524309)
EVT_CALL(ShakeCam, 0, 0, 20, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(10)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.0))
EVT_CALL(PlayerJump1, 375, 25, -250, 10)
EVT_CALL(N(func_80240000_C4D3E0))
EVT_CALL(PlaySoundAtPlayer, 8326, 0)
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_CALL(PlayerJump, 375, 0, -175, 15)
EVT_KILL_THREAD(EVT_VAR(10))
EVT_CALL(SetPlayerActionState, 0)
EVT_WAIT_FRAMES(2)
EVT_CALL(SetZoneEnabled, 5, 1)
EVT_CALL(DisablePlayerPhysics, FALSE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_SET(EVT_AREA_FLAG(3), 0)
EVT_ELSE
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(SetPlayerActionState, 3)
EVT_WAIT_FRAMES(1)
EVT_THREAD
EVT_WAIT_FRAMES(8)
EVT_CALL(GotoMap, EVT_PTR("dgb_10"), 1)
EVT_WAIT_FRAMES(100)
EVT_END_THREAD
EVT_SET(EVT_VAR(3), 500)
EVT_EXEC_GET_TID(N(80240570), EVT_VAR(10))
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_CALL(PlayerJump, 375, 270, -250, 20)
EVT_SET(EVT_AREA_FLAG(3), 0)
EVT_END_IF
EVT_ELSE
EVT_CALL(SetPlayerActionState, 3)
EVT_WAIT_FRAMES(1)
EVT_SET(EVT_VAR(3), 25)
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_CALL(PlayerJump, 375, 0, -175, 15)
EVT_SET(EVT_AREA_FLAG(2), 0)
EVT_KILL_THREAD(EVT_VAR(10))
EVT_CALL(SetPlayerActionState, 0)
EVT_WAIT_FRAMES(2)
EVT_CALL(SetZoneEnabled, 5, 1)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_SET(EVT_AREA_FLAG(3), 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
MakeItemEntity(ITEM_D_DOWN_JUMP, 250, 75, -100, 17, EVT_SAVE_FLAG(1055));
MakeEntity(0x802EAA30, 375, 0, -250, 0, MAKE_ENTITY_END);
AssignScript(N(8024062C));
EVT_MAP_VAR(0) = EVT_VAR(0);
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeItemEntity, ITEM_D_DOWN_JUMP, 250, 75, -100, 17, EVT_SAVE_FLAG(1055))
EVT_CALL(MakeEntity, 0x802EAA30, 375, 0, -250, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(8024062C)))
EVT_SET(EVT_MAP_VAR(0), EVT_VAR(0))
EVT_RETURN
EVT_END
};
ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall) {
Entity* entity = get_entity_by_index(evt_get_variable(NULL, 0xFD050F80));

View File

@ -13,111 +13,118 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_12_tattle },
};
EvtSource N(80240310) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240310) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_3A8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_802403B0) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 8;
EVT_VAR(2) = 14;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_09", 2);
sleep 100;
});
EvtSource N(exitSingleDoor_802403B0) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 8)
EVT_SET(EVT_VAR(2), 14)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_09"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80240464) = SCRIPT({
UseDoorSounds(0);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 14;
EVT_VAR(3) = -1;
await EnterSingleDoor;
}
}
});
EvtSource N(enterSingleDoor_80240464) = {
EVT_CALL(UseDoorSounds, 0)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 14)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
spawn N(802405E0);
spawn N(80240310);
bind N(exitSingleDoor_802403B0) TRIGGER_WALL_PRESS_A 8;
spawn N(enterSingleDoor_80240464);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(802405E0))
EVT_EXEC(N(80240310))
EVT_BIND_TRIGGER(N(exitSingleDoor_802403B0), TRIGGER_WALL_PRESS_A, 8, 1, 0)
EVT_EXEC(N(enterSingleDoor_80240464))
EVT_RETURN
EVT_END
};
s32 N(lavaResetList_802405C0)[] = {
0x00000005, 0xC3FB8000, 0x00000000, 0xC27C0000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(802405E0) = SCRIPT({
group 239;
ModifyColliderFlags(3, 12, 0x00000002);
ModifyColliderFlags(3, 0, 0x00000002);
ModifyColliderFlags(3, 14, 0x00000002);
spawn {
ResetFromLava(N(lavaResetList_802405C0));
}
sleep 50;
TranslateModel(19, 0, 0, 0);
ParentColliderToModel(12, 19);
loop {
spawn {
sleep 2;
ModifyColliderFlags(0, 0, 0x7FFFFE00);
}
MakeLerp(0, -35, 15, 0);
loop {
UpdateLerp();
TranslateModel(19, 0, EVT_VAR(0), 0);
UpdateColliderTransform(12);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
sleep 60;
PlaySoundAtCollider(0, 8339, 0);
spawn {
ModifyColliderFlags(1, 0, 0x7FFFFE00);
}
MakeLerp(-35, 0, 4, 0);
loop {
UpdateLerp();
TranslateModel(19, 0, EVT_VAR(0), 0);
UpdateColliderTransform(12);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
sleep 35;
}
});
EvtSource N(802405E0) = {
EVT_SET_GROUP(239)
EVT_CALL(ModifyColliderFlags, 3, 12, 0x00000002)
EVT_CALL(ModifyColliderFlags, 3, 0, 0x00000002)
EVT_CALL(ModifyColliderFlags, 3, 14, 0x00000002)
EVT_THREAD
EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_802405C0)))
EVT_END_THREAD
EVT_WAIT_FRAMES(50)
EVT_CALL(TranslateModel, 19, 0, 0, 0)
EVT_CALL(ParentColliderToModel, 12, 19)
EVT_LOOP(0)
EVT_THREAD
EVT_WAIT_FRAMES(2)
EVT_CALL(ModifyColliderFlags, 0, 0, 0x7FFFFE00)
EVT_END_THREAD
EVT_CALL(MakeLerp, 0, -35, 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 19, 0, EVT_VAR(0), 0)
EVT_CALL(UpdateColliderTransform, 12)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_WAIT_FRAMES(60)
EVT_CALL(PlaySoundAtCollider, 0, 8339, 0)
EVT_THREAD
EVT_CALL(ModifyColliderFlags, 1, 0, 0x7FFFFE00)
EVT_END_THREAD
EVT_CALL(MakeLerp, -35, 0, 4, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 19, 0, EVT_VAR(0), 0)
EVT_CALL(UpdateColliderTransform, 12)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_WAIT_FRAMES(35)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
static s32 N(pad_868)[] = {
0x00000000, 0x00000000,
@ -125,48 +132,53 @@ static s32 N(pad_868)[] = {
#include "world/common/StashVars.inc.c"
EvtSource N(80240874) = SCRIPT({
group 0;
SetTimeFreezeMode(TIME_FREEZE_FULL);
sleep 40;
ShowGotItem(EVT_VAR(0), 0, 0);
SetTimeFreezeMode(TIME_FREEZE_NORMAL);
return;
});
EvtSource N(80240874) = {
EVT_SET_GROUP(0)
EVT_CALL(SetTimeFreezeMode, 2)
EVT_WAIT_FRAMES(40)
EVT_CALL(ShowGotItem, EVT_VAR(0), 0, 0)
EVT_CALL(SetTimeFreezeMode, 0)
EVT_RETURN
EVT_RETURN
EVT_END
};
EvtSource N(802408DC) = SCRIPT({
DisablePlayerInput(TRUE);
EVT_VAR(0) = EVT_VAR(10);
if (EVT_VAR(10) != 0) {
await N(80240874);
}
match EVT_VAR(11) {
== 0 {
AddItem(EVT_VAR(10), EVT_VAR(0));
}
== 1 {
AddKeyItem(EVT_VAR(10));
}
== 2 {
AddBadge(EVT_VAR(10), EVT_VAR(0));
}
}
sleep 15;
DisablePlayerInput(FALSE);
});
EvtSource N(802408DC) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(EVT_VAR(0), EVT_VAR(10))
EVT_IF_NE(EVT_VAR(10), 0)
EVT_EXEC_WAIT(N(80240874))
EVT_END_IF
EVT_SWITCH(EVT_VAR(11))
EVT_CASE_EQ(0)
EVT_CALL(AddItem, EVT_VAR(10), EVT_VAR(0))
EVT_CASE_EQ(1)
EVT_CALL(AddKeyItem, EVT_VAR(10))
EVT_CASE_EQ(2)
EVT_CALL(AddBadge, EVT_VAR(10), EVT_VAR(0))
EVT_END_SWITCH
EVT_WAIT_FRAMES(15)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(802409BC) = SCRIPT({
EVT_VAR(10) = 19;
EVT_VAR(11) = 1;
EVT_SAVE_FLAG(1057) = 1;
await N(802408DC);
});
EvtSource N(802409BC) = {
EVT_SET(EVT_VAR(10), 19)
EVT_SET(EVT_VAR(11), 1)
EVT_SET(EVT_SAVE_FLAG(1057), 1)
EVT_EXEC_WAIT(N(802408DC))
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EAE30, -225, 0, -245, 0, ITEM_NONE, MAKE_ENTITY_END);
AssignFlag(EVT_SAVE_FLAG(1057));
AssignScript(N(802409BC));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EAE30, -225, 0, -245, 0, 0, MAKE_ENTITY_END)
EVT_CALL(AssignFlag, EVT_SAVE_FLAG(1057))
EVT_CALL(AssignScript, EVT_PTR(N(802409BC)))
EVT_RETURN
EVT_END
};
#include "world/common/GetItemName.inc.c"

View File

@ -12,18 +12,18 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_13_tattle },
};
EvtSource N(80240050) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240050) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_E8)[] = {
0x00000000, 0x00000000,
@ -31,104 +31,122 @@ static s32 N(pad_E8)[] = {
EvtSource N(exitWalk_802400F0) = EXIT_WALK_SCRIPT(26, 0, "dgb_03", 5);
EvtSource N(8024014C) = SCRIPT({
bind N(exitWalk_802400F0) TRIGGER_FLOOR_ABOVE 5;
});
EvtSource N(8024014C) = {
EVT_BIND_TRIGGER(N(exitWalk_802400F0), TRIGGER_FLOOR_ABOVE, 5, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(80240270);
ModifyColliderFlags(0, 6, 0x7FFFFE00);
await N(80240680);
spawn N(80240050);
EVT_VAR(0) = N(8024014C);
spawn EnterWalk;
sleep 1;
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(80240270))
EVT_CALL(ModifyColliderFlags, 0, 6, 0x7FFFFE00)
EVT_EXEC_WAIT(N(80240680))
EVT_EXEC(N(80240050))
EVT_SET(EVT_VAR(0), EVT_PTR(N(8024014C)))
EVT_EXEC(EnterWalk)
EVT_WAIT_FRAMES(1)
EVT_RETURN
EVT_END
};
EvtSource N(80240270) = SCRIPT({
MakeItemEntity(ITEM_MEGA_RUSH, -910, 50, -206, 17, EVT_SAVE_FLAG(1058));
MakeItemEntity(ITEM_COIN, -530, 55, -190, 17, EVT_SAVE_FLAG(1059));
MakeItemEntity(ITEM_COIN, -510, 55, -175, 17, EVT_SAVE_FLAG(1060));
MakeItemEntity(ITEM_COIN, -510, 55, -205, 17, EVT_SAVE_FLAG(1061));
MakeItemEntity(ITEM_COIN, -490, 55, -160, 17, EVT_SAVE_FLAG(1062));
MakeItemEntity(ITEM_COIN, -490, 55, -190, 17, EVT_SAVE_FLAG(1063));
MakeItemEntity(ITEM_COIN, -490, 55, -220, 17, EVT_SAVE_FLAG(1064));
});
EvtSource N(80240270) = {
EVT_CALL(MakeItemEntity, ITEM_MEGA_RUSH, -910, 50, -206, 17, EVT_SAVE_FLAG(1058))
EVT_CALL(MakeItemEntity, ITEM_COIN, -530, 55, -190, 17, EVT_SAVE_FLAG(1059))
EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -175, 17, EVT_SAVE_FLAG(1060))
EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -205, 17, EVT_SAVE_FLAG(1061))
EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -160, 17, EVT_SAVE_FLAG(1062))
EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -190, 17, EVT_SAVE_FLAG(1063))
EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -220, 17, EVT_SAVE_FLAG(1064))
EVT_RETURN
EVT_END
};
static s32 N(pad_37C) = {
0x00000000,
};
EvtSource N(80240380) = SCRIPT({
MakeLerp(0, 30, 15, 0);
loop {
UpdateLerp();
TranslateGroup(47, 0, 0, EVT_VAR(0));
UpdateColliderTransform(13);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(80240380) = {
EVT_CALL(MakeLerp, 0, 30, 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 47, 0, 0, EVT_VAR(0))
EVT_CALL(UpdateColliderTransform, 13)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(80240424) = SCRIPT({
MakeLerp(30, 0, 15, 0);
loop {
UpdateLerp();
TranslateGroup(47, 0, 0, EVT_VAR(0));
UpdateColliderTransform(13);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(80240424) = {
EVT_CALL(MakeLerp, 30, 0, 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 47, 0, 0, EVT_VAR(0))
EVT_CALL(UpdateColliderTransform, 13)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(802404C8) = SCRIPT({
MakeLerp(0, 30, 15, 0);
loop {
UpdateLerp();
TranslateGroup(53, 0, 0, EVT_VAR(0));
UpdateColliderTransform(17);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(802404C8) = {
EVT_CALL(MakeLerp, 0, 30, 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 53, 0, 0, EVT_VAR(0))
EVT_CALL(UpdateColliderTransform, 17)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(8024056C) = SCRIPT({
MakeLerp(30, 0, 15, 0);
loop {
UpdateLerp();
TranslateGroup(53, 0, 0, EVT_VAR(0));
UpdateColliderTransform(17);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(8024056C) = {
EVT_CALL(MakeLerp, 30, 0, 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 53, 0, 0, EVT_VAR(0))
EVT_CALL(UpdateColliderTransform, 17)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(80240610) = SCRIPT({
if (EVT_MAP_VAR(0) == 0) {
await N(80240380);
EVT_MAP_VAR(0) = 1;
} else {
await N(80240424);
EVT_MAP_VAR(0) = 0;
}
unbind;
});
EvtSource N(80240610) = {
EVT_IF_EQ(EVT_MAP_VAR(0), 0)
EVT_EXEC_WAIT(N(80240380))
EVT_SET(EVT_MAP_VAR(0), 1)
EVT_ELSE
EVT_EXEC_WAIT(N(80240424))
EVT_SET(EVT_MAP_VAR(0), 0)
EVT_END_IF
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80240680) = SCRIPT({
ParentColliderToModel(13, 44);
bind N(80240610) TRIGGER_WALL_PRESS_A 13;
});
EvtSource N(80240680) = {
EVT_CALL(ParentColliderToModel, 13, 44)
EVT_BIND_TRIGGER(N(80240610), TRIGGER_WALL_PRESS_A, 13, 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -13,95 +13,103 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_14_tattle },
};
EvtSource N(80240060) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240060) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_F8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitDoubleDoor_80240100) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 1;
EVT_VAR(1) = 14;
EVT_VAR(2) = 24;
EVT_VAR(3) = 22;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_03", 3);
sleep 100;
});
EvtSource N(exitDoubleDoor_80240100) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 14)
EVT_SET(EVT_VAR(2), 24)
EVT_SET(EVT_VAR(3), 22)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 3)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_802401B4) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 0;
EVT_VAR(1) = 18;
EVT_VAR(2) = 19;
EVT_VAR(3) = 17;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_15", 0);
sleep 100;
});
EvtSource N(exitDoubleDoor_802401B4) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 18)
EVT_SET(EVT_VAR(2), 19)
EVT_SET(EVT_VAR(3), 17)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 0)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(enterDoubleDoor_80240268) = SCRIPT({
UseDoorSounds(3);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 24;
EVT_VAR(3) = 22;
await EnterDoubleDoor;
}
== 1 {
DisablePlayerInput(TRUE);
EVT_VAR(2) = 19;
EVT_VAR(3) = 17;
await EnterDoubleDoor;
if (EVT_AREA_FLAG(1) == 1) {
sleep 5;
SetPlayerAnimation(ANIM_8001D);
sleep 20;
SetPlayerAnimation(ANIM_10002);
}
DisablePlayerInput(FALSE);
}
}
});
EvtSource N(enterDoubleDoor_80240268) = {
EVT_CALL(UseDoorSounds, 3)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 24)
EVT_SET(EVT_VAR(3), 22)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_CASE_EQ(1)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(EVT_VAR(2), 19)
EVT_SET(EVT_VAR(3), 17)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_IF_EQ(EVT_AREA_FLAG(1), 1)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetPlayerAnimation, ANIM_8001D)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_END_IF
EVT_CALL(DisablePlayerInput, FALSE)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
spawn N(80240060);
bind N(exitDoubleDoor_80240100) TRIGGER_WALL_PRESS_A 14;
bind N(exitDoubleDoor_802401B4) TRIGGER_WALL_PRESS_A 18;
spawn N(enterDoubleDoor_80240268);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(80240060))
EVT_BIND_TRIGGER(N(exitDoubleDoor_80240100), TRIGGER_WALL_PRESS_A, 14, 1, 0)
EVT_BIND_TRIGGER(N(exitDoubleDoor_802401B4), TRIGGER_WALL_PRESS_A, 18, 1, 0)
EVT_EXEC(N(enterDoubleDoor_80240268))
EVT_RETURN
EVT_END
};
static s32 N(pad_47C) = {
0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EA564, 500, 60, 75, 0, ITEM_MAPLE_SYRUP, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1065));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EA564, 500, 60, 75, 0, 163, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1065))
EVT_RETURN
EVT_END
};

View File

@ -19,22 +19,22 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_15_tattle },
};
EvtSource N(802418E0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
if (EVT_SAVE_VAR(203) == 15) {
SetMusicTrack(0, SONG_TUBBA_BLUBBA_THEME, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(802418E0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_IF_EQ(EVT_SAVE_VAR(203), 15)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_ELSE
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_IF
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_19B4)[] = {
0x00000000, 0x00000000, 0x00000000,
@ -45,121 +45,129 @@ s32 N(itemList_802419C0)[] = {
ITEM_NONE,
};
EvtSource N(exitDoubleDoor_802419C8) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 0;
EVT_VAR(1) = 19;
EVT_VAR(2) = 12;
EVT_VAR(3) = 14;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_14", 1);
sleep 100;
});
EvtSource N(exitDoubleDoor_802419C8) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 19)
EVT_SET(EVT_VAR(2), 12)
EVT_SET(EVT_VAR(3), 14)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_14"), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_80241A7C) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 1;
EVT_VAR(1) = 10;
EVT_VAR(2) = 19;
EVT_VAR(3) = 17;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_17", 0);
sleep 100;
});
EvtSource N(exitDoubleDoor_80241A7C) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 10)
EVT_SET(EVT_VAR(2), 19)
EVT_SET(EVT_VAR(3), 17)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_17"), 0)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitSingleDoor_80241B30) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 2;
EVT_VAR(1) = 6;
EVT_VAR(2) = 22;
EVT_VAR(3) = 1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_16", 0);
sleep 100;
});
EvtSource N(exitSingleDoor_80241B30) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 2)
EVT_SET(EVT_VAR(1), 6)
EVT_SET(EVT_VAR(2), 22)
EVT_SET(EVT_VAR(3), 1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_16"), 0)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
const s32 N(pad_XXXX)[] = { 0, 0 };
EvtSource N(80241BE4) = SCRIPT({
bind N(exitDoubleDoor_802419C8) TRIGGER_WALL_PRESS_A 19;
bind N(exitSingleDoor_80241B30) TRIGGER_WALL_PRESS_A 6;
if (EVT_SAVE_FLAG(1066) == 0) {
bind_padlock N(80242AD0) TRIGGER_WALL_PRESS_A entity(0) N(itemList_802419C0);
} else {
bind N(exitDoubleDoor_80241A7C) TRIGGER_WALL_PRESS_A 10;
}
});
EvtSource N(80241BE4) = {
EVT_BIND_TRIGGER(N(exitDoubleDoor_802419C8), TRIGGER_WALL_PRESS_A, 19, 1, 0)
EVT_BIND_TRIGGER(N(exitSingleDoor_80241B30), TRIGGER_WALL_PRESS_A, 6, 1, 0)
EVT_IF_EQ(EVT_SAVE_FLAG(1066), 0)
EVT_BIND_PADLOCK(N(80242AD0), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(itemList_802419C0)), 0, 1)
EVT_ELSE
EVT_BIND_TRIGGER(N(exitDoubleDoor_80241A7C), TRIGGER_WALL_PRESS_A, 10, 1, 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80241C88) = SCRIPT({
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
UseDoorSounds(3);
EVT_VAR(2) = 12;
EVT_VAR(3) = 14;
await EnterDoubleDoor;
}
== 1 {
UseDoorSounds(3);
EVT_VAR(2) = 19;
EVT_VAR(3) = 17;
await EnterDoubleDoor;
}
== 2 {
UseDoorSounds(0);
EVT_VAR(2) = 22;
EVT_VAR(3) = 1;
await EnterSingleDoor;
}
}
spawn N(80241BE4);
});
EvtSource N(enterSingleDoor_80241C88) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(2), 12)
EVT_SET(EVT_VAR(3), 14)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_CASE_EQ(1)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(2), 19)
EVT_SET(EVT_VAR(3), 17)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_CASE_EQ(2)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(2), 22)
EVT_SET(EVT_VAR(3), 1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_EXEC(N(80241BE4))
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
EVT_AREA_FLAG(1) = 0;
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
SetCamLeadPlayer(0, 0);
if (EVT_SAVE_FLAG(1068) == 0) {
MakeNpcs(1, N(npcGroupList_80242AB0));
}
await N(makeEntities);
spawn N(802418E0);
spawn N(enterSingleDoor_80241C88);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_SET(EVT_AREA_FLAG(1), 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_IF_EQ(EVT_SAVE_FLAG(1068), 0)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80242AB0)))
EVT_END_IF
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(802418E0))
EVT_EXEC(N(enterSingleDoor_80241C88))
EVT_RETURN
EVT_END
};
static s32 N(pad_1E94)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80241EA0) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(80241EA0) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(unk_missing_80241F5C)[] = {
0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x0039000C, 0x00390007, 0x00390008, 0x00390011,
@ -171,29 +179,33 @@ s32 N(D_80241F8C_C5149C)[] = {
0x0000000C, 0x42DC0000, 0x42B40000, 0x00000003,
};
EvtSource N(80241FBC) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 5);
SetSelfVar(2, 8);
SetSelfVar(3, 12);
N(func_8024061C_C4FB2C)(N(D_80241F8C_C5149C));
});
EvtSource N(80241FBC) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 5)
EVT_CALL(SetSelfVar, 2, 8)
EVT_CALL(SetSelfVar, 3, 12)
EVT_CALL(N(func_8024061C_C4FB2C), EVT_PTR(N(D_80241F8C_C5149C)))
EVT_RETURN
EVT_END
};
s32 N(unk_missing_8024202C)[] = {
0x00000000, 0x00240022, 0x00000000, 0x00000000, N(80241FBC), 0x80077F70, 0x00000000, 0x8007809C,
0x00000000, 0x00000000, 0x000D0000,
};
EvtSource N(80242058) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(80242058) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
s32 N(unk_missing_80242100)[] = {
0x00000000, 0x000E0012, 0x00000000, 0x00000000, N(80242058), 0x00000000, 0x00000000, N(80241EA0),
@ -213,97 +225,100 @@ s32 N(unk_missing_80242158)[] = {
0x00000000, 0x00000000, 0x000D0000,
};
EvtSource N(80242184) = SCRIPT({
loop {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetNpcPos(NPC_WORLD_TUBBA, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
EVT_VAR(1) -= EVT_VAR(0);
if (EVT_VAR(1) < 150) {
break loop;
}
sleep 1;
}
EVT_SAVE_FLAG(1067) = 1;
EVT_AREA_FLAG(1) = 1;
});
EvtSource N(80242184) = {
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetNpcPos, 0, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
EVT_SUB(EVT_VAR(1), EVT_VAR(0))
EVT_IF_LT(EVT_VAR(1), 150)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_SET(EVT_SAVE_FLAG(1067), 1)
EVT_SET(EVT_AREA_FLAG(1), 1)
EVT_RETURN
EVT_END
};
EvtSource N(idle_80242238) = SCRIPT({
loop {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(0) >= -1150) {
break loop;
}
sleep 1;
}
DisablePlayerInput(TRUE);
SetMusicTrack(0, SONG_TUBBA_BLUBBA_THEME, 0, 8);
sleep 15;
spawn {
UseSettingsFrom(0, -50, 0, 180);
SetCamSpeed(0, 2.0);
SetPanTarget(0, -50, 0, 180);
PanToTarget(0, 0, 1);
}
EVT_SAVE_VAR(203) = 15;
SetNpcPos(NPC_SELF, 0, 0, 88);
SetNpcAnimation(NPC_WORLD_TUBBA, NPC_ANIM_world_tubba_Palette_00_Anim_9);
SetNpcYaw(NPC_SELF, 270);
NpcMoveTo(NPC_SELF, -53, 180, 60);
SetMusicTrack(0, SONG_TUBBA_BLUBBA_THEME, 0, 8);
SetNpcAnimation(NPC_SELF, NPC_ANIM_world_tubba_Palette_00_Anim_6);
sleep 15;
SpeakToPlayer(NPC_SELF, NPC_ANIM_world_tubba_Palette_00_Anim_10, NPC_ANIM_world_tubba_Palette_00_Anim_6, 0, MESSAGE_ID(0x0E, 0x00F3));
sleep 15;
spawn {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamSpeed(0, 2.0);
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
WaitForCam(0, 1.0);
PanToTarget(0, 0, 0);
DisablePlayerInput(FALSE);
}
BindNpcAI(NPC_SELF, N(npcAI_8024274C));
});
EvtSource N(idle_80242238) = {
EVT_LOOP(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GE(EVT_VAR(0), -1150)
EVT_BREAK_LOOP
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_WAIT_FRAMES(15)
EVT_THREAD
EVT_CALL(UseSettingsFrom, 0, -50, 0, 180)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(2.0))
EVT_CALL(SetPanTarget, 0, -50, 0, 180)
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_END_THREAD
EVT_SET(EVT_SAVE_VAR(203), 15)
EVT_CALL(SetNpcPos, NPC_SELF, 0, 0, 88)
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_world_tubba_Palette_00_Anim_9)
EVT_CALL(SetNpcYaw, NPC_SELF, 270)
EVT_CALL(NpcMoveTo, NPC_SELF, -53, 180, 60)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_world_tubba_Palette_00_Anim_6)
EVT_WAIT_FRAMES(15)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_world_tubba_Palette_00_Anim_10, NPC_ANIM_world_tubba_Palette_00_Anim_6, 0, MESSAGE_ID(0x0E, 0x00F3))
EVT_WAIT_FRAMES(15)
EVT_THREAD
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(2.0))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_END_THREAD
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_8024274C)))
EVT_RETURN
EVT_END
};
EvtSource N(802424E8) = SCRIPT({
GetNpcPos(NPC_SELF, EVT_VAR(6), EVT_VAR(7), EVT_VAR(8));
loop {
sleep 1;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
GetNpcPos(NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
if (EVT_VAR(3) != EVT_VAR(6)) {
PlaySoundAtNpc(NPC_SELF, SOUND_20F6, 65538);
GetDist2D(EVT_VAR(10), EVT_VAR(0), EVT_VAR(2), EVT_VAR(3), EVT_VAR(5));
match EVT_VAR(10) {
< 200 {
spawn {
ShakeCam(0, 0, 5, 1.6005859375);
sleep 5;
ShakeCam(0, 0, 2, 0.80078125);
}
}
< 300 {
spawn {
ShakeCam(0, 0, 5, 0.6005859375);
sleep 5;
ShakeCam(0, 0, 2, 0.30078125);
}
}
>= 300 {
spawn {
ShakeCam(0, 0, 5, 0.1005859375);
sleep 5;
ShakeCam(0, 0, 2, 0.05078125);
}
}
}
sleep 12;
} else {
}
GetNpcPos(NPC_SELF, EVT_VAR(6), EVT_VAR(7), EVT_VAR(8));
}
});
EvtSource N(802424E8) = {
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(6), EVT_VAR(7), EVT_VAR(8))
EVT_LOOP(0)
EVT_WAIT_FRAMES(1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_IF_NE(EVT_VAR(3), EVT_VAR(6))
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 65538)
EVT_CALL(GetDist2D, EVT_VAR(10), EVT_VAR(0), EVT_VAR(2), EVT_VAR(3), EVT_VAR(5))
EVT_SWITCH(EVT_VAR(10))
EVT_CASE_LT(200)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(1.6))
EVT_WAIT_FRAMES(5)
EVT_CALL(ShakeCam, 0, 0, 2, EVT_FIXED(0.8))
EVT_END_THREAD
EVT_CASE_LT(300)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(0.6))
EVT_WAIT_FRAMES(5)
EVT_CALL(ShakeCam, 0, 0, 2, EVT_FIXED(0.3))
EVT_END_THREAD
EVT_CASE_GE(300)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(0.1))
EVT_WAIT_FRAMES(5)
EVT_CALL(ShakeCam, 0, 0, 2, EVT_FIXED(0.05))
EVT_END_THREAD
EVT_END_SWITCH
EVT_WAIT_FRAMES(12)
EVT_ELSE
EVT_END_IF
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(6), EVT_VAR(7), EVT_VAR(8))
EVT_END_LOOP
EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_8024271C) = {
.moveSpeed = 3.0f,
@ -320,36 +335,42 @@ NpcAISettings N(npcAISettings_8024271C) = {
.unk_2C = 1,
};
EvtSource N(npcAI_8024274C) = SCRIPT({
spawn N(80242184);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_GRAVITY)), TRUE);
SetNpcAnimation(NPC_WORLD_TUBBA, NPC_ANIM_world_tubba_Palette_00_Anim_C);
spawn N(802424E8);
N(func_80241464_C50974)(N(npcAISettings_8024271C));
});
EvtSource N(npcAI_8024274C) = {
EVT_EXEC(N(80242184))
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_GRAVITY)), TRUE)
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_world_tubba_Palette_00_Anim_C)
EVT_EXEC(N(802424E8))
EVT_CALL(N(func_80241464_C50974), EVT_PTR(N(npcAISettings_8024271C)))
EVT_RETURN
EVT_END
};
extern const char N(dgb_14_name_hack)[];
EvtSource N(defeat_802427B0) = SCRIPT({
N(UnkFunc1)();
GotoMap(N(dgb_14_name_hack), 1);
sleep 100;
});
EvtSource N(defeat_802427B0) = {
EVT_CALL(N(UnkFunc1))
EVT_CALL(GotoMap, EVT_PTR(N(dgb_14_name_hack)), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(init_802427EC) = SCRIPT({
if (EVT_STORY_PROGRESS != STORY_CH3_ARRIVED_AT_TUBBAS_MANOR) {
RemoveNpc(NPC_SELF);
return;
}
SetNpcScale(NPC_SELF, 1.25, 1.25, 1.25);
if (EVT_SAVE_VAR(203) != 15) {
BindNpcIdle(NPC_SELF, N(idle_80242238));
} else {
SetNpcPos(NPC_SELF, -310, 0, 180);
BindNpcIdle(NPC_SELF, N(npcAI_8024274C));
}
BindNpcDefeat(NPC_SELF, N(defeat_802427B0));
});
EvtSource N(init_802427EC) = {
EVT_IF_NE(EVT_SAVE_VAR(0), -32)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_RETURN
EVT_END_IF
EVT_CALL(SetNpcScale, NPC_SELF, EVT_FIXED(1.25), EVT_FIXED(1.25), EVT_FIXED(1.25))
EVT_IF_NE(EVT_SAVE_VAR(203), 15)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80242238)))
EVT_ELSE
EVT_CALL(SetNpcPos, NPC_SELF, -310, 0, 180)
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_8024274C)))
EVT_END_IF
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802427B0)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_802428C0) = {
.id = NPC_WORLD_TUBBA,
@ -398,44 +419,50 @@ static s32 N(pad_2AC8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(80242AD0) = SCRIPT({
group 0;
suspend group 1;
ShowKeyChoicePopup();
if (EVT_VAR(0) == 0) {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00D8), 160, 40);
CloseChoicePopup();
resume group 1;
return;
}
if (EVT_VAR(0) == -1) {
CloseChoicePopup();
resume group 1;
return;
}
FindKeyItem(19, EVT_VAR(0));
RemoveKeyItemAt(EVT_VAR(0));
CloseChoicePopup();
EVT_SAVE_FLAG(1066) = 1;
N(GetEntityPosition)(EVT_MAP_VAR(0), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
PlaySoundAt(0x269, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) = EVT_MAP_VAR(0);
N(SetEntityFlags100000)();
resume group 1;
unbind;
});
EvtSource N(80242AD0) = {
EVT_SET_GROUP(0)
EVT_SUSPEND_GROUP(1)
EVT_CALL(ShowKeyChoicePopup)
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00D8), 160, 40)
EVT_CALL(CloseChoicePopup)
EVT_RESUME_GROUP(1)
EVT_RETURN
EVT_END_IF
EVT_IF_EQ(EVT_VAR(0), -1)
EVT_CALL(CloseChoicePopup)
EVT_RESUME_GROUP(1)
EVT_RETURN
EVT_END_IF
EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, EVT_VAR(0))
EVT_CALL(RemoveKeyItemAt, EVT_VAR(0))
EVT_CALL(CloseChoicePopup)
EVT_SET(EVT_SAVE_FLAG(1066), 1)
EVT_CALL(N(GetEntityPosition), EVT_MAP_VAR(0), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(PlaySoundAt, 0x269, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_SET(EVT_VAR(0), EVT_MAP_VAR(0))
EVT_CALL(N(SetEntityFlags100000))
EVT_RESUME_GROUP(1)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80242C38) = SCRIPT({
bind N(exitDoubleDoor_80241A7C) TRIGGER_WALL_PRESS_A 10;
});
EvtSource N(80242C38) = {
EVT_BIND_TRIGGER(N(exitDoubleDoor_80241A7C), TRIGGER_WALL_PRESS_A, 10, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
if (EVT_SAVE_FLAG(1066) == 0) {
MakeEntity(0x802BCD68, 130, 8, 175, -80, MAKE_ENTITY_END);
AssignScript(N(80242C38));
EVT_MAP_VAR(0) = EVT_VAR(0);
}
});
EvtSource N(makeEntities) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1066), 0)
EVT_CALL(MakeEntity, 0x802BCD68, 130, 8, 175, -80, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80242C38)))
EVT_SET(EVT_MAP_VAR(0), EVT_VAR(0))
EVT_END_IF
EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc6.inc.c"

View File

@ -30,98 +30,104 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_16_tattle },
};
EvtSource N(80241480) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80241480) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_1518)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitSingleDoor_80241520) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(0);
EVT_VAR(0) = 0;
EVT_VAR(1) = 6;
EVT_VAR(2) = 16;
EVT_VAR(3) = -1;
spawn ExitSingleDoor;
sleep 17;
GotoMap("dgb_15", 2);
sleep 100;
});
EvtSource N(exitSingleDoor_80241520) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 0)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 6)
EVT_SET(EVT_VAR(2), 16)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC(ExitSingleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
const char N(pad_XXX)[] = { 0, 0 };
EvtSource N(enterSingleDoor_802415D4) = SCRIPT({
UseDoorSounds(0);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
if (EVT_SAVE_FLAG(1068) == 0) {
EVT_SAVE_FLAG(1068) = 1;
EVT_SAVE_VAR(203) = 18;
}
EVT_VAR(2) = 16;
EVT_VAR(3) = -1;
await EnterSingleDoor;
}
}
});
EvtSource N(enterSingleDoor_802415D4) = {
EVT_CALL(UseDoorSounds, 0)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_IF_EQ(EVT_SAVE_FLAG(1068), 0)
EVT_SET(EVT_SAVE_FLAG(1068), 1)
EVT_SET(EVT_SAVE_VAR(203), 18)
EVT_END_IF
EVT_SET(EVT_VAR(2), 16)
EVT_SET(EVT_VAR(3), -1)
EVT_EXEC_WAIT(EnterSingleDoor)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
if (EVT_STORY_PROGRESS < STORY_CH3_STAR_SPIRIT_RESCUED) {
MakeNpcs(1, N(npcGroupList_8024318C));
}
await N(80241780);
spawn N(80241480);
bind N(exitSingleDoor_80241520) TRIGGER_WALL_PRESS_A 6;
spawn N(enterSingleDoor_802415D4);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_IF_LT(EVT_SAVE_VAR(0), -15)
EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024318C)))
EVT_END_IF
EVT_EXEC_WAIT(N(80241780))
EVT_EXEC(N(80241480))
EVT_BIND_TRIGGER(N(exitSingleDoor_80241520), TRIGGER_WALL_PRESS_A, 6, 1, 0)
EVT_EXEC(N(enterSingleDoor_802415D4))
EVT_RETURN
EVT_END
};
static s32 N(pad_1774)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80241780) = SCRIPT({
MakeItemEntity(ITEM_TUBBA_CASTLE_KEY, -235, 25, -165, 17, EVT_SAVE_FLAG(1069));
});
EvtSource N(80241780) = {
EVT_CALL(MakeItemEntity, ITEM_TUBBA_CASTLE_KEY, -235, 25, -165, 17, EVT_SAVE_FLAG(1069))
EVT_RETURN
EVT_END
};
static s32 N(pad_17B4)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(802417C0) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
RemoveNpc(NPC_SELF);
}
== 2 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
func_80045900(1);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(802417C0) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(func_80045900, 1)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
s32 N(extraAnimationList_8024187C)[] = {
NPC_ANIM_world_clubba_Palette_00_Anim_0,
@ -156,13 +162,15 @@ NpcAISettings N(npcAISettings_802418AC) = {
.unk_2C = 1,
};
EvtSource N(npcAI_802418DC) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(1, 10);
SetSelfVar(2, 14);
SetSelfVar(3, 18);
N(func_80240E20_C53360)(N(npcAISettings_802418AC));
});
EvtSource N(npcAI_802418DC) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 1, 10)
EVT_CALL(SetSelfVar, 2, 14)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(N(func_80240E20_C53360), EVT_PTR(N(npcAISettings_802418AC)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024194C) = {
.height = 36,
@ -173,16 +181,18 @@ NpcSettings N(npcSettings_8024194C) = {
.level = 13,
};
EvtSource N(npcAI_80241978) = SCRIPT({
EnableNpcShadow(NPC_SELF, FALSE);
SetSelfVar(0, 4);
SetSelfVar(1, 32);
SetSelfVar(2, 50);
SetSelfVar(3, 32);
SetSelfVar(4, 3);
SetSelfVar(15, 8389);
N(UnkFunc7)();
});
EvtSource N(npcAI_80241978) = {
EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE)
EVT_CALL(SetSelfVar, 0, 4)
EVT_CALL(SetSelfVar, 1, 32)
EVT_CALL(SetSelfVar, 2, 50)
EVT_CALL(SetSelfVar, 3, 32)
EVT_CALL(SetSelfVar, 4, 3)
EVT_CALL(SetSelfVar, 15, 8389)
EVT_CALL(N(UnkFunc7))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80241A20) = {
.height = 14,

View File

@ -13,93 +13,103 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_17_tattle },
};
EvtSource N(80240060) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH3_TUBBA_WOKE_UP {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
< STORY_CH3_DEFEATED_TUBBA_BLUBBA {
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8);
} else {
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8);
}
}
});
EvtSource N(80240060) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(-29)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_CASE_LT(-16)
EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
static s32 N(pad_F8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(exitDoubleDoor_80240100) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 0;
EVT_VAR(1) = 7;
EVT_VAR(2) = 14;
EVT_VAR(3) = 16;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_15", 1);
sleep 100;
});
EvtSource N(exitDoubleDoor_80240100) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 7)
EVT_SET(EVT_VAR(2), 14)
EVT_SET(EVT_VAR(3), 16)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_802401B4) = SCRIPT({
group 27;
DisablePlayerInput(TRUE);
UseDoorSounds(3);
EVT_VAR(0) = 1;
EVT_VAR(1) = 11;
EVT_VAR(2) = 21;
EVT_VAR(3) = 19;
spawn ExitDoubleDoor;
sleep 17;
GotoMap("dgb_01", 5);
sleep 100;
});
EvtSource N(exitDoubleDoor_802401B4) = {
EVT_SET_GROUP(27)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(UseDoorSounds, 3)
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 11)
EVT_SET(EVT_VAR(2), 21)
EVT_SET(EVT_VAR(3), 19)
EVT_EXEC(ExitDoubleDoor)
EVT_WAIT_FRAMES(17)
EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 5)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(80240268) = SCRIPT({
bind N(exitDoubleDoor_80240100) TRIGGER_WALL_PRESS_A 7;
bind N(exitDoubleDoor_802401B4) TRIGGER_WALL_PRESS_A 11;
});
EvtSource N(80240268) = {
EVT_BIND_TRIGGER(N(exitDoubleDoor_80240100), TRIGGER_WALL_PRESS_A, 7, 1, 0)
EVT_BIND_TRIGGER(N(exitDoubleDoor_802401B4), TRIGGER_WALL_PRESS_A, 11, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(enterDoubleDoor_802402B0) = SCRIPT({
GetLoadType(EVT_VAR(1));
if (EVT_VAR(1) == 1) {
spawn EnterSavePoint;
spawn N(80240268);
return;
}
UseDoorSounds(3);
GetEntryID(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
EVT_VAR(2) = 14;
EVT_VAR(3) = 16;
await EnterDoubleDoor;
}
== 1 {
EVT_VAR(2) = 21;
EVT_VAR(3) = 19;
await EnterDoubleDoor;
}
}
spawn N(80240268);
});
EvtSource N(enterDoubleDoor_802402B0) = {
EVT_CALL(GetLoadType, EVT_VAR(1))
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_EXEC(EnterSavePoint)
EVT_EXEC(N(80240268))
EVT_RETURN
EVT_END_IF
EVT_CALL(UseDoorSounds, 3)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_SET(EVT_VAR(2), 14)
EVT_SET(EVT_VAR(3), 16)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_CASE_EQ(1)
EVT_SET(EVT_VAR(2), 21)
EVT_SET(EVT_VAR(3), 19)
EVT_EXEC_WAIT(EnterDoubleDoor)
EVT_END_SWITCH
EVT_EXEC(N(80240268))
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamLeadPlayer(0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
spawn N(80240060);
spawn N(enterDoubleDoor_802402B0);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 15)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(80240060))
EVT_EXEC(N(enterDoubleDoor_802402B0))
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802E9A18, -300, 60, 75, 0, MAKE_ENTITY_END);
MakeEntity(0x802EA7E0, -450, 60, 75, 0, MAKE_ENTITY_END);
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(D_802E9A18), -300, 60, 75, 0, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, 0x802EA7E0, -450, 60, 75, 0, MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -19,187 +19,200 @@ MapConfig N(config) = {
.tattle = { MSG_flo_07_tattle },
};
EvtSource N(802407A0) = SCRIPT({
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8);
} else {
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
}
PlaySound(0x80000021);
});
EvtSource N(802407A0) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
EVT_ELSE
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_END_IF
EVT_CALL(PlaySound, 0x80000021)
EVT_RETURN
EVT_END
};
EvtSource N(8024086C) = SCRIPT({
PushSong(137, 1);
});
EvtSource N(8024086C) = {
EVT_CALL(PushSong, 137, 1)
EVT_RETURN
EVT_END
};
EvtSource N(80240890) = SCRIPT({
FadeOutMusic(0, 250);
sleep 10;
PopSong();
});
EvtSource N(80240890) = {
EVT_CALL(FadeOutMusic, 0, 250)
EVT_WAIT_FRAMES(10)
EVT_CALL(PopSong)
EVT_RETURN
EVT_END
};
static s32 N(pad_8CC) = {
0x00000000,
};
EvtSource N(updateTexturePan_802408D0) = SCRIPT({
group 0;
if (EVT_VAR(5) == 1) {
if (EVT_VAR(6) == 1) {
if (EVT_VAR(7) == 1) {
if (EVT_VAR(8) == 1) {
N(UnkTexturePanFunc)();
return;
}
}
}
}
N(UnkTexturePanFunc2)();
});
EvtSource N(updateTexturePan_802408D0) = {
EVT_SET_GROUP(0)
EVT_IF_EQ(EVT_VAR(5), 1)
EVT_IF_EQ(EVT_VAR(6), 1)
EVT_IF_EQ(EVT_VAR(7), 1)
EVT_IF_EQ(EVT_VAR(8), 1)
EVT_CALL(N(UnkTexturePanFunc))
EVT_RETURN
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_CALL(N(UnkTexturePanFunc2))
EVT_RETURN
EVT_END
};
EvtSource N(8024096C) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(8024096C) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80240C18) = EXIT_WALK_SCRIPT(60, 0, "flo_25", 1);
EvtSource N(80240C74) = SCRIPT({
bind N(exitWalk_80240C18) TRIGGER_FLOOR_ABOVE 0;
});
EvtSource N(80240C74) = {
EVT_BIND_TRIGGER(N(exitWalk_80240C18), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
EVT_AREA_FLAG(6) = 0;
MakeNpcs(0, N(npcGroupList_80242B0C));
await N(802428C4);
ModifyColliderFlags(3, 6, 0x00000006);
EVT_VAR(0) = 297;
EVT_VAR(1) = -95;
EVT_VAR(2) = 383;
EVT_VAR(3) = -65;
EVT_VAR(4) = 0;
spawn N(8024096C);
EVT_VAR(0) = 293;
EVT_VAR(1) = 71;
EVT_VAR(2) = 378;
EVT_VAR(3) = 113;
EVT_VAR(4) = 0;
spawn N(8024096C);
EVT_VAR(0) = 21;
EVT_VAR(1) = -346;
EVT_VAR(2) = 147;
EVT_VAR(3) = -242;
EVT_VAR(4) = 20;
spawn N(8024096C);
EVT_VAR(0) = -350;
EVT_VAR(1) = -190;
EVT_VAR(2) = -81;
EVT_VAR(3) = -106;
EVT_VAR(4) = 0;
spawn N(8024096C);
EVT_VAR(0) = -380;
EVT_VAR(1) = 85;
EVT_VAR(2) = -95;
EVT_VAR(3) = 150;
EVT_VAR(4) = 0;
spawn N(8024096C);
EnableTexPanning(51, 1);
EnableTexPanning(49, 1);
EnableTexPanning(50, 1);
spawn {
EVT_VAR(0) = 2;
EVT_VAR(1) = -100;
EVT_VAR(2) = 100;
EVT_VAR(3) = 0;
EVT_VAR(4) = 0;
EVT_VAR(5) = 1;
EVT_VAR(6) = 1;
EVT_VAR(7) = 0;
EVT_VAR(8) = 0;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802408D0);
}
spawn {
EVT_VAR(0) = 3;
EVT_VAR(1) = 0;
EVT_VAR(2) = -1200;
EVT_VAR(3) = 0;
EVT_VAR(4) = 0;
EVT_VAR(5) = 0;
EVT_VAR(6) = 1;
EVT_VAR(7) = 0;
EVT_VAR(8) = 0;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802408D0);
}
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
spawn N(80241C14);
} else {
ModifyColliderFlags(0, 1, 0x7FFFFE00);
EVT_VAR(0) = N(80240C74);
spawn EnterWalk;
spawn N(802424F4);
}
await N(802407A0);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(SpawnSunEffect)();
}
N(func_80240344_CAC534)();
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_SET(EVT_AREA_FLAG(6), 0)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80242B0C)))
EVT_EXEC_WAIT(N(802428C4))
EVT_CALL(ModifyColliderFlags, 3, 6, 0x00000006)
EVT_SET(EVT_VAR(0), 297)
EVT_SET(EVT_VAR(1), -95)
EVT_SET(EVT_VAR(2), 383)
EVT_SET(EVT_VAR(3), -65)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(8024096C))
EVT_SET(EVT_VAR(0), 293)
EVT_SET(EVT_VAR(1), 71)
EVT_SET(EVT_VAR(2), 378)
EVT_SET(EVT_VAR(3), 113)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(8024096C))
EVT_SET(EVT_VAR(0), 21)
EVT_SET(EVT_VAR(1), -346)
EVT_SET(EVT_VAR(2), 147)
EVT_SET(EVT_VAR(3), -242)
EVT_SET(EVT_VAR(4), 20)
EVT_EXEC(N(8024096C))
EVT_SET(EVT_VAR(0), -350)
EVT_SET(EVT_VAR(1), -190)
EVT_SET(EVT_VAR(2), -81)
EVT_SET(EVT_VAR(3), -106)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(8024096C))
EVT_SET(EVT_VAR(0), -380)
EVT_SET(EVT_VAR(1), 85)
EVT_SET(EVT_VAR(2), -95)
EVT_SET(EVT_VAR(3), 150)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(8024096C))
EVT_CALL(EnableTexPanning, 51, 1)
EVT_CALL(EnableTexPanning, 49, 1)
EVT_CALL(EnableTexPanning, 50, 1)
EVT_THREAD
EVT_SET(EVT_VAR(0), 2)
EVT_SET(EVT_VAR(1), -100)
EVT_SET(EVT_VAR(2), 100)
EVT_SET(EVT_VAR(3), 0)
EVT_SET(EVT_VAR(4), 0)
EVT_SET(EVT_VAR(5), 1)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802408D0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 3)
EVT_SET(EVT_VAR(1), 0)
EVT_SET(EVT_VAR(2), -1200)
EVT_SET(EVT_VAR(3), 0)
EVT_SET(EVT_VAR(4), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802408D0))
EVT_END_THREAD
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_EXEC(N(80241C14))
EVT_ELSE
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80240C74)))
EVT_EXEC(EnterWalk)
EVT_EXEC(N(802424F4))
EVT_END_IF
EVT_EXEC_WAIT(N(802407A0))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(SpawnSunEffect))
EVT_END_IF
EVT_CALL(N(func_80240344_CAC534))
EVT_RETURN
EVT_END
};
static s32 N(pad_1214)[] = {
0x00000000, 0x00000000, 0x00000000,
@ -215,230 +228,227 @@ NpcSettings N(npcSettings_80241220) = {
s32** N(D_80241BB0_CADDA0) = NULL;
EvtSource N(80241BB4) = SCRIPT({
ShowGotItem(EVT_VAR(0), 1, 0);
return;
});
EvtSource N(80241BB4) = {
EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 0)
EVT_RETURN
EVT_RETURN
EVT_END
};
EvtSource N(80241BE4) = SCRIPT({
ShowGotItem(EVT_VAR(0), 1, 16);
return;
});
EvtSource N(80241BE4) = {
EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 16)
EVT_RETURN
EVT_RETURN
EVT_END
};
EvtSource N(80241C14) = SCRIPT({
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
GetNpcPos(NPC_POSIE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) += 30;
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamDistance(0, 300);
SetCamPitch(0, 11.0, -11.0);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
sleep 20;
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C5));
sleep 10;
GotoMap("flo_10", 1);
sleep 100;
});
EvtSource N(80241C14) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(GetNpcPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), 30)
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamDistance, 0, 300)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(11.0), EVT_FIXED(-11.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(20)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C5))
EVT_WAIT_FRAMES(10)
EVT_CALL(GotoMap, EVT_PTR("flo_10"), 1)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(80241D6C) = SCRIPT({
0:
ShakeCam(0, 0, 1, 1.0);
sleep 1;
goto 0;
});
EvtSource N(80241D6C) = {
EVT_LABEL(0)
EVT_CALL(ShakeCam, 0, 0, 1, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(80241DBC) = SCRIPT({
if (EVT_AREA_FLAG(6) == 1) {
return;
}
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0068));
spawn {
SetCamDistance(0, 300);
SetCamPitch(0, 18.0, -7.5);
SetCamSpeed(0, 0.5);
PanToTarget(0, 0, 1);
}
PlaySound(0x8000006B);
EVT_MAP_VAR(0) = spawn N(80241D6C);
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_6, NPC_ANIM_posie_Palette_00_Anim_6, 0, MESSAGE_ID(0x11, 0x0069));
kill EVT_MAP_VAR(0);
SetCamDistance(0, 350);
SetCamPitch(0, 18.0, -7.5);
SetCamSpeed(0, 8.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
sleep 10;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) -= EVT_VAR(2);
if (EVT_VAR(0) < -250) {
MakeItemEntity(ITEM_CRYSTAL_BERRY, -225, 100, -25, 13, EVT_SAVE_FLAG(1374));
} else {
MakeItemEntity(ITEM_CRYSTAL_BERRY, -265, 100, 54, 13, EVT_SAVE_FLAG(1374));
EVT_SAVE_FLAG(1396) = 1;
}
PlaySound(0x7BC);
func_802D62E4(956);
EVT_AREA_FLAG(6) = 1;
sleep 20;
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006A));
EVT_STORY_PROGRESS = STORY_CH6_GOT_CRYSTAL_BERRY;
});
EvtSource N(80241DBC) = {
EVT_IF_EQ(EVT_AREA_FLAG(6), 1)
EVT_RETURN
EVT_END_IF
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0068))
EVT_THREAD
EVT_CALL(SetCamDistance, 0, 300)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.0), EVT_FIXED(-7.5))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(0.5))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_END_THREAD
EVT_CALL(PlaySound, 0x8000006B)
EVT_EXEC_GET_TID(N(80241D6C), EVT_MAP_VAR(0))
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_6, NPC_ANIM_posie_Palette_00_Anim_6, 0, MESSAGE_ID(0x11, 0x0069))
EVT_KILL_THREAD(EVT_MAP_VAR(0))
EVT_CALL(SetCamDistance, 0, 350)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.0), EVT_FIXED(-7.5))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(8.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(10)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_SUB(EVT_VAR(0), EVT_VAR(2))
EVT_IF_LT(EVT_VAR(0), -250)
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -225, 100, -25, 13, EVT_SAVE_FLAG(1374))
EVT_ELSE
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -265, 100, 54, 13, EVT_SAVE_FLAG(1374))
EVT_SET(EVT_SAVE_FLAG(1396), 1)
EVT_END_IF
EVT_CALL(PlaySound, 0x7BC)
EVT_CALL(func_802D62E4, 956)
EVT_SET(EVT_AREA_FLAG(6), 1)
EVT_WAIT_FRAMES(20)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006A))
EVT_SET(EVT_SAVE_VAR(0), 47)
EVT_RETURN
EVT_END
};
EvtSource N(interact_80242044) = SCRIPT({
await N(8024086C);
NpcFacePlayer(NPC_SELF, 1);
match EVT_STORY_PROGRESS {
< STORY_CH6_GOT_MAGICAL_BEAN {
if (EVT_AREA_FLAG(5) == 0) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0070));
EVT_AREA_FLAG(5) = 1;
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0071));
}
}
< STORY_CH6_GOT_FERTILE_SOIL {
AdjustCam(0, 4.0, 0, 350.0, 18.0, -7.5);
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0065));
SetNpcAnimation(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_5);
sleep 20;
SetNpcAnimation(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_0);
EVT_VAR(0) = 89;
EVT_VAR(1) = 1;
await N(80241BB4);
AddKeyItem(ITEM_FERTILE_SOIL);
EVT_STORY_PROGRESS = STORY_CH6_GOT_FERTILE_SOIL;
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0066));
if (EVT_SAVE_FLAG(1379) == 1) {
await N(80241DBC);
}
ResetCam(0, 4.0);
}
< STORY_CH6_GOT_CRYSTAL_BERRY {
if (EVT_SAVE_FLAG(1379) == 1) {
if (EVT_AREA_FLAG(6) == 0) {
AdjustCam(0, 4.0, 0, 350.0, 18.0, -7.5);
await N(80241DBC);
ResetCam(0, 4.0);
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0072));
}
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0072));
}
}
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
if (EVT_SAVE_FLAG(1374) == 0) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0072));
} else {
if (EVT_STORY_PROGRESS < STORY_CH6_GOT_WATER_STONE) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0073));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0074));
}
ContinueSpeech(-1, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0075));
}
}
< STORY_CH6_RETURNED_TO_TOAD_TOWN {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0076));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0077));
}
}
await N(80240890);
});
EvtSource N(interact_80242044) = {
EVT_EXEC_WAIT(N(8024086C))
EVT_CALL(NpcFacePlayer, NPC_SELF, 1)
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(45)
EVT_IF_EQ(EVT_AREA_FLAG(5), 0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0070))
EVT_SET(EVT_AREA_FLAG(5), 1)
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0071))
EVT_END_IF
EVT_CASE_LT(46)
EVT_CALL(AdjustCam, 0, EVT_FIXED(4.0), 0, EVT_FIXED(350.0), EVT_FIXED(18.0), EVT_FIXED(-7.5))
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0065))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_5)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_0)
EVT_SET(EVT_VAR(0), 89)
EVT_SET(EVT_VAR(1), 1)
EVT_EXEC_WAIT(N(80241BB4))
EVT_CALL(AddKeyItem, ITEM_FERTILE_SOIL)
EVT_SET(EVT_SAVE_VAR(0), 46)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0066))
EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
EVT_EXEC_WAIT(N(80241DBC))
EVT_END_IF
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_CASE_LT(47)
EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
EVT_IF_EQ(EVT_AREA_FLAG(6), 0)
EVT_CALL(AdjustCam, 0, EVT_FIXED(4.0), 0, EVT_FIXED(350.0), EVT_FIXED(18.0), EVT_FIXED(-7.5))
EVT_EXEC_WAIT(N(80241DBC))
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0072))
EVT_END_IF
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0072))
EVT_END_IF
EVT_CASE_LT(53)
EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0072))
EVT_ELSE
EVT_IF_LT(EVT_SAVE_VAR(0), 48)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0073))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0074))
EVT_END_IF
EVT_CALL(ContinueSpeech, -1, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0075))
EVT_END_IF
EVT_CASE_LT(60)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0076))
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0077))
EVT_END_SWITCH
EVT_EXEC_WAIT(N(80240890))
EVT_RETURN
EVT_END
};
EvtSource N(init_80242428) = SCRIPT({
if (EVT_STORY_PROGRESS == STORY_CH6_GOT_CRYSTAL_BERRY) {
if (EVT_SAVE_FLAG(1374) == 0) {
if (EVT_SAVE_FLAG(1396) == 0) {
MakeItemEntity(ITEM_CRYSTAL_BERRY, -225, 0, -25, 17, EVT_SAVE_FLAG(1374));
} else {
MakeItemEntity(ITEM_CRYSTAL_BERRY, -265, 0, 54, 17, EVT_SAVE_FLAG(1374));
}
}
}
EVT_AREA_FLAG(5) = 0;
BindNpcInteract(NPC_SELF, N(interact_80242044));
});
EvtSource N(init_80242428) = {
EVT_IF_EQ(EVT_SAVE_VAR(0), 47)
EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
EVT_IF_EQ(EVT_SAVE_FLAG(1396), 0)
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -225, 0, -25, 17, EVT_SAVE_FLAG(1374))
EVT_ELSE
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -265, 0, 54, 17, EVT_SAVE_FLAG(1374))
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_SET(EVT_AREA_FLAG(5), 0)
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80242044)))
EVT_RETURN
EVT_END
};
EvtSource N(802424F4) = SCRIPT({
if (EVT_AREA_VAR(3) != 0) {
DisablePlayerInput(TRUE);
sleep 10;
if (EVT_AREA_VAR(3) < 5) {
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x006E));
GetPlayerPos(EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
PlayerMoveTo(410, EVT_VAR(3), 10);
EVT_AREA_VAR(3) += 1;
} else {
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x006F));
EVT_AREA_VAR(3) = 0;
}
DisablePlayerInput(FALSE);
}
});
EvtSource N(802424F4) = {
EVT_IF_NE(EVT_AREA_VAR(3), 0)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(10)
EVT_IF_LT(EVT_AREA_VAR(3), 5)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006E))
EVT_CALL(GetPlayerPos, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
EVT_CALL(PlayerMoveTo, 410, EVT_VAR(3), 10)
EVT_ADD(EVT_AREA_VAR(3), 1)
EVT_ELSE
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006F))
EVT_SET(EVT_AREA_VAR(3), 0)
EVT_END_IF
EVT_CALL(DisablePlayerInput, FALSE)
EVT_END_IF
EVT_RETURN
EVT_END
};
const char N(flo_25_name_hack)[];
EvtSource N(tree1_Callback) = SCRIPT({
DisablePlayerInput(TRUE);
if (EVT_STORY_PROGRESS < STORY_CH6_GOT_CRYSTAL_BERRY) {
NpcFacePlayer(NPC_POSIE, 1);
sleep 10;
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0067));
if (EVT_STORY_PROGRESS == STORY_CH6_GOT_FERTILE_SOIL) {
if (EVT_SAVE_FLAG(1379) == 1) {
UseSettingsFrom(0, -250, 0, 0);
SetPanTarget(0, -250, 0, 0);
SetCamDistance(0, 350);
PanToTarget(0, 0, 1);
await N(80241DBC);
ResetCam(0, 4.0);
}
}
} else {
if (EVT_SAVE_FLAG(1374) == 0) {
NpcFacePlayer(NPC_POSIE, 1);
sleep 10;
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11,
0x0067));
} else {
EVT_AREA_VAR(2) += 1;
match EVT_AREA_VAR(2) {
< 2 {
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006B));
}
< 5 {
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006C));
}
>= 5 {
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006D));
EVT_AREA_VAR(3) = 1;
GotoMap(N(flo_25_name_hack), 1);
sleep 100;
}
}
}
}
ResetCam(0, 4.0);
DisablePlayerInput(FALSE);
});
EvtSource N(tree1_Callback) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_LT(EVT_SAVE_VAR(0), 47)
EVT_CALL(NpcFacePlayer, 0, 1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0067))
EVT_IF_EQ(EVT_SAVE_VAR(0), 46)
EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
EVT_CALL(UseSettingsFrom, 0, -250, 0, 0)
EVT_CALL(SetPanTarget, 0, -250, 0, 0)
EVT_CALL(SetCamDistance, 0, 350)
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_EXEC_WAIT(N(80241DBC))
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_END_IF
EVT_END_IF
EVT_ELSE
EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
EVT_CALL(NpcFacePlayer, 0, 1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0067))
EVT_ELSE
EVT_ADD(EVT_AREA_VAR(2), 1)
EVT_SWITCH(EVT_AREA_VAR(2))
EVT_CASE_LT(2)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006B))
EVT_CASE_LT(5)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006C))
EVT_CASE_GE(5)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006D))
EVT_SET(EVT_AREA_VAR(3), 1)
EVT_CALL(GotoMap, EVT_PTR(N(flo_25_name_hack)), 1)
EVT_WAIT_FRAMES(100)
EVT_END_SWITCH
EVT_END_IF
EVT_END_IF
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
FoliageModelList N(tree1_Leaves) = {
.count = 3,
@ -458,11 +468,13 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_802428B4) = { -309.0f, 0.0f, 31.0f, 0.0f };
EvtSource N(802428C4) = SCRIPT({
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 4;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_802428B4);
});
EvtSource N(802428C4) = {
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 4, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_802428B4)), 1, 0)
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_8024291C) = {
.id = NPC_POSIE,

File diff suppressed because it is too large Load Diff

View File

@ -43,3 +43,4 @@ extern s32 N(D_80241FB0_CB0CF0)[];
extern s16 N(D_80241FB8_CB0CF8)[];
extern s32 N(D_80241FC8_CB0D08)[8][2];
extern f32 N(D_80242008_CB0D48)[3];
extern s32 D_802462C0_B4AA30;

View File

@ -23,257 +23,270 @@ MapConfig N(config) = {
.tattle = { MSG_flo_09_tattle },
};
EvtSource N(80241880) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(80241880) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(802418F0) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(802418F0) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80241B9C) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 5);
EvtSource N(exitWalk_80241BF8) = EXIT_WALK_SCRIPT(60, 1, "flo_03", 0);
EvtSource N(80241C54) = SCRIPT({
bind N(exitWalk_80241B9C) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_80241BF8) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(80241C54) = {
EVT_BIND_TRIGGER(N(exitWalk_80241B9C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_80241BF8), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_8024414C));
spawn N(802425DC);
spawn N(802434A8);
ModifyColliderFlags(3, 9, 0x00000006);
EVT_VAR(0) = -511;
EVT_VAR(1) = -4;
EVT_VAR(2) = -319;
EVT_VAR(3) = 10;
EVT_VAR(4) = 0;
spawn N(802418F0);
EVT_VAR(0) = -302;
EVT_VAR(1) = 77;
EVT_VAR(2) = -32;
EVT_VAR(3) = 116;
EVT_VAR(4) = 0;
spawn N(802418F0);
EVT_VAR(0) = 51;
EVT_VAR(1) = 18;
EVT_VAR(2) = 141;
EVT_VAR(3) = 127;
EVT_VAR(4) = 0;
spawn N(802418F0);
EVT_VAR(0) = 234;
EVT_VAR(1) = 38;
EVT_VAR(2) = 502;
EVT_VAR(3) = 98;
EVT_VAR(4) = 0;
spawn N(802418F0);
EVT_VAR(0) = -525;
EVT_VAR(1) = -163;
EVT_VAR(2) = -400;
EVT_VAR(3) = -80;
EVT_VAR(4) = 60;
spawn N(802418F0);
EVT_VAR(0) = -346;
EVT_VAR(1) = -148;
EVT_VAR(2) = 517;
EVT_VAR(3) = -91;
EVT_VAR(4) = 60;
spawn N(802418F0);
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
EVT_VAR(0) = N(80241C54);
spawn EnterWalk;
await N(80241880);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CB5000)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_8024414C)))
EVT_EXEC(N(802425DC))
EVT_EXEC(N(802434A8))
EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000006)
EVT_SET(EVT_VAR(0), -511)
EVT_SET(EVT_VAR(1), -4)
EVT_SET(EVT_VAR(2), -319)
EVT_SET(EVT_VAR(3), 10)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802418F0))
EVT_SET(EVT_VAR(0), -302)
EVT_SET(EVT_VAR(1), 77)
EVT_SET(EVT_VAR(2), -32)
EVT_SET(EVT_VAR(3), 116)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802418F0))
EVT_SET(EVT_VAR(0), 51)
EVT_SET(EVT_VAR(1), 18)
EVT_SET(EVT_VAR(2), 141)
EVT_SET(EVT_VAR(3), 127)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802418F0))
EVT_SET(EVT_VAR(0), 234)
EVT_SET(EVT_VAR(1), 38)
EVT_SET(EVT_VAR(2), 502)
EVT_SET(EVT_VAR(3), 98)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802418F0))
EVT_SET(EVT_VAR(0), -525)
EVT_SET(EVT_VAR(1), -163)
EVT_SET(EVT_VAR(2), -400)
EVT_SET(EVT_VAR(3), -80)
EVT_SET(EVT_VAR(4), 60)
EVT_EXEC(N(802418F0))
EVT_SET(EVT_VAR(0), -346)
EVT_SET(EVT_VAR(1), -148)
EVT_SET(EVT_VAR(2), 517)
EVT_SET(EVT_VAR(3), -91)
EVT_SET(EVT_VAR(4), 60)
EVT_EXEC(N(802418F0))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80241C54)))
EVT_EXEC(EnterWalk)
EVT_EXEC_WAIT(N(80241880))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CB5000))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_2004)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80242010) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80242010) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(802422BC) = SCRIPT({
EVT_VAR(9) = EVT_VAR(6);
EVT_VAR(8) = EVT_VAR(5);
EVT_VAR(7) = EVT_VAR(4);
EVT_VAR(6) = EVT_VAR(3);
EVT_VAR(5) = EVT_VAR(2);
EVT_VAR(4) = EVT_VAR(1);
EVT_VAR(3) = EVT_VAR(0);
EnableModel(EVT_VAR(6), 0);
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
N(UnkFunc43)();
if (EVT_VAR(0) == 0) {
sleep 1;
goto 0;
}
spawn {
sleep 5;
EnableModel(EVT_VAR(6), 1);
}
if (EVT_VAR(10) != 0) {
spawn {
sleep 5;
EVT_VAR(0) = EVT_VAR(3);
EVT_VAR(1) = EVT_VAR(4);
EVT_VAR(2) = EVT_VAR(5);
EVT_VAR(1) += 10;
EVT_VAR(2) += 8;
PlayEffect(0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0);
sleep 15;
EVT_VAR(1) -= 10;
MakeItemEntity(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0);
}
}
spawn {
sleep 10;
PlaySoundAt(0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
}
MakeLerp(0, 180, 20, 2);
1:
UpdateLerp();
RotateModel(EVT_VAR(8), EVT_VAR(0), 1, 0, 0);
RotateModel(EVT_VAR(9), EVT_VAR(0), 1, 0, 0);
if (EVT_VAR(1) == 1) {
sleep 1;
goto 1;
}
EnableModel(EVT_VAR(7), 0);
});
EvtSource N(802422BC) = {
EVT_SET(EVT_VAR(9), EVT_VAR(6))
EVT_SET(EVT_VAR(8), EVT_VAR(5))
EVT_SET(EVT_VAR(7), EVT_VAR(4))
EVT_SET(EVT_VAR(6), EVT_VAR(3))
EVT_SET(EVT_VAR(5), EVT_VAR(2))
EVT_SET(EVT_VAR(4), EVT_VAR(1))
EVT_SET(EVT_VAR(3), EVT_VAR(0))
EVT_CALL(EnableModel, EVT_VAR(6), 0)
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(N(UnkFunc43))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_CALL(EnableModel, EVT_VAR(6), 1)
EVT_END_THREAD
EVT_IF_NE(EVT_VAR(10), 0)
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_SET(EVT_VAR(0), EVT_VAR(3))
EVT_SET(EVT_VAR(1), EVT_VAR(4))
EVT_SET(EVT_VAR(2), EVT_VAR(5))
EVT_ADD(EVT_VAR(1), 10)
EVT_ADD(EVT_VAR(2), 8)
EVT_CALL(PlayEffect, 0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(15)
EVT_SUB(EVT_VAR(1), 10)
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0)
EVT_END_THREAD
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAt, 0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_END_THREAD
EVT_CALL(MakeLerp, 0, 180, 20, 2)
EVT_LABEL(1)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, EVT_VAR(8), EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateModel, EVT_VAR(9), EVT_VAR(0), 1, 0, 0)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_WAIT_FRAMES(1)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(EnableModel, EVT_VAR(7), 0)
EVT_RETURN
EVT_END
};
EvtSource N(802425DC) = SCRIPT({
GetModelCenter(69);
EVT_VAR(3) = 69;
EVT_VAR(4) = 70;
EVT_VAR(5) = 71;
EVT_VAR(6) = 72;
EVT_VAR(10) = 0;
spawn N(802422BC);
GetModelCenter(75);
EVT_VAR(3) = 75;
EVT_VAR(4) = 76;
EVT_VAR(5) = 77;
EVT_VAR(6) = 78;
EVT_VAR(10) = 174;
spawn N(802422BC);
GetModelCenter(83);
EVT_VAR(3) = 83;
EVT_VAR(4) = 84;
EVT_VAR(5) = 85;
EVT_VAR(6) = 86;
EVT_VAR(10) = 0;
spawn N(802422BC);
GetModelCenter(89);
EVT_VAR(3) = 89;
EVT_VAR(4) = 90;
EVT_VAR(5) = 91;
EVT_VAR(6) = 92;
EVT_VAR(10) = 0;
spawn N(802422BC);
GetModelCenter(97);
EVT_VAR(3) = 97;
EVT_VAR(4) = 98;
EVT_VAR(5) = 99;
EVT_VAR(6) = 100;
EVT_VAR(10) = 0;
spawn N(802422BC);
GetModelCenter(103);
EVT_VAR(3) = 103;
EVT_VAR(4) = 104;
EVT_VAR(5) = 105;
EVT_VAR(6) = 106;
EVT_VAR(10) = 0;
spawn N(802422BC);
});
EvtSource N(802425DC) = {
EVT_CALL(GetModelCenter, 69)
EVT_SET(EVT_VAR(3), 69)
EVT_SET(EVT_VAR(4), 70)
EVT_SET(EVT_VAR(5), 71)
EVT_SET(EVT_VAR(6), 72)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802422BC))
EVT_CALL(GetModelCenter, 75)
EVT_SET(EVT_VAR(3), 75)
EVT_SET(EVT_VAR(4), 76)
EVT_SET(EVT_VAR(5), 77)
EVT_SET(EVT_VAR(6), 78)
EVT_SET(EVT_VAR(10), 174)
EVT_EXEC(N(802422BC))
EVT_CALL(GetModelCenter, 83)
EVT_SET(EVT_VAR(3), 83)
EVT_SET(EVT_VAR(4), 84)
EVT_SET(EVT_VAR(5), 85)
EVT_SET(EVT_VAR(6), 86)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802422BC))
EVT_CALL(GetModelCenter, 89)
EVT_SET(EVT_VAR(3), 89)
EVT_SET(EVT_VAR(4), 90)
EVT_SET(EVT_VAR(5), 91)
EVT_SET(EVT_VAR(6), 92)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802422BC))
EVT_CALL(GetModelCenter, 97)
EVT_SET(EVT_VAR(3), 97)
EVT_SET(EVT_VAR(4), 98)
EVT_SET(EVT_VAR(5), 99)
EVT_SET(EVT_VAR(6), 100)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802422BC))
EVT_CALL(GetModelCenter, 103)
EVT_SET(EVT_VAR(3), 103)
EVT_SET(EVT_VAR(4), 104)
EVT_SET(EVT_VAR(5), 105)
EVT_SET(EVT_VAR(6), 106)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802422BC))
EVT_RETURN
EVT_END
};
static s32 N(pad_2874)[] = {
0x00000000, 0x00000000, 0x00000000,
@ -281,49 +294,57 @@ static s32 N(pad_2874)[] = {
#include "world/common/foliage.inc.c"
EvtSource N(802431E4) = SCRIPT({
GetNpcPos(NPC_BZZAP1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) < 0) {
GetModelCenter(EVT_VAR(9));
EVT_VAR(2) += 35;
SetNpcPos(NPC_BZZAP1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
}
});
EvtSource N(802431E4) = {
EVT_CALL(GetNpcPos, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_LT(EVT_VAR(1), 0)
EVT_CALL(GetModelCenter, EVT_VAR(9))
EVT_ADD(EVT_VAR(2), 35)
EVT_CALL(SetNpcPos, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(tree1_Callback) = SCRIPT({
if (EVT_SAVE_FLAG(1382) == 0) {
if (EVT_AREA_VAR(5) == 1) {
MakeItemEntity(ITEM_HAPPY_FLOWER_B, -250, 100, 0, 13, EVT_SAVE_FLAG(1382));
} else {
EVT_VAR(9) = 14;
spawn N(802431E4);
}
EVT_AREA_VAR(4) = 0;
EVT_AREA_VAR(5) = 0;
}
});
EvtSource N(tree1_Callback) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
EVT_IF_EQ(EVT_AREA_VAR(5), 1)
EVT_CALL(MakeItemEntity, ITEM_HAPPY_FLOWER_B, -250, 100, 0, 13, EVT_SAVE_FLAG(1382))
EVT_ELSE
EVT_SET(EVT_VAR(9), 14)
EVT_EXEC(N(802431E4))
EVT_END_IF
EVT_SET(EVT_AREA_VAR(4), 0)
EVT_SET(EVT_AREA_VAR(5), 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(tree2_Callback) = SCRIPT({
if (EVT_SAVE_FLAG(1382) == 0) {
EVT_AREA_VAR(4) = 1;
EVT_AREA_VAR(5) = 0;
}
});
EvtSource N(tree2_Callback) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
EVT_SET(EVT_AREA_VAR(4), 1)
EVT_SET(EVT_AREA_VAR(5), 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(tree3_Callback) = SCRIPT({
if (EVT_SAVE_FLAG(1382) == 0) {
if (EVT_AREA_VAR(4) == 1) {
if (EVT_AREA_VAR(5) == 0) {
EVT_AREA_VAR(5) = 1;
return;
}
}
EVT_VAR(9) = 22;
spawn N(802431E4);
EVT_AREA_VAR(4) = 0;
EVT_AREA_VAR(5) = 0;
}
});
EvtSource N(tree3_Callback) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
EVT_IF_EQ(EVT_AREA_VAR(4), 1)
EVT_IF_EQ(EVT_AREA_VAR(5), 0)
EVT_SET(EVT_AREA_VAR(5), 1)
EVT_RETURN
EVT_END_IF
EVT_END_IF
EVT_SET(EVT_VAR(9), 22)
EVT_EXEC(N(802431E4))
EVT_SET(EVT_AREA_VAR(4), 0)
EVT_SET(EVT_AREA_VAR(5), 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
FoliageModelList N(tree1_Leaves) = {
.count = 2,
@ -379,19 +400,21 @@ ShakeTreeConfig N(tree3) = {
Vec4f N(triggerCoord_80243498) = { 200.0f, 0.0f, 1.0f, 0.0f };
EvtSource N(802434A8) = SCRIPT({
EVT_AREA_VAR(4) = 0;
EVT_AREA_VAR(5) = 0;
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 15;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243428);
EVT_VAR(0) = N(tree2);
bind N(shakeTree) TRIGGER_WALL_HAMMER 16;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243460);
EVT_VAR(0) = N(tree3);
bind N(shakeTree) TRIGGER_WALL_HAMMER 17;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243498);
});
EvtSource N(802434A8) = {
EVT_SET(EVT_AREA_VAR(4), 0)
EVT_SET(EVT_AREA_VAR(5), 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 15, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243428)), 1, 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree2)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 16, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243460)), 1, 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree3)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 17, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243498)), 1, 0)
EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_802435B0) = {
.moveSpeed = 1.0f,
@ -408,9 +431,11 @@ NpcAISettings N(npcAISettings_802435B0) = {
.unk_2C = 1,
};
EvtSource N(npcAI_802435E0) = SCRIPT({
DoBasicAI(N(npcAISettings_802435B0));
});
EvtSource N(npcAI_802435E0) = {
EVT_CALL(DoBasicAI, EVT_PTR(N(npcAISettings_802435B0)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80243600) = {
.height = 30,
@ -441,13 +466,15 @@ NpcAISettings N(npcAISettings_80243644) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80243674) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -630);
SetSelfVar(6, 50);
SetSelfVar(1, 200);
N(func_8024162C_CB662C)(N(npcAISettings_80243644));
});
EvtSource N(npcAI_80243674) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_8024162C_CB662C), EVT_PTR(N(npcAISettings_80243644)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802436E4) = {
.height = 26,
@ -464,51 +491,53 @@ NpcSettings N(npcSettings_80243710) = {
.level = 99,
};
EvtSource N(npcAI_8024373C) = SCRIPT({
loop {
GetSelfVar(0, EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) > 0) {
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcJumpscale(NPC_SELF, 0);
NpcJump0(NPC_SELF, EVT_VAR(0), 50, EVT_VAR(2), 15);
SetSelfVar(0, 1);
BindNpcAI(NPC_SELF, N(npcAI_80243674));
}
}
== 2 {
DisablePlayerInput(TRUE);
sleep 25;
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE);
SetSelfVar(0, 0);
DisablePlayerInput(FALSE);
}
}
sleep 1;
}
});
EvtSource N(npcAI_8024373C) = {
EVT_LOOP(0)
EVT_CALL(GetSelfVar, 0, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GT(EVT_VAR(1), 0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcJumpscale, NPC_SELF, 0)
EVT_CALL(NpcJump0, NPC_SELF, EVT_VAR(0), 50, EVT_VAR(2), 15)
EVT_CALL(SetSelfVar, 0, 1)
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_80243674)))
EVT_END_IF
EVT_CASE_EQ(2)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(25)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_END_SWITCH
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(defeat_802438C8) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
SetSelfVar(0, 2);
BindNpcAI(NPC_SELF, N(npcAI_8024373C));
DoNpcDefeat();
}
== 1 {}
== 2 {
}
}
});
EvtSource N(defeat_802438C8) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(SetSelfVar, 0, 2)
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_8024373C)))
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(1)
EVT_CASE_EQ(2)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_80243954) = SCRIPT({
BindNpcIdle(NPC_SELF, N(npcAI_8024373C));
BindNpcDefeat(NPC_SELF, N(defeat_802438C8));
});
EvtSource N(init_80243954) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_8024373C)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802438C8)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_8024398C) = {
.id = NPC_DAYZEE0,

View File

@ -32,8 +32,10 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_80244A40) = { 137.0f, 0.0f, -283.0f, 0.0f };
EvtSource N(80244A50) = SCRIPT({
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 9;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80244A40);
});
EvtSource N(80244A50) = {
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 9, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80244A40)), 1, 0)
EVT_RETURN
EVT_END
};

File diff suppressed because it is too large Load Diff

View File

@ -22,121 +22,132 @@ MapConfig N(config) = {
.tattle = { MSG_flo_12_tattle },
};
EvtSource N(80240750) = SCRIPT({
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8);
} else {
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
}
});
EvtSource N(80240750) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
EVT_ELSE
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(8024080C) = SCRIPT({
PushSong(137, 3);
});
EvtSource N(8024080C) = {
EVT_CALL(PushSong, 137, 3)
EVT_RETURN
EVT_END
};
EvtSource N(80240830) = SCRIPT({
FadeOutMusic(0, 250);
sleep 10;
PopSong();
});
EvtSource N(80240830) = {
EVT_CALL(FadeOutMusic, 0, 250)
EVT_WAIT_FRAMES(10)
EVT_CALL(PopSong)
EVT_RETURN
EVT_END
};
static s32 N(pad_86C) = {
0x00000000,
};
EvtSource N(80240870) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80240870) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80240B1C) = EXIT_WALK_SCRIPT(60, 0, "flo_11", 1);
EvtSource N(80240B78) = SCRIPT({
bind N(exitWalk_80240B1C) TRIGGER_FLOOR_ABOVE 0;
});
EvtSource N(80240B78) = {
EVT_BIND_TRIGGER(N(exitWalk_80240B1C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
EVT_AREA_FLAG(22) = 0;
MakeNpcs(0, N(npcGroupList_802429B8));
ModifyColliderFlags(3, 11, 0x00000006);
EVT_VAR(0) = -65;
EVT_VAR(1) = -210;
EVT_VAR(2) = 90;
EVT_VAR(3) = -110;
EVT_VAR(4) = 0;
spawn N(80240870);
EVT_VAR(0) = -200;
EVT_VAR(1) = 130;
EVT_VAR(2) = -80;
EVT_VAR(3) = 170;
EVT_VAR(4) = 0;
spawn N(80240870);
EVT_VAR(0) = -270;
EVT_VAR(1) = -80;
EVT_VAR(2) = -225;
EVT_VAR(3) = 125;
EVT_VAR(4) = 0;
spawn N(80240870);
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
spawn N(802419F4);
} else {
ModifyColliderFlags(0, 1, 0x7FFFFE00);
EVT_VAR(0) = N(80240B78);
spawn EnterWalk;
}
await N(80240750);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CC0E30)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_SET(EVT_AREA_FLAG(22), 0)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802429B8)))
EVT_CALL(ModifyColliderFlags, 3, 11, 0x00000006)
EVT_SET(EVT_VAR(0), -65)
EVT_SET(EVT_VAR(1), -210)
EVT_SET(EVT_VAR(2), 90)
EVT_SET(EVT_VAR(3), -110)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240870))
EVT_SET(EVT_VAR(0), -200)
EVT_SET(EVT_VAR(1), 130)
EVT_SET(EVT_VAR(2), -80)
EVT_SET(EVT_VAR(3), 170)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240870))
EVT_SET(EVT_VAR(0), -270)
EVT_SET(EVT_VAR(1), -80)
EVT_SET(EVT_VAR(2), -225)
EVT_SET(EVT_VAR(3), 125)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240870))
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_EXEC(N(802419F4))
EVT_ELSE
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80240B78)))
EVT_EXEC(EnterWalk)
EVT_END_IF
EVT_EXEC_WAIT(N(80240750))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CC0E30))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_E28)[] = {
0x00000000, 0x00000000,
@ -158,15 +169,19 @@ NpcSettings N(npcSettings_80240E5C) = {
s32** N(D_802417EC_CC261C) = NULL;
EvtSource N(802417F0) = SCRIPT({
ShowGotItem(EVT_VAR(0), 1, 0);
return;
});
EvtSource N(802417F0) = {
EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 0)
EVT_RETURN
EVT_RETURN
EVT_END
};
EvtSource N(80241820) = SCRIPT({
ShowGotItem(EVT_VAR(0), 1, 16);
return;
});
EvtSource N(80241820) = {
EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 16)
EVT_RETURN
EVT_RETURN
EVT_END
};
s32 N(D_80241850_CC2680) = {
0x00000000,
@ -176,233 +191,222 @@ s32 N(D_80241854_CC2684) = {
0x00000000,
};
EvtSource N(80241858) = SCRIPT({
EVT_VAR(9) = EVT_VAR(1);
ShowKeyChoicePopup();
EVT_VAR(10) = EVT_VAR(0);
match EVT_VAR(0) {
== 0 {}
== -1 {}
else {
RemoveKeyItemAt(EVT_VAR(1));
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
EVT_VAR(0) |= (const) 0x50000;
MakeItemEntity(EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0);
SetPlayerAnimation(0x60005);
sleep 30;
SetPlayerAnimation(ANIM_10002);
RemoveItemEntity(EVT_VAR(0));
}
}
N(func_80240614_CC1444)(EVT_VAR(10));
CloseChoicePopup();
unbind;
});
EvtSource N(80241858) = {
EVT_SET(EVT_VAR(9), EVT_VAR(1))
EVT_CALL(ShowKeyChoicePopup)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CASE_EQ(-1)
EVT_CASE_DEFAULT
EVT_CALL(RemoveKeyItemAt, EVT_VAR(1))
EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(AddPlayerHandsOffset), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_BITWISE_OR_CONST(EVT_VAR(0), 0x50000)
EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
EVT_CALL(SetPlayerAnimation, 393221)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(RemoveItemEntity, EVT_VAR(0))
EVT_END_SWITCH
EVT_CALL(N(func_80240614_CC1444), EVT_VAR(10))
EVT_CALL(CloseChoicePopup)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(8024199C) = SCRIPT({
N(func_8024064C_CC147C)(EVT_VAR(0));
bind_padlock N(80241858) 0x10 0 N(D_802429E0);
N(func_802405C0_CC13F0)(EVT_VAR(0));
});
EvtSource N(8024199C) = {
EVT_CALL(N(func_8024064C_CC147C), EVT_VAR(0))
EVT_BIND_PADLOCK(N(80241858), 0x10, 0, EVT_PTR(N(D_802429E0)), 0, 1)
EVT_CALL(N(func_802405C0_CC13F0), EVT_VAR(0))
EVT_RETURN
EVT_END
};
s32 N(D_802419EC_CC281C)[] = {
0x0000001E, 0x00000000,
};
EvtSource N(802419F4) = SCRIPT({
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
GetNpcPos(NPC_ROSIE0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamDistance(0, 350);
SetCamPitch(0, 17.0, -9.5);
SetCamPosA(0, 0, 0);
SetCamPosB(0, 0, -50);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
sleep 20;
SpeakToPlayer(NPC_ROSIE0, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x00C7));
sleep 10;
GotoMap("flo_03", 2);
sleep 100;
});
EvtSource N(802419F4) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(GetNpcPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamDistance, 0, 350)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(17.0), EVT_FIXED(-9.5))
EVT_CALL(SetCamPosA, 0, 0, 0)
EVT_CALL(SetCamPosB, 0, 0, -50)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_WAIT_FRAMES(20)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x00C7))
EVT_WAIT_FRAMES(10)
EVT_CALL(GotoMap, EVT_PTR("flo_03"), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
EvtSource N(80241B6C) = SCRIPT({
sleep 10;
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), TRUE);
PlayerMoveTo(-5, 20, 20);
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), FALSE);
PlayerFaceNpc(0, 1);
});
EvtSource N(80241B6C) = {
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), TRUE)
EVT_CALL(PlayerMoveTo, -5, 20, 20)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), FALSE)
EVT_CALL(PlayerFaceNpc, 0, 1)
EVT_RETURN
EVT_END
};
EvtSource N(80241BE4) = SCRIPT({
sleep 10;
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), TRUE);
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), TRUE);
PlayerMoveTo(-5, 20, 20);
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), FALSE);
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE);
PlayerFaceNpc(0, 1);
});
EvtSource N(80241BE4) = {
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), TRUE)
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), TRUE)
EVT_CALL(PlayerMoveTo, -5, 20, 20)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), FALSE)
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
EVT_CALL(PlayerFaceNpc, 0, 1)
EVT_RETURN
EVT_END
};
EvtSource N(interact_80241C8C) = SCRIPT({
await N(8024080C);
match EVT_STORY_PROGRESS {
< STORY_CH6_GOT_CRYSTAL_BERRY {
match EVT_SAVE_FLAG(1378) {
== 0 {
spawn N(80241B6C);
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) += 30;
SetCamProperties(0, 4.0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, 19.0, -9.5);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008C));
ShowChoice(MESSAGE_ID(0x1E, 0x0011));
sleep 10;
match EVT_VAR(0) {
== 0 {
ContinueSpeech(-1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008D));
}
== 1 {
ContinueSpeech(-1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008E));
}
}
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE);
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_5);
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2);
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380);
sleep 10;
match EVT_SAVE_FLAG(1375) {
== 0 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x008F));
}
== 1 {
SetPlayerAnimation(0x60002);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x008F));
SetPlayerAnimation(0x60005);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0091));
SetPlayerAnimation(ANIM_PRAY);
sleep 40;
SetPlayerAnimation(ANIM_10002);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0092));
EVT_SAVE_FLAG(1379) = 1;
}
}
EVT_SAVE_FLAG(1378) = 1;
}
== 1 {
match EVT_SAVE_FLAG(1379) {
== 0 {
if (EVT_SAVE_FLAG(1375) == 1) {
spawn N(80241BE4);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11,
0x0090));
SetPlayerAnimation(0x60005);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11,
0x0091));
SetPlayerAnimation(ANIM_PRAY);
sleep 40;
SetPlayerAnimation(ANIM_10002);
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11,
0x0092));
EVT_SAVE_FLAG(1379) = 1;
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11,
0x0090));
}
}
== 1 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0093));
}
}
}
}
}
< 48 {
FindKeyItem(ITEM_CRYSTAL_BERRY, EVT_VAR(0));
if (EVT_VAR(0) != -1) {
spawn N(80241BE4);
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) += 30;
SetCamProperties(0, 4.0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, 19.0, -9.5);
}
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0094));
EVT_VAR(0) = N(D_802419EC_CC281C);
EVT_VAR(1) = 0;
await N(8024199C);
match EVT_VAR(0) {
<= 0 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0093));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11,
0x0095));
RemoveItemEntity(EVT_VAR(7));
MakeItemEntity(ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380);
EVT_VAR(0) = 87;
EVT_VAR(1) = 1;
await N(802417F0);
AddKeyItem(ITEM_WATER_STONE);
sleep 10;
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11,
0x0096));
EVT_AREA_FLAG(22) = 1;
EVT_STORY_PROGRESS = STORY_CH6_GOT_WATER_STONE;
}
}
}
< 53 {
match EVT_AREA_FLAG(22) {
== 0 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0097));
}
== 1 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0096));
}
}
}
< 60 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0098));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11,
0x0099));
}
}
ResetCam(0, 4.0);
await N(80240830);
});
EvtSource N(interact_80241C8C) = {
EVT_EXEC_WAIT(N(8024080C))
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(47)
EVT_SWITCH(EVT_SAVE_FLAG(1378))
EVT_CASE_EQ(0)
EVT_EXEC(N(80241B6C))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), 30)
EVT_CALL(SetCamProperties, 0, EVT_FIXED(4.0), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, EVT_FIXED(19.0), EVT_FIXED(-9.5))
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008C))
EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x0011))
EVT_WAIT_FRAMES(10)
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(ContinueSpeech, -1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008D))
EVT_CASE_EQ(1)
EVT_CALL(ContinueSpeech, -1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008E))
EVT_END_SWITCH
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_5)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
EVT_WAIT_FRAMES(10)
EVT_SWITCH(EVT_SAVE_FLAG(1375))
EVT_CASE_EQ(0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x008F))
EVT_CASE_EQ(1)
EVT_CALL(SetPlayerAnimation, 393218)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x008F))
EVT_CALL(SetPlayerAnimation, 393221)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0091))
EVT_CALL(SetPlayerAnimation, ANIM_PRAY)
EVT_WAIT_FRAMES(40)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0092))
EVT_SET(EVT_SAVE_FLAG(1379), 1)
EVT_END_SWITCH
EVT_SET(EVT_SAVE_FLAG(1378), 1)
EVT_CASE_EQ(1)
EVT_SWITCH(EVT_SAVE_FLAG(1379))
EVT_CASE_EQ(0)
EVT_IF_EQ(EVT_SAVE_FLAG(1375), 1)
EVT_EXEC(N(80241BE4))
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x0090))
EVT_CALL(SetPlayerAnimation, 393221)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0091))
EVT_CALL(SetPlayerAnimation, ANIM_PRAY)
EVT_WAIT_FRAMES(40)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0092))
EVT_SET(EVT_SAVE_FLAG(1379), 1)
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x0090))
EVT_END_IF
EVT_CASE_EQ(1)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0093))
EVT_END_SWITCH
EVT_END_SWITCH
EVT_CASE_LT(48)
EVT_CALL(FindKeyItem, ITEM_CRYSTAL_BERRY, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), -1)
EVT_EXEC(N(80241BE4))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), 30)
EVT_CALL(SetCamProperties, 0, EVT_FIXED(4.0), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, EVT_FIXED(19.0), EVT_FIXED(-9.5))
EVT_END_IF
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0094))
EVT_SET(EVT_VAR(0), EVT_PTR(N(D_802419EC_CC281C)))
EVT_SET(EVT_VAR(1), 0)
EVT_EXEC_WAIT(N(8024199C))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_LE(0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0093))
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0095))
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380)
EVT_SET(EVT_VAR(0), 87)
EVT_SET(EVT_VAR(1), 1)
EVT_EXEC_WAIT(N(802417F0))
EVT_CALL(AddKeyItem, ITEM_WATER_STONE)
EVT_WAIT_FRAMES(10)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0096))
EVT_SET(EVT_AREA_FLAG(22), 1)
EVT_SET(EVT_SAVE_VAR(0), 48)
EVT_END_SWITCH
EVT_CASE_LT(53)
EVT_SWITCH(EVT_AREA_FLAG(22))
EVT_CASE_EQ(0)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0097))
EVT_CASE_EQ(1)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0096))
EVT_END_SWITCH
EVT_CASE_LT(60)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0098))
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0099))
EVT_END_SWITCH
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_EXEC_WAIT(N(80240830))
EVT_RETURN
EVT_END
};
EvtSource N(init_802423D0) = SCRIPT({
BindNpcInteract(NPC_SELF, N(interact_80241C8C));
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(0) += 35;
SetNpcPos(NPC_ROSIE1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcFlagBits(NPC_ROSIE1, ((0x00000002)), TRUE);
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_HAS_SHADOW)), TRUE);
match EVT_STORY_PROGRESS {
< STORY_CH6_GOT_CRYSTAL_BERRY {
if (EVT_SAVE_FLAG(1378) == 1) {
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE);
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2);
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380);
EVT_VAR(10) = EVT_VAR(0);
}
}
< STORY_CH6_GOT_WATER_STONE {
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE);
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2);
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380);
EVT_VAR(10) = EVT_VAR(0);
} else {
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE);
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2);
MakeItemEntity(ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380);
EVT_VAR(10) = EVT_VAR(0);
}
}
});
EvtSource N(init_802423D0) = {
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80241C8C)))
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), 35)
EVT_CALL(SetNpcPos, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_2)), TRUE)
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_HAS_SHADOW)), TRUE)
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(47)
EVT_IF_EQ(EVT_SAVE_FLAG(1378), 1)
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_END_IF
EVT_CASE_LT(48)
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_CASE_DEFAULT
EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_802425D8)[] = {
{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -29,13 +29,15 @@ NpcAISettings N(npcAISettings_802444D8) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80244508) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -630);
SetSelfVar(6, 50);
SetSelfVar(1, 200);
N(func_80241E1C_CCD12C)(N(npcAISettings_802444D8));
});
EvtSource N(npcAI_80244508) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_80241E1C_CCD12C), EVT_PTR(N(npcAISettings_802444D8)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244578) = {
.height = 26,
@ -66,95 +68,102 @@ s32 N(D_80244600_CCF910) = {
0x00000000,
};
EvtSource N(80244604) = SCRIPT({
EVT_VAR(9) = EVT_VAR(1);
ShowConsumableChoicePopup();
EVT_VAR(10) = EVT_VAR(0);
match EVT_VAR(0) {
== 0 {}
== -1 {}
else {
RemoveItemAt(EVT_VAR(1));
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
MakeItemEntity(EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0);
SetPlayerAnimation(0x60005);
sleep 30;
SetPlayerAnimation(ANIM_10002);
RemoveItemEntity(EVT_VAR(0));
}
}
N(func_80242288_CCD598)(EVT_VAR(10));
CloseChoicePopup();
unbind;
});
EvtSource N(80244604) = {
EVT_SET(EVT_VAR(9), EVT_VAR(1))
EVT_CALL(ShowConsumableChoicePopup)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CASE_EQ(-1)
EVT_CASE_DEFAULT
EVT_CALL(RemoveItemAt, EVT_VAR(1))
EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(AddPlayerHandsOffset), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
EVT_CALL(SetPlayerAnimation, 393221)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(RemoveItemEntity, EVT_VAR(0))
EVT_END_SWITCH
EVT_CALL(N(func_80242288_CCD598), EVT_VAR(10))
EVT_CALL(CloseChoicePopup)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80244738) = SCRIPT({
N(func_802422C0_CCD5D0)(EVT_VAR(0));
bind_padlock N(80244604) 0x10 0 N(D_802453B0_EF79C0);
N(func_80242234_CCD544)(EVT_VAR(0));
});
EvtSource N(80244738) = {
EVT_CALL(N(func_802422C0_CCD5D0), EVT_VAR(0))
EVT_BIND_PADLOCK(N(80244604), 0x10, 0, EVT_PTR(N(D_802453B0_EF79C0)), 0, 1)
EVT_CALL(N(func_80242234_CCD544), EVT_VAR(0))
EVT_RETURN
EVT_END
};
s32 N(D_80244788_CCFA98)[] = {
0x000000A1, 0x00000000,
};
EvtSource N(interact_80244790) = SCRIPT({
if (EVT_AREA_FLAG(37) == 1) {
EVT_AREA_FLAG(35) = 1;
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0063));
EVT_AREA_FLAG(35) = 0;
return;
}
EVT_AREA_FLAG(35) = 1;
if (EVT_SAVE_FLAG(1412) == 0) {
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x005F));
} else {
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0060));
}
FindItem(161, EVT_VAR(0));
if (EVT_VAR(0) != -1) {
EVT_VAR(0) = N(D_80244788_CCFA98);
EVT_VAR(1) = 0;
await N(80244738);
if (EVT_VAR(0) == -1) {
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0064));
} else {
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0061));
EVT_AREA_FLAG(36) = 1;
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), TRUE);
PlayerMoveTo(555, 110, 20);
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), FALSE);
InterpPlayerYaw(90, 0);
func_802CF56C(2);
sleep 5;
AdjustCam(0, 1.0, 0, 350, 17.0, -6.0);
spawn N(80243870);
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0062));
spawn {
sleep 40;
InterpPlayerYaw(315, 0);
}
10:
if (EVT_AREA_FLAG(37) == 0) {
sleep 1;
goto 10;
}
ResetCam(0, 4.0);
SpeakToPlayer(NPC_SELF, -1, -1, 5, MESSAGE_ID(0x11, 0x0063));
EVT_SAVE_FLAG(1412) = 1;
bind N(8024352C) TRIGGER_FLOOR_PRESS_A 30;
}
}
EVT_AREA_FLAG(35) = 0;
});
EvtSource N(interact_80244790) = {
EVT_IF_EQ(EVT_AREA_FLAG(37), 1)
EVT_SET(EVT_AREA_FLAG(35), 1)
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0063))
EVT_SET(EVT_AREA_FLAG(35), 0)
EVT_RETURN
EVT_END_IF
EVT_SET(EVT_AREA_FLAG(35), 1)
EVT_IF_EQ(EVT_SAVE_FLAG(1412), 0)
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x005F))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0060))
EVT_END_IF
EVT_CALL(FindItem, 161, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), -1)
EVT_SET(EVT_VAR(0), EVT_PTR(N(D_80244788_CCFA98)))
EVT_SET(EVT_VAR(1), 0)
EVT_EXEC_WAIT(N(80244738))
EVT_IF_EQ(EVT_VAR(0), -1)
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0064))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0061))
EVT_SET(EVT_AREA_FLAG(36), 1)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), TRUE)
EVT_CALL(PlayerMoveTo, 555, 110, 20)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), FALSE)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_CALL(func_802CF56C, 2)
EVT_WAIT_FRAMES(5)
EVT_CALL(AdjustCam, 0, EVT_FIXED(1.0), 0, 350, EVT_FIXED(17.0), EVT_FIXED(-6.0))
EVT_EXEC(N(80243870))
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0062))
EVT_THREAD
EVT_WAIT_FRAMES(40)
EVT_CALL(InterpPlayerYaw, 315, 0)
EVT_END_THREAD
EVT_LABEL(10)
EVT_IF_EQ(EVT_AREA_FLAG(37), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(10)
EVT_END_IF
EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 5, MESSAGE_ID(0x11, 0x0063))
EVT_SET(EVT_SAVE_FLAG(1412), 1)
EVT_BIND_TRIGGER(N(8024352C), TRIGGER_FLOOR_PRESS_A, 30, 1, 0)
EVT_END_IF
EVT_END_IF
EVT_SET(EVT_AREA_FLAG(35), 0)
EVT_RETURN
EVT_END
};
EvtSource N(init_80244ADC) = SCRIPT({
EVT_AREA_FLAG(36) = 0;
EVT_AREA_FLAG(37) = 0;
BindNpcInteract(NPC_SELF, N(interact_80244790));
});
EvtSource N(init_80244ADC) = {
EVT_SET(EVT_AREA_FLAG(36), 0)
EVT_SET(EVT_AREA_FLAG(37), 0)
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80244790)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80244B20) = {
.id = NPC_BUBULB,
@ -235,78 +244,84 @@ static s32 N(pad_4F24)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80244F30) = SCRIPT({
MakeItemEntity(ITEM_STAR_PIECE, 675, 60, -100, 17, EVT_SAVE_FLAG(1387));
});
EvtSource N(80244F30) = {
EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 675, 60, -100, 17, EVT_SAVE_FLAG(1387))
EVT_RETURN
EVT_END
};
static s32 N(pad_4F64)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80244F70) = SCRIPT({
loop {
N(func_80242360_CCD670)(EVT_VAR(0));
if (EVT_VAR(0) == EVT_VAR(4)) {
GetPlayerActionState(EVT_VAR(0));
if (EVT_VAR(0) != 23) {
if (EVT_VAR(8) == 0) {
spawn {
GetModelCenter(EVT_VAR(5));
PlaySoundAt(0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
}
}
if (EVT_VAR(7) < 90) {
if (EVT_VAR(7) == 0) {
sleep 5;
EVT_VAR(8) = 6;
ModifyColliderFlags(0, EVT_VAR(9), 0x7FFFFE00);
}
EVT_VAR(8) += 1;
EVT_VAR(7) += EVT_VAR(8);
}
goto 50;
}
}
if (EVT_VAR(7) != 0) {
EVT_VAR(8) -= 1;
EVT_VAR(7) += EVT_VAR(8);
if (EVT_VAR(7) <= 0) {
EVT_VAR(8) = 0;
EVT_VAR(7) = 0;
spawn {
GetModelCenter(EVT_VAR(5));
PlaySoundAt(0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
}
ModifyColliderFlags(1, EVT_VAR(9), 0x7FFFFE00);
}
}
50:
if (EVT_VAR(7) >= 90) {
EVT_VAR(8) = -1;
EVT_VAR(7) = 90;
}
RotateModel(EVT_VAR(5), EVT_VAR(7), -1, 0, 0);
RotateModel(EVT_VAR(6), EVT_VAR(7), -1, 0, 0);
sleep 1;
}
});
EvtSource N(80244F70) = {
EVT_LOOP(0)
EVT_CALL(N(func_80242360_CCD670), EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), EVT_VAR(4))
EVT_CALL(GetPlayerActionState, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 23)
EVT_IF_EQ(EVT_VAR(8), 0)
EVT_THREAD
EVT_CALL(GetModelCenter, EVT_VAR(5))
EVT_CALL(PlaySoundAt, 0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_END_THREAD
EVT_END_IF
EVT_IF_LT(EVT_VAR(7), 90)
EVT_IF_EQ(EVT_VAR(7), 0)
EVT_WAIT_FRAMES(5)
EVT_SET(EVT_VAR(8), 6)
EVT_CALL(ModifyColliderFlags, 0, EVT_VAR(9), 0x7FFFFE00)
EVT_END_IF
EVT_ADD(EVT_VAR(8), 1)
EVT_ADD(EVT_VAR(7), EVT_VAR(8))
EVT_END_IF
EVT_GOTO(50)
EVT_END_IF
EVT_END_IF
EVT_IF_NE(EVT_VAR(7), 0)
EVT_SUB(EVT_VAR(8), 1)
EVT_ADD(EVT_VAR(7), EVT_VAR(8))
EVT_IF_LE(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(7), 0)
EVT_THREAD
EVT_CALL(GetModelCenter, EVT_VAR(5))
EVT_CALL(PlaySoundAt, 0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_END_THREAD
EVT_CALL(ModifyColliderFlags, 1, EVT_VAR(9), 0x7FFFFE00)
EVT_END_IF
EVT_END_IF
EVT_LABEL(50)
EVT_IF_GE(EVT_VAR(7), 90)
EVT_SET(EVT_VAR(8), -1)
EVT_SET(EVT_VAR(7), 90)
EVT_END_IF
EVT_CALL(RotateModel, EVT_VAR(5), EVT_VAR(7), -1, 0, 0)
EVT_CALL(RotateModel, EVT_VAR(6), EVT_VAR(7), -1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(80245224) = SCRIPT({
EVT_VAR(4) = 21;
EVT_VAR(5) = 21;
EVT_VAR(6) = 20;
EVT_VAR(7) = EVT_MAP_VAR(10);
EVT_VAR(8) = EVT_MAP_VAR(11);
EVT_VAR(9) = 22;
spawn N(80244F70);
EVT_VAR(4) = 17;
EVT_VAR(5) = 26;
EVT_VAR(6) = 25;
EVT_VAR(7) = EVT_MAP_VAR(12);
EVT_VAR(8) = EVT_MAP_VAR(13);
EVT_VAR(9) = 18;
spawn N(80244F70);
});
EvtSource N(80245224) = {
EVT_SET(EVT_VAR(4), 21)
EVT_SET(EVT_VAR(5), 21)
EVT_SET(EVT_VAR(6), 20)
EVT_SET(EVT_VAR(7), EVT_MAP_VAR(10))
EVT_SET(EVT_VAR(8), EVT_MAP_VAR(11))
EVT_SET(EVT_VAR(9), 22)
EVT_EXEC(N(80244F70))
EVT_SET(EVT_VAR(4), 17)
EVT_SET(EVT_VAR(5), 26)
EVT_SET(EVT_VAR(6), 25)
EVT_SET(EVT_VAR(7), EVT_MAP_VAR(12))
EVT_SET(EVT_VAR(8), EVT_MAP_VAR(13))
EVT_SET(EVT_VAR(9), 18)
EVT_EXEC(N(80244F70))
EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc23.inc.c"

View File

@ -20,20 +20,21 @@ MapConfig N(config) = {
.tattle = { MSG_flo_15_tattle },
};
EvtSource N(80240060) = SCRIPT({
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8);
} else {
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_SUN_TOWER_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_SUN_TOWER_SUNNY, 0, 8);
}
}
}
});
EvtSource N(80240060) = {
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
EVT_ELSE
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_SUN_TOWER_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_SUN_TOWER_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_11C) = {
0x00000000,
@ -41,31 +42,35 @@ static s32 N(pad_11C) = {
EvtSource N(exitWalk_80240120) = EXIT_WALK_SCRIPT(60, 0, "flo_13", 1);
EvtSource N(8024017C) = SCRIPT({
bind N(exitWalk_80240120) TRIGGER_FLOOR_ABOVE 0;
});
EvtSource N(8024017C) = {
EVT_BIND_TRIGGER(N(exitWalk_80240120), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_802412C0));
await N(makeEntities);
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
spawn N(802404D8);
} else {
ModifyColliderFlags(0, 1, 0x7FFFFE00);
EVT_VAR(0) = N(8024017C);
spawn EnterWalk;
}
ModifyColliderFlags(0, 14, 0x7FFFFE00);
spawn N(802413B0);
await N(80240060);
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802412C0)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_EXEC(N(802404D8))
EVT_ELSE
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(8024017C)))
EVT_EXEC(EnterWalk)
EVT_END_IF
EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00)
EVT_EXEC(N(802413B0))
EVT_EXEC_WAIT(N(80240060))
EVT_RETURN
EVT_END
};
static s32 N(pad_2FC) = {
0x00000000,
@ -77,192 +82,200 @@ NpcSettings N(npcSettings_80240300) = {
.level = 99,
};
EvtSource N(8024032C) = SCRIPT({
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
EVT_VAR(3) = 7;
EVT_VAR(4) = 5;
} else {
EVT_VAR(3) = 15;
EVT_VAR(4) = 1;
}
loop {
EVT_VAR(5) = EVT_VAR(3);
loop EVT_VAR(5) {
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 1;
SetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcPos(NPC_SUN1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep EVT_VAR(4);
}
EVT_VAR(5) = EVT_VAR(3);
loop EVT_VAR(5) {
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += -1;
SetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcPos(NPC_SUN1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep EVT_VAR(4);
}
}
});
EvtSource N(8024032C) = {
EVT_IF_LT(EVT_SAVE_VAR(0), 53)
EVT_SET(EVT_VAR(3), 7)
EVT_SET(EVT_VAR(4), 5)
EVT_ELSE
EVT_SET(EVT_VAR(3), 15)
EVT_SET(EVT_VAR(4), 1)
EVT_END_IF
EVT_LOOP(0)
EVT_SET(EVT_VAR(5), EVT_VAR(3))
EVT_LOOP(EVT_VAR(5))
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 1)
EVT_CALL(SetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcPos, 11, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(EVT_VAR(4))
EVT_END_LOOP
EVT_SET(EVT_VAR(5), EVT_VAR(3))
EVT_LOOP(EVT_VAR(5))
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), -1)
EVT_CALL(SetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcPos, 11, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(EVT_VAR(4))
EVT_END_LOOP
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(802404D8) = SCRIPT({
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
SetNpcPos(NPC_SUN0, 0, 270, 0);
SetNpcPos(NPC_SUN1, 0, -1000, 0);
sleep 1;
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamDistance(0, 1050);
SetCamPitch(0, 10.0, 4.0);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
SetCamDistance(0, 300);
SetCamPitch(0, 15.0, -10.0);
SetCamSpeed(0, 6.5);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_9, NPC_ANIM_sun_Palette_00_Anim_9, 517, MESSAGE_ID(0x11, 0x00C3));
SetNpcAnimation(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_9);
spawn {
SetCamDistance(0, 1000);
SetCamSpeed(0, 5.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
}
sleep 15;
SetNpcJumpscale(NPC_SUN0, 0.0);
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 400;
NpcJump0(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 40);
GotoMap("flo_00", 9);
sleep 70;
});
EvtSource N(802404D8) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(SetNpcPos, 10, 0, 270, 0)
EVT_CALL(SetNpcPos, 11, 0, -1000, 0)
EVT_WAIT_FRAMES(1)
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamDistance, 0, 1050)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(10.0), EVT_FIXED(4.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(SetCamDistance, 0, 300)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(15.0), EVT_FIXED(-10.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(6.5))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_9, NPC_ANIM_sun_Palette_00_Anim_9, 517, MESSAGE_ID(0x11, 0x00C3))
EVT_CALL(SetNpcAnimation, 10, NPC_ANIM_sun_Palette_00_Anim_9)
EVT_THREAD
EVT_CALL(SetCamDistance, 0, 1000)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(5.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_END_THREAD
EVT_WAIT_FRAMES(15)
EVT_CALL(SetNpcJumpscale, 10, EVT_FIXED(0.0))
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 400)
EVT_CALL(NpcJump0, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 40)
EVT_CALL(GotoMap, EVT_PTR("flo_00"), 9)
EVT_WAIT_FRAMES(70)
EVT_RETURN
EVT_END
};
EvtSource N(aux_8024079C) = SCRIPT({
func_802CDE68(11, 48);
loop {
MakeLerp(-30, 30, 20, 11);
loop {
UpdateLerp();
SetNpcRotation(NPC_SUN1, 0, 0, EVT_VAR(0));
GetNpcPos(NPC_SUN0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
SetNpcPos(NPC_SUN1, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
MakeLerp(30, -30, 20, 11);
loop {
UpdateLerp();
SetNpcRotation(NPC_SUN1, 0, 0, EVT_VAR(0));
GetNpcPos(NPC_SUN0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
SetNpcPos(NPC_SUN1, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
}
});
EvtSource N(aux_8024079C) = {
EVT_CALL(func_802CDE68, 11, 48)
EVT_LOOP(0)
EVT_CALL(MakeLerp, -30, 30, 20, 11)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, 11, 0, 0, EVT_VAR(0))
EVT_CALL(GetNpcPos, 10, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_CALL(SetNpcPos, 11, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(MakeLerp, 30, -30, 20, 11)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetNpcRotation, 11, 0, 0, EVT_VAR(0))
EVT_CALL(GetNpcPos, 10, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_CALL(SetNpcPos, 11, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(8024094C) = SCRIPT({
loop {
sleep 1;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) > 220) {
break loop;
}
}
spawn {
sleep 15;
PlayerFaceNpc(10, 0);
}
SetNpcJumpscale(NPC_SUN0, 0.0);
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) -= 400;
NpcJump0(NPC_SUN0, EVT_VAR(0), 275, EVT_VAR(2), 30);
EVT_VAR(9) = spawn N(8024032C);
loop {
sleep 1;
if (EVT_AREA_FLAG(38) == 1) {
break loop;
}
}
DisablePlayerInput(TRUE);
sleep 10;
kill EVT_VAR(9);
SetNpcFlagBits(NPC_SUN0, ((NPC_FLAG_100)), TRUE);
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
NpcJump0(NPC_SUN0, EVT_VAR(0), 450, EVT_VAR(2), 30);
DisablePlayerInput(FALSE);
unbind;
});
EvtSource N(8024094C) = {
EVT_LOOP(0)
EVT_WAIT_FRAMES(1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GT(EVT_VAR(1), 220)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_THREAD
EVT_WAIT_FRAMES(15)
EVT_CALL(PlayerFaceNpc, 10, 0)
EVT_END_THREAD
EVT_CALL(SetNpcJumpscale, 10, EVT_FIXED(0.0))
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_SUB(EVT_VAR(1), 400)
EVT_CALL(NpcJump0, 10, EVT_VAR(0), 275, EVT_VAR(2), 30)
EVT_EXEC_GET_TID(N(8024032C), EVT_VAR(9))
EVT_LOOP(0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_AREA_FLAG(38), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(10)
EVT_KILL_THREAD(EVT_VAR(9))
EVT_CALL(SetNpcFlagBits, 10, ((NPC_FLAG_100)), TRUE)
EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(NpcJump0, 10, EVT_VAR(0), 450, EVT_VAR(2), 30)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(interact_80240B28) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_SPOKE_WITH_THE_SUN {
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009A));
SetPlayerAnimation(ANIM_THINKING);
sleep 20;
SetPlayerAnimation(ANIM_80007);
sleep 20;
SetPlayerAnimation(ANIM_10002);
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009B));
EVT_STORY_PROGRESS = STORY_CH6_SPOKE_WITH_THE_SUN;
}
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009C));
}
< STORY_CH6_STAR_SPIRIT_RESCUED {
if (EVT_SAVE_FLAG(1410) == 0) {
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11,
0x009D));
EVT_SAVE_FLAG(1410) = 1;
} else {
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11,
0x009E));
}
} else {
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11,
0x009F));
}
}
EVT_AREA_FLAG(38) = 1;
});
EvtSource N(interact_80240B28) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(50)
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009A))
EVT_CALL(SetPlayerAnimation, ANIM_THINKING)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetPlayerAnimation, ANIM_80007)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009B))
EVT_SET(EVT_SAVE_VAR(0), 50)
EVT_CASE_LT(53)
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009C))
EVT_CASE_LT(57)
EVT_IF_EQ(EVT_SAVE_FLAG(1410), 0)
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009D))
EVT_SET(EVT_SAVE_FLAG(1410), 1)
EVT_ELSE
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009E))
EVT_END_IF
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009F))
EVT_END_SWITCH
EVT_SET(EVT_AREA_FLAG(38), 1)
EVT_RETURN
EVT_END
};
EvtSource N(init_80240CD0) = SCRIPT({
SetNpcCollisionSize(10, 64, 40);
EnableNpcShadow(NPC_SUN0, FALSE);
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
SetNpcPos(NPC_SUN0, 0, 270, 0);
BindNpcInteract(NPC_SELF, N(interact_80240B28));
spawn N(8024032C);
} else {
SetNpcPos(NPC_SUN0, 0, 450, 0);
BindNpcInteract(NPC_SELF, N(interact_80240B28));
EVT_AREA_FLAG(38) = 0;
spawn N(8024094C);
}
});
EvtSource N(init_80240CD0) = {
EVT_CALL(SetNpcCollisionSize, 10, 64, 40)
EVT_CALL(EnableNpcShadow, 10, FALSE)
EVT_IF_LT(EVT_SAVE_VAR(0), 53)
EVT_CALL(SetNpcPos, 10, 0, 270, 0)
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80240B28)))
EVT_EXEC(N(8024032C))
EVT_ELSE
EVT_CALL(SetNpcPos, 10, 0, 450, 0)
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80240B28)))
EVT_SET(EVT_AREA_FLAG(38), 0)
EVT_EXEC(N(8024094C))
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(init_80240DB4) = SCRIPT({
EnableNpcShadow(NPC_SUN1, FALSE);
SetNpcAnimation(NPC_SUN1, NPC_ANIM_sun_Palette_00_Anim_2);
SetNpcPaletteSwapMode(10, 3);
SetNpcPaletteSwapMode(11, 3);
SetNpcPaletteSwapping(10, 0, 1, 5, 5, 13, 5, 0, 0);
SetNpcPaletteSwapping(11, 0, 1, 5, 5, 13, 5, 0, 0);
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
SetNpcPos(NPC_SUN1, 0, 270, -5);
} else {
SetNpcPos(NPC_SUN1, 0, 450, -5);
BindNpcAux(-1, N(aux_8024079C));
}
});
EvtSource N(init_80240DB4) = {
EVT_CALL(EnableNpcShadow, 11, FALSE)
EVT_CALL(SetNpcAnimation, 11, NPC_ANIM_sun_Palette_00_Anim_2)
EVT_CALL(SetNpcPaletteSwapMode, 10, 3)
EVT_CALL(SetNpcPaletteSwapMode, 11, 3)
EVT_CALL(SetNpcPaletteSwapping, 10, 0, 1, 5, 5, 13, 5, 0, 0)
EVT_CALL(SetNpcPaletteSwapping, 11, 0, 1, 5, 5, 13, 5, 0, 0)
EVT_IF_LT(EVT_SAVE_VAR(0), 53)
EVT_CALL(SetNpcPos, 11, 0, 270, -5)
EVT_ELSE
EVT_CALL(SetNpcPos, 11, 0, 450, -5)
EVT_CALL(BindNpcAux, -1, EVT_PTR(N(aux_8024079C)))
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80240EE0)[] = {
{
@ -336,16 +349,20 @@ static s32 N(pad_12D8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(802412E0) = SCRIPT({
EVT_SAVE_FLAG(1401) = 1;
});
EvtSource N(802412E0) = {
EVT_SET(EVT_SAVE_FLAG(1401), 1)
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
if (EVT_SAVE_FLAG(1401) == 0) {
MakeEntity(0x802BCF00, -180, 0, -18, 0, MAKE_ENTITY_END);
AssignScript(N(802412E0));
}
});
EvtSource N(makeEntities) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
EVT_CALL(MakeEntity, 0x802BCF00, -180, 0, -18, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(802412E0)))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_135C) = {
0x00000000,
@ -357,57 +374,59 @@ s32 N(intTable_80241360)[] = {
0x00000018, 0xF24A7CE7, 0x0000000A, 0xF24A814D,
};
EvtSource N(802413B0) = SCRIPT({
if (EVT_SAVE_FLAG(1401) == 0) {
0:
if (EVT_SAVE_FLAG(1401) == 0) {
sleep 1;
goto 0;
}
DisablePlayerInput(TRUE);
spawn {
buf_use N(intTable_80241360);
loop 10 {
buf_read EVT_VAR(1) EVT_VAR(2);
ShakeCam(0, 0, EVT_VAR(1), EVT_VAR(2));
}
}
UseSettingsFrom(0, -170, 0, 35);
SetPanTarget(0, -170, 0, 35);
SetCamDistance(0, 600);
SetCamPitch(0, 25.0, -9.0);
SetCamPosA(0, -50.0, 25.0);
SetCamSpeed(0, 1.5);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
spawn {
sleep 100;
PlayEffect(0x6, 4, -180, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0);
PlayEffect(0x6, 4, -190, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
spawn {
loop 6 {
PlaySoundAtCollider(11, 391, 0);
sleep 20;
}
}
MakeLerp(0, -50, 120, 2);
loop {
UpdateLerp();
TranslateGroup(16, 0, EVT_VAR(0), 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
ModifyColliderFlags(0, 12, 0x7FFFFE00);
ModifyColliderFlags(1, 14, 0x7FFFFE00);
sleep 15;
ResetCam(0, 90.0);
DisablePlayerInput(FALSE);
} else {
ModifyColliderFlags(0, 12, 0x7FFFFE00);
ModifyColliderFlags(1, 14, 0x7FFFFE00);
TranslateGroup(16, 0, -50, 0);
}
});
EvtSource N(802413B0) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
EVT_LABEL(0)
EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_THREAD
EVT_USE_BUF(EVT_PTR(N(intTable_80241360)))
EVT_LOOP(10)
EVT_BUF_READ2(EVT_VAR(1), EVT_VAR(2))
EVT_CALL(ShakeCam, 0, 0, EVT_VAR(1), EVT_VAR(2))
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(UseSettingsFrom, 0, -170, 0, 35)
EVT_CALL(SetPanTarget, 0, -170, 0, 35)
EVT_CALL(SetCamDistance, 0, 600)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(25.0), EVT_FIXED(-9.0))
EVT_CALL(SetCamPosA, 0, EVT_FIXED(-50.0), EVT_FIXED(25.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(1.5))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_THREAD
EVT_WAIT_FRAMES(100)
EVT_CALL(PlayEffect, 0x6, 4, -180, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_CALL(PlayEffect, 0x6, 4, -190, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_THREAD
EVT_THREAD
EVT_LOOP(6)
EVT_CALL(PlaySoundAtCollider, 11, 391, 0)
EVT_WAIT_FRAMES(20)
EVT_END_LOOP
EVT_END_THREAD
EVT_CALL(MakeLerp, 0, -50, 120, 2)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 16, 0, EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(ModifyColliderFlags, 0, 12, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 1, 14, 0x7FFFFE00)
EVT_WAIT_FRAMES(15)
EVT_CALL(ResetCam, 0, EVT_FIXED(90.0))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_ELSE
EVT_CALL(ModifyColliderFlags, 0, 12, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 1, 14, 0x7FFFFE00)
EVT_CALL(TranslateGroup, 16, 0, -50, 0)
EVT_END_IF
EVT_RETURN
EVT_END
};

View File

@ -18,213 +18,224 @@ MapConfig N(config) = {
.tattle = { MSG_flo_16_tattle },
};
EvtSource N(802429D0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(802429D0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80242A40) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 4);
EvtSource N(exitWalk_80242A9C) = EXIT_WALK_SCRIPT(60, 1, "flo_17", 0);
EvtSource N(80242AF8) = SCRIPT({
bind N(exitWalk_80242A40) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_80242A9C) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(80242AF8) = {
EVT_BIND_TRIGGER(N(exitWalk_80242A40), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_80242A9C), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
s32 N(lavaResetList_80242B40)[] = {
0x0000000A, 0xC39B0000, 0x00000000, 0x00000000, 0x0000000B, 0x43988000, 0x42C80000, 0x00000000,
0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_802444D4));
await N(makeEntities);
spawn N(8024346C);
ModifyColliderFlags(3, 9, 0x00000002);
spawn {
ResetFromLava(N(lavaResetList_80242B40));
}
EnableTexPanning(16, 1);
EnableTexPanning(17, 1);
EnableTexPanning(18, 1);
EnableTexPanning(20, 1);
EnableTexPanning(22, 1);
EnableTexPanning(24, 1);
EnableTexPanning(19, 1);
EnableTexPanning(21, 1);
EnableTexPanning(23, 1);
EnableTexPanning(25, 1);
spawn {
EVT_VAR(0) = 0;
EVT_VAR(1) = 0;
0:
EVT_VAR(0) += 140;
if (EVT_VAR(0) > 65536) {
EVT_VAR(0) += -65536;
}
SetTexPanOffset(1, 0, EVT_VAR(0), 0);
EVT_VAR(1) += -200;
if (EVT_VAR(1) < 0) {
EVT_VAR(1) += 65536;
}
SetTexPanOffset(2, 0, EVT_VAR(1), 0);
sleep 1;
goto 0;
}
spawn N(802451C4);
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
EVT_VAR(0) = N(80242AF8);
spawn EnterWalk;
await N(802429D0);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CD1E30)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802444D4)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(8024346C))
EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000002)
EVT_THREAD
EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_80242B40)))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, 16, 1)
EVT_CALL(EnableTexPanning, 17, 1)
EVT_CALL(EnableTexPanning, 18, 1)
EVT_CALL(EnableTexPanning, 20, 1)
EVT_CALL(EnableTexPanning, 22, 1)
EVT_CALL(EnableTexPanning, 24, 1)
EVT_CALL(EnableTexPanning, 19, 1)
EVT_CALL(EnableTexPanning, 21, 1)
EVT_CALL(EnableTexPanning, 23, 1)
EVT_CALL(EnableTexPanning, 25, 1)
EVT_THREAD
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 0)
EVT_LABEL(0)
EVT_ADD(EVT_VAR(0), 140)
EVT_IF_GT(EVT_VAR(0), 65536)
EVT_ADD(EVT_VAR(0), -65536)
EVT_END_IF
EVT_CALL(SetTexPanOffset, 1, 0, EVT_VAR(0), 0)
EVT_ADD(EVT_VAR(1), -200)
EVT_IF_LT(EVT_VAR(1), 0)
EVT_ADD(EVT_VAR(1), 65536)
EVT_END_IF
EVT_CALL(SetTexPanOffset, 2, 0, EVT_VAR(1), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_THREAD
EVT_EXEC(N(802451C4))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80242AF8)))
EVT_EXEC(EnterWalk)
EVT_EXEC_WAIT(N(802429D0))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CD1E30))
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(80242EA0) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80242EA0) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(8024314C) = SCRIPT({
EVT_VAR(9) = EVT_VAR(6);
EVT_VAR(8) = EVT_VAR(5);
EVT_VAR(7) = EVT_VAR(4);
EVT_VAR(6) = EVT_VAR(3);
EVT_VAR(5) = EVT_VAR(2);
EVT_VAR(4) = EVT_VAR(1);
EVT_VAR(3) = EVT_VAR(0);
EnableModel(EVT_VAR(6), 0);
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
N(UnkFunc43)();
if (EVT_VAR(0) == 0) {
sleep 1;
goto 0;
}
spawn {
sleep 5;
EnableModel(EVT_VAR(6), 1);
}
if (EVT_VAR(10) != 0) {
spawn {
sleep 5;
EVT_VAR(0) = EVT_VAR(3);
EVT_VAR(1) = EVT_VAR(4);
EVT_VAR(2) = EVT_VAR(5);
EVT_VAR(1) += 10;
EVT_VAR(2) += 8;
PlayEffect(0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0);
sleep 15;
EVT_VAR(1) -= 10;
MakeItemEntity(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0);
}
}
spawn {
sleep 10;
PlaySoundAt(0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
}
MakeLerp(0, 180, 20, 2);
1:
UpdateLerp();
RotateModel(EVT_VAR(8), EVT_VAR(0), 1, 0, 0);
RotateModel(EVT_VAR(9), EVT_VAR(0), 1, 0, 0);
if (EVT_VAR(1) == 1) {
sleep 1;
goto 1;
}
EnableModel(EVT_VAR(7), 0);
});
EvtSource N(8024314C) = {
EVT_SET(EVT_VAR(9), EVT_VAR(6))
EVT_SET(EVT_VAR(8), EVT_VAR(5))
EVT_SET(EVT_VAR(7), EVT_VAR(4))
EVT_SET(EVT_VAR(6), EVT_VAR(3))
EVT_SET(EVT_VAR(5), EVT_VAR(2))
EVT_SET(EVT_VAR(4), EVT_VAR(1))
EVT_SET(EVT_VAR(3), EVT_VAR(0))
EVT_CALL(EnableModel, EVT_VAR(6), 0)
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(N(UnkFunc43))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_CALL(EnableModel, EVT_VAR(6), 1)
EVT_END_THREAD
EVT_IF_NE(EVT_VAR(10), 0)
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_SET(EVT_VAR(0), EVT_VAR(3))
EVT_SET(EVT_VAR(1), EVT_VAR(4))
EVT_SET(EVT_VAR(2), EVT_VAR(5))
EVT_ADD(EVT_VAR(1), 10)
EVT_ADD(EVT_VAR(2), 8)
EVT_CALL(PlayEffect, 0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(15)
EVT_SUB(EVT_VAR(1), 10)
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0)
EVT_END_THREAD
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAt, 0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_END_THREAD
EVT_CALL(MakeLerp, 0, 180, 20, 2)
EVT_LABEL(1)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, EVT_VAR(8), EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateModel, EVT_VAR(9), EVT_VAR(0), 1, 0, 0)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_WAIT_FRAMES(1)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(EnableModel, EVT_VAR(7), 0)
EVT_RETURN
EVT_END
};
EvtSource N(8024346C) = SCRIPT({
ModifyColliderFlags(3, 20, 0x00000006);
EVT_VAR(0) = -740;
EVT_VAR(1) = -140;
EVT_VAR(2) = -260;
EVT_VAR(3) = -55;
EVT_VAR(4) = 100;
spawn N(80242EA0);
EVT_VAR(0) = 250;
EVT_VAR(1) = -140;
EVT_VAR(2) = 725;
EVT_VAR(3) = -55;
EVT_VAR(4) = 180;
spawn N(80242EA0);
GetModelCenter(65);
EVT_VAR(3) = 65;
EVT_VAR(4) = 66;
EVT_VAR(5) = 67;
EVT_VAR(6) = 68;
EVT_VAR(10) = 0;
spawn N(8024314C);
GetModelCenter(71);
EVT_VAR(3) = 71;
EVT_VAR(4) = 72;
EVT_VAR(5) = 73;
EVT_VAR(6) = 74;
EVT_VAR(10) = 174;
spawn N(8024314C);
GetModelCenter(79);
EVT_VAR(3) = 79;
EVT_VAR(4) = 80;
EVT_VAR(5) = 81;
EVT_VAR(6) = 82;
EVT_VAR(10) = 0;
spawn N(8024314C);
GetModelCenter(85);
EVT_VAR(3) = 85;
EVT_VAR(4) = 86;
EVT_VAR(5) = 87;
EVT_VAR(6) = 88;
EVT_VAR(10) = 0;
spawn N(8024314C);
});
EvtSource N(8024346C) = {
EVT_CALL(ModifyColliderFlags, 3, 20, 0x00000006)
EVT_SET(EVT_VAR(0), -740)
EVT_SET(EVT_VAR(1), -140)
EVT_SET(EVT_VAR(2), -260)
EVT_SET(EVT_VAR(3), -55)
EVT_SET(EVT_VAR(4), 100)
EVT_EXEC(N(80242EA0))
EVT_SET(EVT_VAR(0), 250)
EVT_SET(EVT_VAR(1), -140)
EVT_SET(EVT_VAR(2), 725)
EVT_SET(EVT_VAR(3), -55)
EVT_SET(EVT_VAR(4), 180)
EVT_EXEC(N(80242EA0))
EVT_CALL(GetModelCenter, 65)
EVT_SET(EVT_VAR(3), 65)
EVT_SET(EVT_VAR(4), 66)
EVT_SET(EVT_VAR(5), 67)
EVT_SET(EVT_VAR(6), 68)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(8024314C))
EVT_CALL(GetModelCenter, 71)
EVT_SET(EVT_VAR(3), 71)
EVT_SET(EVT_VAR(4), 72)
EVT_SET(EVT_VAR(5), 73)
EVT_SET(EVT_VAR(6), 74)
EVT_SET(EVT_VAR(10), 174)
EVT_EXEC(N(8024314C))
EVT_CALL(GetModelCenter, 79)
EVT_SET(EVT_VAR(3), 79)
EVT_SET(EVT_VAR(4), 80)
EVT_SET(EVT_VAR(5), 81)
EVT_SET(EVT_VAR(6), 82)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(8024314C))
EVT_CALL(GetModelCenter, 85)
EVT_SET(EVT_VAR(3), 85)
EVT_SET(EVT_VAR(4), 86)
EVT_SET(EVT_VAR(5), 87)
EVT_SET(EVT_VAR(6), 88)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(8024314C))
EVT_RETURN
EVT_END
};
static s32 N(pad_36FC) = {
0x00000000,
@ -250,166 +261,177 @@ f32 N(D_80243758_CD5588)[] = {
140.0f, 180.0f, 220.0f,
};
EvtSource N(80243764) = SCRIPT({
sleep 10;
PlaySound(0x212D);
N(UnkFunc21)(EVT_MAP_VAR(0));
sleep 85;
spawn {
PlaySound(0x212E);
N(UnkFunc23)(70, 70);
sleep 27;
PlaySound(SOUND_208E);
N(UnkFunc23)(50, 50);
}
spawn {
sleep 3;
N(func_8024011C_CD1F4C)(EVT_MAP_VAR(0));
}
spawn {
sleep 47;
N(UnkFunc22)();
N(UnkPartnerPosFunc)();
sleep 5;
N(UnkPartnerPosFunc2)();
sleep 5;
N(UnkPartnerPosFunc)();
}
sleep 3;
N(func_802406E0_CD2510)(EVT_MAP_VAR(0));
sleep 30;
});
EvtSource N(80243764) = {
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySound, 0x212D)
EVT_CALL(N(UnkFunc21), EVT_MAP_VAR(0))
EVT_WAIT_FRAMES(85)
EVT_THREAD
EVT_CALL(PlaySound, 0x212E)
EVT_CALL(N(UnkFunc23), 70, 70)
EVT_WAIT_FRAMES(27)
EVT_CALL(PlaySound, SOUND_208E)
EVT_CALL(N(UnkFunc23), 50, 50)
EVT_END_THREAD
EVT_THREAD
EVT_WAIT_FRAMES(3)
EVT_CALL(N(func_8024011C_CD1F4C), EVT_MAP_VAR(0))
EVT_END_THREAD
EVT_THREAD
EVT_WAIT_FRAMES(47)
EVT_CALL(N(UnkFunc22))
EVT_CALL(N(UnkPartnerPosFunc))
EVT_WAIT_FRAMES(5)
EVT_CALL(N(UnkPartnerPosFunc2))
EVT_WAIT_FRAMES(5)
EVT_CALL(N(UnkPartnerPosFunc))
EVT_END_THREAD
EVT_WAIT_FRAMES(3)
EVT_CALL(N(func_802406E0_CD2510), EVT_MAP_VAR(0))
EVT_WAIT_FRAMES(30)
EVT_RETURN
EVT_END
};
EvtSource N(802438C8) = SCRIPT({
if (EVT_SAVE_FLAG(1403) == 1) {
return;
}
IsStartingConversation(EVT_VAR(0));
if (EVT_VAR(0) == 1) {
return;
}
N(UnkFunc24)();
if (EVT_VAR(0) == 1) {
return;
}
ModifyGlobalOverrideFlags(1, 2097152);
N(SetOverrideFlags_40)();
DisablePlayerInput(TRUE);
DisablePartnerAI(0);
SetNpcFlagBits(NPC_PARTNER, ((NPC_FLAG_100)), TRUE);
N(UnkFunc20)(EVT_MAP_VAR(0), EVT_VAR(9));
FindKeyItem(ITEM_ULTRA_STONE, EVT_VAR(12));
N(UnkFunc38)();
if (EVT_VAR(0) == -1) {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DC), 160, 40);
sleep 10;
N(UnkFunc39)(EVT_VAR(9));
DisablePlayerInput(FALSE);
EnablePartnerAI();
ModifyGlobalOverrideFlags(0, 2097152);
N(UnkFunc17)();
return;
}
if (EVT_SAVE_FLAG(438) == 0) {
EVT_SAVE_FLAG(438) = 1;
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DA), 160, 40);
} else {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DB), 160, 40);
}
N(func_802402AC_CD20DC)();
if (EVT_VAR(0) == -1) {
N(UnkFunc39)(EVT_VAR(9));
DisablePlayerInput(FALSE);
EnablePartnerAI();
ModifyGlobalOverrideFlags(0, 2097152);
N(UnkFunc17)();
return;
}
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EnablePartnerAI();
GetCurrentPartnerID(EVT_VAR(0));
if (EVT_VAR(0) != EVT_VAR(11)) {
N(SwitchToPartner)(EVT_VAR(11));
} else {
func_802CF56C(2);
}
sleep 10;
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DF), 160, 40);
ShowChoice(MESSAGE_ID(0x1E, 0x000D));
CloseMessage();
if (EVT_VAR(0) != 0) {
N(UnkFunc39)(EVT_VAR(9));
DisablePlayerInput(FALSE);
EnablePartnerAI();
ModifyGlobalOverrideFlags(0, 2097152);
N(UnkFunc17)();
return;
}
await N(80243764);
N(UnkFunc18)(EVT_VAR(11), EVT_VAR(13));
EVT_SAVE_FLAG(1403) = 1;
N(UnkFunc39)(EVT_VAR(9));
N(UnkFunc19)();
if (EVT_VAR(13) == 1) {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DD), 160, 40);
} else {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DE), 160, 40);
}
DisablePlayerInput(FALSE);
EnablePartnerAI();
ModifyGlobalOverrideFlags(0, 2097152);
N(UnkFunc17)();
});
EvtSource N(802438C8) = {
EVT_IF_EQ(EVT_SAVE_FLAG(1403), 1)
EVT_RETURN
EVT_END_IF
EVT_CALL(IsStartingConversation, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_RETURN
EVT_END_IF
EVT_CALL(N(UnkFunc24))
EVT_IF_EQ(EVT_VAR(0), 1)
EVT_RETURN
EVT_END_IF
EVT_CALL(ModifyGlobalOverrideFlags, 1, 2097152)
EVT_CALL(N(SetOverrideFlags_40))
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePartnerAI, 0)
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_100)), TRUE)
EVT_CALL(N(UnkFunc20), EVT_MAP_VAR(0), EVT_VAR(9))
EVT_CALL(FindKeyItem, ITEM_ULTRA_STONE, EVT_VAR(12))
EVT_CALL(N(UnkFunc38))
EVT_IF_EQ(EVT_VAR(0), -1)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DC), 160, 40)
EVT_WAIT_FRAMES(10)
EVT_CALL(N(UnkFunc39), EVT_VAR(9))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
EVT_CALL(N(UnkFunc17))
EVT_RETURN
EVT_END_IF
EVT_IF_EQ(EVT_SAVE_FLAG(438), 0)
EVT_SET(EVT_SAVE_FLAG(438), 1)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DA), 160, 40)
EVT_ELSE
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DB), 160, 40)
EVT_END_IF
EVT_CALL(N(func_802402AC_CD20DC))
EVT_IF_EQ(EVT_VAR(0), -1)
EVT_CALL(N(UnkFunc39), EVT_VAR(9))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
EVT_CALL(N(UnkFunc17))
EVT_RETURN
EVT_END_IF
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_CALL(EnablePartnerAI)
EVT_CALL(GetCurrentPartnerID, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), EVT_VAR(11))
EVT_CALL(N(SwitchToPartner), EVT_VAR(11))
EVT_ELSE
EVT_CALL(func_802CF56C, 2)
EVT_END_IF
EVT_WAIT_FRAMES(10)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DF), 160, 40)
EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x000D))
EVT_CALL(CloseMessage)
EVT_IF_NE(EVT_VAR(0), 0)
EVT_CALL(N(UnkFunc39), EVT_VAR(9))
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
EVT_CALL(N(UnkFunc17))
EVT_RETURN
EVT_END_IF
EVT_EXEC_WAIT(N(80243764))
EVT_CALL(N(UnkFunc18), EVT_VAR(11), EVT_VAR(13))
EVT_SET(EVT_SAVE_FLAG(1403), 1)
EVT_CALL(N(UnkFunc39), EVT_VAR(9))
EVT_CALL(N(UnkFunc19))
EVT_IF_EQ(EVT_VAR(13), 1)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DD), 160, 40)
EVT_ELSE
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DE), 160, 40)
EVT_END_IF
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(EnablePartnerAI)
EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
EVT_CALL(N(UnkFunc17))
EVT_RETURN
EVT_END
};
EvtSource N(80243D48) = SCRIPT({
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep 1;
goto 0;
});
EvtSource N(80243D48) = {
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(80243DB0) = SCRIPT({
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
SetPlayerActionState(6);
sleep 2;
GetPlayerPos(EVT_VAR(7), EVT_VAR(8), EVT_VAR(9));
EVT_VAR(10) = spawn N(80243D48);
SetPlayerJumpscale(0.7001953125);
PlayerJump(450, 180, -120, 30);
SetPlayerActionState(0);
DisablePlayerPhysics(FALSE);
DisablePlayerInput(FALSE);
});
EvtSource N(80243DB0) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(SetPlayerActionState, 6)
EVT_WAIT_FRAMES(2)
EVT_CALL(GetPlayerPos, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
EVT_EXEC_GET_TID(N(80243D48), EVT_VAR(10))
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_CALL(PlayerJump, 450, 180, -120, 30)
EVT_CALL(SetPlayerActionState, 0)
EVT_CALL(DisablePlayerPhysics, FALSE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(80243E80) = SCRIPT({
if (EVT_AREA_FLAG(39) == 0) {
N(UnkFunc44)();
if (EVT_VAR(0) == 0) {
return;
}
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
match EVT_VAR(0) {
620 ... 660 {
MakeItemEntity(ITEM_STAR_PIECE, 640, 145, -100, 13, EVT_SAVE_FLAG(1388));
EVT_AREA_FLAG(39) = 1;
}
}
}
});
EvtSource N(80243E80) = {
EVT_IF_EQ(EVT_AREA_FLAG(39), 0)
EVT_CALL(N(UnkFunc44))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_RANGE(620, 660)
EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 640, 145, -100, 13, EVT_SAVE_FLAG(1388))
EVT_SET(EVT_AREA_FLAG(39), 1)
EVT_END_SWITCH
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
EVT_AREA_FLAG(39) = 0;
bind N(80243E80) TRIGGER_FLOOR_TOUCH 20;
MakeEntity(0x802EA910, 350, 240, -100, 0, MAKE_ENTITY_END);
EVT_MAP_VAR(0) = EVT_VAR(0);
AssignBlockFlag(EVT_SAVE_FLAG(1403));
AssignScript(N(802438C8));
MakeEntity(0x802EAA30, 472, 100, -100, 0, MAKE_ENTITY_END);
AssignScript(N(80243DB0));
});
EvtSource N(makeEntities) = {
EVT_SET(EVT_AREA_FLAG(39), 0)
EVT_BIND_TRIGGER(N(80243E80), TRIGGER_FLOOR_TOUCH, 20, 1, 0)
EVT_CALL(MakeEntity, 0x802EA910, 350, 240, -100, 0, MAKE_ENTITY_END)
EVT_SET(EVT_MAP_VAR(0), EVT_VAR(0))
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1403))
EVT_CALL(AssignScript, EVT_PTR(N(802438C8)))
EVT_CALL(MakeEntity, 0x802EAA30, 472, 100, -100, 0, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80243DB0)))
EVT_RETURN
EVT_END
};
#include "world/common/SetOverrideFlags_40.inc.c"

View File

@ -24,13 +24,15 @@ NpcAISettings N(npcAISettings_80244028) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80244058) = SCRIPT({
SetSelfVar(0, 1);
SetSelfVar(5, 0);
SetSelfVar(6, 0);
SetSelfVar(1, 600);
N(func_80242754_CD4584)(N(npcAISettings_80244028));
});
EvtSource N(npcAI_80244058) = {
EVT_CALL(SetSelfVar, 0, 1)
EVT_CALL(SetSelfVar, 5, 0)
EVT_CALL(SetSelfVar, 6, 0)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_80242754_CD4584), EVT_PTR(N(npcAISettings_80244028)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802440C8) = {
.height = 24,
@ -123,223 +125,231 @@ static s32 N(pad_44F8)[] = {
0x00000000, 0x00000000,
};
EvtSource N(80244500) = SCRIPT({
N(func_80242940_CD4770)();
if (EVT_VAR(0) == 0) {
return;
}
DisablePlayerInput(TRUE);
if (EVT_AREA_FLAG(41) == 0) {
EVT_VAR(5) = 0;
EVT_VAR(6) = 50;
EVT_VAR(7) = 0;
EVT_VAR(8) = 180;
EVT_AREA_FLAG(41) = 1;
} else {
EVT_VAR(5) = 50;
EVT_VAR(6) = 0;
EVT_VAR(7) = 180;
EVT_VAR(8) = 0;
EVT_AREA_FLAG(41) = 0;
}
sleep 15;
PlaySound(0x204D);
spawn {
ShakeCam(0, 0, 30, 0.80078125);
ShakeCam(0, 0, 5, 0.2001953125);
}
MakeLerp(EVT_VAR(5), EVT_VAR(6), 30, 0);
loop {
UpdateLerp();
TranslateModel(94, 0, EVT_VAR(0), 0);
TranslateGroup(97, 0, EVT_VAR(0), 0);
TranslateModel(108, 0, EVT_VAR(0), 0);
TranslateGroup(111, 0, EVT_VAR(0), 0);
RotateGroup(97, EVT_VAR(7), 1, 0, 0);
RotateGroup(111, EVT_VAR(7), 1, 0, 0);
UpdateColliderTransform(26);
UpdateColliderTransform(27);
UpdateColliderTransform(32);
UpdateColliderTransform(33);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
DisablePlayerInput(FALSE);
sleep 10;
MakeLerp(EVT_VAR(7), EVT_VAR(8), 15, 0);
loop {
UpdateLerp();
TranslateModel(94, 0, EVT_VAR(6), 0);
TranslateGroup(97, 0, EVT_VAR(6), 0);
TranslateModel(108, 0, EVT_VAR(6), 0);
TranslateGroup(111, 0, EVT_VAR(6), 0);
RotateGroup(97, EVT_VAR(0), 1, 0, 0);
RotateGroup(111, EVT_VAR(0), 1, 0, 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(80244500) = {
EVT_CALL(N(func_80242940_CD4770))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(EVT_AREA_FLAG(41), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 50)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 180)
EVT_SET(EVT_AREA_FLAG(41), 1)
EVT_ELSE
EVT_SET(EVT_VAR(5), 50)
EVT_SET(EVT_VAR(6), 0)
EVT_SET(EVT_VAR(7), 180)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_AREA_FLAG(41), 0)
EVT_END_IF
EVT_WAIT_FRAMES(15)
EVT_CALL(PlaySound, 0x204D)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 30, EVT_FIXED(0.8))
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(0.2))
EVT_END_THREAD
EVT_CALL(MakeLerp, EVT_VAR(5), EVT_VAR(6), 30, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 94, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 97, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateModel, 108, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 111, 0, EVT_VAR(0), 0)
EVT_CALL(RotateGroup, 97, EVT_VAR(7), 1, 0, 0)
EVT_CALL(RotateGroup, 111, EVT_VAR(7), 1, 0, 0)
EVT_CALL(UpdateColliderTransform, 26)
EVT_CALL(UpdateColliderTransform, 27)
EVT_CALL(UpdateColliderTransform, 32)
EVT_CALL(UpdateColliderTransform, 33)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, FALSE)
EVT_WAIT_FRAMES(10)
EVT_CALL(MakeLerp, EVT_VAR(7), EVT_VAR(8), 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 94, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 97, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateModel, 108, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 111, 0, EVT_VAR(6), 0)
EVT_CALL(RotateGroup, 97, EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateGroup, 111, EVT_VAR(0), 1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(802448FC) = SCRIPT({
N(func_80242940_CD4770)();
if (EVT_VAR(0) == 0) {
return;
}
DisablePlayerInput(TRUE);
if (EVT_AREA_FLAG(42) == 0) {
EVT_VAR(5) = 0;
EVT_VAR(6) = 50;
EVT_VAR(7) = 0;
EVT_VAR(8) = 180;
EVT_AREA_FLAG(42) = 1;
} else {
EVT_VAR(5) = 50;
EVT_VAR(6) = 0;
EVT_VAR(7) = 180;
EVT_VAR(8) = 0;
EVT_AREA_FLAG(42) = 0;
}
sleep 15;
PlaySound(0x204D);
spawn {
ShakeCam(0, 0, 30, 0.80078125);
ShakeCam(0, 0, 5, 0.2001953125);
}
MakeLerp(EVT_VAR(5), EVT_VAR(6), 30, 0);
loop {
UpdateLerp();
TranslateModel(101, 0, EVT_VAR(0), 0);
TranslateGroup(104, 0, EVT_VAR(0), 0);
TranslateModel(115, 0, EVT_VAR(0), 0);
TranslateGroup(118, 0, EVT_VAR(0), 0);
TranslateModel(129, 0, EVT_VAR(0), 0);
TranslateGroup(132, 0, EVT_VAR(0), 0);
RotateGroup(104, EVT_VAR(7), 1, 0, 0);
RotateGroup(118, EVT_VAR(7), 1, 0, 0);
RotateGroup(132, EVT_VAR(7), 1, 0, 0);
UpdateColliderTransform(29);
UpdateColliderTransform(30);
UpdateColliderTransform(35);
UpdateColliderTransform(36);
UpdateColliderTransform(41);
UpdateColliderTransform(42);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
DisablePlayerInput(FALSE);
sleep 10;
MakeLerp(EVT_VAR(7), EVT_VAR(8), 15, 0);
loop {
UpdateLerp();
TranslateModel(101, 0, EVT_VAR(6), 0);
TranslateGroup(104, 0, EVT_VAR(6), 0);
TranslateModel(115, 0, EVT_VAR(6), 0);
TranslateGroup(118, 0, EVT_VAR(6), 0);
TranslateModel(129, 0, EVT_VAR(6), 0);
TranslateGroup(132, 0, EVT_VAR(6), 0);
RotateGroup(104, EVT_VAR(0), 1, 0, 0);
RotateGroup(118, EVT_VAR(0), 1, 0, 0);
RotateGroup(132, EVT_VAR(0), 1, 0, 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(802448FC) = {
EVT_CALL(N(func_80242940_CD4770))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(EVT_AREA_FLAG(42), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 50)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 180)
EVT_SET(EVT_AREA_FLAG(42), 1)
EVT_ELSE
EVT_SET(EVT_VAR(5), 50)
EVT_SET(EVT_VAR(6), 0)
EVT_SET(EVT_VAR(7), 180)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_AREA_FLAG(42), 0)
EVT_END_IF
EVT_WAIT_FRAMES(15)
EVT_CALL(PlaySound, 0x204D)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 30, EVT_FIXED(0.8))
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(0.2))
EVT_END_THREAD
EVT_CALL(MakeLerp, EVT_VAR(5), EVT_VAR(6), 30, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 101, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 104, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateModel, 115, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 118, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateModel, 129, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 132, 0, EVT_VAR(0), 0)
EVT_CALL(RotateGroup, 104, EVT_VAR(7), 1, 0, 0)
EVT_CALL(RotateGroup, 118, EVT_VAR(7), 1, 0, 0)
EVT_CALL(RotateGroup, 132, EVT_VAR(7), 1, 0, 0)
EVT_CALL(UpdateColliderTransform, 29)
EVT_CALL(UpdateColliderTransform, 30)
EVT_CALL(UpdateColliderTransform, 35)
EVT_CALL(UpdateColliderTransform, 36)
EVT_CALL(UpdateColliderTransform, 41)
EVT_CALL(UpdateColliderTransform, 42)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, FALSE)
EVT_WAIT_FRAMES(10)
EVT_CALL(MakeLerp, EVT_VAR(7), EVT_VAR(8), 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 101, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 104, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateModel, 115, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 118, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateModel, 129, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 132, 0, EVT_VAR(6), 0)
EVT_CALL(RotateGroup, 104, EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateGroup, 118, EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateGroup, 132, EVT_VAR(0), 1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(80244DC8) = SCRIPT({
N(func_80242940_CD4770)();
if (EVT_VAR(0) == 0) {
return;
}
DisablePlayerInput(TRUE);
if (EVT_AREA_FLAG(43) == 0) {
EVT_VAR(5) = 0;
EVT_VAR(6) = -50;
EVT_VAR(7) = 0;
EVT_VAR(8) = 180;
EVT_AREA_FLAG(43) = 1;
} else {
EVT_VAR(5) = -50;
EVT_VAR(6) = 0;
EVT_VAR(7) = 180;
EVT_VAR(8) = 0;
EVT_AREA_FLAG(43) = 0;
}
sleep 15;
PlaySound(0x204D);
spawn {
ShakeCam(0, 0, 30, 0.80078125);
ShakeCam(0, 0, 5, 0.2001953125);
}
MakeLerp(EVT_VAR(5), EVT_VAR(6), 30, 0);
loop {
UpdateLerp();
TranslateModel(122, 0, EVT_VAR(0), 0);
TranslateGroup(125, 0, EVT_VAR(0), 0);
TranslateModel(136, 0, EVT_VAR(0), 0);
TranslateGroup(139, 0, EVT_VAR(0), 0);
RotateGroup(125, EVT_VAR(7), 1, 0, 0);
RotateGroup(139, EVT_VAR(7), 1, 0, 0);
UpdateColliderTransform(38);
UpdateColliderTransform(39);
UpdateColliderTransform(44);
UpdateColliderTransform(45);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
DisablePlayerInput(FALSE);
sleep 10;
MakeLerp(EVT_VAR(7), EVT_VAR(8), 15, 0);
loop {
UpdateLerp();
TranslateModel(122, 0, EVT_VAR(6), 0);
TranslateGroup(125, 0, EVT_VAR(6), 0);
TranslateModel(136, 0, EVT_VAR(6), 0);
TranslateGroup(139, 0, EVT_VAR(6), 0);
RotateGroup(125, EVT_VAR(0), 1, 0, 0);
RotateGroup(139, EVT_VAR(0), 1, 0, 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
});
EvtSource N(80244DC8) = {
EVT_CALL(N(func_80242940_CD4770))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(EVT_AREA_FLAG(43), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), -50)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 180)
EVT_SET(EVT_AREA_FLAG(43), 1)
EVT_ELSE
EVT_SET(EVT_VAR(5), -50)
EVT_SET(EVT_VAR(6), 0)
EVT_SET(EVT_VAR(7), 180)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_AREA_FLAG(43), 0)
EVT_END_IF
EVT_WAIT_FRAMES(15)
EVT_CALL(PlaySound, 0x204D)
EVT_THREAD
EVT_CALL(ShakeCam, 0, 0, 30, EVT_FIXED(0.8))
EVT_CALL(ShakeCam, 0, 0, 5, EVT_FIXED(0.2))
EVT_END_THREAD
EVT_CALL(MakeLerp, EVT_VAR(5), EVT_VAR(6), 30, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 122, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 125, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateModel, 136, 0, EVT_VAR(0), 0)
EVT_CALL(TranslateGroup, 139, 0, EVT_VAR(0), 0)
EVT_CALL(RotateGroup, 125, EVT_VAR(7), 1, 0, 0)
EVT_CALL(RotateGroup, 139, EVT_VAR(7), 1, 0, 0)
EVT_CALL(UpdateColliderTransform, 38)
EVT_CALL(UpdateColliderTransform, 39)
EVT_CALL(UpdateColliderTransform, 44)
EVT_CALL(UpdateColliderTransform, 45)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(DisablePlayerInput, FALSE)
EVT_WAIT_FRAMES(10)
EVT_CALL(MakeLerp, EVT_VAR(7), EVT_VAR(8), 15, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateModel, 122, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 125, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateModel, 136, 0, EVT_VAR(6), 0)
EVT_CALL(TranslateGroup, 139, 0, EVT_VAR(6), 0)
EVT_CALL(RotateGroup, 125, EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateGroup, 139, EVT_VAR(0), 1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(802451C4) = SCRIPT({
EVT_AREA_FLAG(41) = 0;
EVT_AREA_FLAG(42) = 0;
EVT_AREA_FLAG(43) = 0;
ParentColliderToModel(26, 94);
ParentColliderToModel(27, 94);
ParentColliderToModel(29, 101);
ParentColliderToModel(30, 101);
ParentColliderToModel(32, 108);
ParentColliderToModel(33, 108);
ParentColliderToModel(35, 115);
ParentColliderToModel(36, 115);
ParentColliderToModel(38, 122);
ParentColliderToModel(39, 122);
ParentColliderToModel(41, 129);
ParentColliderToModel(42, 129);
ParentColliderToModel(44, 136);
ParentColliderToModel(45, 136);
bind N(80244500) TRIGGER_FLOOR_TOUCH 26;
bind N(802448FC) TRIGGER_FLOOR_TOUCH 29;
bind N(80244500) TRIGGER_FLOOR_TOUCH 32;
bind N(802448FC) TRIGGER_FLOOR_TOUCH 35;
bind N(80244DC8) TRIGGER_FLOOR_TOUCH 38;
bind N(802448FC) TRIGGER_FLOOR_TOUCH 41;
bind N(80244DC8) TRIGGER_FLOOR_TOUCH 44;
});
EvtSource N(802451C4) = {
EVT_SET(EVT_AREA_FLAG(41), 0)
EVT_SET(EVT_AREA_FLAG(42), 0)
EVT_SET(EVT_AREA_FLAG(43), 0)
EVT_CALL(ParentColliderToModel, 26, 94)
EVT_CALL(ParentColliderToModel, 27, 94)
EVT_CALL(ParentColliderToModel, 29, 101)
EVT_CALL(ParentColliderToModel, 30, 101)
EVT_CALL(ParentColliderToModel, 32, 108)
EVT_CALL(ParentColliderToModel, 33, 108)
EVT_CALL(ParentColliderToModel, 35, 115)
EVT_CALL(ParentColliderToModel, 36, 115)
EVT_CALL(ParentColliderToModel, 38, 122)
EVT_CALL(ParentColliderToModel, 39, 122)
EVT_CALL(ParentColliderToModel, 41, 129)
EVT_CALL(ParentColliderToModel, 42, 129)
EVT_CALL(ParentColliderToModel, 44, 136)
EVT_CALL(ParentColliderToModel, 45, 136)
EVT_BIND_TRIGGER(N(80244500), TRIGGER_FLOOR_TOUCH, 26, 1, 0)
EVT_BIND_TRIGGER(N(802448FC), TRIGGER_FLOOR_TOUCH, 29, 1, 0)
EVT_BIND_TRIGGER(N(80244500), TRIGGER_FLOOR_TOUCH, 32, 1, 0)
EVT_BIND_TRIGGER(N(802448FC), TRIGGER_FLOOR_TOUCH, 35, 1, 0)
EVT_BIND_TRIGGER(N(80244DC8), TRIGGER_FLOOR_TOUCH, 38, 1, 0)
EVT_BIND_TRIGGER(N(802448FC), TRIGGER_FLOOR_TOUCH, 41, 1, 0)
EVT_BIND_TRIGGER(N(80244DC8), TRIGGER_FLOOR_TOUCH, 44, 1, 0)
EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc23.inc.c"

View File

@ -25,63 +25,68 @@ MapConfig N(config) = {
.tattle = { MSG_flo_17_tattle },
};
EvtSource N(80243280) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(80243280) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(802432F0) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(802432F0) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_8024359C) = EXIT_WALK_SCRIPT(60, 0, "flo_16", 1);
EvtSource N(exitWalk_802435F8) = EXIT_WALK_SCRIPT(60, 1, "flo_18", 0);
EvtSource N(80243654) = SCRIPT({
bind N(exitWalk_8024359C) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_802435F8) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(80243654) = {
EVT_BIND_TRIGGER(N(exitWalk_8024359C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_802435F8), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
s32 N(lavaResetList_8024369C)[] = {
0x0000000F, 0xC4048000, 0x00000000, 0xC2DC0000, 0x00000011, 0xC4070000, 0x00000000, 0xC2480000,
@ -96,199 +101,205 @@ s32 N(lavaResetList_8024369C)[] = {
0x00000020, 0x44034000, 0x00000000, 0x42480000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_80245228));
await N(makeEntities);
spawn N(80244284);
ModifyColliderFlags(3, 15, 0x00000006);
ModifyColliderFlags(3, 16, 0x00000006);
ModifyColliderFlags(3, 20, 0x00000006);
ModifyColliderFlags(3, 23, 0x00000006);
ModifyColliderFlags(3, 25, 0x00000006);
ModifyColliderFlags(3, 27, 0x00000006);
ModifyColliderFlags(3, 28, 0x00000006);
ModifyColliderFlags(3, 31, 0x00000006);
ModifyColliderFlags(3, 32, 0x00000006);
EVT_VAR(0) = -736;
EVT_VAR(1) = -137;
EVT_VAR(2) = -522;
EVT_VAR(3) = -118;
EVT_VAR(4) = 0;
spawn N(802432F0);
EVT_VAR(0) = -728;
EVT_VAR(1) = 76;
EVT_VAR(2) = -496;
EVT_VAR(3) = 137;
EVT_VAR(4) = 0;
spawn N(802432F0);
EVT_VAR(0) = -160;
EVT_VAR(1) = -117;
EVT_VAR(2) = -92;
EVT_VAR(3) = -54;
EVT_VAR(4) = 0;
spawn N(802432F0);
EVT_VAR(0) = 76;
EVT_VAR(1) = -124;
EVT_VAR(2) = 150;
EVT_VAR(3) = -55;
EVT_VAR(4) = 0;
spawn N(802432F0);
EVT_VAR(0) = 192;
EVT_VAR(1) = 60;
EVT_VAR(2) = 309;
EVT_VAR(3) = 133;
EVT_VAR(4) = 0;
spawn N(802432F0);
EVT_VAR(0) = 488;
EVT_VAR(1) = 46;
EVT_VAR(2) = 733;
EVT_VAR(3) = 137;
EVT_VAR(4) = 0;
spawn N(802432F0);
ModifyColliderFlags(3, 9, 0x00000002);
spawn {
ResetFromLava(N(lavaResetList_8024369C));
}
EnableTexPanning(30, 1);
EnableTexPanning(32, 1);
EnableTexPanning(33, 1);
EnableTexPanning(36, 1);
EnableTexPanning(37, 1);
EnableTexPanning(40, 1);
EnableTexPanning(42, 1);
EnableTexPanning(44, 1);
EnableTexPanning(45, 1);
EnableTexPanning(48, 1);
EnableTexPanning(49, 1);
EnableTexPanning(52, 1);
EnableTexPanning(54, 1);
EnableTexPanning(56, 1);
EnableTexPanning(57, 1);
EnableTexPanning(60, 1);
EnableTexPanning(61, 1);
EnableTexPanning(64, 1);
EnableTexPanning(31, 1);
EnableTexPanning(34, 1);
EnableTexPanning(35, 1);
EnableTexPanning(38, 1);
EnableTexPanning(39, 1);
EnableTexPanning(43, 1);
EnableTexPanning(46, 1);
EnableTexPanning(47, 1);
EnableTexPanning(50, 1);
EnableTexPanning(51, 1);
EnableTexPanning(55, 1);
EnableTexPanning(58, 1);
EnableTexPanning(59, 1);
EnableTexPanning(62, 1);
EnableTexPanning(63, 1);
spawn {
EVT_VAR(0) = 0;
EVT_VAR(1) = 0;
0:
EVT_VAR(0) += 140;
if (EVT_VAR(0) > 65536) {
EVT_VAR(0) += -65536;
}
SetTexPanOffset(1, 0, EVT_VAR(0), 0);
EVT_VAR(1) += -200;
if (EVT_VAR(1) < 0) {
EVT_VAR(1) += 65536;
}
SetTexPanOffset(2, 0, EVT_VAR(1), 0);
sleep 1;
goto 0;
}
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
EVT_VAR(0) = N(80243654);
spawn EnterWalk;
await N(80243280);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CD72E0)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80245228)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(80244284))
EVT_CALL(ModifyColliderFlags, 3, 15, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 16, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 20, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 23, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 25, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 27, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 28, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 31, 0x00000006)
EVT_CALL(ModifyColliderFlags, 3, 32, 0x00000006)
EVT_SET(EVT_VAR(0), -736)
EVT_SET(EVT_VAR(1), -137)
EVT_SET(EVT_VAR(2), -522)
EVT_SET(EVT_VAR(3), -118)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_SET(EVT_VAR(0), -728)
EVT_SET(EVT_VAR(1), 76)
EVT_SET(EVT_VAR(2), -496)
EVT_SET(EVT_VAR(3), 137)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_SET(EVT_VAR(0), -160)
EVT_SET(EVT_VAR(1), -117)
EVT_SET(EVT_VAR(2), -92)
EVT_SET(EVT_VAR(3), -54)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_SET(EVT_VAR(0), 76)
EVT_SET(EVT_VAR(1), -124)
EVT_SET(EVT_VAR(2), 150)
EVT_SET(EVT_VAR(3), -55)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_SET(EVT_VAR(0), 192)
EVT_SET(EVT_VAR(1), 60)
EVT_SET(EVT_VAR(2), 309)
EVT_SET(EVT_VAR(3), 133)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_SET(EVT_VAR(0), 488)
EVT_SET(EVT_VAR(1), 46)
EVT_SET(EVT_VAR(2), 733)
EVT_SET(EVT_VAR(3), 137)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(802432F0))
EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000002)
EVT_THREAD
EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_8024369C)))
EVT_END_THREAD
EVT_CALL(EnableTexPanning, 30, 1)
EVT_CALL(EnableTexPanning, 32, 1)
EVT_CALL(EnableTexPanning, 33, 1)
EVT_CALL(EnableTexPanning, 36, 1)
EVT_CALL(EnableTexPanning, 37, 1)
EVT_CALL(EnableTexPanning, 40, 1)
EVT_CALL(EnableTexPanning, 42, 1)
EVT_CALL(EnableTexPanning, 44, 1)
EVT_CALL(EnableTexPanning, 45, 1)
EVT_CALL(EnableTexPanning, 48, 1)
EVT_CALL(EnableTexPanning, 49, 1)
EVT_CALL(EnableTexPanning, 52, 1)
EVT_CALL(EnableTexPanning, 54, 1)
EVT_CALL(EnableTexPanning, 56, 1)
EVT_CALL(EnableTexPanning, 57, 1)
EVT_CALL(EnableTexPanning, 60, 1)
EVT_CALL(EnableTexPanning, 61, 1)
EVT_CALL(EnableTexPanning, 64, 1)
EVT_CALL(EnableTexPanning, 31, 1)
EVT_CALL(EnableTexPanning, 34, 1)
EVT_CALL(EnableTexPanning, 35, 1)
EVT_CALL(EnableTexPanning, 38, 1)
EVT_CALL(EnableTexPanning, 39, 1)
EVT_CALL(EnableTexPanning, 43, 1)
EVT_CALL(EnableTexPanning, 46, 1)
EVT_CALL(EnableTexPanning, 47, 1)
EVT_CALL(EnableTexPanning, 50, 1)
EVT_CALL(EnableTexPanning, 51, 1)
EVT_CALL(EnableTexPanning, 55, 1)
EVT_CALL(EnableTexPanning, 58, 1)
EVT_CALL(EnableTexPanning, 59, 1)
EVT_CALL(EnableTexPanning, 62, 1)
EVT_CALL(EnableTexPanning, 63, 1)
EVT_THREAD
EVT_SET(EVT_VAR(0), 0)
EVT_SET(EVT_VAR(1), 0)
EVT_LABEL(0)
EVT_ADD(EVT_VAR(0), 140)
EVT_IF_GT(EVT_VAR(0), 65536)
EVT_ADD(EVT_VAR(0), -65536)
EVT_END_IF
EVT_CALL(SetTexPanOffset, 1, 0, EVT_VAR(0), 0)
EVT_ADD(EVT_VAR(1), -200)
EVT_IF_LT(EVT_VAR(1), 0)
EVT_ADD(EVT_VAR(1), 65536)
EVT_END_IF
EVT_CALL(SetTexPanOffset, 2, 0, EVT_VAR(1), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_THREAD
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80243654)))
EVT_EXEC(EnterWalk)
EVT_EXEC_WAIT(N(80243280))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CD72E0))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_3FCC) = {
0x00000000,
};
EvtSource N(80243FD0) = SCRIPT({
loop {
N(func_80240040_CD7320)(EVT_VAR(0));
if (EVT_VAR(0) == EVT_VAR(4)) {
GetPlayerActionState(EVT_VAR(0));
if (EVT_VAR(0) != 23) {
if (EVT_VAR(8) == 0) {
spawn {
GetModelCenter(EVT_VAR(5));
PlaySoundAt(0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
}
}
if (EVT_VAR(7) < 90) {
if (EVT_VAR(7) == 0) {
sleep 5;
EVT_VAR(8) = 6;
ModifyColliderFlags(0, EVT_VAR(9), 0x7FFFFE00);
}
EVT_VAR(8) += 1;
EVT_VAR(7) += EVT_VAR(8);
}
goto 50;
}
}
if (EVT_VAR(7) != 0) {
EVT_VAR(8) -= 1;
EVT_VAR(7) += EVT_VAR(8);
if (EVT_VAR(7) <= 0) {
EVT_VAR(8) = 0;
EVT_VAR(7) = 0;
spawn {
GetModelCenter(EVT_VAR(5));
PlaySoundAt(0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
}
ModifyColliderFlags(1, EVT_VAR(9), 0x7FFFFE00);
}
}
50:
if (EVT_VAR(7) >= 90) {
EVT_VAR(8) = -1;
EVT_VAR(7) = 90;
}
RotateModel(EVT_VAR(5), EVT_VAR(7), -1, 0, 0);
RotateModel(EVT_VAR(6), EVT_VAR(7), -1, 0, 0);
sleep 1;
}
});
EvtSource N(80243FD0) = {
EVT_LOOP(0)
EVT_CALL(N(func_80240040_CD7320), EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), EVT_VAR(4))
EVT_CALL(GetPlayerActionState, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 23)
EVT_IF_EQ(EVT_VAR(8), 0)
EVT_THREAD
EVT_CALL(GetModelCenter, EVT_VAR(5))
EVT_CALL(PlaySoundAt, 0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_END_THREAD
EVT_END_IF
EVT_IF_LT(EVT_VAR(7), 90)
EVT_IF_EQ(EVT_VAR(7), 0)
EVT_WAIT_FRAMES(5)
EVT_SET(EVT_VAR(8), 6)
EVT_CALL(ModifyColliderFlags, 0, EVT_VAR(9), 0x7FFFFE00)
EVT_END_IF
EVT_ADD(EVT_VAR(8), 1)
EVT_ADD(EVT_VAR(7), EVT_VAR(8))
EVT_END_IF
EVT_GOTO(50)
EVT_END_IF
EVT_END_IF
EVT_IF_NE(EVT_VAR(7), 0)
EVT_SUB(EVT_VAR(8), 1)
EVT_ADD(EVT_VAR(7), EVT_VAR(8))
EVT_IF_LE(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(7), 0)
EVT_THREAD
EVT_CALL(GetModelCenter, EVT_VAR(5))
EVT_CALL(PlaySoundAt, 0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_END_THREAD
EVT_CALL(ModifyColliderFlags, 1, EVT_VAR(9), 0x7FFFFE00)
EVT_END_IF
EVT_END_IF
EVT_LABEL(50)
EVT_IF_GE(EVT_VAR(7), 90)
EVT_SET(EVT_VAR(8), -1)
EVT_SET(EVT_VAR(7), 90)
EVT_END_IF
EVT_CALL(RotateModel, EVT_VAR(5), EVT_VAR(7), -1, 0, 0)
EVT_CALL(RotateModel, EVT_VAR(6), EVT_VAR(7), -1, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(80244284) = SCRIPT({
EVT_VAR(4) = 35;
EVT_VAR(5) = 14;
EVT_VAR(6) = 15;
EVT_VAR(7) = EVT_MAP_VAR(10);
EVT_VAR(8) = EVT_MAP_VAR(11);
EVT_VAR(9) = 38;
spawn N(80243FD0);
EVT_VAR(4) = 36;
EVT_VAR(5) = 19;
EVT_VAR(6) = 20;
EVT_VAR(7) = EVT_MAP_VAR(12);
EVT_VAR(8) = EVT_MAP_VAR(13);
EVT_VAR(9) = 39;
spawn N(80243FD0);
EVT_VAR(4) = 37;
EVT_VAR(5) = 24;
EVT_VAR(6) = 25;
EVT_VAR(7) = EVT_MAP_VAR(14);
EVT_VAR(8) = EVT_MAP_VAR(15);
EVT_VAR(9) = 40;
spawn N(80243FD0);
});
EvtSource N(80244284) = {
EVT_SET(EVT_VAR(4), 35)
EVT_SET(EVT_VAR(5), 14)
EVT_SET(EVT_VAR(6), 15)
EVT_SET(EVT_VAR(7), EVT_MAP_VAR(10))
EVT_SET(EVT_VAR(8), EVT_MAP_VAR(11))
EVT_SET(EVT_VAR(9), 38)
EVT_EXEC(N(80243FD0))
EVT_SET(EVT_VAR(4), 36)
EVT_SET(EVT_VAR(5), 19)
EVT_SET(EVT_VAR(6), 20)
EVT_SET(EVT_VAR(7), EVT_MAP_VAR(12))
EVT_SET(EVT_VAR(8), EVT_MAP_VAR(13))
EVT_SET(EVT_VAR(9), 39)
EVT_EXEC(N(80243FD0))
EVT_SET(EVT_VAR(4), 37)
EVT_SET(EVT_VAR(5), 24)
EVT_SET(EVT_VAR(6), 25)
EVT_SET(EVT_VAR(7), EVT_MAP_VAR(14))
EVT_SET(EVT_VAR(8), EVT_MAP_VAR(15))
EVT_SET(EVT_VAR(9), 40)
EVT_EXEC(N(80243FD0))
EVT_RETURN
EVT_END
};
static s32 N(pad_XXX)[] = { 0, 0};
@ -318,13 +329,15 @@ NpcAISettings N(npcAISettings_80244424) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80244454) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -650);
SetSelfVar(6, 30);
SetSelfVar(1, 400);
N(func_80241C64_CD8F44)(N(npcAISettings_80244424));
});
EvtSource N(npcAI_80244454) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -650)
EVT_CALL(SetSelfVar, 6, 30)
EVT_CALL(SetSelfVar, 1, 400)
EVT_CALL(N(func_80241C64_CD8F44), EVT_PTR(N(npcAISettings_80244424)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802444C4) = {
.height = 28,
@ -348,31 +361,32 @@ NpcAISettings N(npcAISettings_802444F0) = {
.unk_2C = 3,
};
EvtSource N(npcAI_80244520) = SCRIPT({
SetSelfVar(2, 3);
SetSelfVar(3, 18);
SetSelfVar(5, 3);
SetSelfVar(7, 4);
N(func_80242918_CD9BF8)(N(npcAISettings_802444F0));
});
EvtSource N(npcAI_80244520) = {
EVT_CALL(SetSelfVar, 2, 3)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(SetSelfVar, 5, 3)
EVT_CALL(SetSelfVar, 7, 4)
EVT_CALL(N(func_80242918_CD9BF8), EVT_PTR(N(npcAISettings_802444F0)))
EVT_RETURN
EVT_END
};
EvtSource N(80244590) = SCRIPT({
SetNpcRotation(NPC_SELF, 0, 0, 0);
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
SetSelfVar(10, 100);
DoNpcDefeat();
}
== 2 {
func_80045900(0);
}
== 3 {
SetEnemyFlagBits(-1, 16, 1);
RemoveNpc(NPC_SELF);
}
}
});
EvtSource N(80244590) = {
EVT_CALL(SetNpcRotation, NPC_SELF, 0, 0, 0)
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CALL(SetSelfVar, 10, 100)
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(2)
EVT_CALL(func_80045900, 0)
EVT_CASE_EQ(3)
EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
EVT_CALL(RemoveNpc, NPC_SELF)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024465C) = {
.height = 21,
@ -603,11 +617,13 @@ static s32 N(pad_527C) = {
0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EA588, 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1390));
MakeItemEntity(ITEM_LETTER09, -245, 0, 105, 17, EVT_SAVE_FLAG(1389));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EA588, 660, 60, -115, 0, 130, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1390))
EVT_CALL(MakeItemEntity, ITEM_LETTER09, -245, 0, 105, 17, EVT_SAVE_FLAG(1389))
EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc23.inc.c"

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@
#include "world/common/foliage.inc.c"
EvtSource N(80247024) = SCRIPT({
});
EvtSource N(80247024) = {
EVT_RETURN
EVT_END
};

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -20,42 +20,47 @@ MapConfig N(config) = {
.tattle = { MSG_flo_22_tattle },
};
EvtSource N(802402E0) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(802402E0) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80240350) = EXIT_WALK_SCRIPT(60, 0, "flo_03", 1);
EvtSource N(802403AC) = SCRIPT({
bind N(exitWalk_80240350) TRIGGER_FLOOR_ABOVE 0;
});
EvtSource N(802403AC) = {
EVT_BIND_TRIGGER(N(exitWalk_80240350), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_80240DE4));
spawn N(80241F6C);
spawn N(80241528);
GetEntryID(EVT_VAR(0));
ModifyColliderFlags(0, 1, 0x7FFFFE00);
EVT_VAR(0) = N(802403AC);
spawn EnterWalk;
spawn N(80240E24);
await N(802402E0);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CEC240)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80240DE4)))
EVT_EXEC(N(80241F6C))
EVT_EXEC(N(80241528))
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(802403AC)))
EVT_EXEC(EnterWalk)
EVT_EXEC(N(80240E24))
EVT_EXEC_WAIT(N(802402E0))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CEC240))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_518)[] = {
0x00000000, 0x00000000,
@ -67,101 +72,104 @@ NpcSettings N(npcSettings_80240520) = {
.level = 99,
};
EvtSource N(idle_8024054C) = SCRIPT({
EVT_MAP_VAR(10) = 0;
loop {
match EVT_MAP_VAR(10) {
== 0 {}
== 1 {
SetPlayerAnimation(0x1002E);
EVT_MAP_VAR(10) = 0;
StartBattle();
}
}
sleep 1;
}
});
EvtSource N(idle_8024054C) = {
EVT_SET(EVT_MAP_VAR(10), 0)
EVT_LOOP(0)
EVT_SWITCH(EVT_MAP_VAR(10))
EVT_CASE_EQ(0)
EVT_CASE_EQ(1)
EVT_CALL(SetPlayerAnimation, 65582)
EVT_SET(EVT_MAP_VAR(10), 0)
EVT_CALL(StartBattle)
EVT_END_SWITCH
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(defeat_802405E4) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
spawn {
sleep 25;
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE);
}
DoNpcDefeat();
}
== 1 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
== 2 {
SetNpcAnimation(NPC_SELF, NPC_ANIM_bzzap_Palette_00_Anim_1);
SetNpcPos(NPC_SELF, 30, 60, 0);
sleep 10;
SetNpcJumpscale(NPC_SELF, 0);
NpcJump0(NPC_SELF, 30, 0, 0, 15);
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
}
});
EvtSource N(defeat_802405E4) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_THREAD
EVT_WAIT_FRAMES(25)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
EVT_END_THREAD
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(1)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_bzzap_Palette_00_Anim_1)
EVT_CALL(SetNpcPos, NPC_SELF, 30, 60, 0)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcJumpscale, NPC_SELF, 0)
EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_80240740) = SCRIPT({
BindNpcIdle(NPC_SELF, N(idle_8024054C));
BindNpcDefeat(NPC_SELF, N(defeat_802405E4));
});
EvtSource N(init_80240740) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_8024054C)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802405E4)))
EVT_RETURN
EVT_END
};
EvtSource N(idle_80240778) = SCRIPT({
EVT_MAP_VAR(11) = 0;
loop {
match EVT_MAP_VAR(11) {
== 0 {}
== 1 {
SetPlayerAnimation(0x1002E);
EVT_MAP_VAR(11) = 0;
StartBattle();
}
}
sleep 1;
}
});
EvtSource N(idle_80240778) = {
EVT_SET(EVT_MAP_VAR(11), 0)
EVT_LOOP(0)
EVT_SWITCH(EVT_MAP_VAR(11))
EVT_CASE_EQ(0)
EVT_CASE_EQ(1)
EVT_CALL(SetPlayerAnimation, 65582)
EVT_SET(EVT_MAP_VAR(11), 0)
EVT_CALL(StartBattle)
EVT_END_SWITCH
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_RETURN
EVT_END
};
EvtSource N(defeat_80240810) = SCRIPT({
GetBattleOutcome(EVT_VAR(0));
match EVT_VAR(0) {
== 0 {
spawn {
sleep 25;
SetNpcPos(NPC_SELF, 0, -1000, 0);
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE);
}
DoNpcDefeat();
}
== 1 {
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
== 3 {
SetNpcAnimation(NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1);
sleep 10;
SetNpcJumpscale(NPC_SELF, 2.0);
NpcJump0(NPC_SELF, 30, 0, 0, 15);
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
== 2 {
SetNpcAnimation(NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1);
sleep 10;
SetNpcJumpscale(NPC_SELF, 2.0);
NpcJump0(NPC_SELF, 30, 0, 0, 15);
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
}
});
EvtSource N(defeat_80240810) = {
EVT_CALL(GetBattleOutcome, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_THREAD
EVT_WAIT_FRAMES(25)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
EVT_END_THREAD
EVT_CALL(DoNpcDefeat)
EVT_CASE_EQ(1)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CASE_EQ(3)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FIXED(2.0))
EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_CASE_EQ(2)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FIXED(2.0))
EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(init_802409CC) = SCRIPT({
BindNpcIdle(NPC_SELF, N(idle_80240778));
BindNpcDefeat(NPC_SELF, N(defeat_80240810));
});
EvtSource N(init_802409CC) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80240778)))
EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_80240810)))
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80240A04) = {
.id = NPC_BZZAP,
@ -248,120 +256,126 @@ s32 N(itemList_80240E10)[] = {
ITEM_NONE,
};
EvtSource N(80240E24) = SCRIPT({
DisablePlayerInput(TRUE);
sleep 20;
ShowMessageAtScreenPos(MESSAGE_ID(0x11, 0x00DB), 300, 120);
sleep 10;
DisablePlayerInput(FALSE);
});
EvtSource N(80240E24) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_WAIT_FRAMES(20)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x11, 0x00DB), 300, 120)
EVT_WAIT_FRAMES(10)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(80240E84) = SCRIPT({
SetPlayerAnimation(0x6000E);
spawn {
GetPlayerPos(EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
EVT_VAR(6) = 35;
EVT_VAR(5) = 5;
MakeItemEntity(EVT_VAR(8), EVT_VAR(2), EVT_VAR(6), 0, 1, 0);
EVT_VAR(7) = EVT_VAR(0);
MakeLerp(EVT_VAR(2), 35, 20, 5);
loop {
UpdateLerp();
SetItemPos(EVT_VAR(7), EVT_VAR(0), EVT_VAR(6), 0);
EVT_VAR(6) += EVT_VAR(5);
EVT_VAR(5) += -1;
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
RemoveItemEntity(EVT_VAR(7));
}
sleep 10;
PlaySoundAt(0x302, 0, 35, 0, 0);
sleep 5;
SetPlayerAnimation(ANIM_10002);
sleep 10;
});
EvtSource N(80240E84) = {
EVT_CALL(SetPlayerAnimation, 393230)
EVT_THREAD
EVT_CALL(GetPlayerPos, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_SET(EVT_VAR(6), 35)
EVT_SET(EVT_VAR(5), 5)
EVT_CALL(MakeItemEntity, EVT_VAR(8), EVT_VAR(2), EVT_VAR(6), 0, 1, 0)
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_CALL(MakeLerp, EVT_VAR(2), 35, 20, 5)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(SetItemPos, EVT_VAR(7), EVT_VAR(0), EVT_VAR(6), 0)
EVT_ADD(EVT_VAR(6), EVT_VAR(5))
EVT_ADD(EVT_VAR(5), -1)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_END_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAt, 0x302, 0, 35, 0, 0)
EVT_WAIT_FRAMES(5)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_WAIT_FRAMES(10)
EVT_RETURN
EVT_END
};
EvtSource N(80241028) = SCRIPT({
DisablePlayerInput(TRUE);
DisablePlayerInput(FALSE);
ShowConsumableChoicePopup();
CloseChoicePopup();
DisablePlayerInput(TRUE);
EVT_VAR(8) = EVT_VAR(0);
match EVT_VAR(8) {
<= -1 {}
<= 0 {
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x015C), 160, 40);
}
== 158 {
await N(80240E84);
RemoveItemAt(EVT_VAR(1));
if (EVT_SAVE_FLAG(1395) == 0) {
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DD), 35, 35, 0);
EVT_SAVE_FLAG(1395) = 1;
MakeItemEntity(ITEM_FLOWER_SAVER_B, -35, 0, 0, 0, EVT_SAVE_FLAG(1392));
EVT_VAR(7) = EVT_VAR(0);
SetNpcFlagBits(NPC_BZZAP, ((0x00000002)), TRUE);
SetNpcFlagBits(NPC_BZZAP, ((NPC_FLAG_HAS_SHADOW)), FALSE);
SetNpcPos(NPC_BZZAP, 35, 0, 0);
SetNpcJumpscale(NPC_BZZAP, 1.0);
spawn {
NpcJump0(NPC_BZZAP, -53, 0, 0, 25);
NpcJump0(NPC_BZZAP, -73, 0, 0, 15);
NpcJump0(NPC_BZZAP, -83, 0, 0, 8);
}
loop 53 {
GetNpcPos(NPC_BZZAP, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
SetItemPos(EVT_VAR(7), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3));
sleep 1;
}
SetNpcPos(NPC_BZZAP, 0, -1000, 0);
SetNpcFlagBits(NPC_BZZAP, ((0x00000002)), FALSE);
SetNpcFlagBits(NPC_BZZAP, ((NPC_FLAG_HAS_SHADOW)), TRUE);
} else {
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DE), 35, 35, 0);
}
} else {
await N(80240E84);
RemoveItemAt(EVT_VAR(1));
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DC), 35, 35, 0);
RandInt(1, EVT_VAR(1));
if (EVT_VAR(1) == 0) {
SetNpcJumpscale(NPC_BZZAP, 0.0);
NpcFacePlayer(NPC_BZZAP, 0);
sleep 1;
SetNpcPos(NPC_BZZAP, 30, 0, 0);
SetNpcAnimation(NPC_BZZAP, NPC_ANIM_bzzap_Palette_00_Anim_1);
NpcJump0(NPC_BZZAP, 30, 60, 0, 20);
sleep 10;
SetNpcAnimation(NPC_BZZAP, NPC_ANIM_bzzap_Palette_00_Anim_4);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 20;
NpcJump0(NPC_BZZAP, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5);
EVT_MAP_VAR(10) = 1;
} else {
SetNpcPos(NPC_DAYZEE, 30, 0, 0);
SetNpcAnimation(NPC_DAYZEE, NPC_ANIM_dayzee_Palette_00_Anim_E);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += 20;
SetNpcJumpscale(NPC_DAYZEE, 2.0);
NpcJump0(NPC_DAYZEE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20);
EVT_MAP_VAR(11) = 1;
}
}
}
DisablePlayerInput(FALSE);
});
EvtSource N(80241028) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_CALL(ShowConsumableChoicePopup)
EVT_CALL(CloseChoicePopup)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_SET(EVT_VAR(8), EVT_VAR(0))
EVT_SWITCH(EVT_VAR(8))
EVT_CASE_LE(-1)
EVT_CASE_LE(0)
EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x015C), 160, 40)
EVT_CASE_EQ(158)
EVT_EXEC_WAIT(N(80240E84))
EVT_CALL(RemoveItemAt, EVT_VAR(1))
EVT_IF_EQ(EVT_SAVE_FLAG(1395), 0)
EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DD), 35, 35, 0)
EVT_SET(EVT_SAVE_FLAG(1395), 1)
EVT_CALL(MakeItemEntity, ITEM_FLOWER_SAVER_B, -35, 0, 0, 0, EVT_SAVE_FLAG(1392))
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_2)), TRUE)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_HAS_SHADOW)), FALSE)
EVT_CALL(SetNpcPos, 0, 35, 0, 0)
EVT_CALL(SetNpcJumpscale, 0, EVT_FIXED(1.0))
EVT_THREAD
EVT_CALL(NpcJump0, 0, -53, 0, 0, 25)
EVT_CALL(NpcJump0, 0, -73, 0, 0, 15)
EVT_CALL(NpcJump0, 0, -83, 0, 0, 8)
EVT_END_THREAD
EVT_LOOP(53)
EVT_CALL(GetNpcPos, 0, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
EVT_CALL(SetItemPos, EVT_VAR(7), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(SetNpcPos, 0, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_2)), FALSE)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_HAS_SHADOW)), TRUE)
EVT_ELSE
EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DE), 35, 35, 0)
EVT_END_IF
EVT_CASE_DEFAULT
EVT_EXEC_WAIT(N(80240E84))
EVT_CALL(RemoveItemAt, EVT_VAR(1))
EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DC), 35, 35, 0)
EVT_CALL(RandInt, 1, EVT_VAR(1))
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_CALL(SetNpcJumpscale, 0, EVT_FIXED(0.0))
EVT_CALL(NpcFacePlayer, 0, 0)
EVT_WAIT_FRAMES(1)
EVT_CALL(SetNpcPos, 0, 30, 0, 0)
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_bzzap_Palette_00_Anim_1)
EVT_CALL(NpcJump0, 0, 30, 60, 0, 20)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_bzzap_Palette_00_Anim_4)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 20)
EVT_CALL(NpcJump0, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
EVT_SET(EVT_MAP_VAR(10), 1)
EVT_ELSE
EVT_CALL(SetNpcPos, 1, 30, 0, 0)
EVT_CALL(SetNpcAnimation, 1, NPC_ANIM_dayzee_Palette_00_Anim_E)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), 20)
EVT_CALL(SetNpcJumpscale, 1, EVT_FIXED(2.0))
EVT_CALL(NpcJump0, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20)
EVT_SET(EVT_MAP_VAR(11), 1)
EVT_END_IF
EVT_END_SWITCH
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};
EvtSource N(80241528) = SCRIPT({
bind_padlock N(80241028) TRIGGER_WALL_PRESS_A 9 N(itemList_80240E10);
if (EVT_SAVE_FLAG(1395) == 1) {
MakeItemEntity(ITEM_FLOWER_SAVER_B, -83, 0, 0, 0, EVT_SAVE_FLAG(1392));
}
});
EvtSource N(80241528) = {
EVT_BIND_PADLOCK(N(80241028), TRIGGER_WALL_PRESS_A, 9, EVT_PTR(N(itemList_80240E10)), 0, 1)
EVT_IF_EQ(EVT_SAVE_FLAG(1395), 1)
EVT_CALL(MakeItemEntity, ITEM_FLOWER_SAVER_B, -83, 0, 0, 0, EVT_SAVE_FLAG(1392))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_1594)[] = {
0x00000000, 0x00000000, 0x00000000,

View File

@ -24,11 +24,13 @@ ShakeTreeConfig N(tree2) = {
Vec4f N(triggerCoord_80241F5C) = { 150.0f, 0.0f, 135.0f, 0.0f };
EvtSource N(80241F6C) = SCRIPT({
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 14;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80241F28);
EVT_VAR(0) = N(tree2);
bind N(shakeTree) TRIGGER_WALL_HAMMER 16;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80241F5C);
});
EvtSource N(80241F6C) = {
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 14, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80241F28)), 1, 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree2)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 16, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80241F5C)), 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -28,88 +28,95 @@ MapConfig N(config) = {
.tattle = { MSG_flo_23_tattle },
};
EvtSource N(80240D30) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(80240D30) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(80240DA0) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80240DA0) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_8024104C) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 2);
EvtSource N(exitWalk_802410A8) = EXIT_WALK_SCRIPT(60, 1, "flo_11", 0);
EvtSource N(80241104) = SCRIPT({
bind N(exitWalk_802410A8) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_8024104C) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(80241104) = {
EVT_BIND_TRIGGER(N(exitWalk_802410A8), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_8024104C), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_80242568));
await N(makeEntities);
EVT_VAR(0) = -290;
EVT_VAR(1) = -190;
EVT_VAR(2) = 480;
EVT_VAR(3) = -90;
EVT_VAR(4) = 0;
spawn N(80240DA0);
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
EVT_VAR(0) = N(80241104);
spawn EnterWalk;
await N(80240D30);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CEE260)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80242568)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_SET(EVT_VAR(0), -290)
EVT_SET(EVT_VAR(1), -190)
EVT_SET(EVT_VAR(2), 480)
EVT_SET(EVT_VAR(3), -90)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240DA0))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80241104)))
EVT_EXEC(EnterWalk)
EVT_EXEC_WAIT(N(80240D30))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CEE260))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_12D8)[] = {
0x00000000, 0x00000000,
@ -129,34 +136,37 @@ s32 N(D_80241310_CEF570) = {
0x00000000,
};
EvtSource N(80241314) = SCRIPT({
EVT_VAR(9) = EVT_VAR(1);
ShowConsumableChoicePopup();
EVT_VAR(10) = EVT_VAR(0);
match EVT_VAR(0) {
== 0 {}
== -1 {}
else {
RemoveItemAt(EVT_VAR(1));
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
MakeItemEntity(EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0);
SetPlayerAnimation(0x60005);
sleep 30;
SetPlayerAnimation(ANIM_10002);
RemoveItemEntity(EVT_VAR(0));
}
}
N(func_802402C0_CEE520)(EVT_VAR(10));
CloseChoicePopup();
unbind;
});
EvtSource N(80241314) = {
EVT_SET(EVT_VAR(9), EVT_VAR(1))
EVT_CALL(ShowConsumableChoicePopup)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CASE_EQ(-1)
EVT_CASE_DEFAULT
EVT_CALL(RemoveItemAt, EVT_VAR(1))
EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(AddPlayerHandsOffset), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
EVT_CALL(SetPlayerAnimation, 393221)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(RemoveItemEntity, EVT_VAR(0))
EVT_END_SWITCH
EVT_CALL(N(func_802402C0_CEE520), EVT_VAR(10))
EVT_CALL(CloseChoicePopup)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80241448) = SCRIPT({
N(func_802402F8_CEE558)(EVT_VAR(0));
bind_padlock N(80241314) 0x10 0 0x802426E0; // TODO: fix raw ptr
N(func_8024026C_CEE4CC)(EVT_VAR(0));
});
EvtSource N(80241448) = {
EVT_CALL(N(func_802402F8_CEE558), EVT_VAR(0))
EVT_BIND_PADLOCK(N(80241314), 0x10, 0, EVT_PTR(N(D_802426E0)), 0, 1)
EVT_CALL(N(func_8024026C_CEE4CC), EVT_VAR(0))
EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_80241498) = {
.moveSpeed = 1.5f,
@ -171,13 +181,15 @@ NpcAISettings N(npcAISettings_80241498) = {
.unk_2C = 3,
};
EvtSource N(npcAI_802414C8) = SCRIPT({
SetSelfVar(2, 3);
SetSelfVar(3, 18);
SetSelfVar(5, 3);
SetSelfVar(7, 4);
N(func_80240728_CEE988)(N(npcAISettings_80241498));
});
EvtSource N(npcAI_802414C8) = {
EVT_CALL(SetSelfVar, 2, 3)
EVT_CALL(SetSelfVar, 3, 18)
EVT_CALL(SetSelfVar, 5, 3)
EVT_CALL(SetSelfVar, 7, 4)
EVT_CALL(N(func_80240728_CEE988), EVT_PTR(N(npcAISettings_80241498)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80241538) = {
.height = 21,
@ -188,159 +200,155 @@ NpcSettings N(npcSettings_80241538) = {
.level = 19,
};
EvtSource N(interact_80241564) = SCRIPT({
DisablePlayerInput(TRUE);
if (EVT_SAVE_FLAG(1365) == 0) {
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamDistance(0, 350);
SetCamPitch(0, 18.5, -7.5);
SetCamSpeed(0, 4.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0,
MESSAGE_ID(0x11, 0x0049));
SetPlayerAnimation(ANIM_THINKING);
N(func_80240C9C_CEEEFC)();
EVT_VAR(0) = N(D_80242850);
EVT_VAR(1) = 2;
await N(80241448);
match EVT_VAR(0) {
<= 0 {
SetPlayerAnimation(ANIM_STAND_STILL);
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004A));
} else {
EVT_VAR(8) = EVT_VAR(0);
N(func_80240C2C_CEEE8C)(EVT_VAR(0));
MakeItemEntity(EVT_VAR(8), 385, 20, -34, 1, 0);
EVT_VAR(7) = EVT_VAR(0);
PlaySoundAtNpc(NPC_SELF, SOUND_2095, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_3);
sleep 20;
RemoveItemEntity(EVT_VAR(7));
match EVT_VAR(8) {
== 158 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004D));
PlaySoundAtNpc(NPC_SELF, 0x21C, 0);
EndSpeech(-1, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_7);
PlaySoundAtCollider(13, 457, 0);
ModifyColliderFlags(0, 13, 0x7FFFFE00);
MakeLerp(0, 100, 30, 1);
loop {
UpdateLerp();
EVT_VAR(8) = (float) EVT_VAR(0);
EVT_VAR(9) = (float) EVT_VAR(0);
EVT_VAR(8) *= 0.5;
EVT_VAR(9) *= 1.2001953125;
RotateModel(59, EVT_VAR(8), 0, -1, 0);
RotateModel(60, EVT_VAR(8), 0, -1, 0);
RotateModel(61, EVT_VAR(8), 0, -1, 0);
RotateModel(55, EVT_VAR(9), 0, 1, 0);
RotateModel(56, EVT_VAR(9), 0, 1, 0);
RotateModel(57, EVT_VAR(9), 0, 1, 0);
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_5);
EVT_SAVE_FLAG(1365) = 1;
}
== 159 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004C));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1);
}
== 160 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004C));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1);
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0,
MESSAGE_ID(0x11, 0x004B));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_6);
PlaySoundAtNpc(NPC_SELF, 0x2096, 0);
MakeItemEntity(EVT_VAR(8), 375, 20, 0, 1, 0);
EVT_VAR(7) = EVT_VAR(0);
sleep 5;
GetAngleToPlayer(-1, EVT_VAR(0));
if (EVT_VAR(0) < 180) {
MakeLerp(0, 100, 7, 0);
loop {
UpdateLerp();
EVT_VAR(2) = -0.5;
EVT_VAR(3) = -0.19921875;
EVT_VAR(4) = 0.900390625;
EVT_VAR(2) *= (float) EVT_VAR(0);
EVT_VAR(3) *= (float) EVT_VAR(0);
EVT_VAR(4) *= (float) EVT_VAR(0);
EVT_VAR(2) += 380.0;
EVT_VAR(3) += 15.0;
EVT_VAR(4) += -30.0;
N(func_80240B68_CEEDC8)(EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
} else {
MakeLerp(0, 100, 7, 0);
loop {
UpdateLerp();
EVT_VAR(2) = 0.5;
EVT_VAR(3) = -0.19921875;
EVT_VAR(4) = 1.0;
EVT_VAR(2) *= (float) EVT_VAR(0);
EVT_VAR(3) *= (float) EVT_VAR(0);
EVT_VAR(4) *= (float) EVT_VAR(0);
EVT_VAR(2) += 390.0;
EVT_VAR(3) += 15.0;
EVT_VAR(4) += -30.0;
N(func_80240B68_CEEDC8)(EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1);
RemoveItemEntity(EVT_VAR(7));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1);
EndSpeech(-1, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0);
}
}
}
}
spawn {
ResetCam(0, 6.0);
}
sleep 10;
} else {
if (EVT_STORY_PROGRESS < STORY_CH6_STAR_SPIRIT_RESCUED) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0,
MESSAGE_ID(0x11, 0x004E));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0,
MESSAGE_ID(0x11, 0x004F));
}
}
DisablePlayerInput(FALSE);
unbind;
});
EvtSource N(interact_80241564) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(EVT_SAVE_FLAG(1365), 0)
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamDistance, 0, 350)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.5), EVT_FIXED(-7.5))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(4.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0049))
EVT_CALL(SetPlayerAnimation, ANIM_THINKING)
EVT_CALL(N(func_80240C9C_CEEEFC))
EVT_SET(EVT_VAR(0), EVT_PTR(N(D_80242850)))
EVT_SET(EVT_VAR(1), 2)
EVT_EXEC_WAIT(N(80241448))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_LE(0)
EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004A))
EVT_CASE_DEFAULT
EVT_SET(EVT_VAR(8), EVT_VAR(0))
EVT_CALL(N(func_80240C2C_CEEE8C), EVT_VAR(0))
EVT_CALL(MakeItemEntity, EVT_VAR(8), 385, 20, -34, 1, 0)
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2095, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_3)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_SWITCH(EVT_VAR(8))
EVT_CASE_EQ(158)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004D))
EVT_CALL(PlaySoundAtNpc, NPC_SELF, 0x21C, 0)
EVT_CALL(EndSpeech, -1, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_7)
EVT_CALL(PlaySoundAtCollider, 13, 457, 0)
EVT_CALL(ModifyColliderFlags, 0, 13, 0x7FFFFE00)
EVT_CALL(MakeLerp, 0, 100, 30, 1)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(8), EVT_VAR(0))
EVT_SETF(EVT_VAR(9), EVT_VAR(0))
EVT_MULF(EVT_VAR(8), EVT_FIXED(0.5))
EVT_MULF(EVT_VAR(9), EVT_FIXED(1.2))
EVT_CALL(RotateModel, 59, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 60, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 61, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 55, EVT_VAR(9), 0, 1, 0)
EVT_CALL(RotateModel, 56, EVT_VAR(9), 0, 1, 0)
EVT_CALL(RotateModel, 57, EVT_VAR(9), 0, 1, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_5)
EVT_SET(EVT_SAVE_FLAG(1365), 1)
EVT_CASE_EQ(159)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004C))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1)
EVT_CASE_EQ(160)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004C))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1)
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_4, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x004B))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_6)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, 0x2096, 0)
EVT_CALL(MakeItemEntity, EVT_VAR(8), 375, 20, 0, 1, 0)
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_WAIT_FRAMES(5)
EVT_CALL(GetAngleToPlayer, -1, EVT_VAR(0))
EVT_IF_LT(EVT_VAR(0), 180)
EVT_CALL(MakeLerp, 0, 100, 7, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(2), EVT_FIXED(-0.5))
EVT_SETF(EVT_VAR(3), EVT_FIXED(-0.2))
EVT_SETF(EVT_VAR(4), EVT_FIXED(0.9))
EVT_MULF(EVT_VAR(2), EVT_VAR(0))
EVT_MULF(EVT_VAR(3), EVT_VAR(0))
EVT_MULF(EVT_VAR(4), EVT_VAR(0))
EVT_ADDF(EVT_VAR(2), EVT_FIXED(380.0))
EVT_ADDF(EVT_VAR(3), EVT_FIXED(15.0))
EVT_ADDF(EVT_VAR(4), EVT_FIXED(-30.0))
EVT_CALL(N(func_80240B68_CEEDC8), EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_ELSE
EVT_CALL(MakeLerp, 0, 100, 7, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(2), EVT_FIXED(0.5))
EVT_SETF(EVT_VAR(3), EVT_FIXED(-0.2))
EVT_SETF(EVT_VAR(4), EVT_FIXED(1.0))
EVT_MULF(EVT_VAR(2), EVT_VAR(0))
EVT_MULF(EVT_VAR(3), EVT_VAR(0))
EVT_MULF(EVT_VAR(4), EVT_VAR(0))
EVT_ADDF(EVT_VAR(2), EVT_FIXED(390.0))
EVT_ADDF(EVT_VAR(3), EVT_FIXED(15.0))
EVT_ADDF(EVT_VAR(4), EVT_FIXED(-30.0))
EVT_CALL(N(func_80240B68_CEEDC8), EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_END_IF
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1)
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_1)
EVT_CALL(EndSpeech, -1, NPC_ANIM_gate_flower_Palette_00_Anim_2, NPC_ANIM_gate_flower_Palette_00_Anim_1, 0)
EVT_END_SWITCH
EVT_END_SWITCH
EVT_THREAD
EVT_CALL(ResetCam, 0, EVT_FIXED(6.0))
EVT_END_THREAD
EVT_WAIT_FRAMES(10)
EVT_ELSE
EVT_IF_LT(EVT_SAVE_VAR(0), 57)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x004E))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_9, NPC_ANIM_gate_flower_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x004F))
EVT_END_IF
EVT_END_IF
EVT_CALL(DisablePlayerInput, FALSE)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(init_80241E70) = SCRIPT({
BindNpcInteract(NPC_SELF, N(interact_80241564));
if (EVT_SAVE_FLAG(1365) == 1) {
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_5);
ModifyColliderFlags(0, 13, 0x7FFFFE00);
RotateModel(59, 50, 0, -1, 0);
RotateModel(60, 50, 0, -1, 0);
RotateModel(61, 50, 0, -1, 0);
RotateModel(55, 120, 0, 1, 0);
RotateModel(56, 120, 0, 1, 0);
RotateModel(57, 120, 0, 1, 0);
}
});
EvtSource N(init_80241E70) = {
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80241564)))
EVT_IF_EQ(EVT_SAVE_FLAG(1365), 1)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_00_Anim_5)
EVT_CALL(ModifyColliderFlags, 0, 13, 0x7FFFFE00)
EVT_CALL(RotateModel, 59, 50, 0, -1, 0)
EVT_CALL(RotateModel, 60, 50, 0, -1, 0)
EVT_CALL(RotateModel, 61, 50, 0, -1, 0)
EVT_CALL(RotateModel, 55, 120, 0, 1, 0)
EVT_CALL(RotateModel, 56, 120, 0, 1, 0)
EVT_CALL(RotateModel, 57, 120, 0, 1, 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80241F98) = {
.id = NPC_GATE_FLOWER,
@ -446,14 +454,16 @@ static s32 N(pad_2598)[] = {
0x00000000, 0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EA0C4, 100, 60, 5, 0, MAKE_ENTITY_END);
MakeEntity(0x802EA588, 100, 145, 0, 0, ITEM_SHOOTING_STAR, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1409));
MakeEntity(0x802EA588, 25, 60, 0, 0, ITEM_COIN, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1408));
MakeEntity(0x802EAA54, -50, 0, 0, 90, ITEM_LETTER07, MAKE_ENTITY_END);
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, EVT_PTR(D_802EA0C4), 100, 60, 5, 0, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, 0x802EA588, 100, 145, 0, 0, 131, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1409))
EVT_CALL(MakeEntity, 0x802EA588, 25, 60, 0, 0, 343, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1408))
EVT_CALL(MakeEntity, 0x802EAA54, -50, 0, 0, 90, 60, MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};
#include "world/common/GetNpcCollisionHeight.inc.c"

View File

@ -6,6 +6,8 @@
#define NAMESPACE flo_23
extern s32 D_802EA0C4;
ApiStatus N(AddPlayerHandsOffset)(Evt* script, s32 isInitialCall);
ApiStatus N(func_80240000_CEE260)(Evt* script, s32 isInitialCall);
ApiStatus N(func_8024026C_CEE4CC)(Evt* script, s32 isInitialCall);

View File

@ -15,111 +15,119 @@ MapConfig N(config) = {
.tattle = { MSG_flo_24_tattle },
};
EvtSource N(80240600) = SCRIPT({
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
if (EVT_STORY_PROGRESS >= STORY_CH6_FILLED_SPRING_WITH_WATER) {
PlaySound(0x80000022);
}
});
EvtSource N(80240600) = {
EVT_IF_LT(EVT_SAVE_VAR(0), 53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_ELSE
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_IF
EVT_IF_GE(EVT_SAVE_VAR(0), 49)
EVT_CALL(PlaySound, 0x80000022)
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(80240690) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80240690) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_8024093C) = EXIT_WALK_SCRIPT(60, 0, "flo_08", 1);
EvtSource N(exitWalk_80240998) = EXIT_WALK_SCRIPT(60, 1, "flo_10", 0);
EvtSource N(802409F4) = SCRIPT({
bind N(exitWalk_8024093C) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_80240998) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(802409F4) = {
EVT_BIND_TRIGGER(N(exitWalk_8024093C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_80240998), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
await N(makeEntities);
MakeTransformGroup(93);
MakeTransformGroup(100);
spawn N(80241728);
spawn N(80241ABC);
ModifyColliderFlags(3, 29, 0x00000004);
ModifyColliderFlags(3, 27, 0x00000004);
ModifyColliderFlags(3, 28, 0x00000004);
ModifyColliderFlags(0, 29, 0x00080000);
ModifyColliderFlags(0, 27, 0x00080000);
ModifyColliderFlags(0, 28, 0x00080000);
ModifyColliderFlags(3, 23, 0x00000001);
EVT_VAR(0) = -480;
EVT_VAR(1) = -350;
EVT_VAR(2) = -65;
EVT_VAR(3) = -260;
EVT_VAR(4) = 0;
spawn N(80240690);
EVT_VAR(0) = 100;
EVT_VAR(1) = -350;
EVT_VAR(2) = 480;
EVT_VAR(3) = -260;
EVT_VAR(4) = 0;
spawn N(80240690);
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) == 2) {
spawn N(8024183C);
spawn N(802409F4);
} else {
EVT_VAR(0) = N(802409F4);
spawn EnterWalk;
}
await N(80240600);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CF0940)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_EXEC_WAIT(N(makeEntities))
EVT_CALL(MakeTransformGroup, 93)
EVT_CALL(MakeTransformGroup, 100)
EVT_EXEC(N(80241728))
EVT_EXEC(N(80241ABC))
EVT_CALL(ModifyColliderFlags, 3, 29, 0x00000004)
EVT_CALL(ModifyColliderFlags, 3, 27, 0x00000004)
EVT_CALL(ModifyColliderFlags, 3, 28, 0x00000004)
EVT_CALL(ModifyColliderFlags, 0, 29, 0x00080000)
EVT_CALL(ModifyColliderFlags, 0, 27, 0x00080000)
EVT_CALL(ModifyColliderFlags, 0, 28, 0x00080000)
EVT_CALL(ModifyColliderFlags, 3, 23, 0x00000001)
EVT_SET(EVT_VAR(0), -480)
EVT_SET(EVT_VAR(1), -350)
EVT_SET(EVT_VAR(2), -65)
EVT_SET(EVT_VAR(3), -260)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240690))
EVT_SET(EVT_VAR(0), 100)
EVT_SET(EVT_VAR(1), -350)
EVT_SET(EVT_VAR(2), 480)
EVT_SET(EVT_VAR(3), -260)
EVT_SET(EVT_VAR(4), 0)
EVT_EXEC(N(80240690))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_EQ(EVT_VAR(0), 2)
EVT_EXEC(N(8024183C))
EVT_EXEC(N(802409F4))
EVT_ELSE
EVT_SET(EVT_VAR(0), EVT_PTR(N(802409F4)))
EVT_EXEC(EnterWalk)
EVT_END_IF
EVT_EXEC_WAIT(N(80240600))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CF0940))
EVT_END_IF
EVT_RETURN
EVT_END
};
static s32 N(pad_D38)[] = {
0x00000000, 0x00000000,
@ -163,72 +171,76 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_80241718) = { 1.0f, 0.0f, -192.0f, 0.0f };
EvtSource N(80241728) = SCRIPT({
EVT_AREA_FLAG(31) = 0;
EVT_AREA_FLAG(32) = 0;
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 13;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80241718);
});
EvtSource N(80241728) = {
EVT_SET(EVT_AREA_FLAG(31), 0)
EVT_SET(EVT_AREA_FLAG(32), 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 13, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80241718)), 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(updateTexturePan_802417A0) = SCRIPT({
group 0;
if (EVT_VAR(5) == 1) {
if (EVT_VAR(6) == 1) {
if (EVT_VAR(7) == 1) {
if (EVT_VAR(8) == 1) {
N(UnkTexturePanFunc)();
return;
}
}
}
}
N(UnkTexturePanFunc2)();
});
EvtSource N(updateTexturePan_802417A0) = {
EVT_SET_GROUP(0)
EVT_IF_EQ(EVT_VAR(5), 1)
EVT_IF_EQ(EVT_VAR(6), 1)
EVT_IF_EQ(EVT_VAR(7), 1)
EVT_IF_EQ(EVT_VAR(8), 1)
EVT_CALL(N(UnkTexturePanFunc))
EVT_RETURN
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_END_IF
EVT_CALL(N(UnkTexturePanFunc2))
EVT_RETURN
EVT_END
};
extern const char N(flo_10_name_hack)[];
// BUG: missing END_SPAWN_THREADs
#ifdef NON_EQUIVALENT
EvtSource N(8024183C) = SCRIPT({
DisablePlayerInput(TRUE);
TranslateGroup(100, 0, 45, 0);
UseSettingsFrom(0, 170, 0, 160);
SetPanTarget(0, 170, -90, 160);
SetCamDistance(0, 800);
SetCamPitch(0, 18.5, -7.5);
SetCamPosA(0, -300.0, 200.0);
SetCamPosB(0, 300.0, -150.0);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
PlaySound(0x80000050);
spawn {
MakeLerp(80, 90, 10, 0);
0:
UpdateLerp();
RotateModel(101, EVT_VAR(0), 1, 0, 0);
RotateModel(103, EVT_VAR(0), 1, 0, 0);
if (EVT_VAR(1) == 1) {
sleep 1;
goto 0;
}
spawn {
MakeLerp(45, 100, 150, 0);
loop {
UpdateLerp();
TranslateGroup(100, 0, EVT_VAR(0), 0);
sleep 1;
if (EVT_VAR(1) == 0) {
break loop;
}
}
sleep 30;
EVT_STORY_PROGRESS = STORY_CH6_FILLED_SPRING_WITH_WATER;
GotoMap("flo_10", 2);
sleep 100;
}
}
});
EvtSource N(8024183C) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(TranslateGroup, 100, 0, 45, 0)
EVT_CALL(UseSettingsFrom, 0, 170, 0, 160)
EVT_CALL(SetPanTarget, 0, 170, -90, 160)
EVT_CALL(SetCamDistance, 0, 800)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.5), EVT_FIXED(-7.5))
EVT_CALL(SetCamPosA, 0, EVT_FIXED(-300.0), EVT_FIXED(200.0))
EVT_CALL(SetCamPosB, 0, EVT_FIXED(300.0), EVT_FIXED(-150.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(PlaySound, 0x80000050)
EVT_THREAD
EVT_CALL(MakeLerp, 80, 90, 10, 0)
EVT_LABEL(0)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, 101, EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateModel, 103, EVT_VAR(0), 1, 0, 0)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_THREAD
EVT_CALL(MakeLerp, 45, 100, 150, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_CALL(TranslateGroup, 100, 0, EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(1), 0)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_WAIT_FRAMES(30)
EVT_SET(EVT_SAVE_VAR(0), 49)
EVT_CALL(GotoMap, EVT_PTR(UNK_STR_80242280), 2)
EVT_WAIT_FRAMES(100)
EVT_RETURN
EVT_END
};
#else
EvtSource N(8024183C) = {
EVT_CMD(EVT_OP_CALL, EVT_PTR(DisablePlayerInput), 1),
@ -271,135 +283,139 @@ EvtSource N(8024183C) = {
};
#endif
EvtSource N(80241ABC) = SCRIPT({
if (EVT_STORY_PROGRESS < STORY_CH6_FILLED_SPRING_WITH_WATER) {
EnableGroup(94, 0);
ModifyColliderFlags(0, 30, 0x7FFFFE00);
} else {
EnableGroup(65, 0);
}
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) != 2) {
EnableGroup(105, 0);
}
EnableTexPanning(89, 1);
EnableTexPanning(97, 1);
EnableTexPanning(90, 1);
EnableTexPanning(98, 1);
EnableTexPanning(91, 1);
EnableTexPanning(92, 1);
EnableTexPanning(101, 1);
EnableTexPanning(103, 1);
EnableTexPanning(99, 1);
spawn {
EVT_VAR(0) = 1;
EVT_VAR(1) = 140;
EVT_VAR(2) = -80;
EVT_VAR(3) = -70;
EVT_VAR(4) = 100;
EVT_VAR(5) = 1;
EVT_VAR(6) = 1;
EVT_VAR(7) = 1;
EVT_VAR(8) = 1;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
spawn {
EVT_VAR(0) = 2;
EVT_VAR(1) = -70;
EVT_VAR(2) = 100;
EVT_VAR(3) = 100;
EVT_VAR(4) = -40;
EVT_VAR(5) = 1;
EVT_VAR(6) = 1;
EVT_VAR(7) = 1;
EVT_VAR(8) = 1;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
spawn {
EVT_VAR(0) = 3;
EVT_VAR(1) = 0;
EVT_VAR(2) = -800;
EVT_VAR(3) = 0;
EVT_VAR(4) = 0;
EVT_VAR(5) = 0;
EVT_VAR(6) = 1;
EVT_VAR(7) = 0;
EVT_VAR(8) = 0;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
spawn {
EVT_VAR(0) = 4;
EVT_VAR(1) = 0;
EVT_VAR(2) = -800;
EVT_VAR(3) = -200;
EVT_VAR(4) = 100;
EVT_VAR(5) = 0;
EVT_VAR(6) = 1;
EVT_VAR(7) = 1;
EVT_VAR(8) = 1;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
spawn {
EVT_VAR(0) = 5;
EVT_VAR(1) = 0;
EVT_VAR(2) = -2500;
EVT_VAR(3) = 0;
EVT_VAR(4) = 0;
EVT_VAR(5) = 0;
EVT_VAR(6) = 1;
EVT_VAR(7) = 0;
EVT_VAR(8) = 0;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
spawn {
EVT_VAR(0) = 6;
EVT_VAR(1) = 0;
EVT_VAR(2) = -2500;
EVT_VAR(3) = -200;
EVT_VAR(4) = 100;
EVT_VAR(5) = 1;
EVT_VAR(6) = 1;
EVT_VAR(7) = 1;
EVT_VAR(8) = 1;
EVT_VAR(9) = 0;
EVT_VAR(10) = 0;
EVT_VAR(11) = 0;
EVT_VAR(12) = 0;
spawn N(updateTexturePan_802417A0);
}
});
EvtSource N(80241ABC) = {
EVT_IF_LT(EVT_SAVE_VAR(0), 49)
EVT_CALL(EnableGroup, 94, 0)
EVT_CALL(ModifyColliderFlags, 0, 30, 0x7FFFFE00)
EVT_ELSE
EVT_CALL(EnableGroup, 65, 0)
EVT_END_IF
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 2)
EVT_CALL(EnableGroup, 105, 0)
EVT_END_IF
EVT_CALL(EnableTexPanning, 89, 1)
EVT_CALL(EnableTexPanning, 97, 1)
EVT_CALL(EnableTexPanning, 90, 1)
EVT_CALL(EnableTexPanning, 98, 1)
EVT_CALL(EnableTexPanning, 91, 1)
EVT_CALL(EnableTexPanning, 92, 1)
EVT_CALL(EnableTexPanning, 101, 1)
EVT_CALL(EnableTexPanning, 103, 1)
EVT_CALL(EnableTexPanning, 99, 1)
EVT_THREAD
EVT_SET(EVT_VAR(0), 1)
EVT_SET(EVT_VAR(1), 140)
EVT_SET(EVT_VAR(2), -80)
EVT_SET(EVT_VAR(3), -70)
EVT_SET(EVT_VAR(4), 100)
EVT_SET(EVT_VAR(5), 1)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 1)
EVT_SET(EVT_VAR(8), 1)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 2)
EVT_SET(EVT_VAR(1), -70)
EVT_SET(EVT_VAR(2), 100)
EVT_SET(EVT_VAR(3), 100)
EVT_SET(EVT_VAR(4), -40)
EVT_SET(EVT_VAR(5), 1)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 1)
EVT_SET(EVT_VAR(8), 1)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 3)
EVT_SET(EVT_VAR(1), 0)
EVT_SET(EVT_VAR(2), -800)
EVT_SET(EVT_VAR(3), 0)
EVT_SET(EVT_VAR(4), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 4)
EVT_SET(EVT_VAR(1), 0)
EVT_SET(EVT_VAR(2), -800)
EVT_SET(EVT_VAR(3), -200)
EVT_SET(EVT_VAR(4), 100)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 1)
EVT_SET(EVT_VAR(8), 1)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 5)
EVT_SET(EVT_VAR(1), 0)
EVT_SET(EVT_VAR(2), -2500)
EVT_SET(EVT_VAR(3), 0)
EVT_SET(EVT_VAR(4), 0)
EVT_SET(EVT_VAR(5), 0)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 0)
EVT_SET(EVT_VAR(8), 0)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_THREAD
EVT_SET(EVT_VAR(0), 6)
EVT_SET(EVT_VAR(1), 0)
EVT_SET(EVT_VAR(2), -2500)
EVT_SET(EVT_VAR(3), -200)
EVT_SET(EVT_VAR(4), 100)
EVT_SET(EVT_VAR(5), 1)
EVT_SET(EVT_VAR(6), 1)
EVT_SET(EVT_VAR(7), 1)
EVT_SET(EVT_VAR(8), 1)
EVT_SET(EVT_VAR(9), 0)
EVT_SET(EVT_VAR(10), 0)
EVT_SET(EVT_VAR(11), 0)
EVT_SET(EVT_VAR(12), 0)
EVT_EXEC(N(updateTexturePan_802417A0))
EVT_END_THREAD
EVT_RETURN
EVT_END
};
static s32 N(pad_21A4)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EA564, -325, 60, -140, 0, ITEM_DIZZY_DIAL, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1393));
MakeEntity(0x802EA588, 325, 60, -140, 0, ITEM_MAPLE_SYRUP, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(1394));
MakeEntity(0x802EAB04, 335, 0, -160, 0, ITEM_MAP, MAKE_ENTITY_END);
AssignPanelFlag(EVT_SAVE_FLAG(1406));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EA564, -325, 60, -140, 0, 154, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1393))
EVT_CALL(MakeEntity, 0x802EA588, 325, 60, -140, 0, 163, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1394))
EVT_CALL(MakeEntity, 0x802EAB04, 335, 0, -160, 0, 8, MAKE_ENTITY_END)
EVT_CALL(AssignPanelFlag, EVT_SAVE_FLAG(1406))
EVT_RETURN
EVT_END
};
const char N(flo_10_name_hack)[] = "flo_10";

View File

@ -28,90 +28,97 @@ MapConfig N(config) = {
.tattle = { MSG_flo_25_tattle },
};
EvtSource N(80242330) = SCRIPT({
match EVT_STORY_PROGRESS {
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE {
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8);
} else {
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8);
}
}
});
EvtSource N(80242330) = {
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_LT(53)
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
EVT_CASE_DEFAULT
EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(802423A0) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(802423A0) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_8024264C) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 3);
EvtSource N(exitWalk_802426A8) = EXIT_WALK_SCRIPT(60, 1, "flo_07", 0);
EvtSource N(80242704) = SCRIPT({
bind N(exitWalk_802426A8) TRIGGER_FLOOR_ABOVE 0;
bind N(exitWalk_8024264C) TRIGGER_FLOOR_ABOVE 4;
});
EvtSource N(80242704) = {
EVT_BIND_TRIGGER(N(exitWalk_802426A8), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_8024264C), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS;
SetSpriteShading(-1);
SetCamLeadPlayer(0, 0);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
MakeNpcs(0, N(npcGroupList_80243C5C));
await N(makeEntities);
spawn N(80244D0C);
spawn N(802446BC);
EVT_VAR(0) = -270;
EVT_VAR(1) = -190;
EVT_VAR(2) = 640;
EVT_VAR(3) = -60;
EVT_VAR(4) = 60;
spawn N(802423A0);
ModifyColliderFlags(0, 1, 0x7FFFFE00);
ModifyColliderFlags(0, 5, 0x7FFFFE00);
EVT_VAR(0) = N(80242704);
spawn EnterWalk;
await N(80242330);
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) {
N(func_80240000_CF2BD0)();
}
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 38)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80243C5C)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC(N(80244D0C))
EVT_EXEC(N(802446BC))
EVT_SET(EVT_VAR(0), -270)
EVT_SET(EVT_VAR(1), -190)
EVT_SET(EVT_VAR(2), 640)
EVT_SET(EVT_VAR(3), -60)
EVT_SET(EVT_VAR(4), 60)
EVT_EXEC(N(802423A0))
EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80242704)))
EVT_EXEC(EnterWalk)
EVT_EXEC_WAIT(N(80242330))
EVT_IF_GE(EVT_SAVE_VAR(0), 53)
EVT_CALL(N(func_80240000_CF2BD0))
EVT_END_IF
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802428F0) = {
.height = 56,
@ -137,13 +144,15 @@ NpcAISettings N(npcAISettings_80242934) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80242964) = SCRIPT({
SetSelfVar(0, 1);
SetSelfVar(5, 0);
SetSelfVar(6, 0);
SetSelfVar(1, 600);
N(func_80241944_CF4514)(N(npcAISettings_80242934));
});
EvtSource N(npcAI_80242964) = {
EVT_CALL(SetSelfVar, 0, 1)
EVT_CALL(SetSelfVar, 5, 0)
EVT_CALL(SetSelfVar, 6, 0)
EVT_CALL(SetSelfVar, 1, 600)
EVT_CALL(N(func_80241944_CF4514), EVT_PTR(N(npcAISettings_80242934)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802429D4) = {
.height = 24,
@ -169,13 +178,15 @@ NpcAISettings N(npcAISettings_80242A00) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80242A30) = SCRIPT({
SetSelfVar(0, 0);
SetSelfVar(5, -630);
SetSelfVar(6, 50);
SetSelfVar(1, 200);
N(func_8024134C_CF3F1C)(N(npcAISettings_80242A00));
});
EvtSource N(npcAI_80242A30) = {
EVT_CALL(SetSelfVar, 0, 0)
EVT_CALL(SetSelfVar, 5, -630)
EVT_CALL(SetSelfVar, 6, 50)
EVT_CALL(SetSelfVar, 1, 200)
EVT_CALL(N(func_8024134C_CF3F1C), EVT_PTR(N(npcAISettings_80242A00)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80242AA0) = {
.height = 26,
@ -194,188 +205,187 @@ s32 N(D_80242AD0_CF56A0) = {
0x00000000,
};
EvtSource N(80242AD4) = SCRIPT({
EVT_VAR(9) = EVT_VAR(1);
ShowConsumableChoicePopup();
EVT_VAR(10) = EVT_VAR(0);
match EVT_VAR(0) {
== 0 {}
== -1 {}
else {
RemoveItemAt(EVT_VAR(1));
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
MakeItemEntity(EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0);
SetPlayerAnimation(0x60005);
sleep 30;
SetPlayerAnimation(ANIM_10002);
RemoveItemEntity(EVT_VAR(0));
}
}
N(func_80241DAC_CF497C)(EVT_VAR(10));
CloseChoicePopup();
unbind;
});
EvtSource N(80242AD4) = {
EVT_SET(EVT_VAR(9), EVT_VAR(1))
EVT_CALL(ShowConsumableChoicePopup)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(0)
EVT_CASE_EQ(-1)
EVT_CASE_DEFAULT
EVT_CALL(RemoveItemAt, EVT_VAR(1))
EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(N(AddPlayerHandsOffset), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
EVT_CALL(SetPlayerAnimation, 393221)
EVT_WAIT_FRAMES(30)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(RemoveItemEntity, EVT_VAR(0))
EVT_END_SWITCH
EVT_CALL(N(func_80241DAC_CF497C), EVT_VAR(10))
EVT_CALL(CloseChoicePopup)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(80242C08) = SCRIPT({
N(func_80241DE4_CF49B4)(EVT_VAR(0));
bind_padlock N(80242AD4) 0x10 0 N(D_80244A20);
N(func_80241D58_CF4928)(EVT_VAR(0));
});
EvtSource N(80242C08) = {
EVT_CALL(N(func_80241DE4_CF49B4), EVT_VAR(0))
EVT_BIND_PADLOCK(N(80242AD4), 0x10, 0, EVT_PTR(N(D_80244A20)), 0, 1)
EVT_CALL(N(func_80241D58_CF4928), EVT_VAR(0))
EVT_RETURN
EVT_END
};
EvtSource N(interact_80242C58) = SCRIPT({
DisablePlayerInput(TRUE);
if (EVT_SAVE_FLAG(1363) == 0) {
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamDistance(0, 350);
SetCamPitch(0, 18.5, -7.5);
SetCamSpeed(0, 4.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0,
MESSAGE_ID(0x11, 0x003B));
SetPlayerAnimation(ANIM_THINKING);
N(func_80241FB4_CF4B84)();
EVT_VAR(0) = 0x80245110;
EVT_VAR(1) = 0;
await N(80242C08);
match EVT_VAR(0) {
<= 0 {
SetPlayerAnimation(ANIM_STAND_STILL);
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003C));
} else {
EVT_VAR(8) = EVT_VAR(0);
N(func_80241F44_CF4B14)(EVT_VAR(0));
MakeItemEntity(EVT_VAR(8), 505, 20, -24, 1, 0);
EVT_VAR(7) = EVT_VAR(0);
PlaySoundAtNpc(NPC_SELF, SOUND_2095, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_3);
sleep 20;
RemoveItemEntity(EVT_VAR(7));
match EVT_VAR(8) {
== 159 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003F));
PlaySoundAtNpc(NPC_SELF, 0x21C, 0);
EndSpeech(-1, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0);
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_7);
PlaySoundAtCollider(14, 457, 0);
ModifyColliderFlags(0, 14, 0x7FFFFE00);
MakeLerp(0, 100, 30, 1);
loop {
UpdateLerp();
EVT_VAR(8) = (float) EVT_VAR(0);
EVT_VAR(9) = (float) EVT_VAR(0);
EVT_VAR(8) *= 0.5;
EVT_VAR(9) *= 1.2001953125;
RotateModel(86, EVT_VAR(8), 0, -1, 0);
RotateModel(87, EVT_VAR(8), 0, -1, 0);
RotateModel(88, EVT_VAR(8), 0, -1, 0);
RotateModel(82, EVT_VAR(9), 0, 1, 0);
RotateModel(83, EVT_VAR(9), 0, 1, 0);
RotateModel(84, EVT_VAR(9), 0, 1, 0);
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_5);
EVT_SAVE_FLAG(1363) = 1;
}
== 160 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003E));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1);
}
== 158 {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003E));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1);
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0,
MESSAGE_ID(0x11, 0x003D));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_6);
PlaySoundAtNpc(NPC_SELF, 0x2096, 0);
MakeItemEntity(EVT_VAR(8), -125, 20, 0, 1, 0);
EVT_VAR(7) = EVT_VAR(0);
sleep 5;
GetAngleToPlayer(-1, EVT_VAR(0));
if (EVT_VAR(0) < 180) {
MakeLerp(0, 100, 7, 0);
loop {
UpdateLerp();
EVT_VAR(2) = -0.5;
EVT_VAR(3) = -0.19921875;
EVT_VAR(4) = 0.900390625;
EVT_VAR(2) *= (float) EVT_VAR(0);
EVT_VAR(3) *= (float) EVT_VAR(0);
EVT_VAR(4) *= (float) EVT_VAR(0);
EVT_VAR(2) += 500.0;
EVT_VAR(3) += 15.0;
EVT_VAR(4) += -20.0;
N(func_80241E80_CF4A50)(EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
} else {
MakeLerp(0, 100, 7, 0);
loop {
UpdateLerp();
EVT_VAR(2) = 0.5;
EVT_VAR(3) = -0.19921875;
EVT_VAR(4) = 0.900390625;
EVT_VAR(2) *= (float) EVT_VAR(0);
EVT_VAR(3) *= (float) EVT_VAR(0);
EVT_VAR(4) *= (float) EVT_VAR(0);
EVT_VAR(2) += 510.0;
EVT_VAR(3) += 15.0;
EVT_VAR(4) += -20.0;
N(func_80241E80_CF4A50)(EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4));
sleep 1;
if (EVT_VAR(1) != 1) {
break loop;
}
}
}
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1);
RemoveItemEntity(EVT_VAR(7));
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1);
EndSpeech(-1, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0);
}
}
}
}
spawn {
ResetCam(0, 6.0);
}
sleep 10;
} else {
if (EVT_STORY_PROGRESS < STORY_CH6_STAR_SPIRIT_RESCUED) {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0,
MESSAGE_ID(0x11, 0x0040));
} else {
SpeakToPlayer(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0,
MESSAGE_ID(0x11, 0x0041));
}
}
DisablePlayerInput(FALSE);
unbind;
});
EvtSource N(interact_80242C58) = {
EVT_CALL(DisablePlayerInput, TRUE)
EVT_IF_EQ(EVT_SAVE_FLAG(1363), 0)
EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamDistance, 0, 350)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.5), EVT_FIXED(-7.5))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(4.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003B))
EVT_CALL(SetPlayerAnimation, ANIM_THINKING)
EVT_CALL(N(func_80241FB4_CF4B84))
EVT_SET(EVT_VAR(0), EVT_PTR(N(D_80245110)))
EVT_SET(EVT_VAR(1), 0)
EVT_EXEC_WAIT(N(80242C08))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_LE(0)
EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003C))
EVT_CASE_DEFAULT
EVT_SET(EVT_VAR(8), EVT_VAR(0))
EVT_CALL(N(func_80241F44_CF4B14), EVT_VAR(0))
EVT_CALL(MakeItemEntity, EVT_VAR(8), 505, 20, -24, 1, 0)
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2095, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_3)
EVT_WAIT_FRAMES(20)
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_SWITCH(EVT_VAR(8))
EVT_CASE_EQ(159)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003F))
EVT_CALL(PlaySoundAtNpc, NPC_SELF, 0x21C, 0)
EVT_CALL(EndSpeech, -1, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_7)
EVT_CALL(PlaySoundAtCollider, 14, 457, 0)
EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00)
EVT_CALL(MakeLerp, 0, 100, 30, 1)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(8), EVT_VAR(0))
EVT_SETF(EVT_VAR(9), EVT_VAR(0))
EVT_MULF(EVT_VAR(8), EVT_FIXED(0.5))
EVT_MULF(EVT_VAR(9), EVT_FIXED(1.2))
EVT_CALL(RotateModel, 86, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 87, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 88, EVT_VAR(8), 0, -1, 0)
EVT_CALL(RotateModel, 82, EVT_VAR(9), 0, 1, 0)
EVT_CALL(RotateModel, 83, EVT_VAR(9), 0, 1, 0)
EVT_CALL(RotateModel, 84, EVT_VAR(9), 0, 1, 0)
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_5)
EVT_SET(EVT_SAVE_FLAG(1363), 1)
EVT_CASE_EQ(160)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003E))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1)
EVT_CASE_EQ(158)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003E))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1)
EVT_CASE_DEFAULT
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_4, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0, MESSAGE_ID(0x11, 0x003D))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_6)
EVT_CALL(PlaySoundAtNpc, NPC_SELF, 0x2096, 0)
EVT_CALL(MakeItemEntity, EVT_VAR(8), -125, 20, 0, 1, 0)
EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_WAIT_FRAMES(5)
EVT_CALL(GetAngleToPlayer, -1, EVT_VAR(0))
EVT_IF_LT(EVT_VAR(0), 180)
EVT_CALL(MakeLerp, 0, 100, 7, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(2), EVT_FIXED(-0.5))
EVT_SETF(EVT_VAR(3), EVT_FIXED(-0.2))
EVT_SETF(EVT_VAR(4), EVT_FIXED(0.9))
EVT_MULF(EVT_VAR(2), EVT_VAR(0))
EVT_MULF(EVT_VAR(3), EVT_VAR(0))
EVT_MULF(EVT_VAR(4), EVT_VAR(0))
EVT_ADDF(EVT_VAR(2), EVT_FIXED(500.0))
EVT_ADDF(EVT_VAR(3), EVT_FIXED(15.0))
EVT_ADDF(EVT_VAR(4), EVT_FIXED(-20.0))
EVT_CALL(N(func_80241E80_CF4A50), EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_ELSE
EVT_CALL(MakeLerp, 0, 100, 7, 0)
EVT_LOOP(0)
EVT_CALL(UpdateLerp)
EVT_SETF(EVT_VAR(2), EVT_FIXED(0.5))
EVT_SETF(EVT_VAR(3), EVT_FIXED(-0.2))
EVT_SETF(EVT_VAR(4), EVT_FIXED(0.9))
EVT_MULF(EVT_VAR(2), EVT_VAR(0))
EVT_MULF(EVT_VAR(3), EVT_VAR(0))
EVT_MULF(EVT_VAR(4), EVT_VAR(0))
EVT_ADDF(EVT_VAR(2), EVT_FIXED(510.0))
EVT_ADDF(EVT_VAR(3), EVT_FIXED(15.0))
EVT_ADDF(EVT_VAR(4), EVT_FIXED(-20.0))
EVT_CALL(N(func_80241E80_CF4A50), EVT_VAR(7), EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_WAIT_FRAMES(1)
EVT_IF_NE(EVT_VAR(1), 1)
EVT_BREAK_LOOP
EVT_END_IF
EVT_END_LOOP
EVT_END_IF
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1)
EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_1)
EVT_CALL(EndSpeech, -1, NPC_ANIM_gate_flower_Palette_01_Anim_2, NPC_ANIM_gate_flower_Palette_01_Anim_1, 0)
EVT_END_SWITCH
EVT_END_SWITCH
EVT_THREAD
EVT_CALL(ResetCam, 0, EVT_FIXED(6.0))
EVT_END_THREAD
EVT_WAIT_FRAMES(10)
EVT_ELSE
EVT_IF_LT(EVT_SAVE_VAR(0), 57)
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0, MESSAGE_ID(0x11, 0x0040))
EVT_ELSE
EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_9, NPC_ANIM_gate_flower_Palette_01_Anim_8, 0, MESSAGE_ID(0x11, 0x0041))
EVT_END_IF
EVT_END_IF
EVT_CALL(DisablePlayerInput, FALSE)
EVT_UNBIND
EVT_RETURN
EVT_END
};
EvtSource N(init_80243564) = SCRIPT({
BindNpcInteract(NPC_SELF, N(interact_80242C58));
if (EVT_SAVE_FLAG(1363) == 1) {
SetNpcAnimation(NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_5);
ModifyColliderFlags(0, 14, 0x7FFFFE00);
RotateModel(86, 50, 0, -1, 0);
RotateModel(87, 50, 0, -1, 0);
RotateModel(88, 50, 0, -1, 0);
RotateModel(82, 120, 0, 1, 0);
RotateModel(83, 120, 0, 1, 0);
RotateModel(84, 120, 0, 1, 0);
}
});
EvtSource N(init_80243564) = {
EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80242C58)))
EVT_IF_EQ(EVT_SAVE_FLAG(1363), 1)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_gate_flower_Palette_01_Anim_5)
EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00)
EVT_CALL(RotateModel, 86, 50, 0, -1, 0)
EVT_CALL(RotateModel, 87, 50, 0, -1, 0)
EVT_CALL(RotateModel, 88, 50, 0, -1, 0)
EVT_CALL(RotateModel, 82, 120, 0, 1, 0)
EVT_CALL(RotateModel, 83, 120, 0, 1, 0)
EVT_CALL(RotateModel, 84, 120, 0, 1, 0)
EVT_END_IF
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_8024368C) = {
.id = NPC_GATE_FLOWER,
@ -493,10 +503,12 @@ static s32 N(pad_3C8C) = {
0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EAB04, -390, 0, 0, 0, ITEM_MAP, MAKE_ENTITY_END);
AssignPanelFlag(EVT_SAVE_FLAG(1407));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EAB04, -390, 0, 0, 0, 8, MAKE_ENTITY_END)
EVT_CALL(AssignPanelFlag, EVT_SAVE_FLAG(1407))
EVT_RETURN
EVT_END
};
static s32 N(pad_3CD8)[] = {
0x00000000, 0x00000000,

View File

@ -38,134 +38,142 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_802446AC) = { -388.0f, 0.0f, -92.0f, 0.0f };
EvtSource N(802446BC) = SCRIPT({
EVT_AREA_FLAG(33) = 0;
EVT_AREA_FLAG(34) = 0;
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 12;
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_802446AC);
});
EvtSource N(802446BC) = {
EVT_SET(EVT_AREA_FLAG(33), 0)
EVT_SET(EVT_AREA_FLAG(34), 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 12, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_802446AC)), 1, 0)
EVT_RETURN
EVT_END
};
static s32 N(pad_4734)[] = {
0x00000000, 0x00000000, 0x00000000,
};
EvtSource N(80244740) = SCRIPT({
group 11;
EVT_VAR(10) = EVT_VAR(0);
EVT_VAR(11) = EVT_VAR(1);
EVT_VAR(12) = EVT_VAR(2);
EVT_VAR(13) = EVT_VAR(3);
EVT_VAR(14) = EVT_VAR(4);
EVT_VAR(12) -= EVT_VAR(0);
EVT_VAR(13) -= EVT_VAR(1);
EVT_VAR(0) = (float) EVT_VAR(12);
EVT_VAR(0) /= 100.0;
EVT_VAR(15) = 100.0;
EVT_VAR(15) /= (float) EVT_VAR(0);
EVT_VAR(15) += 11;
EVT_VAR(5) = 200;
EVT_VAR(5) /= EVT_VAR(15);
EVT_VAR(5) += 1;
loop EVT_VAR(5) {
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
RandInt(199, EVT_VAR(2));
EVT_VAR(3) = 210;
EVT_VAR(3) -= EVT_VAR(2);
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
EVT_VAR(2) += EVT_VAR(14);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
sleep EVT_VAR(15);
0:
RandInt(EVT_VAR(12), EVT_VAR(0));
RandInt(EVT_VAR(13), EVT_VAR(1));
EVT_VAR(0) += EVT_VAR(10);
EVT_VAR(1) += EVT_VAR(11);
PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0);
sleep EVT_VAR(15);
goto 0;
});
EvtSource N(80244740) = {
EVT_SET_GROUP(11)
EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_ADD(EVT_VAR(15), 11)
EVT_SET(EVT_VAR(5), 200)
EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_ADD(EVT_VAR(5), 1)
EVT_LOOP(EVT_VAR(5))
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_SET(EVT_VAR(3), 210)
EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_ADD(EVT_VAR(2), EVT_VAR(14))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_END_LOOP
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_LABEL(0)
EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_CALL(PlayEffect, 0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(EVT_VAR(15))
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(802449EC) = SCRIPT({
EVT_VAR(9) = EVT_VAR(6);
EVT_VAR(8) = EVT_VAR(5);
EVT_VAR(7) = EVT_VAR(4);
EVT_VAR(6) = EVT_VAR(3);
EVT_VAR(5) = EVT_VAR(2);
EVT_VAR(4) = EVT_VAR(1);
EVT_VAR(3) = EVT_VAR(0);
EnableModel(EVT_VAR(6), 0);
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
N(UnkFunc43)();
if (EVT_VAR(0) == 0) {
sleep 1;
goto 0;
}
spawn {
sleep 5;
EnableModel(EVT_VAR(6), 1);
}
if (EVT_VAR(10) != 0) {
spawn {
sleep 5;
EVT_VAR(0) = EVT_VAR(3);
EVT_VAR(1) = EVT_VAR(4);
EVT_VAR(2) = EVT_VAR(5);
EVT_VAR(1) += 10;
EVT_VAR(2) += 8;
PlayEffect(0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0);
sleep 15;
EVT_VAR(1) -= 10;
MakeItemEntity(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0);
}
}
spawn {
sleep 10;
PlaySoundAt(0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5));
}
MakeLerp(0, 180, 20, 2);
1:
UpdateLerp();
RotateModel(EVT_VAR(8), EVT_VAR(0), 1, 0, 0);
RotateModel(EVT_VAR(9), EVT_VAR(0), 1, 0, 0);
if (EVT_VAR(1) == 1) {
sleep 1;
goto 1;
}
EnableModel(EVT_VAR(7), 0);
});
EvtSource N(802449EC) = {
EVT_SET(EVT_VAR(9), EVT_VAR(6))
EVT_SET(EVT_VAR(8), EVT_VAR(5))
EVT_SET(EVT_VAR(7), EVT_VAR(4))
EVT_SET(EVT_VAR(6), EVT_VAR(3))
EVT_SET(EVT_VAR(5), EVT_VAR(2))
EVT_SET(EVT_VAR(4), EVT_VAR(1))
EVT_SET(EVT_VAR(3), EVT_VAR(0))
EVT_CALL(EnableModel, EVT_VAR(6), 0)
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(N(UnkFunc43))
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_CALL(EnableModel, EVT_VAR(6), 1)
EVT_END_THREAD
EVT_IF_NE(EVT_VAR(10), 0)
EVT_THREAD
EVT_WAIT_FRAMES(5)
EVT_SET(EVT_VAR(0), EVT_VAR(3))
EVT_SET(EVT_VAR(1), EVT_VAR(4))
EVT_SET(EVT_VAR(2), EVT_VAR(5))
EVT_ADD(EVT_VAR(1), 10)
EVT_ADD(EVT_VAR(2), 8)
EVT_CALL(PlayEffect, 0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0)
EVT_WAIT_FRAMES(15)
EVT_SUB(EVT_VAR(1), 10)
EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0)
EVT_END_THREAD
EVT_END_IF
EVT_THREAD
EVT_WAIT_FRAMES(10)
EVT_CALL(PlaySoundAt, 0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_END_THREAD
EVT_CALL(MakeLerp, 0, 180, 20, 2)
EVT_LABEL(1)
EVT_CALL(UpdateLerp)
EVT_CALL(RotateModel, EVT_VAR(8), EVT_VAR(0), 1, 0, 0)
EVT_CALL(RotateModel, EVT_VAR(9), EVT_VAR(0), 1, 0, 0)
EVT_IF_EQ(EVT_VAR(1), 1)
EVT_WAIT_FRAMES(1)
EVT_GOTO(1)
EVT_END_IF
EVT_CALL(EnableModel, EVT_VAR(7), 0)
EVT_RETURN
EVT_END
};
EvtSource N(80244D0C) = SCRIPT({
GetModelCenter(57);
EVT_VAR(3) = 57;
EVT_VAR(4) = 58;
EVT_VAR(5) = 59;
EVT_VAR(6) = 60;
EVT_VAR(10) = 0;
spawn N(802449EC);
GetModelCenter(63);
EVT_VAR(3) = 63;
EVT_VAR(4) = 64;
EVT_VAR(5) = 65;
EVT_VAR(6) = 66;
EVT_VAR(10) = 0;
spawn N(802449EC);
GetModelCenter(69);
EVT_VAR(3) = 69;
EVT_VAR(4) = 70;
EVT_VAR(5) = 71;
EVT_VAR(6) = 72;
EVT_VAR(10) = 174;
spawn N(802449EC);
GetModelCenter(75);
EVT_VAR(3) = 75;
EVT_VAR(4) = 76;
EVT_VAR(5) = 77;
EVT_VAR(6) = 78;
EVT_VAR(10) = 0;
spawn N(802449EC);
});
EvtSource N(80244D0C) = {
EVT_CALL(GetModelCenter, 57)
EVT_SET(EVT_VAR(3), 57)
EVT_SET(EVT_VAR(4), 58)
EVT_SET(EVT_VAR(5), 59)
EVT_SET(EVT_VAR(6), 60)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802449EC))
EVT_CALL(GetModelCenter, 63)
EVT_SET(EVT_VAR(3), 63)
EVT_SET(EVT_VAR(4), 64)
EVT_SET(EVT_VAR(5), 65)
EVT_SET(EVT_VAR(6), 66)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802449EC))
EVT_CALL(GetModelCenter, 69)
EVT_SET(EVT_VAR(3), 69)
EVT_SET(EVT_VAR(4), 70)
EVT_SET(EVT_VAR(5), 71)
EVT_SET(EVT_VAR(6), 72)
EVT_SET(EVT_VAR(10), 174)
EVT_EXEC(N(802449EC))
EVT_CALL(GetModelCenter, 75)
EVT_SET(EVT_VAR(3), 75)
EVT_SET(EVT_VAR(4), 76)
EVT_SET(EVT_VAR(5), 77)
EVT_SET(EVT_VAR(6), 78)
EVT_SET(EVT_VAR(10), 0)
EVT_EXEC(N(802449EC))
EVT_RETURN
EVT_END
};

View File

@ -20,6 +20,8 @@ MapConfig N(config) = {
.tattle = { MSG_kmr_03_tattle },
};
EvtSource N(802406C0) = SCRIPT({
SetMusicTrack(0, SONG_PLEASANT_PATH, 0, 8);
});
EvtSource N(802406C0) = {
EVT_CALL(SetMusicTrack, 0, SONG_PLEASANT_PATH, 0, 8)
EVT_RETURN
EVT_END
};

View File

@ -18,34 +18,38 @@ EvtSource N(exitWalk_802406F0) = EXIT_WALK_SCRIPT(60, 0, "kmr_04", 0);
EvtSource N(exitWalk_8024074C) = EXIT_WALK_SCRIPT(60, 1, "kmr_05", 0);
EvtSource N(802407A8) = SCRIPT({
bind N(exitWalk_802406F0) TRIGGER_FLOOR_ABOVE 3;
bind N(exitWalk_8024074C) TRIGGER_FLOOR_ABOVE 5;
});
EvtSource N(802407A8) = {
EVT_BIND_TRIGGER(N(exitWalk_802406F0), TRIGGER_FLOOR_ABOVE, 3, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_8024074C), TRIGGER_FLOOR_ABOVE, 5, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_GOOMBA_VILLAGE;
SetSpriteShading(-1);
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
SetCamLeadPlayer(0, 0);
EVT_AREA_FLAG(8) = 0;
MakeNpcs(0, N(npcGroupList_80241450));
ClearDefeatedEnemies();
await N(makeEntities);
await N(802422B8);
spawn N(802406C0);
GetEntryID(EVT_VAR(0));
if (EVT_VAR(0) != 2) {
EVT_VAR(0) = N(802407A8);
spawn EnterWalk;
} else {
spawn N(802407A8);
spawn N(80242340);
}
sleep 1;
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 30)
EVT_CALL(SetSpriteShading, -1)
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_SET(EVT_AREA_FLAG(8), 0)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80241450)))
EVT_CALL(ClearDefeatedEnemies)
EVT_EXEC_WAIT(N(makeEntities))
EVT_EXEC_WAIT(N(802422B8))
EVT_EXEC(N(802406C0))
EVT_CALL(GetEntryID, EVT_VAR(0))
EVT_IF_NE(EVT_VAR(0), 2)
EVT_SET(EVT_VAR(0), EVT_PTR(N(802407A8)))
EVT_EXEC(EnterWalk)
EVT_ELSE
EVT_EXEC(N(802407A8))
EVT_EXEC(N(80242340))
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_RETURN
EVT_END
};
static s32 N(pad_948)[] = {
0x00000000, 0x00000000,
@ -58,144 +62,148 @@ NpcSettings N(npcSettings_80240950) = {
.unk_2A = 16,
};
EvtSource N(8024097C) = SCRIPT({
1:
if (EVT_AREA_FLAG(8) == 1) {
100:
AwaitPlayerLeave(294, 123, 170);
EnableNpcAI(0, 0);
DisablePlayerInput(TRUE);
SetNpcSpeed(NPC_GOOMPA, 4.0);
SetNpcAnimation(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_3);
N(func_802401B0_8C8140)();
GetAngleToPlayer(0, EVT_VAR(2));
loop EVT_VAR(1) {
GetNpcPos(NPC_GOOMPA, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9));
AddVectorPolar(EVT_VAR(7), EVT_VAR(9), 4.0, EVT_VAR(2));
SetNpcPos(NPC_GOOMPA, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9));
sleep 1;
}
PlayerFaceNpc(0, 3);
SetPlayerSpeed(3.0);
PlayerMoveTo(243, 243, 0);
SetNpcVar(0, 0, 1);
EnableNpcAI(0, 1);
DisablePlayerInput(FALSE);
goto 100;
}
sleep 1;
goto 1;
});
EvtSource N(8024097C) = {
EVT_LABEL(1)
EVT_IF_EQ(EVT_AREA_FLAG(8), 1)
EVT_LABEL(100)
EVT_CALL(AwaitPlayerLeave, 294, 123, 170)
EVT_CALL(EnableNpcAI, 0, 0)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetNpcSpeed, 0, EVT_FIXED(4.0))
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_goompa_Palette_00_Anim_3)
EVT_CALL(N(func_802401B0_8C8140))
EVT_CALL(GetAngleToPlayer, 0, EVT_VAR(2))
EVT_LOOP(EVT_VAR(1))
EVT_CALL(GetNpcPos, 0, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
EVT_CALL(AddVectorPolar, EVT_VAR(7), EVT_VAR(9), EVT_FIXED(4.0), EVT_VAR(2))
EVT_CALL(SetNpcPos, 0, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
EVT_WAIT_FRAMES(1)
EVT_END_LOOP
EVT_CALL(PlayerFaceNpc, 0, 3)
EVT_CALL(SetPlayerSpeed, EVT_FIXED(3.0))
EVT_CALL(PlayerMoveTo, 243, 243, 0)
EVT_CALL(SetNpcVar, 0, 0, 1)
EVT_CALL(EnableNpcAI, 0, 1)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_GOTO(100)
EVT_END_IF
EVT_WAIT_FRAMES(1)
EVT_GOTO(1)
EVT_RETURN
EVT_END
};
EvtSource N(npcAI_80240B50) = SCRIPT({
1:
match EVT_STORY_PROGRESS {
== STORY_CH0_FELL_OFF_CLIFF {
89:
N(UnkPositionFunc)(-118, 86, -70, -15);
sleep 1;
if (EVT_VAR(0) == 0) {
goto 89;
}
DisablePlayerInput(TRUE);
SetNpcAux(NPC_GOOMPA, 0);
PlaySoundAtNpc(NPC_GOOMPA, SOUND_262, 0);
ShowEmote(0, EMOTE_EXCLAMATION, 45, 15, 1, 0, 0, 0, 0);
sleep 15;
NpcFacePlayer(NPC_SELF, 5);
sleep 10;
SpeakToPlayer(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A6));
UseSettingsFrom(0, -220, 20, -72);
SetPanTarget(0, -20, 0, 68);
SetCamPitch(0, 15.0, -8.5);
SetCamDistance(0, 275);
SetCamSpeed(0, 1.5);
PanToTarget(0, 0, 1);
spawn {
sleep 20;
SetPlayerSpeed(2.0);
PlayerMoveTo(-38, 68, 0);
}
GetNpcPos(NPC_GOOMPA, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9));
SetNpcSpeed(NPC_GOOMPA, 4.0);
SetNpcAnimation(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_3);
NpcMoveTo(NPC_GOOMPA, 0, 70, 0);
SetNpcAnimation(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_1);
InterpNpcYaw(NPC_GOOMPA, 276, 20);
sleep 30;
SpeakToPlayer(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A7));
sleep 5;
SetPlayerAnimation(ANIM_80007);
sleep 30;
SpeakToPlayer(NPC_GOOMPA, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A8));
N(UnkFunc41)(0, 5);
EVT_STORY_PROGRESS = STORY_CH0_GOOMPA_JOINED_PARTY;
UseSettingsFrom(0, -220, 20, -72);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamSpeed(0, 3.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
PanToTarget(0, 0, 0);
EnablePartnerAI();
DisablePlayerInput(FALSE);
sleep 1;
}
}
});
EvtSource N(npcAI_80240B50) = {
EVT_LABEL(1)
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_EQ(-122)
EVT_LABEL(89)
EVT_CALL(N(UnkPositionFunc), -118, 86, -70, -15)
EVT_WAIT_FRAMES(1)
EVT_IF_EQ(EVT_VAR(0), 0)
EVT_GOTO(89)
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetNpcAux, 0, 0)
EVT_CALL(PlaySoundAtNpc, 0, SOUND_262, 0)
EVT_CALL(ShowEmote, 0, EMOTE_EXCLAMATION, 45, 15, 1, 0, 0, 0, 0)
EVT_WAIT_FRAMES(15)
EVT_CALL(NpcFacePlayer, NPC_SELF, 5)
EVT_WAIT_FRAMES(10)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A6))
EVT_CALL(UseSettingsFrom, 0, -220, 20, -72)
EVT_CALL(SetPanTarget, 0, -20, 0, 68)
EVT_CALL(SetCamPitch, 0, EVT_FIXED(15.0), EVT_FIXED(-8.5))
EVT_CALL(SetCamDistance, 0, 275)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(1.5))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_THREAD
EVT_WAIT_FRAMES(20)
EVT_CALL(SetPlayerSpeed, EVT_FIXED(2.0))
EVT_CALL(PlayerMoveTo, -38, 68, 0)
EVT_END_THREAD
EVT_CALL(GetNpcPos, 0, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
EVT_CALL(SetNpcSpeed, 0, EVT_FIXED(4.0))
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_goompa_Palette_00_Anim_3)
EVT_CALL(NpcMoveTo, 0, 0, 70, 0)
EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_goompa_Palette_00_Anim_1)
EVT_CALL(InterpNpcYaw, 0, 276, 20)
EVT_WAIT_FRAMES(30)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A7))
EVT_WAIT_FRAMES(5)
EVT_CALL(SetPlayerAnimation, ANIM_80007)
EVT_WAIT_FRAMES(30)
EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_goompa_Palette_00_Anim_8, NPC_ANIM_goompa_Palette_00_Anim_1, 0, MESSAGE_ID(0x0B, 0x00A8))
EVT_CALL(N(UnkFunc41), 0, 5)
EVT_SET(EVT_SAVE_VAR(0), -121)
EVT_CALL(UseSettingsFrom, 0, -220, 20, -72)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(3.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_CALL(EnablePartnerAI)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_WAIT_FRAMES(1)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
EvtSource N(hit_80240F64) = SCRIPT({
SetNpcAnimation(NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_7);
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_1);
EVT_MAP_VAR(0) += 1;
if (EVT_MAP_VAR(0) < 3) {
GetOwnerEncounterTrigger(EVT_VAR(0));
match EVT_VAR(0) {
== 2 {
SetNpcVar(0, 0, 1);
if (EVT_AREA_FLAG(6) == 1) {
} else {
EVT_AREA_FLAG(6) = 1;
EVT_AREA_FLAG(7) = 0;
}
}
== 4 {
SetNpcVar(0, 0, 1);
if (EVT_AREA_FLAG(7) == 1) {
} else {
EVT_AREA_FLAG(6) = 0;
EVT_AREA_FLAG(7) = 1;
}
}
}
sleep 10;
SetNpcAnimation(NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_3);
} else {
sleep 10;
GetNpcPos(NPC_GOOMPA, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcPos(NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetNpcFlagBits(NPC_PARTNER, NPC_FLAG_GRAVITY, TRUE);
SetNpcPos(NPC_GOOMPA, 0, -1000, 0);
SetNpcFlagBits(NPC_GOOMPA, NPC_FLAG_100, FALSE);
EnablePartnerAI();
SetNpcAux(NPC_SELF, N(8024097C));
BindNpcAI(NPC_SELF, N(npcAI_80240B50));
}
});
EvtSource N(hit_80240F64) = {
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_7)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_1)
EVT_ADD(EVT_MAP_VAR(0), 1)
EVT_IF_LT(EVT_MAP_VAR(0), 3)
EVT_CALL(GetOwnerEncounterTrigger, EVT_VAR(0))
EVT_SWITCH(EVT_VAR(0))
EVT_CASE_EQ(2)
EVT_CALL(SetNpcVar, 0, 0, 1)
EVT_IF_EQ(EVT_AREA_FLAG(6), 1)
EVT_ELSE
EVT_SET(EVT_AREA_FLAG(6), 1)
EVT_SET(EVT_AREA_FLAG(7), 0)
EVT_END_IF
EVT_CASE_EQ(4)
EVT_CALL(SetNpcVar, 0, 0, 1)
EVT_IF_EQ(EVT_AREA_FLAG(7), 1)
EVT_ELSE
EVT_SET(EVT_AREA_FLAG(6), 0)
EVT_SET(EVT_AREA_FLAG(7), 1)
EVT_END_IF
EVT_END_SWITCH
EVT_WAIT_FRAMES(10)
EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_goompa_Palette_00_Anim_3)
EVT_ELSE
EVT_WAIT_FRAMES(10)
EVT_CALL(GetNpcPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcPos, NPC_PARTNER, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_GRAVITY)), TRUE)
EVT_CALL(SetNpcPos, 0, 0, -1000, 0)
EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), FALSE)
EVT_CALL(EnablePartnerAI)
EVT_CALL(SetNpcAux, NPC_SELF, EVT_PTR(N(8024097C)))
EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_80240B50)))
EVT_END_IF
EVT_RETURN
EVT_END
};
EvtSource N(init_802411A8) = SCRIPT({
BindNpcIdle(NPC_SELF, N(npcAI_80240B50));
BindNpcAux(-1, N(8024097C));
BindNpcHit(-1, N(hit_80240F64));
match EVT_STORY_PROGRESS {
>= STORY_CH0_GOOMPA_JOINED_PARTY {
SetNpcFlagBits(NPC_SELF, NPC_FLAG_GRAVITY, FALSE);
SetNpcFlagBits(NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT, TRUE);
SetNpcPos(NPC_SELF, 0, -1000, 0);
}
}
});
EvtSource N(init_802411A8) = {
EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80240B50)))
EVT_CALL(BindNpcAux, -1, EVT_PTR(N(8024097C)))
EVT_CALL(BindNpcHit, -1, EVT_PTR(N(hit_80240F64)))
EVT_SWITCH(EVT_SAVE_VAR(0))
EVT_CASE_GE(-121)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_GRAVITY)), FALSE)
EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_ENABLE_HIT_SCRIPT)), TRUE)
EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
EVT_END_SWITCH
EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80241260) = {
.id = NPC_GOOMPA,
@ -237,47 +245,55 @@ static s32 N(pad_1468)[] = {
0x00000000, 0x00000000,
};
EvtSource N(80241470) = SCRIPT({
ModifyColliderFlags(0, 9, 0x7FFFFE00);
EVT_STORY_PROGRESS = STORY_CH0_LEFT_THE_PLAYGROUND;
});
EvtSource N(80241470) = {
EVT_CALL(ModifyColliderFlags, 0, 9, 0x7FFFFE00)
EVT_SET(EVT_SAVE_VAR(0), -117)
EVT_RETURN
EVT_END
};
EvtSource N(802414A8) = SCRIPT({
EVT_SAVE_FLAG(54) = 1;
});
EvtSource N(802414A8) = {
EVT_SET(EVT_SAVE_FLAG(54), 1)
EVT_RETURN
EVT_END
};
EvtSource N(802414C8) = SCRIPT({
0:
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetCamTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
sleep 1;
goto 0;
});
EvtSource N(802414C8) = {
EVT_LABEL(0)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetCamTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_WAIT_FRAMES(1)
EVT_GOTO(0)
EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({
if (EVT_STORY_PROGRESS < STORY_CH0_LEFT_THE_PLAYGROUND) {
MakeEntity(0x802EA10C, 45, 0, 70, 15, MAKE_ENTITY_END);
AssignScript(N(80241470));
} else {
ModifyColliderFlags(0, 9, 0x7FFFFE00);
}
if (EVT_SAVE_FLAG(54) == 0) {
MakeEntity(0x802EA19C, 230, 0, 310, 15, MAKE_ENTITY_END);
AssignScript(N(802414A8));
}
MakeEntity(0x802EA588, 230, 60, 310, 15, ITEM_REPEL_GEL, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(52));
MakeEntity(0x802EA0C4, 230, 50, -160, 15, MAKE_ENTITY_END);
MakeEntity(0x802EA0C4, 165, 0, 380, 20, MAKE_ENTITY_END);
MakeEntity(0x802EA564, -170, 0, 370, 43, ITEM_COIN, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(50));
MakeEntity(0x802EAA54, 345, 75, -250, 0, ITEM_BAKING_WATER, MAKE_ENTITY_END);
MakeItemEntity(ITEM_COIN, 345, 205, -250, 17, EVT_SAVE_FLAG(56));
MakeItemEntity(ITEM_COIN, 345, 230, -250, 17, EVT_SAVE_FLAG(57));
MakeItemEntity(ITEM_COIN, 345, 255, -250, 17, EVT_SAVE_FLAG(58));
MakeItemEntity(ITEM_COIN, 345, 280, -250, 17, EVT_SAVE_FLAG(59));
MakeItemEntity(ITEM_FIRE_FLOWER, 229, 250, -156, 17, EVT_SAVE_FLAG(49));
MakeEntity(0x802EAB04, 300, 0, 150, 0, ITEM_PULSE_STONE, MAKE_ENTITY_END);
AssignPanelFlag(EVT_SAVE_FLAG(88));
MakeEntity(0x802EA7E0, 130, 60, 0, 0, MAKE_ENTITY_END);
});
EvtSource N(makeEntities) = {
EVT_IF_LT(EVT_SAVE_VAR(0), -117)
EVT_CALL(MakeEntity, 0x802EA10C, 45, 0, 70, 15, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(80241470)))
EVT_ELSE
EVT_CALL(ModifyColliderFlags, 0, 9, 0x7FFFFE00)
EVT_END_IF
EVT_IF_EQ(EVT_SAVE_FLAG(54), 0)
EVT_CALL(MakeEntity, 0x802EA19C, 230, 0, 310, 15, MAKE_ENTITY_END)
EVT_CALL(AssignScript, EVT_PTR(N(802414A8)))
EVT_END_IF
EVT_CALL(MakeEntity, 0x802EA588, 230, 60, 310, 15, 151, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(52))
EVT_CALL(MakeEntity, EVT_PTR(D_802EA0C4), 230, 50, -160, 15, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, EVT_PTR(D_802EA0C4), 165, 0, 380, 20, MAKE_ENTITY_END)
EVT_CALL(MakeEntity, 0x802EA564, -170, 0, 370, 43, 343, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(50))
EVT_CALL(MakeEntity, 0x802EAA54, 345, 75, -250, 0, 100, MAKE_ENTITY_END)
EVT_CALL(MakeItemEntity, ITEM_COIN, 345, 205, -250, 17, EVT_SAVE_FLAG(56))
EVT_CALL(MakeItemEntity, ITEM_COIN, 345, 230, -250, 17, EVT_SAVE_FLAG(57))
EVT_CALL(MakeItemEntity, ITEM_COIN, 345, 255, -250, 17, EVT_SAVE_FLAG(58))
EVT_CALL(MakeItemEntity, ITEM_COIN, 345, 280, -250, 17, EVT_SAVE_FLAG(59))
EVT_CALL(MakeItemEntity, ITEM_FIRE_FLOWER, 229, 250, -156, 17, EVT_SAVE_FLAG(49))
EVT_CALL(MakeEntity, 0x802EAB04, 300, 0, 150, 0, 18, MAKE_ENTITY_END)
EVT_CALL(AssignPanelFlag, EVT_SAVE_FLAG(88))
EVT_CALL(MakeEntity, 0x802EA7E0, 130, 60, 0, 0, MAKE_ENTITY_END)
EVT_RETURN
EVT_END
};

View File

@ -37,22 +37,24 @@ FoliageVectorList N(treeEffectVectors_Tree1) = {
},
};
EvtSource N(tree1_Callback) = SCRIPT({
if (EVT_SAVE_FLAG(53) == TRUE) {
return;
}
if (EVT_MAP_FLAG(10) == TRUE) {
return;
}
sleep 10;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(0) < -30) {
MakeItemEntity(ITEM_MUSHROOM, -23, 100, 35, 13, EVT_SAVE_FLAG(53));
} else {
MakeItemEntity(ITEM_MUSHROOM, -85, 100, 16, 13, EVT_SAVE_FLAG(53));
}
EVT_MAP_FLAG(10) = 1;
});
EvtSource N(tree1_Callback) = {
EVT_IF_EQ(EVT_SAVE_FLAG(53), 1)
EVT_RETURN
EVT_END_IF
EVT_IF_EQ(EVT_MAP_FLAG(10), 1)
EVT_RETURN
EVT_END_IF
EVT_WAIT_FRAMES(10)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_LT(EVT_VAR(0), -30)
EVT_CALL(MakeItemEntity, ITEM_MUSHROOM, -23, 100, 35, 13, EVT_SAVE_FLAG(53))
EVT_ELSE
EVT_CALL(MakeItemEntity, ITEM_MUSHROOM, -85, 100, 16, 13, EVT_SAVE_FLAG(53))
EVT_END_IF
EVT_SET(EVT_MAP_FLAG(10), 1)
EVT_RETURN
EVT_END
};
ShakeTreeConfig N(tree1) = {
.leaves = &N(treeModelList_Tree1_Leaves),
@ -63,12 +65,13 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(tree1Point) = { -42.0f, 0.0f, -13.0f, 0.0f };
EvtSource N(802422B8) = SCRIPT({
EVT_VAR(0) = N(bush1);
bind N(searchBush) TRIGGER_WALL_PRESS_A 53;
EVT_VAR(0) = N(tree1);
bind N(shakeTree) TRIGGER_WALL_HAMMER 52;
bind N(shakeTree) TRIGGER_POINT_BOMB N(tree1Point);
});
EvtSource N(802422B8) = {
EVT_SET(EVT_VAR(0), EVT_PTR(N(bush1)))
EVT_BIND_TRIGGER(N(searchBush), TRIGGER_WALL_PRESS_A, 53, 1, 0)
EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 52, 1, 0)
EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(tree1Point)), 1, 0)
EVT_RETURN
EVT_END
};

View File

@ -1,86 +1,88 @@
#include "kmr_03.h"
EvtSource N(80242340) = SCRIPT({
UseSettingsFrom(0, -270, 20, -80);
SetPanTarget(0, -270, 20, -80);
SetCamDistance(0, 700.0);
SetCamSpeed(0, 90.0);
PanToTarget(0, 0, 1);
if (EVT_STORY_PROGRESS >= STORY_CH0_FOUND_HAMMER) {
SetPlayerPos(0, -1000, 0);
DisablePlayerInput(TRUE);
SetPlayerPos(-224, 20, -80);
SetNpcPos(NPC_PARTNER, -224, 20, -80);
sleep 20;
SetCamSpeed(0, 3.0);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
PanToTarget(0, 0, 0);
DisablePlayerInput(FALSE);
return;
}
DisablePlayerInput(TRUE);
DisablePlayerPhysics(TRUE);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPlayerPos(EVT_VAR(0), -1000, EVT_VAR(2));
sleep 30;
SetCamDistance(0, 220);
SetCamSpeed(0, 1.0);
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
spawn {
sleep 18;
PlaySoundAtPlayer(373, 0);
sleep 30;
PlaySoundAtPlayer(374, 0);
sleep 28;
PlaySoundAtPlayer(373, 0);
}
HidePlayerShadow(TRUE);
SetPlayerAnimation(ANIM_10002);
SetPlayerPos(-224, 120, -80);
InterpPlayerYaw(90, 0);
0:
sleep 1;
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
EVT_VAR(1) += -2;
SetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
if (EVT_VAR(1) > 86) {
goto 0;
}
SetPlayerPos(-310, 20, -80);
spawn {
sleep 20;
SetPanTarget(0, -310, 20, -80);
SetCamSpeed(0, 0.2001953125);
PanToTarget(0, 0, 1);
}
func_802D286C(10240);
func_802D2520(ANIM_10002, 5, 5, 1, 1, 0);
sleep 100;
WaitForCam(0, 1.0);
func_802D2520(ANIM_10002, 0, 0, 0, 0, 0);
HidePlayerShadow(FALSE);
SetPlayerAnimation(ANIM_BEFORE_JUMP);
sleep 10;
SetPlayerAnimation(ANIM_MIDAIR_STILL);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPlayerJumpscale(1.0);
PlayerJump(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10);
SetPlayerAnimation(ANIM_10002);
spawn {
SetCamSpeed(0, 3.0);
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2));
PanToTarget(0, 0, 1);
WaitForCam(0, 1.0);
PanToTarget(0, 0, 0);
}
sleep 30;
DisablePlayerPhysics(FALSE);
DisablePlayerInput(FALSE);
});
EvtSource N(80242340) = {
EVT_CALL(UseSettingsFrom, 0, -270, 20, -80)
EVT_CALL(SetPanTarget, 0, -270, 20, -80)
EVT_CALL(SetCamDistance, 0, EVT_FIXED(700.0))
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_IF_GE(EVT_SAVE_VAR(0), -119)
EVT_CALL(SetPlayerPos, 0, -1000, 0)
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(SetPlayerPos, -224, 20, -80)
EVT_CALL(SetNpcPos, NPC_PARTNER, -224, 20, -80)
EVT_WAIT_FRAMES(20)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(3.0))
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END_IF
EVT_CALL(DisablePlayerInput, TRUE)
EVT_CALL(DisablePlayerPhysics, TRUE)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPlayerPos, EVT_VAR(0), -1000, EVT_VAR(2))
EVT_WAIT_FRAMES(30)
EVT_CALL(SetCamDistance, 0, 220)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(1.0))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_THREAD
EVT_WAIT_FRAMES(18)
EVT_CALL(PlaySoundAtPlayer, 373, 0)
EVT_WAIT_FRAMES(30)
EVT_CALL(PlaySoundAtPlayer, 374, 0)
EVT_WAIT_FRAMES(28)
EVT_CALL(PlaySoundAtPlayer, 373, 0)
EVT_END_THREAD
EVT_CALL(HidePlayerShadow, TRUE)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_CALL(SetPlayerPos, -224, 120, -80)
EVT_CALL(InterpPlayerYaw, 90, 0)
EVT_LABEL(0)
EVT_WAIT_FRAMES(1)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_ADD(EVT_VAR(1), -2)
EVT_CALL(SetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_IF_GT(EVT_VAR(1), 86)
EVT_GOTO(0)
EVT_END_IF
EVT_CALL(SetPlayerPos, -310, 20, -80)
EVT_THREAD
EVT_WAIT_FRAMES(20)
EVT_CALL(SetPanTarget, 0, -310, 20, -80)
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(0.2))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_END_THREAD
EVT_CALL(func_802D286C, 10240)
EVT_CALL(func_802D2520, ANIM_10002, 5, 5, 1, 1, 0)
EVT_WAIT_FRAMES(100)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(func_802D2520, ANIM_10002, 0, 0, 0, 0, 0)
EVT_CALL(HidePlayerShadow, FALSE)
EVT_CALL(SetPlayerAnimation, ANIM_BEFORE_JUMP)
EVT_WAIT_FRAMES(10)
EVT_CALL(SetPlayerAnimation, ANIM_MIDAIR_STILL)
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPlayerJumpscale, EVT_FIXED(1.0))
EVT_CALL(PlayerJump, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 10)
EVT_CALL(SetPlayerAnimation, ANIM_10002)
EVT_THREAD
EVT_CALL(SetCamSpeed, 0, EVT_FIXED(3.0))
EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_CALL(PanToTarget, 0, 0, 1)
EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
EVT_CALL(PanToTarget, 0, 0, 0)
EVT_END_THREAD
EVT_WAIT_FRAMES(30)
EVT_CALL(DisablePlayerPhysics, FALSE)
EVT_CALL(DisablePlayerInput, FALSE)
EVT_RETURN
EVT_END
};

View File

@ -17,3 +17,5 @@ extern EvtSource N(80242340);
extern EvtSource N(802406C0);
extern EvtSource N(main);
extern EvtSource N(makeEntities);
extern s32 D_802EA0C4;

View File

@ -14,9 +14,11 @@ MapConfig N(config) = {
.tattle = { MSG_kmr_12_tattle },
};
EvtSource N(PlayMusic) = SCRIPT({
SetMusicTrack(0, SONG_PLEASANT_PATH, 0, 8);
});
EvtSource N(PlayMusic) = {
EVT_CALL(SetMusicTrack, 0, SONG_PLEASANT_PATH, 0, 8)
EVT_RETURN
EVT_END
};
ApiStatus GetGoomba(Evt* script, s32 isInitialCall) {
script->varTable[0] = get_enemy_safe(NPC_GOOMBA);

View File

@ -18,3 +18,5 @@ extern EvtSource N(PlayMusic);
extern EvtSource N(MakeEntities);
extern EvtSource N(ReadWestSign);
extern NpcGroupList N(npcGroupList);
extern s32 D_802EAFDC;

View File

@ -22,25 +22,29 @@ EvtSource N(exitWalk_802400E0) = EXIT_WALK_SCRIPT(60, 1, "sbk_01", 0);
EvtSource N(exitWalk_8024013C) = EXIT_WALK_SCRIPT(60, 3, "sbk_10", 2);
EvtSource N(80240198) = SCRIPT({
bind N(exitWalk_802400E0) TRIGGER_FLOOR_ABOVE 3;
bind N(exitWalk_8024013C) TRIGGER_FLOOR_ABOVE 6;
});
EvtSource N(80240198) = {
EVT_BIND_TRIGGER(N(exitWalk_802400E0), TRIGGER_FLOOR_ABOVE, 3, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_8024013C), TRIGGER_FLOOR_ABOVE, 6, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_DRY_DRY_DESERT;
SetSpriteShading(-1);
if (EVT_STORY_PROGRESS == STORY_CH2_GOT_PULSE_STONE) {
DisablePulseStone(0);
}
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
SetCamLeadPlayer(0, 0);
MakeNpcs(0, N(npcGroupList_80240768));
await N(makeEntities);
N(SpawnSunEffect)();
SetMusicTrack(0, SONG_DRY_DRY_DESERT, 0, 8);
EVT_VAR(0) = N(80240198);
spawn EnterWalk;
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 10)
EVT_CALL(SetSpriteShading, -1)
EVT_IF_EQ(EVT_SAVE_VAR(0), -63)
EVT_CALL(DisablePulseStone, 0)
EVT_END_IF
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80240768)))
EVT_EXEC_WAIT(N(makeEntities))
EVT_CALL(N(SpawnSunEffect))
EVT_CALL(SetMusicTrack, 0, SONG_DRY_DRY_DESERT, 0, 8)
EVT_SET(EVT_VAR(0), EVT_PTR(N(80240198)))
EVT_EXEC(EnterWalk)
EVT_RETURN
EVT_END
};

View File

@ -16,10 +16,12 @@ NpcAISettings N(npcAISettings_80240300) = {
.unk_2C = 1,
};
EvtSource N(npcAI_80240330) = SCRIPT({
N(SetNpcB5_3)();
DoBasicAI(N(npcAISettings_80240300));
});
EvtSource N(npcAI_80240330) = {
EVT_CALL(N(SetNpcB5_3))
EVT_CALL(DoBasicAI, EVT_PTR(N(npcAISettings_80240300)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024035C) = {
.height = 72,
@ -114,9 +116,11 @@ static s32 N(pad_78C) = {
0x00000000,
};
EvtSource N(makeEntities) = SCRIPT({
MakeEntity(0x802EA564, -230, 0, 155, 0, ITEM_FRIGHT_JAR, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(797));
MakeEntity(0x802EA564, 160, 0, 205, 0, ITEM_COIN, MAKE_ENTITY_END);
AssignBlockFlag(EVT_SAVE_FLAG(798));
});
EvtSource N(makeEntities) = {
EVT_CALL(MakeEntity, 0x802EA564, -230, 0, 155, 0, 152, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(797))
EVT_CALL(MakeEntity, 0x802EA564, 160, 0, 205, 0, 343, MAKE_ENTITY_END)
EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(798))
EVT_RETURN
EVT_END
};

View File

@ -27,25 +27,29 @@ EvtSource N(exitWalk_8024013C) = EXIT_WALK_SCRIPT(60, 1, "sbk_02", 0);
EvtSource N(exitWalk_80240198) = EXIT_WALK_SCRIPT(60, 3, "sbk_11", 2);
EvtSource N(802401F4) = SCRIPT({
bind N(exitWalk_802400E0) TRIGGER_FLOOR_ABOVE 7;
bind N(exitWalk_8024013C) TRIGGER_FLOOR_ABOVE 3;
bind N(exitWalk_80240198) TRIGGER_FLOOR_ABOVE 5;
});
EvtSource N(802401F4) = {
EVT_BIND_TRIGGER(N(exitWalk_802400E0), TRIGGER_FLOOR_ABOVE, 7, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_8024013C), TRIGGER_FLOOR_ABOVE, 3, 1, 0)
EVT_BIND_TRIGGER(N(exitWalk_80240198), TRIGGER_FLOOR_ABOVE, 5, 1, 0)
EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({
EVT_WORLD_LOCATION = LOCATION_DRY_DRY_DESERT;
SetSpriteShading(-1);
if (EVT_STORY_PROGRESS == STORY_CH2_GOT_PULSE_STONE) {
DisablePulseStone(0);
}
SetCamPerspective(0, 3, 25, 16, 4096);
SetCamBGColor(0, 0, 0, 0);
SetCamEnabled(0, 1);
SetCamLeadPlayer(0, 0);
MakeNpcs(0, N(npcGroupList_802407D8));
N(SpawnSunEffect)();
SetMusicTrack(0, SONG_DRY_DRY_DESERT, 0, 8);
EVT_VAR(0) = N(802401F4);
spawn EnterWalk;
});
EvtSource N(main) = {
EVT_SET(EVT_SAVE_VAR(425), 10)
EVT_CALL(SetSpriteShading, -1)
EVT_IF_EQ(EVT_SAVE_VAR(0), -63)
EVT_CALL(DisablePulseStone, 0)
EVT_END_IF
EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
EVT_CALL(SetCamEnabled, 0, 1)
EVT_CALL(SetCamLeadPlayer, 0, 0)
EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802407D8)))
EVT_CALL(N(SpawnSunEffect))
EVT_CALL(SetMusicTrack, 0, SONG_DRY_DRY_DESERT, 0, 8)
EVT_SET(EVT_VAR(0), EVT_PTR(N(802401F4)))
EVT_EXEC(EnterWalk)
EVT_RETURN
EVT_END
};

View File

@ -16,10 +16,12 @@ NpcAISettings N(npcAISettings_80240370) = {
.unk_2C = 1,
};
EvtSource N(npcAI_802403A0) = SCRIPT({
N(SetNpcB5_3)();
DoBasicAI(N(npcAISettings_80240370));
});
EvtSource N(npcAI_802403A0) = {
EVT_CALL(N(SetNpcB5_3))
EVT_CALL(DoBasicAI, EVT_PTR(N(npcAISettings_80240370)))
EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802403CC) = {
.height = 72,

View File

@ -46,18 +46,26 @@ ApiStatus TwinkPutAway(Evt* script, s32 isInitialCall) {
return partner_put_away(twink) ? ApiStatus_DONE1 : ApiStatus_BLOCK;
}
EvtSource world_twink_take_out = SCRIPT({
TwinkTakeOut();
});
EvtSource world_twink_take_out = {
EVT_CALL(TwinkTakeOut)
EVT_RETURN
EVT_END
};
EvtSource world_twink_update = SCRIPT({
TwinkUpdate();
});
EvtSource world_twink_update = {
EVT_CALL(TwinkUpdate)
EVT_RETURN
EVT_END
};
EvtSource world_twink_use_ability = SCRIPT({
TwinkUseAbility();
});
EvtSource world_twink_use_ability = {
EVT_CALL(TwinkUseAbility)
EVT_RETURN
EVT_END
};
EvtSource world_twink_put_away = SCRIPT({
TwinkPutAway();
});
EvtSource world_twink_put_away = {
EVT_CALL(TwinkPutAway)
EVT_RETURN
EVT_END
};