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_FBUF_PEEK, ///< Args: index, container
EVT_OP_USE_ARRAY, ///< Args: *s32 EVT_OP_USE_ARRAY, ///< Args: *s32
EVT_OP_USE_FLAGS, ///< 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, ///< Args: container, expression to bitwise AND with
EVT_OP_BITWISE_AND_CONST, ///< Args: container, value 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 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: case EVT_OP_USE_FLAGS:
status = evt_handle_set_flag_array(script); status = evt_handle_set_flag_array(script);
break; break;
case EVT_OP_NEW_ARRAY: case EVT_OP_MALLOC_ARRAY:
status = evt_handle_allocate_array(script); status = evt_handle_allocate_array(script);
break; break;
case EVT_OP_KILL_THREAD: case EVT_OP_KILL_THREAD:

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -17,192 +17,202 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_11_tattle }, .tattle = { MSG_dgb_11_tattle },
}; };
EvtSource N(802400D0) = SCRIPT({ EvtSource N(802400D0) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH3_TUBBA_WOKE_UP { EVT_CASE_LT(-29)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
} EVT_CASE_LT(-16)
< STORY_CH3_DEFEATED_TUBBA_BLUBBA { EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8); EVT_CASE_DEFAULT
} else { EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_END_SWITCH
} EVT_RETURN
} EVT_END
}); };
static s32 N(pad_168)[] = { static s32 N(pad_168)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(exitSingleDoor_80240170) = SCRIPT({ EvtSource N(exitSingleDoor_80240170) = {
group 27; EVT_SET_GROUP(27)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
UseDoorSounds(0); EVT_CALL(UseDoorSounds, 0)
EVT_VAR(0) = 0; EVT_SET(EVT_VAR(0), 0)
EVT_VAR(1) = 11; EVT_SET(EVT_VAR(1), 11)
EVT_VAR(2) = 21; EVT_SET(EVT_VAR(2), 21)
EVT_VAR(3) = -1; EVT_SET(EVT_VAR(3), -1)
spawn ExitSingleDoor; EVT_EXEC(ExitSingleDoor)
sleep 17; EVT_WAIT_FRAMES(17)
GotoMap("dgb_02", 3); EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 3)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80240224) = SCRIPT({ EvtSource N(enterSingleDoor_80240224) = {
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
UseDoorSounds(0); EVT_CALL(UseDoorSounds, 0)
EVT_VAR(2) = 21; EVT_SET(EVT_VAR(2), 21)
EVT_VAR(3) = -1; EVT_SET(EVT_VAR(3), -1)
await EnterSingleDoor; EVT_EXEC_WAIT(EnterSingleDoor)
return; EVT_RETURN
} EVT_CASE_EQ(1)
== 1 { EVT_CALL(UseSettingsFrom, 0, 500, 0, -100)
UseSettingsFrom(0, 500, 0, -100); EVT_CALL(SetPanTarget, 0, 500, 0, -100)
SetPanTarget(0, 500, 0, -100); EVT_SET(EVT_VAR(3), 1)
EVT_VAR(3) = 1; EVT_CASE_EQ(2)
} EVT_CALL(UseSettingsFrom, 0, 500, 75, -250)
== 2 { EVT_CALL(SetPanTarget, 0, 500, 75, -250)
UseSettingsFrom(0, 500, 75, -250); EVT_SET(EVT_VAR(3), 75)
SetPanTarget(0, 500, 75, -250); EVT_CASE_EQ(3)
EVT_VAR(3) = 75; EVT_CALL(SetZoneEnabled, 5, 0)
} EVT_CALL(UseSettingsFrom, 0, 375, 0, -175)
== 3 { EVT_CALL(SetPanTarget, 0, 375, 0, -175)
SetZoneEnabled(5, 0); EVT_SET(EVT_AREA_FLAG(2), 1)
UseSettingsFrom(0, 375, 0, -175); EVT_SET(EVT_VAR(3), 1)
SetPanTarget(0, 375, 0, -175); EVT_END_SWITCH
EVT_AREA_FLAG(2) = 1; EVT_CALL(DisablePlayerInput, TRUE)
EVT_VAR(3) = 1; EVT_CALL(InterpPlayerYaw, 180, 0)
} EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
} EVT_CALL(PanToTarget, 0, 0, 1)
DisablePlayerInput(TRUE); EVT_LOOP(0)
InterpPlayerYaw(180, 0); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetCamSpeed(0, 90.0); EVT_IF_LE(EVT_VAR(1), EVT_VAR(3))
PanToTarget(0, 0, 1); EVT_BREAK_LOOP
loop { EVT_END_IF
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) <= EVT_VAR(3)) { EVT_END_LOOP
break loop; EVT_CALL(PanToTarget, 0, 0, 0)
} EVT_CALL(DisablePlayerInput, FALSE)
sleep 1; EVT_RETURN
} EVT_END
PanToTarget(0, 0, 0); };
DisablePlayerInput(FALSE);
});
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR; EVT_SET(EVT_SAVE_VAR(425), 15)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
spawn N(802400D0); EVT_EXEC(N(802400D0))
bind N(exitSingleDoor_80240170) TRIGGER_WALL_PRESS_A 11; EVT_BIND_TRIGGER(N(exitSingleDoor_80240170), TRIGGER_WALL_PRESS_A, 11, 1, 0)
spawn N(enterSingleDoor_80240224); EVT_EXEC(N(enterSingleDoor_80240224))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_56C) = { static s32 N(pad_56C) = {
0x00000000, 0x00000000,
}; };
EvtSource N(80240570) = SCRIPT({ EvtSource N(80240570) = {
0: EVT_LABEL(0)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
if (EVT_VAR(1) >= EVT_VAR(3)) { EVT_IF_GE(EVT_VAR(1), EVT_VAR(3))
EVT_VAR(1) = EVT_VAR(3); EVT_SET(EVT_VAR(1), EVT_VAR(3))
} EVT_END_IF
SetCamTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetCamTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(80240600) = SCRIPT({ EvtSource N(80240600) = {
PlayerJump(375, 270, -250, 20); EVT_CALL(PlayerJump, 375, 270, -250, 20)
}); EVT_RETURN
EVT_END
};
EvtSource N(8024062C) = SCRIPT({ EvtSource N(8024062C) = {
if (EVT_AREA_FLAG(3) == 1) { EVT_IF_EQ(EVT_AREA_FLAG(3), 1)
return; EVT_RETURN
} EVT_END_IF
EVT_AREA_FLAG(3) = 1; EVT_SET(EVT_AREA_FLAG(3), 1)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
SetZoneEnabled(5, 0); EVT_CALL(SetZoneEnabled, 5, 0)
if (EVT_AREA_FLAG(2) == 0) { EVT_IF_EQ(EVT_AREA_FLAG(2), 0)
if (EVT_SAVE_FLAG(1054) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1054), 0)
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
SetPlayerActionState(3); EVT_CALL(SetPlayerActionState, 3)
sleep 1; EVT_WAIT_FRAMES(1)
EVT_VAR(3) = 500; EVT_SET(EVT_VAR(3), 500)
EVT_VAR(10) = spawn N(80240570); EVT_EXEC_GET_TID(N(80240570), EVT_VAR(10))
SetPlayerJumpscale(0.7001953125); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
EVT_VAR(11) = spawn N(80240600); EVT_EXEC_GET_TID(N(80240600), EVT_VAR(11))
loop { EVT_LOOP(0)
sleep 1; EVT_WAIT_FRAMES(1)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
if (EVT_VAR(1) >= 165) { EVT_IF_GE(EVT_VAR(1), 165)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetPlayerPos(EVT_VAR(0), 165, EVT_VAR(2)); EVT_CALL(SetPlayerPos, EVT_VAR(0), 165, EVT_VAR(2))
kill EVT_VAR(11); EVT_KILL_THREAD(EVT_VAR(11))
SetPlayerAnimation(0x80015); EVT_CALL(SetPlayerAnimation, 524309)
ShakeCam(0, 0, 20, 1.0); EVT_CALL(ShakeCam, 0, 0, 20, EVT_FIXED(1.0))
sleep 10; EVT_WAIT_FRAMES(10)
SetPlayerAnimation(ANIM_10002); EVT_CALL(SetPlayerAnimation, ANIM_10002)
SetPlayerJumpscale(0.0); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.0))
PlayerJump1(375, 25, -250, 10); EVT_CALL(PlayerJump1, 375, 25, -250, 10)
N(func_80240000_C4D3E0)(); EVT_CALL(N(func_80240000_C4D3E0))
PlaySoundAtPlayer(8326, 0); EVT_CALL(PlaySoundAtPlayer, 8326, 0)
SetPlayerJumpscale(0.7001953125); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
PlayerJump(375, 0, -175, 15); EVT_CALL(PlayerJump, 375, 0, -175, 15)
kill EVT_VAR(10); EVT_KILL_THREAD(EVT_VAR(10))
SetPlayerActionState(0); EVT_CALL(SetPlayerActionState, 0)
sleep 2; EVT_WAIT_FRAMES(2)
SetZoneEnabled(5, 1); EVT_CALL(SetZoneEnabled, 5, 1)
DisablePlayerPhysics(FALSE); EVT_CALL(DisablePlayerPhysics, FALSE)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EVT_AREA_FLAG(3) = 0; EVT_SET(EVT_AREA_FLAG(3), 0)
} else { EVT_ELSE
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
SetPlayerActionState(3); EVT_CALL(SetPlayerActionState, 3)
sleep 1; EVT_WAIT_FRAMES(1)
spawn { EVT_THREAD
sleep 8; EVT_WAIT_FRAMES(8)
GotoMap("dgb_10", 1); EVT_CALL(GotoMap, EVT_PTR("dgb_10"), 1)
sleep 100; EVT_WAIT_FRAMES(100)
} EVT_END_THREAD
EVT_VAR(3) = 500; EVT_SET(EVT_VAR(3), 500)
EVT_VAR(10) = spawn N(80240570); EVT_EXEC_GET_TID(N(80240570), EVT_VAR(10))
SetPlayerJumpscale(0.7001953125); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
PlayerJump(375, 270, -250, 20); EVT_CALL(PlayerJump, 375, 270, -250, 20)
EVT_AREA_FLAG(3) = 0; EVT_SET(EVT_AREA_FLAG(3), 0)
} EVT_END_IF
} else { EVT_ELSE
SetPlayerActionState(3); EVT_CALL(SetPlayerActionState, 3)
sleep 1; EVT_WAIT_FRAMES(1)
EVT_VAR(3) = 25; EVT_SET(EVT_VAR(3), 25)
SetPlayerJumpscale(0.7001953125); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
PlayerJump(375, 0, -175, 15); EVT_CALL(PlayerJump, 375, 0, -175, 15)
EVT_AREA_FLAG(2) = 0; EVT_SET(EVT_AREA_FLAG(2), 0)
kill EVT_VAR(10); EVT_KILL_THREAD(EVT_VAR(10))
SetPlayerActionState(0); EVT_CALL(SetPlayerActionState, 0)
sleep 2; EVT_WAIT_FRAMES(2)
SetZoneEnabled(5, 1); EVT_CALL(SetZoneEnabled, 5, 1)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EVT_AREA_FLAG(3) = 0; EVT_SET(EVT_AREA_FLAG(3), 0)
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
MakeItemEntity(ITEM_D_DOWN_JUMP, 250, 75, -100, 17, EVT_SAVE_FLAG(1055)); EVT_CALL(MakeItemEntity, ITEM_D_DOWN_JUMP, 250, 75, -100, 17, EVT_SAVE_FLAG(1055))
MakeEntity(0x802EAA30, 375, 0, -250, 0, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EAA30, 375, 0, -250, 0, MAKE_ENTITY_END)
AssignScript(N(8024062C)); EVT_CALL(AssignScript, EVT_PTR(N(8024062C)))
EVT_MAP_VAR(0) = EVT_VAR(0); EVT_SET(EVT_MAP_VAR(0), EVT_VAR(0))
}); EVT_RETURN
EVT_END
};
ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall) { ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall) {
Entity* entity = get_entity_by_index(evt_get_variable(NULL, 0xFD050F80)); 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 }, .tattle = { MSG_dgb_12_tattle },
}; };
EvtSource N(80240310) = SCRIPT({ EvtSource N(80240310) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH3_TUBBA_WOKE_UP { EVT_CASE_LT(-29)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
} EVT_CASE_LT(-16)
< STORY_CH3_DEFEATED_TUBBA_BLUBBA { EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8); EVT_CASE_DEFAULT
} else { EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_END_SWITCH
} EVT_RETURN
} EVT_END
}); };
static s32 N(pad_3A8)[] = { static s32 N(pad_3A8)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(exitSingleDoor_802403B0) = SCRIPT({ EvtSource N(exitSingleDoor_802403B0) = {
group 27; EVT_SET_GROUP(27)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
UseDoorSounds(0); EVT_CALL(UseDoorSounds, 0)
EVT_VAR(0) = 0; EVT_SET(EVT_VAR(0), 0)
EVT_VAR(1) = 8; EVT_SET(EVT_VAR(1), 8)
EVT_VAR(2) = 14; EVT_SET(EVT_VAR(2), 14)
EVT_VAR(3) = -1; EVT_SET(EVT_VAR(3), -1)
spawn ExitSingleDoor; EVT_EXEC(ExitSingleDoor)
sleep 17; EVT_WAIT_FRAMES(17)
GotoMap("dgb_09", 2); EVT_CALL(GotoMap, EVT_PTR("dgb_09"), 2)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(enterSingleDoor_80240464) = SCRIPT({ EvtSource N(enterSingleDoor_80240464) = {
UseDoorSounds(0); EVT_CALL(UseDoorSounds, 0)
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
EVT_VAR(2) = 14; EVT_SET(EVT_VAR(2), 14)
EVT_VAR(3) = -1; EVT_SET(EVT_VAR(3), -1)
await EnterSingleDoor; EVT_EXEC_WAIT(EnterSingleDoor)
} EVT_END_SWITCH
} EVT_RETURN
}); EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR; EVT_SET(EVT_SAVE_VAR(425), 15)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
spawn N(802405E0); EVT_EXEC(N(802405E0))
spawn N(80240310); EVT_EXEC(N(80240310))
bind N(exitSingleDoor_802403B0) TRIGGER_WALL_PRESS_A 8; EVT_BIND_TRIGGER(N(exitSingleDoor_802403B0), TRIGGER_WALL_PRESS_A, 8, 1, 0)
spawn N(enterSingleDoor_80240464); EVT_EXEC(N(enterSingleDoor_80240464))
}); EVT_RETURN
EVT_END
};
s32 N(lavaResetList_802405C0)[] = { s32 N(lavaResetList_802405C0)[] = {
0x00000005, 0xC3FB8000, 0x00000000, 0xC27C0000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000005, 0xC3FB8000, 0x00000000, 0xC27C0000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(802405E0) = SCRIPT({ EvtSource N(802405E0) = {
group 239; EVT_SET_GROUP(239)
ModifyColliderFlags(3, 12, 0x00000002); EVT_CALL(ModifyColliderFlags, 3, 12, 0x00000002)
ModifyColliderFlags(3, 0, 0x00000002); EVT_CALL(ModifyColliderFlags, 3, 0, 0x00000002)
ModifyColliderFlags(3, 14, 0x00000002); EVT_CALL(ModifyColliderFlags, 3, 14, 0x00000002)
spawn { EVT_THREAD
ResetFromLava(N(lavaResetList_802405C0)); EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_802405C0)))
} EVT_END_THREAD
sleep 50; EVT_WAIT_FRAMES(50)
TranslateModel(19, 0, 0, 0); EVT_CALL(TranslateModel, 19, 0, 0, 0)
ParentColliderToModel(12, 19); EVT_CALL(ParentColliderToModel, 12, 19)
loop { EVT_LOOP(0)
spawn { EVT_THREAD
sleep 2; EVT_WAIT_FRAMES(2)
ModifyColliderFlags(0, 0, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 0, 0x7FFFFE00)
} EVT_END_THREAD
MakeLerp(0, -35, 15, 0); EVT_CALL(MakeLerp, 0, -35, 15, 0)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
TranslateModel(19, 0, EVT_VAR(0), 0); EVT_CALL(TranslateModel, 19, 0, EVT_VAR(0), 0)
UpdateColliderTransform(12); EVT_CALL(UpdateColliderTransform, 12)
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
sleep 60; EVT_WAIT_FRAMES(60)
PlaySoundAtCollider(0, 8339, 0); EVT_CALL(PlaySoundAtCollider, 0, 8339, 0)
spawn { EVT_THREAD
ModifyColliderFlags(1, 0, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 1, 0, 0x7FFFFE00)
} EVT_END_THREAD
MakeLerp(-35, 0, 4, 0); EVT_CALL(MakeLerp, -35, 0, 4, 0)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
TranslateModel(19, 0, EVT_VAR(0), 0); EVT_CALL(TranslateModel, 19, 0, EVT_VAR(0), 0)
UpdateColliderTransform(12); EVT_CALL(UpdateColliderTransform, 12)
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
sleep 35; EVT_WAIT_FRAMES(35)
} EVT_END_LOOP
}); EVT_RETURN
EVT_END
};
static s32 N(pad_868)[] = { static s32 N(pad_868)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -125,48 +132,53 @@ static s32 N(pad_868)[] = {
#include "world/common/StashVars.inc.c" #include "world/common/StashVars.inc.c"
EvtSource N(80240874) = SCRIPT({ EvtSource N(80240874) = {
group 0; EVT_SET_GROUP(0)
SetTimeFreezeMode(TIME_FREEZE_FULL); EVT_CALL(SetTimeFreezeMode, 2)
sleep 40; EVT_WAIT_FRAMES(40)
ShowGotItem(EVT_VAR(0), 0, 0); EVT_CALL(ShowGotItem, EVT_VAR(0), 0, 0)
SetTimeFreezeMode(TIME_FREEZE_NORMAL); EVT_CALL(SetTimeFreezeMode, 0)
return; EVT_RETURN
}); EVT_RETURN
EVT_END
};
EvtSource N(802408DC) = SCRIPT({ EvtSource N(802408DC) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
EVT_VAR(0) = EVT_VAR(10); EVT_SET(EVT_VAR(0), EVT_VAR(10))
if (EVT_VAR(10) != 0) { EVT_IF_NE(EVT_VAR(10), 0)
await N(80240874); EVT_EXEC_WAIT(N(80240874))
} EVT_END_IF
match EVT_VAR(11) { EVT_SWITCH(EVT_VAR(11))
== 0 { EVT_CASE_EQ(0)
AddItem(EVT_VAR(10), EVT_VAR(0)); EVT_CALL(AddItem, EVT_VAR(10), EVT_VAR(0))
} EVT_CASE_EQ(1)
== 1 { EVT_CALL(AddKeyItem, EVT_VAR(10))
AddKeyItem(EVT_VAR(10)); EVT_CASE_EQ(2)
} EVT_CALL(AddBadge, EVT_VAR(10), EVT_VAR(0))
== 2 { EVT_END_SWITCH
AddBadge(EVT_VAR(10), EVT_VAR(0)); EVT_WAIT_FRAMES(15)
} EVT_CALL(DisablePlayerInput, FALSE)
} EVT_RETURN
sleep 15; EVT_END
DisablePlayerInput(FALSE); };
});
EvtSource N(802409BC) = SCRIPT({ EvtSource N(802409BC) = {
EVT_VAR(10) = 19; EVT_SET(EVT_VAR(10), 19)
EVT_VAR(11) = 1; EVT_SET(EVT_VAR(11), 1)
EVT_SAVE_FLAG(1057) = 1; EVT_SET(EVT_SAVE_FLAG(1057), 1)
await N(802408DC); EVT_EXEC_WAIT(N(802408DC))
}); EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
MakeEntity(0x802EAE30, -225, 0, -245, 0, ITEM_NONE, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EAE30, -225, 0, -245, 0, 0, MAKE_ENTITY_END)
AssignFlag(EVT_SAVE_FLAG(1057)); EVT_CALL(AssignFlag, EVT_SAVE_FLAG(1057))
AssignScript(N(802409BC)); EVT_CALL(AssignScript, EVT_PTR(N(802409BC)))
}); EVT_RETURN
EVT_END
};
#include "world/common/GetItemName.inc.c" #include "world/common/GetItemName.inc.c"

View File

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

View File

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

View File

@ -13,93 +13,103 @@ MapConfig N(config) = {
.tattle = { MSG_dgb_17_tattle }, .tattle = { MSG_dgb_17_tattle },
}; };
EvtSource N(80240060) = SCRIPT({ EvtSource N(80240060) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH3_TUBBA_WOKE_UP { EVT_CASE_LT(-29)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
} EVT_CASE_LT(-16)
< STORY_CH3_DEFEATED_TUBBA_BLUBBA { EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8)
SetMusicTrack(0, SONG_TUBBA_ESCAPE, 0, 8); EVT_CASE_DEFAULT
} else { EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8)
SetMusicTrack(0, SONG_TUBBAS_MANOR, 0, 8); EVT_END_SWITCH
} EVT_RETURN
} EVT_END
}); };
static s32 N(pad_F8)[] = { static s32 N(pad_F8)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(exitDoubleDoor_80240100) = SCRIPT({ EvtSource N(exitDoubleDoor_80240100) = {
group 27; EVT_SET_GROUP(27)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
UseDoorSounds(3); EVT_CALL(UseDoorSounds, 3)
EVT_VAR(0) = 0; EVT_SET(EVT_VAR(0), 0)
EVT_VAR(1) = 7; EVT_SET(EVT_VAR(1), 7)
EVT_VAR(2) = 14; EVT_SET(EVT_VAR(2), 14)
EVT_VAR(3) = 16; EVT_SET(EVT_VAR(3), 16)
spawn ExitDoubleDoor; EVT_EXEC(ExitDoubleDoor)
sleep 17; EVT_WAIT_FRAMES(17)
GotoMap("dgb_15", 1); EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 1)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(exitDoubleDoor_802401B4) = SCRIPT({ EvtSource N(exitDoubleDoor_802401B4) = {
group 27; EVT_SET_GROUP(27)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
UseDoorSounds(3); EVT_CALL(UseDoorSounds, 3)
EVT_VAR(0) = 1; EVT_SET(EVT_VAR(0), 1)
EVT_VAR(1) = 11; EVT_SET(EVT_VAR(1), 11)
EVT_VAR(2) = 21; EVT_SET(EVT_VAR(2), 21)
EVT_VAR(3) = 19; EVT_SET(EVT_VAR(3), 19)
spawn ExitDoubleDoor; EVT_EXEC(ExitDoubleDoor)
sleep 17; EVT_WAIT_FRAMES(17)
GotoMap("dgb_01", 5); EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 5)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(80240268) = SCRIPT({ EvtSource N(80240268) = {
bind N(exitDoubleDoor_80240100) TRIGGER_WALL_PRESS_A 7; EVT_BIND_TRIGGER(N(exitDoubleDoor_80240100), TRIGGER_WALL_PRESS_A, 7, 1, 0)
bind N(exitDoubleDoor_802401B4) TRIGGER_WALL_PRESS_A 11; EVT_BIND_TRIGGER(N(exitDoubleDoor_802401B4), TRIGGER_WALL_PRESS_A, 11, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(enterDoubleDoor_802402B0) = SCRIPT({ EvtSource N(enterDoubleDoor_802402B0) = {
GetLoadType(EVT_VAR(1)); EVT_CALL(GetLoadType, EVT_VAR(1))
if (EVT_VAR(1) == 1) { EVT_IF_EQ(EVT_VAR(1), 1)
spawn EnterSavePoint; EVT_EXEC(EnterSavePoint)
spawn N(80240268); EVT_EXEC(N(80240268))
return; EVT_RETURN
} EVT_END_IF
UseDoorSounds(3); EVT_CALL(UseDoorSounds, 3)
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
EVT_VAR(2) = 14; EVT_SET(EVT_VAR(2), 14)
EVT_VAR(3) = 16; EVT_SET(EVT_VAR(3), 16)
await EnterDoubleDoor; EVT_EXEC_WAIT(EnterDoubleDoor)
} EVT_CASE_EQ(1)
== 1 { EVT_SET(EVT_VAR(2), 21)
EVT_VAR(2) = 21; EVT_SET(EVT_VAR(3), 19)
EVT_VAR(3) = 19; EVT_EXEC_WAIT(EnterDoubleDoor)
await EnterDoubleDoor; EVT_END_SWITCH
} EVT_EXEC(N(80240268))
} EVT_RETURN
spawn N(80240268); EVT_END
}); };
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_TUBBAS_MANOR; EVT_SET(EVT_SAVE_VAR(425), 15)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
spawn N(80240060); EVT_EXEC(N(80240060))
spawn N(enterDoubleDoor_802402B0); EVT_EXEC(N(enterDoubleDoor_802402B0))
}); EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
MakeEntity(0x802E9A18, -300, 60, 75, 0, MAKE_ENTITY_END); EVT_CALL(MakeEntity, EVT_PTR(D_802E9A18), -300, 60, 75, 0, MAKE_ENTITY_END)
MakeEntity(0x802EA7E0, -450, 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 }, .tattle = { MSG_flo_07_tattle },
}; };
EvtSource N(802407A0) = SCRIPT({ EvtSource N(802407A0) = {
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
} else { EVT_ELSE
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
} EVT_END_SWITCH
} EVT_END_IF
} EVT_CALL(PlaySound, 0x80000021)
PlaySound(0x80000021); EVT_RETURN
}); EVT_END
};
EvtSource N(8024086C) = SCRIPT({ EvtSource N(8024086C) = {
PushSong(137, 1); EVT_CALL(PushSong, 137, 1)
}); EVT_RETURN
EVT_END
};
EvtSource N(80240890) = SCRIPT({ EvtSource N(80240890) = {
FadeOutMusic(0, 250); EVT_CALL(FadeOutMusic, 0, 250)
sleep 10; EVT_WAIT_FRAMES(10)
PopSong(); EVT_CALL(PopSong)
}); EVT_RETURN
EVT_END
};
static s32 N(pad_8CC) = { static s32 N(pad_8CC) = {
0x00000000, 0x00000000,
}; };
EvtSource N(updateTexturePan_802408D0) = SCRIPT({ EvtSource N(updateTexturePan_802408D0) = {
group 0; EVT_SET_GROUP(0)
if (EVT_VAR(5) == 1) { EVT_IF_EQ(EVT_VAR(5), 1)
if (EVT_VAR(6) == 1) { EVT_IF_EQ(EVT_VAR(6), 1)
if (EVT_VAR(7) == 1) { EVT_IF_EQ(EVT_VAR(7), 1)
if (EVT_VAR(8) == 1) { EVT_IF_EQ(EVT_VAR(8), 1)
N(UnkTexturePanFunc)(); EVT_CALL(N(UnkTexturePanFunc))
return; EVT_RETURN
} EVT_END_IF
} EVT_END_IF
} EVT_END_IF
} EVT_END_IF
N(UnkTexturePanFunc2)(); EVT_CALL(N(UnkTexturePanFunc2))
}); EVT_RETURN
EVT_END
};
EvtSource N(8024096C) = SCRIPT({ EvtSource N(8024096C) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80240C18) = EXIT_WALK_SCRIPT(60, 0, "flo_25", 1); EvtSource N(exitWalk_80240C18) = EXIT_WALK_SCRIPT(60, 0, "flo_25", 1);
EvtSource N(80240C74) = SCRIPT({ EvtSource N(80240C74) = {
bind N(exitWalk_80240C18) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80240C18), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
EVT_AREA_FLAG(6) = 0; EVT_SET(EVT_AREA_FLAG(6), 0)
MakeNpcs(0, N(npcGroupList_80242B0C)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80242B0C)))
await N(802428C4); EVT_EXEC_WAIT(N(802428C4))
ModifyColliderFlags(3, 6, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 6, 0x00000006)
EVT_VAR(0) = 297; EVT_SET(EVT_VAR(0), 297)
EVT_VAR(1) = -95; EVT_SET(EVT_VAR(1), -95)
EVT_VAR(2) = 383; EVT_SET(EVT_VAR(2), 383)
EVT_VAR(3) = -65; EVT_SET(EVT_VAR(3), -65)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(8024096C); EVT_EXEC(N(8024096C))
EVT_VAR(0) = 293; EVT_SET(EVT_VAR(0), 293)
EVT_VAR(1) = 71; EVT_SET(EVT_VAR(1), 71)
EVT_VAR(2) = 378; EVT_SET(EVT_VAR(2), 378)
EVT_VAR(3) = 113; EVT_SET(EVT_VAR(3), 113)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(8024096C); EVT_EXEC(N(8024096C))
EVT_VAR(0) = 21; EVT_SET(EVT_VAR(0), 21)
EVT_VAR(1) = -346; EVT_SET(EVT_VAR(1), -346)
EVT_VAR(2) = 147; EVT_SET(EVT_VAR(2), 147)
EVT_VAR(3) = -242; EVT_SET(EVT_VAR(3), -242)
EVT_VAR(4) = 20; EVT_SET(EVT_VAR(4), 20)
spawn N(8024096C); EVT_EXEC(N(8024096C))
EVT_VAR(0) = -350; EVT_SET(EVT_VAR(0), -350)
EVT_VAR(1) = -190; EVT_SET(EVT_VAR(1), -190)
EVT_VAR(2) = -81; EVT_SET(EVT_VAR(2), -81)
EVT_VAR(3) = -106; EVT_SET(EVT_VAR(3), -106)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(8024096C); EVT_EXEC(N(8024096C))
EVT_VAR(0) = -380; EVT_SET(EVT_VAR(0), -380)
EVT_VAR(1) = 85; EVT_SET(EVT_VAR(1), 85)
EVT_VAR(2) = -95; EVT_SET(EVT_VAR(2), -95)
EVT_VAR(3) = 150; EVT_SET(EVT_VAR(3), 150)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(8024096C); EVT_EXEC(N(8024096C))
EnableTexPanning(51, 1); EVT_CALL(EnableTexPanning, 51, 1)
EnableTexPanning(49, 1); EVT_CALL(EnableTexPanning, 49, 1)
EnableTexPanning(50, 1); EVT_CALL(EnableTexPanning, 50, 1)
spawn { EVT_THREAD
EVT_VAR(0) = 2; EVT_SET(EVT_VAR(0), 2)
EVT_VAR(1) = -100; EVT_SET(EVT_VAR(1), -100)
EVT_VAR(2) = 100; EVT_SET(EVT_VAR(2), 100)
EVT_VAR(3) = 0; EVT_SET(EVT_VAR(3), 0)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
EVT_VAR(5) = 1; EVT_SET(EVT_VAR(5), 1)
EVT_VAR(6) = 1; EVT_SET(EVT_VAR(6), 1)
EVT_VAR(7) = 0; EVT_SET(EVT_VAR(7), 0)
EVT_VAR(8) = 0; EVT_SET(EVT_VAR(8), 0)
EVT_VAR(9) = 0; EVT_SET(EVT_VAR(9), 0)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
EVT_VAR(11) = 0; EVT_SET(EVT_VAR(11), 0)
EVT_VAR(12) = 0; EVT_SET(EVT_VAR(12), 0)
spawn N(updateTexturePan_802408D0); EVT_EXEC(N(updateTexturePan_802408D0))
} EVT_END_THREAD
spawn { EVT_THREAD
EVT_VAR(0) = 3; EVT_SET(EVT_VAR(0), 3)
EVT_VAR(1) = 0; EVT_SET(EVT_VAR(1), 0)
EVT_VAR(2) = -1200; EVT_SET(EVT_VAR(2), -1200)
EVT_VAR(3) = 0; EVT_SET(EVT_VAR(3), 0)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
EVT_VAR(5) = 0; EVT_SET(EVT_VAR(5), 0)
EVT_VAR(6) = 1; EVT_SET(EVT_VAR(6), 1)
EVT_VAR(7) = 0; EVT_SET(EVT_VAR(7), 0)
EVT_VAR(8) = 0; EVT_SET(EVT_VAR(8), 0)
EVT_VAR(9) = 0; EVT_SET(EVT_VAR(9), 0)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
EVT_VAR(11) = 0; EVT_SET(EVT_VAR(11), 0)
EVT_VAR(12) = 0; EVT_SET(EVT_VAR(12), 0)
spawn N(updateTexturePan_802408D0); EVT_EXEC(N(updateTexturePan_802408D0))
} EVT_END_THREAD
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
spawn N(80241C14); EVT_EXEC(N(80241C14))
} else { EVT_ELSE
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_VAR(0) = N(80240C74); EVT_SET(EVT_VAR(0), EVT_PTR(N(80240C74)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
spawn N(802424F4); EVT_EXEC(N(802424F4))
} EVT_END_IF
await N(802407A0); EVT_EXEC_WAIT(N(802407A0))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(SpawnSunEffect)(); EVT_CALL(N(SpawnSunEffect))
} EVT_END_IF
N(func_80240344_CAC534)(); EVT_CALL(N(func_80240344_CAC534))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_1214)[] = { static s32 N(pad_1214)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -215,230 +228,227 @@ NpcSettings N(npcSettings_80241220) = {
s32** N(D_80241BB0_CADDA0) = NULL; s32** N(D_80241BB0_CADDA0) = NULL;
EvtSource N(80241BB4) = SCRIPT({ EvtSource N(80241BB4) = {
ShowGotItem(EVT_VAR(0), 1, 0); EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 0)
return; EVT_RETURN
}); EVT_RETURN
EVT_END
};
EvtSource N(80241BE4) = SCRIPT({ EvtSource N(80241BE4) = {
ShowGotItem(EVT_VAR(0), 1, 16); EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 16)
return; EVT_RETURN
}); EVT_RETURN
EVT_END
};
EvtSource N(80241C14) = SCRIPT({ EvtSource N(80241C14) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
GetNpcPos(NPC_POSIE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(0) += 30; EVT_ADD(EVT_VAR(0), 30)
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetCamDistance(0, 300); EVT_CALL(SetCamDistance, 0, 300)
SetCamPitch(0, 11.0, -11.0); EVT_CALL(SetCamPitch, 0, EVT_FIXED(11.0), EVT_FIXED(-11.0))
SetCamSpeed(0, 90.0); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
sleep 20; EVT_WAIT_FRAMES(20)
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C5)); EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C5))
sleep 10; EVT_WAIT_FRAMES(10)
GotoMap("flo_10", 1); EVT_CALL(GotoMap, EVT_PTR("flo_10"), 1)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(80241D6C) = SCRIPT({ EvtSource N(80241D6C) = {
0: EVT_LABEL(0)
ShakeCam(0, 0, 1, 1.0); EVT_CALL(ShakeCam, 0, 0, 1, EVT_FIXED(1.0))
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(80241DBC) = SCRIPT({ EvtSource N(80241DBC) = {
if (EVT_AREA_FLAG(6) == 1) { EVT_IF_EQ(EVT_AREA_FLAG(6), 1)
return; EVT_RETURN
} EVT_END_IF
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0068)); EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0068))
spawn { EVT_THREAD
SetCamDistance(0, 300); EVT_CALL(SetCamDistance, 0, 300)
SetCamPitch(0, 18.0, -7.5); EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.0), EVT_FIXED(-7.5))
SetCamSpeed(0, 0.5); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(0.5))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
} EVT_END_THREAD
PlaySound(0x8000006B); EVT_CALL(PlaySound, 0x8000006B)
EVT_MAP_VAR(0) = spawn N(80241D6C); EVT_EXEC_GET_TID(N(80241D6C), EVT_MAP_VAR(0))
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_6, NPC_ANIM_posie_Palette_00_Anim_6, 0, MESSAGE_ID(0x11, 0x0069)); EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_6, NPC_ANIM_posie_Palette_00_Anim_6, 0, MESSAGE_ID(0x11, 0x0069))
kill EVT_MAP_VAR(0); EVT_KILL_THREAD(EVT_MAP_VAR(0))
SetCamDistance(0, 350); EVT_CALL(SetCamDistance, 0, 350)
SetCamPitch(0, 18.0, -7.5); EVT_CALL(SetCamPitch, 0, EVT_FIXED(18.0), EVT_FIXED(-7.5))
SetCamSpeed(0, 8.0); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(8.0))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
sleep 10; EVT_WAIT_FRAMES(10)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(0) -= EVT_VAR(2); EVT_SUB(EVT_VAR(0), EVT_VAR(2))
if (EVT_VAR(0) < -250) { EVT_IF_LT(EVT_VAR(0), -250)
MakeItemEntity(ITEM_CRYSTAL_BERRY, -225, 100, -25, 13, EVT_SAVE_FLAG(1374)); EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -225, 100, -25, 13, EVT_SAVE_FLAG(1374))
} else { EVT_ELSE
MakeItemEntity(ITEM_CRYSTAL_BERRY, -265, 100, 54, 13, EVT_SAVE_FLAG(1374)); EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -265, 100, 54, 13, EVT_SAVE_FLAG(1374))
EVT_SAVE_FLAG(1396) = 1; EVT_SET(EVT_SAVE_FLAG(1396), 1)
} EVT_END_IF
PlaySound(0x7BC); EVT_CALL(PlaySound, 0x7BC)
func_802D62E4(956); EVT_CALL(func_802D62E4, 956)
EVT_AREA_FLAG(6) = 1; EVT_SET(EVT_AREA_FLAG(6), 1)
sleep 20; EVT_WAIT_FRAMES(20)
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006A)); EVT_CALL(SpeakToPlayer, 0, 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; EVT_SET(EVT_SAVE_VAR(0), 47)
}); EVT_RETURN
EVT_END
};
EvtSource N(interact_80242044) = SCRIPT({ EvtSource N(interact_80242044) = {
await N(8024086C); EVT_EXEC_WAIT(N(8024086C))
NpcFacePlayer(NPC_SELF, 1); EVT_CALL(NpcFacePlayer, NPC_SELF, 1)
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_GOT_MAGICAL_BEAN { EVT_CASE_LT(45)
if (EVT_AREA_FLAG(5) == 0) { EVT_IF_EQ(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, EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0070))
0x0070)); EVT_SET(EVT_AREA_FLAG(5), 1)
EVT_AREA_FLAG(5) = 1; EVT_ELSE
} 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))
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_END_IF
0x0071)); 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))
< STORY_CH6_GOT_FERTILE_SOIL { EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_5)
AdjustCam(0, 4.0, 0, 350.0, 18.0, -7.5); EVT_WAIT_FRAMES(20)
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_0)
SetNpcAnimation(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_5); EVT_SET(EVT_VAR(0), 89)
sleep 20; EVT_SET(EVT_VAR(1), 1)
SetNpcAnimation(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_0); EVT_EXEC_WAIT(N(80241BB4))
EVT_VAR(0) = 89; EVT_CALL(AddKeyItem, ITEM_FERTILE_SOIL)
EVT_VAR(1) = 1; EVT_SET(EVT_SAVE_VAR(0), 46)
await N(80241BB4); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0066))
AddKeyItem(ITEM_FERTILE_SOIL); EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
EVT_STORY_PROGRESS = STORY_CH6_GOT_FERTILE_SOIL; EVT_EXEC_WAIT(N(80241DBC))
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0066)); EVT_END_IF
if (EVT_SAVE_FLAG(1379) == 1) { EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
await N(80241DBC); EVT_CASE_LT(47)
} EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
ResetCam(0, 4.0); 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))
< STORY_CH6_GOT_CRYSTAL_BERRY { EVT_EXEC_WAIT(N(80241DBC))
if (EVT_SAVE_FLAG(1379) == 1) { EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
if (EVT_AREA_FLAG(6) == 0) { EVT_ELSE
AdjustCam(0, 4.0, 0, 350.0, 18.0, -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, 0x0072))
await N(80241DBC); EVT_END_IF
ResetCam(0, 4.0); EVT_ELSE
} 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))
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_END_IF
0x0072)); EVT_CASE_LT(53)
} EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
} 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))
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_ELSE
0x0072)); 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
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0074))
if (EVT_SAVE_FLAG(1374) == 0) { EVT_END_IF
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_CALL(ContinueSpeech, -1, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0075))
0x0072)); EVT_END_IF
} else { EVT_CASE_LT(60)
if (EVT_STORY_PROGRESS < STORY_CH6_GOT_WATER_STONE) { EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0076))
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_CASE_DEFAULT
0x0073)); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0077))
} else { EVT_END_SWITCH
SpeakToPlayer(NPC_SELF, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_EXEC_WAIT(N(80240890))
0x0074)); EVT_RETURN
} EVT_END
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(init_80242428) = SCRIPT({ EvtSource N(init_80242428) = {
if (EVT_STORY_PROGRESS == STORY_CH6_GOT_CRYSTAL_BERRY) { EVT_IF_EQ(EVT_SAVE_VAR(0), 47)
if (EVT_SAVE_FLAG(1374) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
if (EVT_SAVE_FLAG(1396) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1396), 0)
MakeItemEntity(ITEM_CRYSTAL_BERRY, -225, 0, -25, 17, EVT_SAVE_FLAG(1374)); EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -225, 0, -25, 17, EVT_SAVE_FLAG(1374))
} else { EVT_ELSE
MakeItemEntity(ITEM_CRYSTAL_BERRY, -265, 0, 54, 17, EVT_SAVE_FLAG(1374)); EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -265, 0, 54, 17, EVT_SAVE_FLAG(1374))
} EVT_END_IF
} EVT_END_IF
} EVT_END_IF
EVT_AREA_FLAG(5) = 0; EVT_SET(EVT_AREA_FLAG(5), 0)
BindNpcInteract(NPC_SELF, N(interact_80242044)); EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80242044)))
}); EVT_RETURN
EVT_END
};
EvtSource N(802424F4) = SCRIPT({ EvtSource N(802424F4) = {
if (EVT_AREA_VAR(3) != 0) { EVT_IF_NE(EVT_AREA_VAR(3), 0)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
sleep 10; EVT_WAIT_FRAMES(10)
if (EVT_AREA_VAR(3) < 5) { EVT_IF_LT(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, EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006E))
0x006E)); EVT_CALL(GetPlayerPos, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
GetPlayerPos(EVT_VAR(1), EVT_VAR(2), EVT_VAR(3)); EVT_CALL(PlayerMoveTo, 410, EVT_VAR(3), 10)
PlayerMoveTo(410, EVT_VAR(3), 10); EVT_ADD(EVT_AREA_VAR(3), 1)
EVT_AREA_VAR(3) += 1; EVT_ELSE
} else { EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006F))
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_2, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_SET(EVT_AREA_VAR(3), 0)
0x006F)); EVT_END_IF
EVT_AREA_VAR(3) = 0; EVT_CALL(DisablePlayerInput, FALSE)
} EVT_END_IF
DisablePlayerInput(FALSE); EVT_RETURN
} EVT_END
}); };
const char N(flo_25_name_hack)[]; const char N(flo_25_name_hack)[];
EvtSource N(tree1_Callback) = SCRIPT({ EvtSource N(tree1_Callback) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
if (EVT_STORY_PROGRESS < STORY_CH6_GOT_CRYSTAL_BERRY) { EVT_IF_LT(EVT_SAVE_VAR(0), 47)
NpcFacePlayer(NPC_POSIE, 1); EVT_CALL(NpcFacePlayer, 0, 1)
sleep 10; EVT_WAIT_FRAMES(10)
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0067))
0x0067)); EVT_IF_EQ(EVT_SAVE_VAR(0), 46)
if (EVT_STORY_PROGRESS == STORY_CH6_GOT_FERTILE_SOIL) { EVT_IF_EQ(EVT_SAVE_FLAG(1379), 1)
if (EVT_SAVE_FLAG(1379) == 1) { EVT_CALL(UseSettingsFrom, 0, -250, 0, 0)
UseSettingsFrom(0, -250, 0, 0); EVT_CALL(SetPanTarget, 0, -250, 0, 0)
SetPanTarget(0, -250, 0, 0); EVT_CALL(SetCamDistance, 0, 350)
SetCamDistance(0, 350); EVT_CALL(PanToTarget, 0, 0, 1)
PanToTarget(0, 0, 1); EVT_EXEC_WAIT(N(80241DBC))
await N(80241DBC); EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
ResetCam(0, 4.0); EVT_END_IF
} EVT_END_IF
} EVT_ELSE
} else { EVT_IF_EQ(EVT_SAVE_FLAG(1374), 0)
if (EVT_SAVE_FLAG(1374) == 0) { EVT_CALL(NpcFacePlayer, 0, 1)
NpcFacePlayer(NPC_POSIE, 1); EVT_WAIT_FRAMES(10)
sleep 10; EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0067))
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_4, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, EVT_ELSE
0x0067)); EVT_ADD(EVT_AREA_VAR(2), 1)
} else { EVT_SWITCH(EVT_AREA_VAR(2))
EVT_AREA_VAR(2) += 1; EVT_CASE_LT(2)
match EVT_AREA_VAR(2) { EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006B))
< 2 { EVT_CASE_LT(5)
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006B)); 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)
< 5 { EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006D))
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006C)); EVT_SET(EVT_AREA_VAR(3), 1)
} EVT_CALL(GotoMap, EVT_PTR(N(flo_25_name_hack)), 1)
>= 5 { EVT_WAIT_FRAMES(100)
SpeakToPlayer(NPC_POSIE, NPC_ANIM_posie_Palette_00_Anim_3, NPC_ANIM_posie_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x006D)); EVT_END_SWITCH
EVT_AREA_VAR(3) = 1; EVT_END_IF
GotoMap(N(flo_25_name_hack), 1); EVT_END_IF
sleep 100; EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
} EVT_CALL(DisablePlayerInput, FALSE)
} EVT_RETURN
} EVT_END
} };
ResetCam(0, 4.0);
DisablePlayerInput(FALSE);
});
FoliageModelList N(tree1_Leaves) = { FoliageModelList N(tree1_Leaves) = {
.count = 3, .count = 3,
@ -458,11 +468,13 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_802428B4) = { -309.0f, 0.0f, 31.0f, 0.0f }; Vec4f N(triggerCoord_802428B4) = { -309.0f, 0.0f, 31.0f, 0.0f };
EvtSource N(802428C4) = SCRIPT({ EvtSource N(802428C4) = {
EVT_VAR(0) = N(tree1); EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
bind N(shakeTree) TRIGGER_WALL_HAMMER 4; EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 4, 1, 0)
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_802428B4); EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_802428B4)), 1, 0)
}); EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_8024291C) = { StaticNpc N(npcGroup_8024291C) = {
.id = NPC_POSIE, .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 s16 N(D_80241FB8_CB0CF8)[];
extern s32 N(D_80241FC8_CB0D08)[8][2]; extern s32 N(D_80241FC8_CB0D08)[8][2];
extern f32 N(D_80242008_CB0D48)[3]; 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 }, .tattle = { MSG_flo_09_tattle },
}; };
EvtSource N(80241880) = SCRIPT({ EvtSource N(80241880) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
} EVT_END_SWITCH
} EVT_RETURN
}); EVT_END
};
EvtSource N(802418F0) = SCRIPT({ EvtSource N(802418F0) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80241B9C) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 5); 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(exitWalk_80241BF8) = EXIT_WALK_SCRIPT(60, 1, "flo_03", 0);
EvtSource N(80241C54) = SCRIPT({ EvtSource N(80241C54) = {
bind N(exitWalk_80241B9C) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80241B9C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
bind N(exitWalk_80241BF8) TRIGGER_FLOOR_ABOVE 4; EVT_BIND_TRIGGER(N(exitWalk_80241BF8), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
MakeNpcs(0, N(npcGroupList_8024414C)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_8024414C)))
spawn N(802425DC); EVT_EXEC(N(802425DC))
spawn N(802434A8); EVT_EXEC(N(802434A8))
ModifyColliderFlags(3, 9, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000006)
EVT_VAR(0) = -511; EVT_SET(EVT_VAR(0), -511)
EVT_VAR(1) = -4; EVT_SET(EVT_VAR(1), -4)
EVT_VAR(2) = -319; EVT_SET(EVT_VAR(2), -319)
EVT_VAR(3) = 10; EVT_SET(EVT_VAR(3), 10)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802418F0); EVT_EXEC(N(802418F0))
EVT_VAR(0) = -302; EVT_SET(EVT_VAR(0), -302)
EVT_VAR(1) = 77; EVT_SET(EVT_VAR(1), 77)
EVT_VAR(2) = -32; EVT_SET(EVT_VAR(2), -32)
EVT_VAR(3) = 116; EVT_SET(EVT_VAR(3), 116)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802418F0); EVT_EXEC(N(802418F0))
EVT_VAR(0) = 51; EVT_SET(EVT_VAR(0), 51)
EVT_VAR(1) = 18; EVT_SET(EVT_VAR(1), 18)
EVT_VAR(2) = 141; EVT_SET(EVT_VAR(2), 141)
EVT_VAR(3) = 127; EVT_SET(EVT_VAR(3), 127)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802418F0); EVT_EXEC(N(802418F0))
EVT_VAR(0) = 234; EVT_SET(EVT_VAR(0), 234)
EVT_VAR(1) = 38; EVT_SET(EVT_VAR(1), 38)
EVT_VAR(2) = 502; EVT_SET(EVT_VAR(2), 502)
EVT_VAR(3) = 98; EVT_SET(EVT_VAR(3), 98)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802418F0); EVT_EXEC(N(802418F0))
EVT_VAR(0) = -525; EVT_SET(EVT_VAR(0), -525)
EVT_VAR(1) = -163; EVT_SET(EVT_VAR(1), -163)
EVT_VAR(2) = -400; EVT_SET(EVT_VAR(2), -400)
EVT_VAR(3) = -80; EVT_SET(EVT_VAR(3), -80)
EVT_VAR(4) = 60; EVT_SET(EVT_VAR(4), 60)
spawn N(802418F0); EVT_EXEC(N(802418F0))
EVT_VAR(0) = -346; EVT_SET(EVT_VAR(0), -346)
EVT_VAR(1) = -148; EVT_SET(EVT_VAR(1), -148)
EVT_VAR(2) = 517; EVT_SET(EVT_VAR(2), 517)
EVT_VAR(3) = -91; EVT_SET(EVT_VAR(3), -91)
EVT_VAR(4) = 60; EVT_SET(EVT_VAR(4), 60)
spawn N(802418F0); EVT_EXEC(N(802418F0))
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
ModifyColliderFlags(0, 5, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_VAR(0) = N(80241C54); EVT_SET(EVT_VAR(0), EVT_PTR(N(80241C54)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
await N(80241880); EVT_EXEC_WAIT(N(80241880))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(func_80240000_CB5000)(); EVT_CALL(N(func_80240000_CB5000))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
static s32 N(pad_2004)[] = { static s32 N(pad_2004)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(80242010) = SCRIPT({ EvtSource N(80242010) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(802422BC) = SCRIPT({ EvtSource N(802422BC) = {
EVT_VAR(9) = EVT_VAR(6); EVT_SET(EVT_VAR(9), EVT_VAR(6))
EVT_VAR(8) = EVT_VAR(5); EVT_SET(EVT_VAR(8), EVT_VAR(5))
EVT_VAR(7) = EVT_VAR(4); EVT_SET(EVT_VAR(7), EVT_VAR(4))
EVT_VAR(6) = EVT_VAR(3); EVT_SET(EVT_VAR(6), EVT_VAR(3))
EVT_VAR(5) = EVT_VAR(2); EVT_SET(EVT_VAR(5), EVT_VAR(2))
EVT_VAR(4) = EVT_VAR(1); EVT_SET(EVT_VAR(4), EVT_VAR(1))
EVT_VAR(3) = EVT_VAR(0); EVT_SET(EVT_VAR(3), EVT_VAR(0))
EnableModel(EVT_VAR(6), 0); EVT_CALL(EnableModel, EVT_VAR(6), 0)
0: EVT_LABEL(0)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
N(UnkFunc43)(); EVT_CALL(N(UnkFunc43))
if (EVT_VAR(0) == 0) { EVT_IF_EQ(EVT_VAR(0), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
} EVT_END_IF
spawn { EVT_THREAD
sleep 5; EVT_WAIT_FRAMES(5)
EnableModel(EVT_VAR(6), 1); EVT_CALL(EnableModel, EVT_VAR(6), 1)
} EVT_END_THREAD
if (EVT_VAR(10) != 0) { EVT_IF_NE(EVT_VAR(10), 0)
spawn { EVT_THREAD
sleep 5; EVT_WAIT_FRAMES(5)
EVT_VAR(0) = EVT_VAR(3); EVT_SET(EVT_VAR(0), EVT_VAR(3))
EVT_VAR(1) = EVT_VAR(4); EVT_SET(EVT_VAR(1), EVT_VAR(4))
EVT_VAR(2) = EVT_VAR(5); EVT_SET(EVT_VAR(2), EVT_VAR(5))
EVT_VAR(1) += 10; EVT_ADD(EVT_VAR(1), 10)
EVT_VAR(2) += 8; EVT_ADD(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); EVT_CALL(PlayEffect, 0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0)
sleep 15; EVT_WAIT_FRAMES(15)
EVT_VAR(1) -= 10; EVT_SUB(EVT_VAR(1), 10)
MakeItemEntity(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0); EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0)
} EVT_END_THREAD
} EVT_END_IF
spawn { EVT_THREAD
sleep 10; EVT_WAIT_FRAMES(10)
PlaySoundAt(0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(PlaySoundAt, 0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
} EVT_END_THREAD
MakeLerp(0, 180, 20, 2); EVT_CALL(MakeLerp, 0, 180, 20, 2)
1: EVT_LABEL(1)
UpdateLerp(); EVT_CALL(UpdateLerp)
RotateModel(EVT_VAR(8), EVT_VAR(0), 1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(8), EVT_VAR(0), 1, 0, 0)
RotateModel(EVT_VAR(9), EVT_VAR(0), 1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(9), EVT_VAR(0), 1, 0, 0)
if (EVT_VAR(1) == 1) { EVT_IF_EQ(EVT_VAR(1), 1)
sleep 1; EVT_WAIT_FRAMES(1)
goto 1; EVT_GOTO(1)
} EVT_END_IF
EnableModel(EVT_VAR(7), 0); EVT_CALL(EnableModel, EVT_VAR(7), 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(802425DC) = SCRIPT({ EvtSource N(802425DC) = {
GetModelCenter(69); EVT_CALL(GetModelCenter, 69)
EVT_VAR(3) = 69; EVT_SET(EVT_VAR(3), 69)
EVT_VAR(4) = 70; EVT_SET(EVT_VAR(4), 70)
EVT_VAR(5) = 71; EVT_SET(EVT_VAR(5), 71)
EVT_VAR(6) = 72; EVT_SET(EVT_VAR(6), 72)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(802422BC); EVT_EXEC(N(802422BC))
GetModelCenter(75); EVT_CALL(GetModelCenter, 75)
EVT_VAR(3) = 75; EVT_SET(EVT_VAR(3), 75)
EVT_VAR(4) = 76; EVT_SET(EVT_VAR(4), 76)
EVT_VAR(5) = 77; EVT_SET(EVT_VAR(5), 77)
EVT_VAR(6) = 78; EVT_SET(EVT_VAR(6), 78)
EVT_VAR(10) = 174; EVT_SET(EVT_VAR(10), 174)
spawn N(802422BC); EVT_EXEC(N(802422BC))
GetModelCenter(83); EVT_CALL(GetModelCenter, 83)
EVT_VAR(3) = 83; EVT_SET(EVT_VAR(3), 83)
EVT_VAR(4) = 84; EVT_SET(EVT_VAR(4), 84)
EVT_VAR(5) = 85; EVT_SET(EVT_VAR(5), 85)
EVT_VAR(6) = 86; EVT_SET(EVT_VAR(6), 86)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(802422BC); EVT_EXEC(N(802422BC))
GetModelCenter(89); EVT_CALL(GetModelCenter, 89)
EVT_VAR(3) = 89; EVT_SET(EVT_VAR(3), 89)
EVT_VAR(4) = 90; EVT_SET(EVT_VAR(4), 90)
EVT_VAR(5) = 91; EVT_SET(EVT_VAR(5), 91)
EVT_VAR(6) = 92; EVT_SET(EVT_VAR(6), 92)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(802422BC); EVT_EXEC(N(802422BC))
GetModelCenter(97); EVT_CALL(GetModelCenter, 97)
EVT_VAR(3) = 97; EVT_SET(EVT_VAR(3), 97)
EVT_VAR(4) = 98; EVT_SET(EVT_VAR(4), 98)
EVT_VAR(5) = 99; EVT_SET(EVT_VAR(5), 99)
EVT_VAR(6) = 100; EVT_SET(EVT_VAR(6), 100)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(802422BC); EVT_EXEC(N(802422BC))
GetModelCenter(103); EVT_CALL(GetModelCenter, 103)
EVT_VAR(3) = 103; EVT_SET(EVT_VAR(3), 103)
EVT_VAR(4) = 104; EVT_SET(EVT_VAR(4), 104)
EVT_VAR(5) = 105; EVT_SET(EVT_VAR(5), 105)
EVT_VAR(6) = 106; EVT_SET(EVT_VAR(6), 106)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(802422BC); EVT_EXEC(N(802422BC))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_2874)[] = { static s32 N(pad_2874)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -281,49 +294,57 @@ static s32 N(pad_2874)[] = {
#include "world/common/foliage.inc.c" #include "world/common/foliage.inc.c"
EvtSource N(802431E4) = SCRIPT({ EvtSource N(802431E4) = {
GetNpcPos(NPC_BZZAP1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
if (EVT_VAR(1) < 0) { EVT_IF_LT(EVT_VAR(1), 0)
GetModelCenter(EVT_VAR(9)); EVT_CALL(GetModelCenter, EVT_VAR(9))
EVT_VAR(2) += 35; EVT_ADD(EVT_VAR(2), 35)
SetNpcPos(NPC_BZZAP1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); 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({ EvtSource N(tree1_Callback) = {
if (EVT_SAVE_FLAG(1382) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
if (EVT_AREA_VAR(5) == 1) { EVT_IF_EQ(EVT_AREA_VAR(5), 1)
MakeItemEntity(ITEM_HAPPY_FLOWER_B, -250, 100, 0, 13, EVT_SAVE_FLAG(1382)); EVT_CALL(MakeItemEntity, ITEM_HAPPY_FLOWER_B, -250, 100, 0, 13, EVT_SAVE_FLAG(1382))
} else { EVT_ELSE
EVT_VAR(9) = 14; EVT_SET(EVT_VAR(9), 14)
spawn N(802431E4); EVT_EXEC(N(802431E4))
} EVT_END_IF
EVT_AREA_VAR(4) = 0; EVT_SET(EVT_AREA_VAR(4), 0)
EVT_AREA_VAR(5) = 0; EVT_SET(EVT_AREA_VAR(5), 0)
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
EvtSource N(tree2_Callback) = SCRIPT({ EvtSource N(tree2_Callback) = {
if (EVT_SAVE_FLAG(1382) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
EVT_AREA_VAR(4) = 1; EVT_SET(EVT_AREA_VAR(4), 1)
EVT_AREA_VAR(5) = 0; EVT_SET(EVT_AREA_VAR(5), 0)
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
EvtSource N(tree3_Callback) = SCRIPT({ EvtSource N(tree3_Callback) = {
if (EVT_SAVE_FLAG(1382) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1382), 0)
if (EVT_AREA_VAR(4) == 1) { EVT_IF_EQ(EVT_AREA_VAR(4), 1)
if (EVT_AREA_VAR(5) == 0) { EVT_IF_EQ(EVT_AREA_VAR(5), 0)
EVT_AREA_VAR(5) = 1; EVT_SET(EVT_AREA_VAR(5), 1)
return; EVT_RETURN
} EVT_END_IF
} EVT_END_IF
EVT_VAR(9) = 22; EVT_SET(EVT_VAR(9), 22)
spawn N(802431E4); EVT_EXEC(N(802431E4))
EVT_AREA_VAR(4) = 0; EVT_SET(EVT_AREA_VAR(4), 0)
EVT_AREA_VAR(5) = 0; EVT_SET(EVT_AREA_VAR(5), 0)
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
FoliageModelList N(tree1_Leaves) = { FoliageModelList N(tree1_Leaves) = {
.count = 2, .count = 2,
@ -379,19 +400,21 @@ ShakeTreeConfig N(tree3) = {
Vec4f N(triggerCoord_80243498) = { 200.0f, 0.0f, 1.0f, 0.0f }; Vec4f N(triggerCoord_80243498) = { 200.0f, 0.0f, 1.0f, 0.0f };
EvtSource N(802434A8) = SCRIPT({ EvtSource N(802434A8) = {
EVT_AREA_VAR(4) = 0; EVT_SET(EVT_AREA_VAR(4), 0)
EVT_AREA_VAR(5) = 0; EVT_SET(EVT_AREA_VAR(5), 0)
EVT_VAR(0) = N(tree1); EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
bind N(shakeTree) TRIGGER_WALL_HAMMER 15; EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 15, 1, 0)
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243428); EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243428)), 1, 0)
EVT_VAR(0) = N(tree2); EVT_SET(EVT_VAR(0), EVT_PTR(N(tree2)))
bind N(shakeTree) TRIGGER_WALL_HAMMER 16; EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 16, 1, 0)
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243460); EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243460)), 1, 0)
EVT_VAR(0) = N(tree3); EVT_SET(EVT_VAR(0), EVT_PTR(N(tree3)))
bind N(shakeTree) TRIGGER_WALL_HAMMER 17; EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 17, 1, 0)
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80243498); EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243498)), 1, 0)
}); EVT_RETURN
EVT_END
};
NpcAISettings N(npcAISettings_802435B0) = { NpcAISettings N(npcAISettings_802435B0) = {
.moveSpeed = 1.0f, .moveSpeed = 1.0f,
@ -408,9 +431,11 @@ NpcAISettings N(npcAISettings_802435B0) = {
.unk_2C = 1, .unk_2C = 1,
}; };
EvtSource N(npcAI_802435E0) = SCRIPT({ EvtSource N(npcAI_802435E0) = {
DoBasicAI(N(npcAISettings_802435B0)); EVT_CALL(DoBasicAI, EVT_PTR(N(npcAISettings_802435B0)))
}); EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80243600) = { NpcSettings N(npcSettings_80243600) = {
.height = 30, .height = 30,
@ -441,13 +466,15 @@ NpcAISettings N(npcAISettings_80243644) = {
.unk_2C = 1, .unk_2C = 1,
}; };
EvtSource N(npcAI_80243674) = SCRIPT({ EvtSource N(npcAI_80243674) = {
SetSelfVar(0, 0); EVT_CALL(SetSelfVar, 0, 0)
SetSelfVar(5, -630); EVT_CALL(SetSelfVar, 5, -630)
SetSelfVar(6, 50); EVT_CALL(SetSelfVar, 6, 50)
SetSelfVar(1, 200); EVT_CALL(SetSelfVar, 1, 200)
N(func_8024162C_CB662C)(N(npcAISettings_80243644)); EVT_CALL(N(func_8024162C_CB662C), EVT_PTR(N(npcAISettings_80243644)))
}); EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802436E4) = { NpcSettings N(npcSettings_802436E4) = {
.height = 26, .height = 26,
@ -464,51 +491,53 @@ NpcSettings N(npcSettings_80243710) = {
.level = 99, .level = 99,
}; };
EvtSource N(npcAI_8024373C) = SCRIPT({ EvtSource N(npcAI_8024373C) = {
loop { EVT_LOOP(0)
GetSelfVar(0, EVT_VAR(0)); EVT_CALL(GetSelfVar, 0, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
if (EVT_VAR(1) > 0) { EVT_IF_GT(EVT_VAR(1), 0)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetNpcJumpscale(NPC_SELF, 0); EVT_CALL(SetNpcJumpscale, NPC_SELF, 0)
NpcJump0(NPC_SELF, EVT_VAR(0), 50, EVT_VAR(2), 15); EVT_CALL(NpcJump0, NPC_SELF, EVT_VAR(0), 50, EVT_VAR(2), 15)
SetSelfVar(0, 1); EVT_CALL(SetSelfVar, 0, 1)
BindNpcAI(NPC_SELF, N(npcAI_80243674)); EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_80243674)))
} EVT_END_IF
} EVT_CASE_EQ(2)
== 2 { EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerInput(TRUE); EVT_WAIT_FRAMES(25)
sleep 25; EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE); EVT_CALL(SetSelfVar, 0, 0)
SetSelfVar(0, 0); EVT_CALL(DisablePlayerInput, FALSE)
DisablePlayerInput(FALSE); EVT_END_SWITCH
} EVT_WAIT_FRAMES(1)
} EVT_END_LOOP
sleep 1; EVT_RETURN
} EVT_END
}); };
EvtSource N(defeat_802438C8) = SCRIPT({ EvtSource N(defeat_802438C8) = {
GetBattleOutcome(EVT_VAR(0)); EVT_CALL(GetBattleOutcome, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
SetSelfVar(0, 2); EVT_CALL(SetSelfVar, 0, 2)
BindNpcAI(NPC_SELF, N(npcAI_8024373C)); EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_8024373C)))
DoNpcDefeat(); EVT_CALL(DoNpcDefeat)
} EVT_CASE_EQ(1)
== 1 {} EVT_CASE_EQ(2)
== 2 { EVT_END_SWITCH
} EVT_RETURN
} EVT_END
}); };
EvtSource N(init_80243954) = SCRIPT({ EvtSource N(init_80243954) = {
BindNpcIdle(NPC_SELF, N(npcAI_8024373C)); EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_8024373C)))
BindNpcDefeat(NPC_SELF, N(defeat_802438C8)); EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802438C8)))
}); EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_8024398C) = { StaticNpc N(npcGroup_8024398C) = {
.id = NPC_DAYZEE0, .id = NPC_DAYZEE0,

View File

@ -32,8 +32,10 @@ ShakeTreeConfig N(tree1) = {
Vec4f N(triggerCoord_80244A40) = { 137.0f, 0.0f, -283.0f, 0.0f }; Vec4f N(triggerCoord_80244A40) = { 137.0f, 0.0f, -283.0f, 0.0f };
EvtSource N(80244A50) = SCRIPT({ EvtSource N(80244A50) = {
EVT_VAR(0) = N(tree1); EVT_SET(EVT_VAR(0), EVT_PTR(N(tree1)))
bind N(shakeTree) TRIGGER_WALL_HAMMER 9; EVT_BIND_TRIGGER(N(shakeTree), TRIGGER_WALL_HAMMER, 9, 1, 0)
bind N(shakeTree) TRIGGER_POINT_BOMB N(triggerCoord_80244A40); 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 }, .tattle = { MSG_flo_12_tattle },
}; };
EvtSource N(80240750) = SCRIPT({ EvtSource N(80240750) = {
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
} else { EVT_ELSE
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
} EVT_END_SWITCH
} EVT_END_IF
} EVT_RETURN
}); EVT_END
};
EvtSource N(8024080C) = SCRIPT({ EvtSource N(8024080C) = {
PushSong(137, 3); EVT_CALL(PushSong, 137, 3)
}); EVT_RETURN
EVT_END
};
EvtSource N(80240830) = SCRIPT({ EvtSource N(80240830) = {
FadeOutMusic(0, 250); EVT_CALL(FadeOutMusic, 0, 250)
sleep 10; EVT_WAIT_FRAMES(10)
PopSong(); EVT_CALL(PopSong)
}); EVT_RETURN
EVT_END
};
static s32 N(pad_86C) = { static s32 N(pad_86C) = {
0x00000000, 0x00000000,
}; };
EvtSource N(80240870) = SCRIPT({ EvtSource N(80240870) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_80240B1C) = EXIT_WALK_SCRIPT(60, 0, "flo_11", 1); EvtSource N(exitWalk_80240B1C) = EXIT_WALK_SCRIPT(60, 0, "flo_11", 1);
EvtSource N(80240B78) = SCRIPT({ EvtSource N(80240B78) = {
bind N(exitWalk_80240B1C) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80240B1C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
EVT_AREA_FLAG(22) = 0; EVT_SET(EVT_AREA_FLAG(22), 0)
MakeNpcs(0, N(npcGroupList_802429B8)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802429B8)))
ModifyColliderFlags(3, 11, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 11, 0x00000006)
EVT_VAR(0) = -65; EVT_SET(EVT_VAR(0), -65)
EVT_VAR(1) = -210; EVT_SET(EVT_VAR(1), -210)
EVT_VAR(2) = 90; EVT_SET(EVT_VAR(2), 90)
EVT_VAR(3) = -110; EVT_SET(EVT_VAR(3), -110)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(80240870); EVT_EXEC(N(80240870))
EVT_VAR(0) = -200; EVT_SET(EVT_VAR(0), -200)
EVT_VAR(1) = 130; EVT_SET(EVT_VAR(1), 130)
EVT_VAR(2) = -80; EVT_SET(EVT_VAR(2), -80)
EVT_VAR(3) = 170; EVT_SET(EVT_VAR(3), 170)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(80240870); EVT_EXEC(N(80240870))
EVT_VAR(0) = -270; EVT_SET(EVT_VAR(0), -270)
EVT_VAR(1) = -80; EVT_SET(EVT_VAR(1), -80)
EVT_VAR(2) = -225; EVT_SET(EVT_VAR(2), -225)
EVT_VAR(3) = 125; EVT_SET(EVT_VAR(3), 125)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(80240870); EVT_EXEC(N(80240870))
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
spawn N(802419F4); EVT_EXEC(N(802419F4))
} else { EVT_ELSE
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_VAR(0) = N(80240B78); EVT_SET(EVT_VAR(0), EVT_PTR(N(80240B78)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
} EVT_END_IF
await N(80240750); EVT_EXEC_WAIT(N(80240750))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(func_80240000_CC0E30)(); EVT_CALL(N(func_80240000_CC0E30))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
static s32 N(pad_E28)[] = { static s32 N(pad_E28)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -158,15 +169,19 @@ NpcSettings N(npcSettings_80240E5C) = {
s32** N(D_802417EC_CC261C) = NULL; s32** N(D_802417EC_CC261C) = NULL;
EvtSource N(802417F0) = SCRIPT({ EvtSource N(802417F0) = {
ShowGotItem(EVT_VAR(0), 1, 0); EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 0)
return; EVT_RETURN
}); EVT_RETURN
EVT_END
};
EvtSource N(80241820) = SCRIPT({ EvtSource N(80241820) = {
ShowGotItem(EVT_VAR(0), 1, 16); EVT_CALL(ShowGotItem, EVT_VAR(0), 1, 16)
return; EVT_RETURN
}); EVT_RETURN
EVT_END
};
s32 N(D_80241850_CC2680) = { s32 N(D_80241850_CC2680) = {
0x00000000, 0x00000000,
@ -176,233 +191,222 @@ s32 N(D_80241854_CC2684) = {
0x00000000, 0x00000000,
}; };
EvtSource N(80241858) = SCRIPT({ EvtSource N(80241858) = {
EVT_VAR(9) = EVT_VAR(1); EVT_SET(EVT_VAR(9), EVT_VAR(1))
ShowKeyChoicePopup(); EVT_CALL(ShowKeyChoicePopup)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 {} EVT_CASE_EQ(0)
== -1 {} EVT_CASE_EQ(-1)
else { EVT_CASE_DEFAULT
RemoveKeyItemAt(EVT_VAR(1)); EVT_CALL(RemoveKeyItemAt, EVT_VAR(1))
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(N(AddPlayerHandsOffset), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
EVT_VAR(0) |= (const) 0x50000; EVT_BITWISE_OR_CONST(EVT_VAR(0), 0x50000)
MakeItemEntity(EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0); EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
SetPlayerAnimation(0x60005); EVT_CALL(SetPlayerAnimation, 393221)
sleep 30; EVT_WAIT_FRAMES(30)
SetPlayerAnimation(ANIM_10002); EVT_CALL(SetPlayerAnimation, ANIM_10002)
RemoveItemEntity(EVT_VAR(0)); EVT_CALL(RemoveItemEntity, EVT_VAR(0))
} EVT_END_SWITCH
} EVT_CALL(N(func_80240614_CC1444), EVT_VAR(10))
N(func_80240614_CC1444)(EVT_VAR(10)); EVT_CALL(CloseChoicePopup)
CloseChoicePopup(); EVT_UNBIND
unbind; EVT_RETURN
}); EVT_END
};
EvtSource N(8024199C) = SCRIPT({ EvtSource N(8024199C) = {
N(func_8024064C_CC147C)(EVT_VAR(0)); EVT_CALL(N(func_8024064C_CC147C), EVT_VAR(0))
bind_padlock N(80241858) 0x10 0 N(D_802429E0); EVT_BIND_PADLOCK(N(80241858), 0x10, 0, EVT_PTR(N(D_802429E0)), 0, 1)
N(func_802405C0_CC13F0)(EVT_VAR(0)); EVT_CALL(N(func_802405C0_CC13F0), EVT_VAR(0))
}); EVT_RETURN
EVT_END
};
s32 N(D_802419EC_CC281C)[] = { s32 N(D_802419EC_CC281C)[] = {
0x0000001E, 0x00000000, 0x0000001E, 0x00000000,
}; };
EvtSource N(802419F4) = SCRIPT({ EvtSource N(802419F4) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
GetNpcPos(NPC_ROSIE0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetCamDistance(0, 350); EVT_CALL(SetCamDistance, 0, 350)
SetCamPitch(0, 17.0, -9.5); EVT_CALL(SetCamPitch, 0, EVT_FIXED(17.0), EVT_FIXED(-9.5))
SetCamPosA(0, 0, 0); EVT_CALL(SetCamPosA, 0, 0, 0)
SetCamPosB(0, 0, -50); EVT_CALL(SetCamPosB, 0, 0, -50)
SetCamSpeed(0, 90.0); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
sleep 20; EVT_WAIT_FRAMES(20)
SpeakToPlayer(NPC_ROSIE0, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x00C7)); EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x00C7))
sleep 10; EVT_WAIT_FRAMES(10)
GotoMap("flo_03", 2); EVT_CALL(GotoMap, EVT_PTR("flo_03"), 2)
sleep 100; EVT_WAIT_FRAMES(100)
}); EVT_RETURN
EVT_END
};
EvtSource N(80241B6C) = SCRIPT({ EvtSource N(80241B6C) = {
sleep 10; EVT_WAIT_FRAMES(10)
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), TRUE)
PlayerMoveTo(-5, 20, 20); EVT_CALL(PlayerMoveTo, -5, 20, 20)
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), FALSE)
PlayerFaceNpc(0, 1); EVT_CALL(PlayerFaceNpc, 0, 1)
}); EVT_RETURN
EVT_END
};
EvtSource N(80241BE4) = SCRIPT({ EvtSource N(80241BE4) = {
sleep 10; EVT_WAIT_FRAMES(10)
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), TRUE)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), TRUE)
PlayerMoveTo(-5, 20, 20); EVT_CALL(PlayerMoveTo, -5, 20, 20)
SetNpcFlagBits(NPC_ROSIE0, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_100)), FALSE)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
PlayerFaceNpc(0, 1); EVT_CALL(PlayerFaceNpc, 0, 1)
}); EVT_RETURN
EVT_END
};
EvtSource N(interact_80241C8C) = SCRIPT({ EvtSource N(interact_80241C8C) = {
await N(8024080C); EVT_EXEC_WAIT(N(8024080C))
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_GOT_CRYSTAL_BERRY { EVT_CASE_LT(47)
match EVT_SAVE_FLAG(1378) { EVT_SWITCH(EVT_SAVE_FLAG(1378))
== 0 { EVT_CASE_EQ(0)
spawn N(80241B6C); EVT_EXEC(N(80241B6C))
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(0) += 30; EVT_ADD(EVT_VAR(0), 30)
SetCamProperties(0, 4.0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, 19.0, -9.5); 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))
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008C)); EVT_CALL(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)); EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x0011))
sleep 10; EVT_WAIT_FRAMES(10)
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
ContinueSpeech(-1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008D)); 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)
== 1 { EVT_CALL(ContinueSpeech, -1, NPC_ANIM_rosie_Palette_00_Anim_3, NPC_ANIM_rosie_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x008E))
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)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE); EVT_WAIT_FRAMES(10)
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_5); EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
sleep 10; EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2); EVT_WAIT_FRAMES(10)
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380); EVT_SWITCH(EVT_SAVE_FLAG(1375))
sleep 10; EVT_CASE_EQ(0)
match EVT_SAVE_FLAG(1375) { EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x008F))
== 0 { EVT_CASE_EQ(1)
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, 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))
== 1 { EVT_CALL(SetPlayerAnimation, 393221)
SetPlayerAnimation(0x60002); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0091))
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, ANIM_PRAY)
SetPlayerAnimation(0x60005); EVT_WAIT_FRAMES(40)
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_10002)
SetPlayerAnimation(ANIM_PRAY); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0092))
sleep 40; EVT_SET(EVT_SAVE_FLAG(1379), 1)
SetPlayerAnimation(ANIM_10002); EVT_END_SWITCH
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(1378), 1)
EVT_SAVE_FLAG(1379) = 1; EVT_CASE_EQ(1)
} EVT_SWITCH(EVT_SAVE_FLAG(1379))
} EVT_CASE_EQ(0)
EVT_SAVE_FLAG(1378) = 1; EVT_IF_EQ(EVT_SAVE_FLAG(1375), 1)
} EVT_EXEC(N(80241BE4))
== 1 { EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x0090))
match EVT_SAVE_FLAG(1379) { EVT_CALL(SetPlayerAnimation, 393221)
== 0 { EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0091))
if (EVT_SAVE_FLAG(1375) == 1) { EVT_CALL(SetPlayerAnimation, ANIM_PRAY)
spawn N(80241BE4); EVT_WAIT_FRAMES(40)
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, EVT_CALL(SetPlayerAnimation, ANIM_10002)
0x0090)); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0092))
SetPlayerAnimation(0x60005); EVT_SET(EVT_SAVE_FLAG(1379), 1)
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, EVT_ELSE
0x0091)); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, 0x0090))
SetPlayerAnimation(ANIM_PRAY); EVT_END_IF
sleep 40; EVT_CASE_EQ(1)
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, 0x0093))
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, EVT_END_SWITCH
0x0092)); EVT_END_SWITCH
EVT_SAVE_FLAG(1379) = 1; EVT_CASE_LT(48)
} else { EVT_CALL(FindKeyItem, ITEM_CRYSTAL_BERRY, EVT_VAR(0))
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_4, 5, MESSAGE_ID(0x11, EVT_IF_NE(EVT_VAR(0), -1)
0x0090)); EVT_EXEC(N(80241BE4))
} EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
} EVT_ADD(EVT_VAR(0), 30)
== 1 { 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))
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0093)); 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))
< 48 { EVT_CASE_LE(0)
FindKeyItem(ITEM_CRYSTAL_BERRY, EVT_VAR(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))
if (EVT_VAR(0) != -1) { EVT_CASE_DEFAULT
spawn N(80241BE4); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0095))
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(RemoveItemEntity, EVT_VAR(7))
EVT_VAR(0) += 30; EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380)
SetCamProperties(0, 4.0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 325, 19.0, -9.5); EVT_SET(EVT_VAR(0), 87)
} EVT_SET(EVT_VAR(1), 1)
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0094)); EVT_EXEC_WAIT(N(802417F0))
EVT_VAR(0) = N(D_802419EC_CC281C); EVT_CALL(AddKeyItem, ITEM_WATER_STONE)
EVT_VAR(1) = 0; EVT_WAIT_FRAMES(10)
await N(8024199C); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0096))
match EVT_VAR(0) { EVT_SET(EVT_AREA_FLAG(22), 1)
<= 0 { EVT_SET(EVT_SAVE_VAR(0), 48)
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
} else { EVT_CASE_LT(53)
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, EVT_SWITCH(EVT_AREA_FLAG(22))
0x0095)); EVT_CASE_EQ(0)
RemoveItemEntity(EVT_VAR(7)); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0097))
MakeItemEntity(ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380); EVT_CASE_EQ(1)
EVT_VAR(0) = 87; 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_VAR(1) = 1; EVT_END_SWITCH
await N(802417F0); EVT_CASE_LT(60)
AddKeyItem(ITEM_WATER_STONE); EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0098))
sleep 10; EVT_CASE_DEFAULT
SpeakToPlayer(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_4, NPC_ANIM_rosie_Palette_00_Anim_2, 5, MESSAGE_ID(0x11, 0x0099))
0x0096)); EVT_END_SWITCH
EVT_AREA_FLAG(22) = 1; EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
EVT_STORY_PROGRESS = STORY_CH6_GOT_WATER_STONE; EVT_EXEC_WAIT(N(80240830))
} EVT_RETURN
} EVT_END
} };
< 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(init_802423D0) = SCRIPT({ EvtSource N(init_802423D0) = {
BindNpcInteract(NPC_SELF, N(interact_80241C8C)); EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80241C8C)))
GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(0) += 35; EVT_ADD(EVT_VAR(0), 35)
SetNpcPos(NPC_ROSIE1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetNpcPos, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetNpcFlagBits(NPC_ROSIE1, ((0x00000002)), TRUE); EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_2)), TRUE)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_HAS_SHADOW)), TRUE); EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_HAS_SHADOW)), TRUE)
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_GOT_CRYSTAL_BERRY { EVT_CASE_LT(47)
if (EVT_SAVE_FLAG(1378) == 1) { EVT_IF_EQ(EVT_SAVE_FLAG(1378), 1)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2); EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380); EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
} EVT_END_IF
} EVT_CASE_LT(48)
< STORY_CH6_GOT_WATER_STONE { EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2); EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, -33, 14, 19, 1, 1380)
MakeItemEntity(ITEM_WATER_STONE, -33, 14, 19, 1, 1380); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(10) = EVT_VAR(0); EVT_CASE_DEFAULT
} else { EVT_CALL(SetNpcFlagBits, 1, ((NPC_FLAG_100)), FALSE)
SetNpcFlagBits(NPC_ROSIE1, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2)
SetNpcAnimation(NPC_SELF, NPC_ANIM_rosie_Palette_00_Anim_2); EVT_CALL(MakeItemEntity, ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380)
MakeItemEntity(ITEM_CRYSTAL_BERRY, -33, 14, 19, 1, 1380); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(10) = EVT_VAR(0); EVT_END_SWITCH
} EVT_RETURN
} EVT_END
}); };
StaticNpc N(npcGroup_802425D8)[] = { 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, .unk_2C = 1,
}; };
EvtSource N(npcAI_80244508) = SCRIPT({ EvtSource N(npcAI_80244508) = {
SetSelfVar(0, 0); EVT_CALL(SetSelfVar, 0, 0)
SetSelfVar(5, -630); EVT_CALL(SetSelfVar, 5, -630)
SetSelfVar(6, 50); EVT_CALL(SetSelfVar, 6, 50)
SetSelfVar(1, 200); EVT_CALL(SetSelfVar, 1, 200)
N(func_80241E1C_CCD12C)(N(npcAISettings_802444D8)); EVT_CALL(N(func_80241E1C_CCD12C), EVT_PTR(N(npcAISettings_802444D8)))
}); EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_80244578) = { NpcSettings N(npcSettings_80244578) = {
.height = 26, .height = 26,
@ -66,95 +68,102 @@ s32 N(D_80244600_CCF910) = {
0x00000000, 0x00000000,
}; };
EvtSource N(80244604) = SCRIPT({ EvtSource N(80244604) = {
EVT_VAR(9) = EVT_VAR(1); EVT_SET(EVT_VAR(9), EVT_VAR(1))
ShowConsumableChoicePopup(); EVT_CALL(ShowConsumableChoicePopup)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 {} EVT_CASE_EQ(0)
== -1 {} EVT_CASE_EQ(-1)
else { EVT_CASE_DEFAULT
RemoveItemAt(EVT_VAR(1)); EVT_CALL(RemoveItemAt, EVT_VAR(1))
GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(GetPlayerPos, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
N(AddPlayerHandsOffset)(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(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); EVT_CALL(MakeItemEntity, EVT_VAR(0), EVT_VAR(3), EVT_VAR(4), EVT_VAR(5), 1, 0)
SetPlayerAnimation(0x60005); EVT_CALL(SetPlayerAnimation, 393221)
sleep 30; EVT_WAIT_FRAMES(30)
SetPlayerAnimation(ANIM_10002); EVT_CALL(SetPlayerAnimation, ANIM_10002)
RemoveItemEntity(EVT_VAR(0)); EVT_CALL(RemoveItemEntity, EVT_VAR(0))
} EVT_END_SWITCH
} EVT_CALL(N(func_80242288_CCD598), EVT_VAR(10))
N(func_80242288_CCD598)(EVT_VAR(10)); EVT_CALL(CloseChoicePopup)
CloseChoicePopup(); EVT_UNBIND
unbind; EVT_RETURN
}); EVT_END
};
EvtSource N(80244738) = SCRIPT({ EvtSource N(80244738) = {
N(func_802422C0_CCD5D0)(EVT_VAR(0)); EVT_CALL(N(func_802422C0_CCD5D0), EVT_VAR(0))
bind_padlock N(80244604) 0x10 0 N(D_802453B0_EF79C0); EVT_BIND_PADLOCK(N(80244604), 0x10, 0, EVT_PTR(N(D_802453B0_EF79C0)), 0, 1)
N(func_80242234_CCD544)(EVT_VAR(0)); EVT_CALL(N(func_80242234_CCD544), EVT_VAR(0))
}); EVT_RETURN
EVT_END
};
s32 N(D_80244788_CCFA98)[] = { s32 N(D_80244788_CCFA98)[] = {
0x000000A1, 0x00000000, 0x000000A1, 0x00000000,
}; };
EvtSource N(interact_80244790) = SCRIPT({ EvtSource N(interact_80244790) = {
if (EVT_AREA_FLAG(37) == 1) { EVT_IF_EQ(EVT_AREA_FLAG(37), 1)
EVT_AREA_FLAG(35) = 1; EVT_SET(EVT_AREA_FLAG(35), 1)
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0063)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0063))
EVT_AREA_FLAG(35) = 0; EVT_SET(EVT_AREA_FLAG(35), 0)
return; EVT_RETURN
} EVT_END_IF
EVT_AREA_FLAG(35) = 1; EVT_SET(EVT_AREA_FLAG(35), 1)
if (EVT_SAVE_FLAG(1412) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1412), 0)
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x005F)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x005F))
} else { EVT_ELSE
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0060)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0060))
} EVT_END_IF
FindItem(161, EVT_VAR(0)); EVT_CALL(FindItem, 161, EVT_VAR(0))
if (EVT_VAR(0) != -1) { EVT_IF_NE(EVT_VAR(0), -1)
EVT_VAR(0) = N(D_80244788_CCFA98); EVT_SET(EVT_VAR(0), EVT_PTR(N(D_80244788_CCFA98)))
EVT_VAR(1) = 0; EVT_SET(EVT_VAR(1), 0)
await N(80244738); EVT_EXEC_WAIT(N(80244738))
if (EVT_VAR(0) == -1) { EVT_IF_EQ(EVT_VAR(0), -1)
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0064)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0064))
} else { EVT_ELSE
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0061)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0061))
EVT_AREA_FLAG(36) = 1; EVT_SET(EVT_AREA_FLAG(36), 1)
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), TRUE)
PlayerMoveTo(555, 110, 20); EVT_CALL(PlayerMoveTo, 555, 110, 20)
SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), FALSE); EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), FALSE)
InterpPlayerYaw(90, 0); EVT_CALL(InterpPlayerYaw, 90, 0)
func_802CF56C(2); EVT_CALL(func_802CF56C, 2)
sleep 5; EVT_WAIT_FRAMES(5)
AdjustCam(0, 1.0, 0, 350, 17.0, -6.0); EVT_CALL(AdjustCam, 0, EVT_FIXED(1.0), 0, 350, EVT_FIXED(17.0), EVT_FIXED(-6.0))
spawn N(80243870); EVT_EXEC(N(80243870))
SpeakToPlayer(NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0062)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 0, MESSAGE_ID(0x11, 0x0062))
spawn { EVT_THREAD
sleep 40; EVT_WAIT_FRAMES(40)
InterpPlayerYaw(315, 0); EVT_CALL(InterpPlayerYaw, 315, 0)
} EVT_END_THREAD
10: EVT_LABEL(10)
if (EVT_AREA_FLAG(37) == 0) { EVT_IF_EQ(EVT_AREA_FLAG(37), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 10; EVT_GOTO(10)
} EVT_END_IF
ResetCam(0, 4.0); EVT_CALL(ResetCam, 0, EVT_FIXED(4.0))
SpeakToPlayer(NPC_SELF, -1, -1, 5, MESSAGE_ID(0x11, 0x0063)); EVT_CALL(SpeakToPlayer, NPC_SELF, -1, -1, 5, MESSAGE_ID(0x11, 0x0063))
EVT_SAVE_FLAG(1412) = 1; EVT_SET(EVT_SAVE_FLAG(1412), 1)
bind N(8024352C) TRIGGER_FLOOR_PRESS_A 30; EVT_BIND_TRIGGER(N(8024352C), TRIGGER_FLOOR_PRESS_A, 30, 1, 0)
} EVT_END_IF
} EVT_END_IF
EVT_AREA_FLAG(35) = 0; EVT_SET(EVT_AREA_FLAG(35), 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(init_80244ADC) = SCRIPT({ EvtSource N(init_80244ADC) = {
EVT_AREA_FLAG(36) = 0; EVT_SET(EVT_AREA_FLAG(36), 0)
EVT_AREA_FLAG(37) = 0; EVT_SET(EVT_AREA_FLAG(37), 0)
BindNpcInteract(NPC_SELF, N(interact_80244790)); EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80244790)))
}); EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80244B20) = { StaticNpc N(npcGroup_80244B20) = {
.id = NPC_BUBULB, .id = NPC_BUBULB,
@ -235,78 +244,84 @@ static s32 N(pad_4F24)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(80244F30) = SCRIPT({ EvtSource N(80244F30) = {
MakeItemEntity(ITEM_STAR_PIECE, 675, 60, -100, 17, EVT_SAVE_FLAG(1387)); EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 675, 60, -100, 17, EVT_SAVE_FLAG(1387))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_4F64)[] = { static s32 N(pad_4F64)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(80244F70) = SCRIPT({ EvtSource N(80244F70) = {
loop { EVT_LOOP(0)
N(func_80242360_CCD670)(EVT_VAR(0)); EVT_CALL(N(func_80242360_CCD670), EVT_VAR(0))
if (EVT_VAR(0) == EVT_VAR(4)) { EVT_IF_EQ(EVT_VAR(0), EVT_VAR(4))
GetPlayerActionState(EVT_VAR(0)); EVT_CALL(GetPlayerActionState, EVT_VAR(0))
if (EVT_VAR(0) != 23) { EVT_IF_NE(EVT_VAR(0), 23)
if (EVT_VAR(8) == 0) { EVT_IF_EQ(EVT_VAR(8), 0)
spawn { EVT_THREAD
GetModelCenter(EVT_VAR(5)); EVT_CALL(GetModelCenter, EVT_VAR(5))
PlaySoundAt(0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(PlaySoundAt, 0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
} EVT_END_THREAD
} EVT_END_IF
if (EVT_VAR(7) < 90) { EVT_IF_LT(EVT_VAR(7), 90)
if (EVT_VAR(7) == 0) { EVT_IF_EQ(EVT_VAR(7), 0)
sleep 5; EVT_WAIT_FRAMES(5)
EVT_VAR(8) = 6; EVT_SET(EVT_VAR(8), 6)
ModifyColliderFlags(0, EVT_VAR(9), 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, EVT_VAR(9), 0x7FFFFE00)
} EVT_END_IF
EVT_VAR(8) += 1; EVT_ADD(EVT_VAR(8), 1)
EVT_VAR(7) += EVT_VAR(8); EVT_ADD(EVT_VAR(7), EVT_VAR(8))
} EVT_END_IF
goto 50; EVT_GOTO(50)
} EVT_END_IF
} EVT_END_IF
if (EVT_VAR(7) != 0) { EVT_IF_NE(EVT_VAR(7), 0)
EVT_VAR(8) -= 1; EVT_SUB(EVT_VAR(8), 1)
EVT_VAR(7) += EVT_VAR(8); EVT_ADD(EVT_VAR(7), EVT_VAR(8))
if (EVT_VAR(7) <= 0) { EVT_IF_LE(EVT_VAR(7), 0)
EVT_VAR(8) = 0; EVT_SET(EVT_VAR(8), 0)
EVT_VAR(7) = 0; EVT_SET(EVT_VAR(7), 0)
spawn { EVT_THREAD
GetModelCenter(EVT_VAR(5)); EVT_CALL(GetModelCenter, EVT_VAR(5))
PlaySoundAt(0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(PlaySoundAt, 0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
} EVT_END_THREAD
ModifyColliderFlags(1, EVT_VAR(9), 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 1, EVT_VAR(9), 0x7FFFFE00)
} EVT_END_IF
} EVT_END_IF
50: EVT_LABEL(50)
if (EVT_VAR(7) >= 90) { EVT_IF_GE(EVT_VAR(7), 90)
EVT_VAR(8) = -1; EVT_SET(EVT_VAR(8), -1)
EVT_VAR(7) = 90; EVT_SET(EVT_VAR(7), 90)
} EVT_END_IF
RotateModel(EVT_VAR(5), EVT_VAR(7), -1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(5), EVT_VAR(7), -1, 0, 0)
RotateModel(EVT_VAR(6), EVT_VAR(7), -1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(6), EVT_VAR(7), -1, 0, 0)
sleep 1; EVT_WAIT_FRAMES(1)
} EVT_END_LOOP
}); EVT_RETURN
EVT_END
};
EvtSource N(80245224) = SCRIPT({ EvtSource N(80245224) = {
EVT_VAR(4) = 21; EVT_SET(EVT_VAR(4), 21)
EVT_VAR(5) = 21; EVT_SET(EVT_VAR(5), 21)
EVT_VAR(6) = 20; EVT_SET(EVT_VAR(6), 20)
EVT_VAR(7) = EVT_MAP_VAR(10); EVT_SET(EVT_VAR(7), EVT_MAP_VAR(10))
EVT_VAR(8) = EVT_MAP_VAR(11); EVT_SET(EVT_VAR(8), EVT_MAP_VAR(11))
EVT_VAR(9) = 22; EVT_SET(EVT_VAR(9), 22)
spawn N(80244F70); EVT_EXEC(N(80244F70))
EVT_VAR(4) = 17; EVT_SET(EVT_VAR(4), 17)
EVT_VAR(5) = 26; EVT_SET(EVT_VAR(5), 26)
EVT_VAR(6) = 25; EVT_SET(EVT_VAR(6), 25)
EVT_VAR(7) = EVT_MAP_VAR(12); EVT_SET(EVT_VAR(7), EVT_MAP_VAR(12))
EVT_VAR(8) = EVT_MAP_VAR(13); EVT_SET(EVT_VAR(8), EVT_MAP_VAR(13))
EVT_VAR(9) = 18; EVT_SET(EVT_VAR(9), 18)
spawn N(80244F70); EVT_EXEC(N(80244F70))
}); EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc23.inc.c" #include "world/common/UnkNpcAIFunc23.inc.c"

View File

@ -20,20 +20,21 @@ MapConfig N(config) = {
.tattle = { MSG_flo_15_tattle }, .tattle = { MSG_flo_15_tattle },
}; };
EvtSource N(80240060) = SCRIPT({ EvtSource N(80240060) = {
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8)
} else { EVT_ELSE
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_SUN_TOWER_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_SUN_TOWER_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_SUN_TOWER_SUNNY, 0, 8); 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) = { static s32 N(pad_11C) = {
0x00000000, 0x00000000,
@ -41,31 +42,35 @@ static s32 N(pad_11C) = {
EvtSource N(exitWalk_80240120) = EXIT_WALK_SCRIPT(60, 0, "flo_13", 1); EvtSource N(exitWalk_80240120) = EXIT_WALK_SCRIPT(60, 0, "flo_13", 1);
EvtSource N(8024017C) = SCRIPT({ EvtSource N(8024017C) = {
bind N(exitWalk_80240120) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80240120), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
MakeNpcs(0, N(npcGroupList_802412C0)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802412C0)))
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
spawn N(802404D8); EVT_EXEC(N(802404D8))
} else { EVT_ELSE
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_VAR(0) = N(8024017C); EVT_SET(EVT_VAR(0), EVT_PTR(N(8024017C)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
} EVT_END_IF
ModifyColliderFlags(0, 14, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00)
spawn N(802413B0); EVT_EXEC(N(802413B0))
await N(80240060); EVT_EXEC_WAIT(N(80240060))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_2FC) = { static s32 N(pad_2FC) = {
0x00000000, 0x00000000,
@ -77,192 +82,200 @@ NpcSettings N(npcSettings_80240300) = {
.level = 99, .level = 99,
}; };
EvtSource N(8024032C) = SCRIPT({ EvtSource N(8024032C) = {
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_LT(EVT_SAVE_VAR(0), 53)
EVT_VAR(3) = 7; EVT_SET(EVT_VAR(3), 7)
EVT_VAR(4) = 5; EVT_SET(EVT_VAR(4), 5)
} else { EVT_ELSE
EVT_VAR(3) = 15; EVT_SET(EVT_VAR(3), 15)
EVT_VAR(4) = 1; EVT_SET(EVT_VAR(4), 1)
} EVT_END_IF
loop { EVT_LOOP(0)
EVT_VAR(5) = EVT_VAR(3); EVT_SET(EVT_VAR(5), EVT_VAR(3))
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(1) += 1; EVT_ADD(EVT_VAR(1), 1)
SetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetNpcPos(NPC_SUN1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetNpcPos, 11, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
sleep EVT_VAR(4); EVT_WAIT_FRAMES(EVT_VAR(4))
} EVT_END_LOOP
EVT_VAR(5) = EVT_VAR(3); EVT_SET(EVT_VAR(5), EVT_VAR(3))
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(1) += -1; EVT_ADD(EVT_VAR(1), -1)
SetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetNpcPos(NPC_SUN1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetNpcPos, 11, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
sleep EVT_VAR(4); EVT_WAIT_FRAMES(EVT_VAR(4))
} EVT_END_LOOP
} EVT_END_LOOP
}); EVT_RETURN
EVT_END
};
EvtSource N(802404D8) = SCRIPT({ EvtSource N(802404D8) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
SetNpcPos(NPC_SUN0, 0, 270, 0); EVT_CALL(SetNpcPos, 10, 0, 270, 0)
SetNpcPos(NPC_SUN1, 0, -1000, 0); EVT_CALL(SetNpcPos, 11, 0, -1000, 0)
sleep 1; EVT_WAIT_FRAMES(1)
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(UseSettingsFrom, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetPanTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetCamDistance(0, 1050); EVT_CALL(SetCamDistance, 0, 1050)
SetCamPitch(0, 10.0, 4.0); EVT_CALL(SetCamPitch, 0, EVT_FIXED(10.0), EVT_FIXED(4.0))
SetCamSpeed(0, 90.0); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(90.0))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
SetCamDistance(0, 300); EVT_CALL(SetCamDistance, 0, 300)
SetCamPitch(0, 15.0, -10.0); EVT_CALL(SetCamPitch, 0, EVT_FIXED(15.0), EVT_FIXED(-10.0))
SetCamSpeed(0, 6.5); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(6.5))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_9, NPC_ANIM_sun_Palette_00_Anim_9, 517, MESSAGE_ID(0x11, 0x00C3)); EVT_CALL(SpeakToPlayer, 10, 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); EVT_CALL(SetNpcAnimation, 10, NPC_ANIM_sun_Palette_00_Anim_9)
spawn { EVT_THREAD
SetCamDistance(0, 1000); EVT_CALL(SetCamDistance, 0, 1000)
SetCamSpeed(0, 5.0); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(5.0))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
} EVT_END_THREAD
sleep 15; EVT_WAIT_FRAMES(15)
SetNpcJumpscale(NPC_SUN0, 0.0); EVT_CALL(SetNpcJumpscale, 10, EVT_FIXED(0.0))
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(1) += 400; EVT_ADD(EVT_VAR(1), 400)
NpcJump0(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 40); EVT_CALL(NpcJump0, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 40)
GotoMap("flo_00", 9); EVT_CALL(GotoMap, EVT_PTR("flo_00"), 9)
sleep 70; EVT_WAIT_FRAMES(70)
}); EVT_RETURN
EVT_END
};
EvtSource N(aux_8024079C) = SCRIPT({ EvtSource N(aux_8024079C) = {
func_802CDE68(11, 48); EVT_CALL(func_802CDE68, 11, 48)
loop { EVT_LOOP(0)
MakeLerp(-30, 30, 20, 11); EVT_CALL(MakeLerp, -30, 30, 20, 11)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
SetNpcRotation(NPC_SUN1, 0, 0, EVT_VAR(0)); EVT_CALL(SetNpcRotation, 11, 0, 0, EVT_VAR(0))
GetNpcPos(NPC_SUN0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); EVT_CALL(GetNpcPos, 10, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
SetNpcPos(NPC_SUN1, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); EVT_CALL(SetNpcPos, 11, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
MakeLerp(30, -30, 20, 11); EVT_CALL(MakeLerp, 30, -30, 20, 11)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
SetNpcRotation(NPC_SUN1, 0, 0, EVT_VAR(0)); EVT_CALL(SetNpcRotation, 11, 0, 0, EVT_VAR(0))
GetNpcPos(NPC_SUN0, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); EVT_CALL(GetNpcPos, 10, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
SetNpcPos(NPC_SUN1, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); EVT_CALL(SetNpcPos, 11, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
} EVT_END_LOOP
}); EVT_RETURN
EVT_END
};
EvtSource N(8024094C) = SCRIPT({ EvtSource N(8024094C) = {
loop { EVT_LOOP(0)
sleep 1; EVT_WAIT_FRAMES(1)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
if (EVT_VAR(1) > 220) { EVT_IF_GT(EVT_VAR(1), 220)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
spawn { EVT_THREAD
sleep 15; EVT_WAIT_FRAMES(15)
PlayerFaceNpc(10, 0); EVT_CALL(PlayerFaceNpc, 10, 0)
} EVT_END_THREAD
SetNpcJumpscale(NPC_SUN0, 0.0); EVT_CALL(SetNpcJumpscale, 10, EVT_FIXED(0.0))
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
EVT_VAR(1) -= 400; EVT_SUB(EVT_VAR(1), 400)
NpcJump0(NPC_SUN0, EVT_VAR(0), 275, EVT_VAR(2), 30); EVT_CALL(NpcJump0, 10, EVT_VAR(0), 275, EVT_VAR(2), 30)
EVT_VAR(9) = spawn N(8024032C); EVT_EXEC_GET_TID(N(8024032C), EVT_VAR(9))
loop { EVT_LOOP(0)
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_AREA_FLAG(38) == 1) { EVT_IF_EQ(EVT_AREA_FLAG(38), 1)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
sleep 10; EVT_WAIT_FRAMES(10)
kill EVT_VAR(9); EVT_KILL_THREAD(EVT_VAR(9))
SetNpcFlagBits(NPC_SUN0, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, 10, ((NPC_FLAG_100)), TRUE)
GetNpcPos(NPC_SUN0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetNpcPos, 10, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
NpcJump0(NPC_SUN0, EVT_VAR(0), 450, EVT_VAR(2), 30); EVT_CALL(NpcJump0, 10, EVT_VAR(0), 450, EVT_VAR(2), 30)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
unbind; EVT_UNBIND
}); EVT_RETURN
EVT_END
};
EvtSource N(interact_80240B28) = SCRIPT({ EvtSource N(interact_80240B28) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_SPOKE_WITH_THE_SUN { EVT_CASE_LT(50)
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009A)); EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009A))
SetPlayerAnimation(ANIM_THINKING); EVT_CALL(SetPlayerAnimation, ANIM_THINKING)
sleep 20; EVT_WAIT_FRAMES(20)
SetPlayerAnimation(ANIM_80007); EVT_CALL(SetPlayerAnimation, ANIM_80007)
sleep 20; EVT_WAIT_FRAMES(20)
SetPlayerAnimation(ANIM_10002); EVT_CALL(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_CALL(SpeakToPlayer, 10, 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; EVT_SET(EVT_SAVE_VAR(0), 50)
} EVT_CASE_LT(53)
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009C))
SpeakToPlayer(NPC_SUN0, 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)
< STORY_CH6_STAR_SPIRIT_RESCUED { EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009D))
if (EVT_SAVE_FLAG(1410) == 0) { EVT_SET(EVT_SAVE_FLAG(1410), 1)
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, EVT_ELSE
0x009D)); EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009E))
EVT_SAVE_FLAG(1410) = 1; EVT_END_IF
} else { EVT_CASE_DEFAULT
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, EVT_CALL(SpeakToPlayer, 10, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, 0x009F))
0x009E)); EVT_END_SWITCH
} EVT_SET(EVT_AREA_FLAG(38), 1)
} else { EVT_RETURN
SpeakToPlayer(NPC_SUN0, NPC_ANIM_sun_Palette_00_Anim_7, NPC_ANIM_sun_Palette_00_Anim_1, 517, MESSAGE_ID(0x11, EVT_END
0x009F)); };
}
}
EVT_AREA_FLAG(38) = 1;
});
EvtSource N(init_80240CD0) = SCRIPT({ EvtSource N(init_80240CD0) = {
SetNpcCollisionSize(10, 64, 40); EVT_CALL(SetNpcCollisionSize, 10, 64, 40)
EnableNpcShadow(NPC_SUN0, FALSE); EVT_CALL(EnableNpcShadow, 10, FALSE)
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_LT(EVT_SAVE_VAR(0), 53)
SetNpcPos(NPC_SUN0, 0, 270, 0); EVT_CALL(SetNpcPos, 10, 0, 270, 0)
BindNpcInteract(NPC_SELF, N(interact_80240B28)); EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80240B28)))
spawn N(8024032C); EVT_EXEC(N(8024032C))
} else { EVT_ELSE
SetNpcPos(NPC_SUN0, 0, 450, 0); EVT_CALL(SetNpcPos, 10, 0, 450, 0)
BindNpcInteract(NPC_SELF, N(interact_80240B28)); EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80240B28)))
EVT_AREA_FLAG(38) = 0; EVT_SET(EVT_AREA_FLAG(38), 0)
spawn N(8024094C); EVT_EXEC(N(8024094C))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
EvtSource N(init_80240DB4) = SCRIPT({ EvtSource N(init_80240DB4) = {
EnableNpcShadow(NPC_SUN1, FALSE); EVT_CALL(EnableNpcShadow, 11, FALSE)
SetNpcAnimation(NPC_SUN1, NPC_ANIM_sun_Palette_00_Anim_2); EVT_CALL(SetNpcAnimation, 11, NPC_ANIM_sun_Palette_00_Anim_2)
SetNpcPaletteSwapMode(10, 3); EVT_CALL(SetNpcPaletteSwapMode, 10, 3)
SetNpcPaletteSwapMode(11, 3); EVT_CALL(SetNpcPaletteSwapMode, 11, 3)
SetNpcPaletteSwapping(10, 0, 1, 5, 5, 13, 5, 0, 0); EVT_CALL(SetNpcPaletteSwapping, 10, 0, 1, 5, 5, 13, 5, 0, 0)
SetNpcPaletteSwapping(11, 0, 1, 5, 5, 13, 5, 0, 0); EVT_CALL(SetNpcPaletteSwapping, 11, 0, 1, 5, 5, 13, 5, 0, 0)
if (EVT_STORY_PROGRESS < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_LT(EVT_SAVE_VAR(0), 53)
SetNpcPos(NPC_SUN1, 0, 270, -5); EVT_CALL(SetNpcPos, 11, 0, 270, -5)
} else { EVT_ELSE
SetNpcPos(NPC_SUN1, 0, 450, -5); EVT_CALL(SetNpcPos, 11, 0, 450, -5)
BindNpcAux(-1, N(aux_8024079C)); EVT_CALL(BindNpcAux, -1, EVT_PTR(N(aux_8024079C)))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80240EE0)[] = { StaticNpc N(npcGroup_80240EE0)[] = {
{ {
@ -336,16 +349,20 @@ static s32 N(pad_12D8)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(802412E0) = SCRIPT({ EvtSource N(802412E0) = {
EVT_SAVE_FLAG(1401) = 1; EVT_SET(EVT_SAVE_FLAG(1401), 1)
}); EVT_RETURN
EVT_END
};
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
if (EVT_SAVE_FLAG(1401) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
MakeEntity(0x802BCF00, -180, 0, -18, 0, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802BCF00, -180, 0, -18, 0, MAKE_ENTITY_END)
AssignScript(N(802412E0)); EVT_CALL(AssignScript, EVT_PTR(N(802412E0)))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
static s32 N(pad_135C) = { static s32 N(pad_135C) = {
0x00000000, 0x00000000,
@ -357,57 +374,59 @@ s32 N(intTable_80241360)[] = {
0x00000018, 0xF24A7CE7, 0x0000000A, 0xF24A814D, 0x00000018, 0xF24A7CE7, 0x0000000A, 0xF24A814D,
}; };
EvtSource N(802413B0) = SCRIPT({ EvtSource N(802413B0) = {
if (EVT_SAVE_FLAG(1401) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
0: EVT_LABEL(0)
if (EVT_SAVE_FLAG(1401) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(1401), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
} EVT_END_IF
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
spawn { EVT_THREAD
buf_use N(intTable_80241360); EVT_USE_BUF(EVT_PTR(N(intTable_80241360)))
loop 10 { EVT_LOOP(10)
buf_read EVT_VAR(1) EVT_VAR(2); EVT_BUF_READ2(EVT_VAR(1), EVT_VAR(2))
ShakeCam(0, 0, EVT_VAR(1), EVT_VAR(2)); EVT_CALL(ShakeCam, 0, 0, EVT_VAR(1), EVT_VAR(2))
} EVT_END_LOOP
} EVT_END_THREAD
UseSettingsFrom(0, -170, 0, 35); EVT_CALL(UseSettingsFrom, 0, -170, 0, 35)
SetPanTarget(0, -170, 0, 35); EVT_CALL(SetPanTarget, 0, -170, 0, 35)
SetCamDistance(0, 600); EVT_CALL(SetCamDistance, 0, 600)
SetCamPitch(0, 25.0, -9.0); EVT_CALL(SetCamPitch, 0, EVT_FIXED(25.0), EVT_FIXED(-9.0))
SetCamPosA(0, -50.0, 25.0); EVT_CALL(SetCamPosA, 0, EVT_FIXED(-50.0), EVT_FIXED(25.0))
SetCamSpeed(0, 1.5); EVT_CALL(SetCamSpeed, 0, EVT_FIXED(1.5))
PanToTarget(0, 0, 1); EVT_CALL(PanToTarget, 0, 0, 1)
WaitForCam(0, 1.0); EVT_CALL(WaitForCam, 0, EVT_FIXED(1.0))
spawn { EVT_THREAD
sleep 100; EVT_WAIT_FRAMES(100)
PlayEffect(0x6, 4, -180, 0, -15, 0, 0, 0, 0, 0, 0, 0, 0, 0); EVT_CALL(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); EVT_CALL(PlayEffect, 0x6, 4, -190, 0, -35, 0, 0, 0, 0, 0, 0, 0, 0, 0)
} EVT_END_THREAD
spawn { EVT_THREAD
loop 6 { EVT_LOOP(6)
PlaySoundAtCollider(11, 391, 0); EVT_CALL(PlaySoundAtCollider, 11, 391, 0)
sleep 20; EVT_WAIT_FRAMES(20)
} EVT_END_LOOP
} EVT_END_THREAD
MakeLerp(0, -50, 120, 2); EVT_CALL(MakeLerp, 0, -50, 120, 2)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
TranslateGroup(16, 0, EVT_VAR(0), 0); EVT_CALL(TranslateGroup, 16, 0, EVT_VAR(0), 0)
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
ModifyColliderFlags(0, 12, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 12, 0x7FFFFE00)
ModifyColliderFlags(1, 14, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 1, 14, 0x7FFFFE00)
sleep 15; EVT_WAIT_FRAMES(15)
ResetCam(0, 90.0); EVT_CALL(ResetCam, 0, EVT_FIXED(90.0))
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
} else { EVT_ELSE
ModifyColliderFlags(0, 12, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 12, 0x7FFFFE00)
ModifyColliderFlags(1, 14, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 1, 14, 0x7FFFFE00)
TranslateGroup(16, 0, -50, 0); 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 }, .tattle = { MSG_flo_16_tattle },
}; };
EvtSource N(802429D0) = SCRIPT({ EvtSource N(802429D0) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); 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_80242A40) = EXIT_WALK_SCRIPT(60, 0, "flo_00", 4);
EvtSource N(exitWalk_80242A9C) = EXIT_WALK_SCRIPT(60, 1, "flo_17", 0); EvtSource N(exitWalk_80242A9C) = EXIT_WALK_SCRIPT(60, 1, "flo_17", 0);
EvtSource N(80242AF8) = SCRIPT({ EvtSource N(80242AF8) = {
bind N(exitWalk_80242A40) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80242A40), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
bind N(exitWalk_80242A9C) TRIGGER_FLOOR_ABOVE 4; EVT_BIND_TRIGGER(N(exitWalk_80242A9C), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
}); EVT_RETURN
EVT_END
};
s32 N(lavaResetList_80242B40)[] = { s32 N(lavaResetList_80242B40)[] = {
0x0000000A, 0xC39B0000, 0x00000000, 0x00000000, 0x0000000B, 0x43988000, 0x42C80000, 0x00000000, 0x0000000A, 0xC39B0000, 0x00000000, 0x00000000, 0x0000000B, 0x43988000, 0x42C80000, 0x00000000,
0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
MakeNpcs(0, N(npcGroupList_802444D4)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802444D4)))
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
spawn N(8024346C); EVT_EXEC(N(8024346C))
ModifyColliderFlags(3, 9, 0x00000002); EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000002)
spawn { EVT_THREAD
ResetFromLava(N(lavaResetList_80242B40)); EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_80242B40)))
} EVT_END_THREAD
EnableTexPanning(16, 1); EVT_CALL(EnableTexPanning, 16, 1)
EnableTexPanning(17, 1); EVT_CALL(EnableTexPanning, 17, 1)
EnableTexPanning(18, 1); EVT_CALL(EnableTexPanning, 18, 1)
EnableTexPanning(20, 1); EVT_CALL(EnableTexPanning, 20, 1)
EnableTexPanning(22, 1); EVT_CALL(EnableTexPanning, 22, 1)
EnableTexPanning(24, 1); EVT_CALL(EnableTexPanning, 24, 1)
EnableTexPanning(19, 1); EVT_CALL(EnableTexPanning, 19, 1)
EnableTexPanning(21, 1); EVT_CALL(EnableTexPanning, 21, 1)
EnableTexPanning(23, 1); EVT_CALL(EnableTexPanning, 23, 1)
EnableTexPanning(25, 1); EVT_CALL(EnableTexPanning, 25, 1)
spawn { EVT_THREAD
EVT_VAR(0) = 0; EVT_SET(EVT_VAR(0), 0)
EVT_VAR(1) = 0; EVT_SET(EVT_VAR(1), 0)
0: EVT_LABEL(0)
EVT_VAR(0) += 140; EVT_ADD(EVT_VAR(0), 140)
if (EVT_VAR(0) > 65536) { EVT_IF_GT(EVT_VAR(0), 65536)
EVT_VAR(0) += -65536; EVT_ADD(EVT_VAR(0), -65536)
} EVT_END_IF
SetTexPanOffset(1, 0, EVT_VAR(0), 0); EVT_CALL(SetTexPanOffset, 1, 0, EVT_VAR(0), 0)
EVT_VAR(1) += -200; EVT_ADD(EVT_VAR(1), -200)
if (EVT_VAR(1) < 0) { EVT_IF_LT(EVT_VAR(1), 0)
EVT_VAR(1) += 65536; EVT_ADD(EVT_VAR(1), 65536)
} EVT_END_IF
SetTexPanOffset(2, 0, EVT_VAR(1), 0); EVT_CALL(SetTexPanOffset, 2, 0, EVT_VAR(1), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
} EVT_END_THREAD
spawn N(802451C4); EVT_EXEC(N(802451C4))
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
ModifyColliderFlags(0, 5, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_VAR(0) = N(80242AF8); EVT_SET(EVT_VAR(0), EVT_PTR(N(80242AF8)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
await N(802429D0); EVT_EXEC_WAIT(N(802429D0))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(func_80240000_CD1E30)(); EVT_CALL(N(func_80240000_CD1E30))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
EvtSource N(80242EA0) = SCRIPT({ EvtSource N(80242EA0) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(8024314C) = SCRIPT({ EvtSource N(8024314C) = {
EVT_VAR(9) = EVT_VAR(6); EVT_SET(EVT_VAR(9), EVT_VAR(6))
EVT_VAR(8) = EVT_VAR(5); EVT_SET(EVT_VAR(8), EVT_VAR(5))
EVT_VAR(7) = EVT_VAR(4); EVT_SET(EVT_VAR(7), EVT_VAR(4))
EVT_VAR(6) = EVT_VAR(3); EVT_SET(EVT_VAR(6), EVT_VAR(3))
EVT_VAR(5) = EVT_VAR(2); EVT_SET(EVT_VAR(5), EVT_VAR(2))
EVT_VAR(4) = EVT_VAR(1); EVT_SET(EVT_VAR(4), EVT_VAR(1))
EVT_VAR(3) = EVT_VAR(0); EVT_SET(EVT_VAR(3), EVT_VAR(0))
EnableModel(EVT_VAR(6), 0); EVT_CALL(EnableModel, EVT_VAR(6), 0)
0: EVT_LABEL(0)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
N(UnkFunc43)(); EVT_CALL(N(UnkFunc43))
if (EVT_VAR(0) == 0) { EVT_IF_EQ(EVT_VAR(0), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
} EVT_END_IF
spawn { EVT_THREAD
sleep 5; EVT_WAIT_FRAMES(5)
EnableModel(EVT_VAR(6), 1); EVT_CALL(EnableModel, EVT_VAR(6), 1)
} EVT_END_THREAD
if (EVT_VAR(10) != 0) { EVT_IF_NE(EVT_VAR(10), 0)
spawn { EVT_THREAD
sleep 5; EVT_WAIT_FRAMES(5)
EVT_VAR(0) = EVT_VAR(3); EVT_SET(EVT_VAR(0), EVT_VAR(3))
EVT_VAR(1) = EVT_VAR(4); EVT_SET(EVT_VAR(1), EVT_VAR(4))
EVT_VAR(2) = EVT_VAR(5); EVT_SET(EVT_VAR(2), EVT_VAR(5))
EVT_VAR(1) += 10; EVT_ADD(EVT_VAR(1), 10)
EVT_VAR(2) += 8; EVT_ADD(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); EVT_CALL(PlayEffect, 0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 15, 0, 0, 0, 0, 0, 0, 0, 0)
sleep 15; EVT_WAIT_FRAMES(15)
EVT_VAR(1) -= 10; EVT_SUB(EVT_VAR(1), 10)
MakeItemEntity(EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0); EVT_CALL(MakeItemEntity, EVT_VAR(10), EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 14, 0)
} EVT_END_THREAD
} EVT_END_IF
spawn { EVT_THREAD
sleep 10; EVT_WAIT_FRAMES(10)
PlaySoundAt(0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); EVT_CALL(PlaySoundAt, 0xF8, 0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5))
} EVT_END_THREAD
MakeLerp(0, 180, 20, 2); EVT_CALL(MakeLerp, 0, 180, 20, 2)
1: EVT_LABEL(1)
UpdateLerp(); EVT_CALL(UpdateLerp)
RotateModel(EVT_VAR(8), EVT_VAR(0), 1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(8), EVT_VAR(0), 1, 0, 0)
RotateModel(EVT_VAR(9), EVT_VAR(0), 1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(9), EVT_VAR(0), 1, 0, 0)
if (EVT_VAR(1) == 1) { EVT_IF_EQ(EVT_VAR(1), 1)
sleep 1; EVT_WAIT_FRAMES(1)
goto 1; EVT_GOTO(1)
} EVT_END_IF
EnableModel(EVT_VAR(7), 0); EVT_CALL(EnableModel, EVT_VAR(7), 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(8024346C) = SCRIPT({ EvtSource N(8024346C) = {
ModifyColliderFlags(3, 20, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 20, 0x00000006)
EVT_VAR(0) = -740; EVT_SET(EVT_VAR(0), -740)
EVT_VAR(1) = -140; EVT_SET(EVT_VAR(1), -140)
EVT_VAR(2) = -260; EVT_SET(EVT_VAR(2), -260)
EVT_VAR(3) = -55; EVT_SET(EVT_VAR(3), -55)
EVT_VAR(4) = 100; EVT_SET(EVT_VAR(4), 100)
spawn N(80242EA0); EVT_EXEC(N(80242EA0))
EVT_VAR(0) = 250; EVT_SET(EVT_VAR(0), 250)
EVT_VAR(1) = -140; EVT_SET(EVT_VAR(1), -140)
EVT_VAR(2) = 725; EVT_SET(EVT_VAR(2), 725)
EVT_VAR(3) = -55; EVT_SET(EVT_VAR(3), -55)
EVT_VAR(4) = 180; EVT_SET(EVT_VAR(4), 180)
spawn N(80242EA0); EVT_EXEC(N(80242EA0))
GetModelCenter(65); EVT_CALL(GetModelCenter, 65)
EVT_VAR(3) = 65; EVT_SET(EVT_VAR(3), 65)
EVT_VAR(4) = 66; EVT_SET(EVT_VAR(4), 66)
EVT_VAR(5) = 67; EVT_SET(EVT_VAR(5), 67)
EVT_VAR(6) = 68; EVT_SET(EVT_VAR(6), 68)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(8024314C); EVT_EXEC(N(8024314C))
GetModelCenter(71); EVT_CALL(GetModelCenter, 71)
EVT_VAR(3) = 71; EVT_SET(EVT_VAR(3), 71)
EVT_VAR(4) = 72; EVT_SET(EVT_VAR(4), 72)
EVT_VAR(5) = 73; EVT_SET(EVT_VAR(5), 73)
EVT_VAR(6) = 74; EVT_SET(EVT_VAR(6), 74)
EVT_VAR(10) = 174; EVT_SET(EVT_VAR(10), 174)
spawn N(8024314C); EVT_EXEC(N(8024314C))
GetModelCenter(79); EVT_CALL(GetModelCenter, 79)
EVT_VAR(3) = 79; EVT_SET(EVT_VAR(3), 79)
EVT_VAR(4) = 80; EVT_SET(EVT_VAR(4), 80)
EVT_VAR(5) = 81; EVT_SET(EVT_VAR(5), 81)
EVT_VAR(6) = 82; EVT_SET(EVT_VAR(6), 82)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(8024314C); EVT_EXEC(N(8024314C))
GetModelCenter(85); EVT_CALL(GetModelCenter, 85)
EVT_VAR(3) = 85; EVT_SET(EVT_VAR(3), 85)
EVT_VAR(4) = 86; EVT_SET(EVT_VAR(4), 86)
EVT_VAR(5) = 87; EVT_SET(EVT_VAR(5), 87)
EVT_VAR(6) = 88; EVT_SET(EVT_VAR(6), 88)
EVT_VAR(10) = 0; EVT_SET(EVT_VAR(10), 0)
spawn N(8024314C); EVT_EXEC(N(8024314C))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_36FC) = { static s32 N(pad_36FC) = {
0x00000000, 0x00000000,
@ -250,166 +261,177 @@ f32 N(D_80243758_CD5588)[] = {
140.0f, 180.0f, 220.0f, 140.0f, 180.0f, 220.0f,
}; };
EvtSource N(80243764) = SCRIPT({ EvtSource N(80243764) = {
sleep 10; EVT_WAIT_FRAMES(10)
PlaySound(0x212D); EVT_CALL(PlaySound, 0x212D)
N(UnkFunc21)(EVT_MAP_VAR(0)); EVT_CALL(N(UnkFunc21), EVT_MAP_VAR(0))
sleep 85; EVT_WAIT_FRAMES(85)
spawn { EVT_THREAD
PlaySound(0x212E); EVT_CALL(PlaySound, 0x212E)
N(UnkFunc23)(70, 70); EVT_CALL(N(UnkFunc23), 70, 70)
sleep 27; EVT_WAIT_FRAMES(27)
PlaySound(SOUND_208E); EVT_CALL(PlaySound, SOUND_208E)
N(UnkFunc23)(50, 50); EVT_CALL(N(UnkFunc23), 50, 50)
} EVT_END_THREAD
spawn { EVT_THREAD
sleep 3; EVT_WAIT_FRAMES(3)
N(func_8024011C_CD1F4C)(EVT_MAP_VAR(0)); EVT_CALL(N(func_8024011C_CD1F4C), EVT_MAP_VAR(0))
} EVT_END_THREAD
spawn { EVT_THREAD
sleep 47; EVT_WAIT_FRAMES(47)
N(UnkFunc22)(); EVT_CALL(N(UnkFunc22))
N(UnkPartnerPosFunc)(); EVT_CALL(N(UnkPartnerPosFunc))
sleep 5; EVT_WAIT_FRAMES(5)
N(UnkPartnerPosFunc2)(); EVT_CALL(N(UnkPartnerPosFunc2))
sleep 5; EVT_WAIT_FRAMES(5)
N(UnkPartnerPosFunc)(); EVT_CALL(N(UnkPartnerPosFunc))
} EVT_END_THREAD
sleep 3; EVT_WAIT_FRAMES(3)
N(func_802406E0_CD2510)(EVT_MAP_VAR(0)); EVT_CALL(N(func_802406E0_CD2510), EVT_MAP_VAR(0))
sleep 30; EVT_WAIT_FRAMES(30)
}); EVT_RETURN
EVT_END
};
EvtSource N(802438C8) = SCRIPT({ EvtSource N(802438C8) = {
if (EVT_SAVE_FLAG(1403) == 1) { EVT_IF_EQ(EVT_SAVE_FLAG(1403), 1)
return; EVT_RETURN
} EVT_END_IF
IsStartingConversation(EVT_VAR(0)); EVT_CALL(IsStartingConversation, EVT_VAR(0))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
return; EVT_RETURN
} EVT_END_IF
N(UnkFunc24)(); EVT_CALL(N(UnkFunc24))
if (EVT_VAR(0) == 1) { EVT_IF_EQ(EVT_VAR(0), 1)
return; EVT_RETURN
} EVT_END_IF
ModifyGlobalOverrideFlags(1, 2097152); EVT_CALL(ModifyGlobalOverrideFlags, 1, 2097152)
N(SetOverrideFlags_40)(); EVT_CALL(N(SetOverrideFlags_40))
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePartnerAI(0); EVT_CALL(DisablePartnerAI, 0)
SetNpcFlagBits(NPC_PARTNER, ((NPC_FLAG_100)), TRUE); EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_100)), TRUE)
N(UnkFunc20)(EVT_MAP_VAR(0), EVT_VAR(9)); EVT_CALL(N(UnkFunc20), EVT_MAP_VAR(0), EVT_VAR(9))
FindKeyItem(ITEM_ULTRA_STONE, EVT_VAR(12)); EVT_CALL(FindKeyItem, ITEM_ULTRA_STONE, EVT_VAR(12))
N(UnkFunc38)(); EVT_CALL(N(UnkFunc38))
if (EVT_VAR(0) == -1) { EVT_IF_EQ(EVT_VAR(0), -1)
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DC), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DC), 160, 40)
sleep 10; EVT_WAIT_FRAMES(10)
N(UnkFunc39)(EVT_VAR(9)); EVT_CALL(N(UnkFunc39), EVT_VAR(9))
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EnablePartnerAI(); EVT_CALL(EnablePartnerAI)
ModifyGlobalOverrideFlags(0, 2097152); EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
N(UnkFunc17)(); EVT_CALL(N(UnkFunc17))
return; EVT_RETURN
} EVT_END_IF
if (EVT_SAVE_FLAG(438) == 0) { EVT_IF_EQ(EVT_SAVE_FLAG(438), 0)
EVT_SAVE_FLAG(438) = 1; EVT_SET(EVT_SAVE_FLAG(438), 1)
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DA), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DA), 160, 40)
} else { EVT_ELSE
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DB), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DB), 160, 40)
} EVT_END_IF
N(func_802402AC_CD20DC)(); EVT_CALL(N(func_802402AC_CD20DC))
if (EVT_VAR(0) == -1) { EVT_IF_EQ(EVT_VAR(0), -1)
N(UnkFunc39)(EVT_VAR(9)); EVT_CALL(N(UnkFunc39), EVT_VAR(9))
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EnablePartnerAI(); EVT_CALL(EnablePartnerAI)
ModifyGlobalOverrideFlags(0, 2097152); EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
N(UnkFunc17)(); EVT_CALL(N(UnkFunc17))
return; EVT_RETURN
} EVT_END_IF
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EnablePartnerAI(); EVT_CALL(EnablePartnerAI)
GetCurrentPartnerID(EVT_VAR(0)); EVT_CALL(GetCurrentPartnerID, EVT_VAR(0))
if (EVT_VAR(0) != EVT_VAR(11)) { EVT_IF_NE(EVT_VAR(0), EVT_VAR(11))
N(SwitchToPartner)(EVT_VAR(11)); EVT_CALL(N(SwitchToPartner), EVT_VAR(11))
} else { EVT_ELSE
func_802CF56C(2); EVT_CALL(func_802CF56C, 2)
} EVT_END_IF
sleep 10; EVT_WAIT_FRAMES(10)
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DF), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DF), 160, 40)
ShowChoice(MESSAGE_ID(0x1E, 0x000D)); EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x000D))
CloseMessage(); EVT_CALL(CloseMessage)
if (EVT_VAR(0) != 0) { EVT_IF_NE(EVT_VAR(0), 0)
N(UnkFunc39)(EVT_VAR(9)); EVT_CALL(N(UnkFunc39), EVT_VAR(9))
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EnablePartnerAI(); EVT_CALL(EnablePartnerAI)
ModifyGlobalOverrideFlags(0, 2097152); EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
N(UnkFunc17)(); EVT_CALL(N(UnkFunc17))
return; EVT_RETURN
} EVT_END_IF
await N(80243764); EVT_EXEC_WAIT(N(80243764))
N(UnkFunc18)(EVT_VAR(11), EVT_VAR(13)); EVT_CALL(N(UnkFunc18), EVT_VAR(11), EVT_VAR(13))
EVT_SAVE_FLAG(1403) = 1; EVT_SET(EVT_SAVE_FLAG(1403), 1)
N(UnkFunc39)(EVT_VAR(9)); EVT_CALL(N(UnkFunc39), EVT_VAR(9))
N(UnkFunc19)(); EVT_CALL(N(UnkFunc19))
if (EVT_VAR(13) == 1) { EVT_IF_EQ(EVT_VAR(13), 1)
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DD), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DD), 160, 40)
} else { EVT_ELSE
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x00DE), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x00DE), 160, 40)
} EVT_END_IF
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
EnablePartnerAI(); EVT_CALL(EnablePartnerAI)
ModifyGlobalOverrideFlags(0, 2097152); EVT_CALL(ModifyGlobalOverrideFlags, 0, 2097152)
N(UnkFunc17)(); EVT_CALL(N(UnkFunc17))
}); EVT_RETURN
EVT_END
};
EvtSource N(80243D48) = SCRIPT({ EvtSource N(80243D48) = {
0: EVT_LABEL(0)
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
SetCamTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(SetCamTarget, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(80243DB0) = SCRIPT({ EvtSource N(80243DB0) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerPhysics(TRUE); EVT_CALL(DisablePlayerPhysics, TRUE)
SetPlayerActionState(6); EVT_CALL(SetPlayerActionState, 6)
sleep 2; EVT_WAIT_FRAMES(2)
GetPlayerPos(EVT_VAR(7), EVT_VAR(8), EVT_VAR(9)); EVT_CALL(GetPlayerPos, EVT_VAR(7), EVT_VAR(8), EVT_VAR(9))
EVT_VAR(10) = spawn N(80243D48); EVT_EXEC_GET_TID(N(80243D48), EVT_VAR(10))
SetPlayerJumpscale(0.7001953125); EVT_CALL(SetPlayerJumpscale, EVT_FIXED(0.7))
PlayerJump(450, 180, -120, 30); EVT_CALL(PlayerJump, 450, 180, -120, 30)
SetPlayerActionState(0); EVT_CALL(SetPlayerActionState, 0)
DisablePlayerPhysics(FALSE); EVT_CALL(DisablePlayerPhysics, FALSE)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
}); EVT_RETURN
EVT_END
};
EvtSource N(80243E80) = SCRIPT({ EvtSource N(80243E80) = {
if (EVT_AREA_FLAG(39) == 0) { EVT_IF_EQ(EVT_AREA_FLAG(39), 0)
N(UnkFunc44)(); EVT_CALL(N(UnkFunc44))
if (EVT_VAR(0) == 0) { EVT_IF_EQ(EVT_VAR(0), 0)
return; EVT_RETURN
} EVT_END_IF
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
620 ... 660 { EVT_CASE_RANGE(620, 660)
MakeItemEntity(ITEM_STAR_PIECE, 640, 145, -100, 13, EVT_SAVE_FLAG(1388)); EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 640, 145, -100, 13, EVT_SAVE_FLAG(1388))
EVT_AREA_FLAG(39) = 1; EVT_SET(EVT_AREA_FLAG(39), 1)
} EVT_END_SWITCH
} EVT_END_IF
} EVT_RETURN
}); EVT_END
};
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
EVT_AREA_FLAG(39) = 0; EVT_SET(EVT_AREA_FLAG(39), 0)
bind N(80243E80) TRIGGER_FLOOR_TOUCH 20; EVT_BIND_TRIGGER(N(80243E80), TRIGGER_FLOOR_TOUCH, 20, 1, 0)
MakeEntity(0x802EA910, 350, 240, -100, 0, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EA910, 350, 240, -100, 0, MAKE_ENTITY_END)
EVT_MAP_VAR(0) = EVT_VAR(0); EVT_SET(EVT_MAP_VAR(0), EVT_VAR(0))
AssignBlockFlag(EVT_SAVE_FLAG(1403)); EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1403))
AssignScript(N(802438C8)); EVT_CALL(AssignScript, EVT_PTR(N(802438C8)))
MakeEntity(0x802EAA30, 472, 100, -100, 0, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EAA30, 472, 100, -100, 0, MAKE_ENTITY_END)
AssignScript(N(80243DB0)); EVT_CALL(AssignScript, EVT_PTR(N(80243DB0)))
}); EVT_RETURN
EVT_END
};
#include "world/common/SetOverrideFlags_40.inc.c" #include "world/common/SetOverrideFlags_40.inc.c"

View File

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

View File

@ -25,63 +25,68 @@ MapConfig N(config) = {
.tattle = { MSG_flo_17_tattle }, .tattle = { MSG_flo_17_tattle },
}; };
EvtSource N(80243280) = SCRIPT({ EvtSource N(80243280) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8)
} EVT_END_SWITCH
} EVT_RETURN
}); EVT_END
};
EvtSource N(802432F0) = SCRIPT({ EvtSource N(802432F0) = {
group 11; EVT_SET_GROUP(11)
EVT_VAR(10) = EVT_VAR(0); EVT_SET(EVT_VAR(10), EVT_VAR(0))
EVT_VAR(11) = EVT_VAR(1); EVT_SET(EVT_VAR(11), EVT_VAR(1))
EVT_VAR(12) = EVT_VAR(2); EVT_SET(EVT_VAR(12), EVT_VAR(2))
EVT_VAR(13) = EVT_VAR(3); EVT_SET(EVT_VAR(13), EVT_VAR(3))
EVT_VAR(14) = EVT_VAR(4); EVT_SET(EVT_VAR(14), EVT_VAR(4))
EVT_VAR(12) -= EVT_VAR(0); EVT_SUB(EVT_VAR(12), EVT_VAR(0))
EVT_VAR(13) -= EVT_VAR(1); EVT_SUB(EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) = (float) EVT_VAR(12); EVT_SETF(EVT_VAR(0), EVT_VAR(12))
EVT_VAR(0) /= 100.0; EVT_DIVF(EVT_VAR(0), EVT_FIXED(100.0))
EVT_VAR(15) = 100.0; EVT_SETF(EVT_VAR(15), EVT_FIXED(100.0))
EVT_VAR(15) /= (float) EVT_VAR(0); EVT_DIVF(EVT_VAR(15), EVT_VAR(0))
EVT_VAR(15) += 11; EVT_ADD(EVT_VAR(15), 11)
EVT_VAR(5) = 200; EVT_SET(EVT_VAR(5), 200)
EVT_VAR(5) /= EVT_VAR(15); EVT_DIV(EVT_VAR(5), EVT_VAR(15))
EVT_VAR(5) += 1; EVT_ADD(EVT_VAR(5), 1)
loop EVT_VAR(5) { EVT_LOOP(EVT_VAR(5))
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
RandInt(199, EVT_VAR(2)); EVT_CALL(RandInt, 199, EVT_VAR(2))
EVT_VAR(3) = 210; EVT_SET(EVT_VAR(3), 210)
EVT_VAR(3) -= EVT_VAR(2); EVT_SUB(EVT_VAR(3), EVT_VAR(2))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(EVT_VAR(1), EVT_VAR(11))
EVT_VAR(2) += EVT_VAR(14); EVT_ADD(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); 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
sleep EVT_VAR(15); EVT_WAIT_FRAMES(EVT_VAR(15))
0: EVT_LABEL(0)
RandInt(EVT_VAR(12), EVT_VAR(0)); EVT_CALL(RandInt, EVT_VAR(12), EVT_VAR(0))
RandInt(EVT_VAR(13), EVT_VAR(1)); EVT_CALL(RandInt, EVT_VAR(13), EVT_VAR(1))
EVT_VAR(0) += EVT_VAR(10); EVT_ADD(EVT_VAR(0), EVT_VAR(10))
EVT_VAR(1) += EVT_VAR(11); EVT_ADD(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); EVT_CALL(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); EVT_WAIT_FRAMES(EVT_VAR(15))
goto 0; EVT_GOTO(0)
}); EVT_RETURN
EVT_END
};
EvtSource N(exitWalk_8024359C) = EXIT_WALK_SCRIPT(60, 0, "flo_16", 1); 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(exitWalk_802435F8) = EXIT_WALK_SCRIPT(60, 1, "flo_18", 0);
EvtSource N(80243654) = SCRIPT({ EvtSource N(80243654) = {
bind N(exitWalk_8024359C) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_8024359C), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
bind N(exitWalk_802435F8) TRIGGER_FLOOR_ABOVE 4; EVT_BIND_TRIGGER(N(exitWalk_802435F8), TRIGGER_FLOOR_ABOVE, 4, 1, 0)
}); EVT_RETURN
EVT_END
};
s32 N(lavaResetList_8024369C)[] = { s32 N(lavaResetList_8024369C)[] = {
0x0000000F, 0xC4048000, 0x00000000, 0xC2DC0000, 0x00000011, 0xC4070000, 0x00000000, 0xC2480000, 0x0000000F, 0xC4048000, 0x00000000, 0xC2DC0000, 0x00000011, 0xC4070000, 0x00000000, 0xC2480000,
@ -96,199 +101,205 @@ s32 N(lavaResetList_8024369C)[] = {
0x00000020, 0x44034000, 0x00000000, 0x42480000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0x44034000, 0x00000000, 0x42480000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000,
}; };
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
MakeNpcs(0, N(npcGroupList_80245228)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80245228)))
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
spawn N(80244284); EVT_EXEC(N(80244284))
ModifyColliderFlags(3, 15, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 15, 0x00000006)
ModifyColliderFlags(3, 16, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 16, 0x00000006)
ModifyColliderFlags(3, 20, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 20, 0x00000006)
ModifyColliderFlags(3, 23, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 23, 0x00000006)
ModifyColliderFlags(3, 25, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 25, 0x00000006)
ModifyColliderFlags(3, 27, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 27, 0x00000006)
ModifyColliderFlags(3, 28, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 28, 0x00000006)
ModifyColliderFlags(3, 31, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 31, 0x00000006)
ModifyColliderFlags(3, 32, 0x00000006); EVT_CALL(ModifyColliderFlags, 3, 32, 0x00000006)
EVT_VAR(0) = -736; EVT_SET(EVT_VAR(0), -736)
EVT_VAR(1) = -137; EVT_SET(EVT_VAR(1), -137)
EVT_VAR(2) = -522; EVT_SET(EVT_VAR(2), -522)
EVT_VAR(3) = -118; EVT_SET(EVT_VAR(3), -118)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
EVT_VAR(0) = -728; EVT_SET(EVT_VAR(0), -728)
EVT_VAR(1) = 76; EVT_SET(EVT_VAR(1), 76)
EVT_VAR(2) = -496; EVT_SET(EVT_VAR(2), -496)
EVT_VAR(3) = 137; EVT_SET(EVT_VAR(3), 137)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
EVT_VAR(0) = -160; EVT_SET(EVT_VAR(0), -160)
EVT_VAR(1) = -117; EVT_SET(EVT_VAR(1), -117)
EVT_VAR(2) = -92; EVT_SET(EVT_VAR(2), -92)
EVT_VAR(3) = -54; EVT_SET(EVT_VAR(3), -54)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
EVT_VAR(0) = 76; EVT_SET(EVT_VAR(0), 76)
EVT_VAR(1) = -124; EVT_SET(EVT_VAR(1), -124)
EVT_VAR(2) = 150; EVT_SET(EVT_VAR(2), 150)
EVT_VAR(3) = -55; EVT_SET(EVT_VAR(3), -55)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
EVT_VAR(0) = 192; EVT_SET(EVT_VAR(0), 192)
EVT_VAR(1) = 60; EVT_SET(EVT_VAR(1), 60)
EVT_VAR(2) = 309; EVT_SET(EVT_VAR(2), 309)
EVT_VAR(3) = 133; EVT_SET(EVT_VAR(3), 133)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
EVT_VAR(0) = 488; EVT_SET(EVT_VAR(0), 488)
EVT_VAR(1) = 46; EVT_SET(EVT_VAR(1), 46)
EVT_VAR(2) = 733; EVT_SET(EVT_VAR(2), 733)
EVT_VAR(3) = 137; EVT_SET(EVT_VAR(3), 137)
EVT_VAR(4) = 0; EVT_SET(EVT_VAR(4), 0)
spawn N(802432F0); EVT_EXEC(N(802432F0))
ModifyColliderFlags(3, 9, 0x00000002); EVT_CALL(ModifyColliderFlags, 3, 9, 0x00000002)
spawn { EVT_THREAD
ResetFromLava(N(lavaResetList_8024369C)); EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_8024369C)))
} EVT_END_THREAD
EnableTexPanning(30, 1); EVT_CALL(EnableTexPanning, 30, 1)
EnableTexPanning(32, 1); EVT_CALL(EnableTexPanning, 32, 1)
EnableTexPanning(33, 1); EVT_CALL(EnableTexPanning, 33, 1)
EnableTexPanning(36, 1); EVT_CALL(EnableTexPanning, 36, 1)
EnableTexPanning(37, 1); EVT_CALL(EnableTexPanning, 37, 1)
EnableTexPanning(40, 1); EVT_CALL(EnableTexPanning, 40, 1)
EnableTexPanning(42, 1); EVT_CALL(EnableTexPanning, 42, 1)
EnableTexPanning(44, 1); EVT_CALL(EnableTexPanning, 44, 1)
EnableTexPanning(45, 1); EVT_CALL(EnableTexPanning, 45, 1)
EnableTexPanning(48, 1); EVT_CALL(EnableTexPanning, 48, 1)
EnableTexPanning(49, 1); EVT_CALL(EnableTexPanning, 49, 1)
EnableTexPanning(52, 1); EVT_CALL(EnableTexPanning, 52, 1)
EnableTexPanning(54, 1); EVT_CALL(EnableTexPanning, 54, 1)
EnableTexPanning(56, 1); EVT_CALL(EnableTexPanning, 56, 1)
EnableTexPanning(57, 1); EVT_CALL(EnableTexPanning, 57, 1)
EnableTexPanning(60, 1); EVT_CALL(EnableTexPanning, 60, 1)
EnableTexPanning(61, 1); EVT_CALL(EnableTexPanning, 61, 1)
EnableTexPanning(64, 1); EVT_CALL(EnableTexPanning, 64, 1)
EnableTexPanning(31, 1); EVT_CALL(EnableTexPanning, 31, 1)
EnableTexPanning(34, 1); EVT_CALL(EnableTexPanning, 34, 1)
EnableTexPanning(35, 1); EVT_CALL(EnableTexPanning, 35, 1)
EnableTexPanning(38, 1); EVT_CALL(EnableTexPanning, 38, 1)
EnableTexPanning(39, 1); EVT_CALL(EnableTexPanning, 39, 1)
EnableTexPanning(43, 1); EVT_CALL(EnableTexPanning, 43, 1)
EnableTexPanning(46, 1); EVT_CALL(EnableTexPanning, 46, 1)
EnableTexPanning(47, 1); EVT_CALL(EnableTexPanning, 47, 1)
EnableTexPanning(50, 1); EVT_CALL(EnableTexPanning, 50, 1)
EnableTexPanning(51, 1); EVT_CALL(EnableTexPanning, 51, 1)
EnableTexPanning(55, 1); EVT_CALL(EnableTexPanning, 55, 1)
EnableTexPanning(58, 1); EVT_CALL(EnableTexPanning, 58, 1)
EnableTexPanning(59, 1); EVT_CALL(EnableTexPanning, 59, 1)
EnableTexPanning(62, 1); EVT_CALL(EnableTexPanning, 62, 1)
EnableTexPanning(63, 1); EVT_CALL(EnableTexPanning, 63, 1)
spawn { EVT_THREAD
EVT_VAR(0) = 0; EVT_SET(EVT_VAR(0), 0)
EVT_VAR(1) = 0; EVT_SET(EVT_VAR(1), 0)
0: EVT_LABEL(0)
EVT_VAR(0) += 140; EVT_ADD(EVT_VAR(0), 140)
if (EVT_VAR(0) > 65536) { EVT_IF_GT(EVT_VAR(0), 65536)
EVT_VAR(0) += -65536; EVT_ADD(EVT_VAR(0), -65536)
} EVT_END_IF
SetTexPanOffset(1, 0, EVT_VAR(0), 0); EVT_CALL(SetTexPanOffset, 1, 0, EVT_VAR(0), 0)
EVT_VAR(1) += -200; EVT_ADD(EVT_VAR(1), -200)
if (EVT_VAR(1) < 0) { EVT_IF_LT(EVT_VAR(1), 0)
EVT_VAR(1) += 65536; EVT_ADD(EVT_VAR(1), 65536)
} EVT_END_IF
SetTexPanOffset(2, 0, EVT_VAR(1), 0); EVT_CALL(SetTexPanOffset, 2, 0, EVT_VAR(1), 0)
sleep 1; EVT_WAIT_FRAMES(1)
goto 0; EVT_GOTO(0)
} EVT_END_THREAD
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
ModifyColliderFlags(0, 5, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 5, 0x7FFFFE00)
EVT_VAR(0) = N(80243654); EVT_SET(EVT_VAR(0), EVT_PTR(N(80243654)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
await N(80243280); EVT_EXEC_WAIT(N(80243280))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(func_80240000_CD72E0)(); EVT_CALL(N(func_80240000_CD72E0))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
static s32 N(pad_3FCC) = { static s32 N(pad_3FCC) = {
0x00000000, 0x00000000,
}; };
EvtSource N(80243FD0) = SCRIPT({ EvtSource N(80243FD0) = {
loop { EVT_LOOP(0)
N(func_80240040_CD7320)(EVT_VAR(0)); EVT_CALL(N(func_80240040_CD7320), EVT_VAR(0))
if (EVT_VAR(0) == EVT_VAR(4)) { EVT_IF_EQ(EVT_VAR(0), EVT_VAR(4))
GetPlayerActionState(EVT_VAR(0)); EVT_CALL(GetPlayerActionState, EVT_VAR(0))
if (EVT_VAR(0) != 23) { EVT_IF_NE(EVT_VAR(0), 23)
if (EVT_VAR(8) == 0) { EVT_IF_EQ(EVT_VAR(8), 0)
spawn { EVT_THREAD
GetModelCenter(EVT_VAR(5)); EVT_CALL(GetModelCenter, EVT_VAR(5))
PlaySoundAt(0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(PlaySoundAt, 0x1DB, 4194304, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
} EVT_END_THREAD
} EVT_END_IF
if (EVT_VAR(7) < 90) { EVT_IF_LT(EVT_VAR(7), 90)
if (EVT_VAR(7) == 0) { EVT_IF_EQ(EVT_VAR(7), 0)
sleep 5; EVT_WAIT_FRAMES(5)
EVT_VAR(8) = 6; EVT_SET(EVT_VAR(8), 6)
ModifyColliderFlags(0, EVT_VAR(9), 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, EVT_VAR(9), 0x7FFFFE00)
} EVT_END_IF
EVT_VAR(8) += 1; EVT_ADD(EVT_VAR(8), 1)
EVT_VAR(7) += EVT_VAR(8); EVT_ADD(EVT_VAR(7), EVT_VAR(8))
} EVT_END_IF
goto 50; EVT_GOTO(50)
} EVT_END_IF
} EVT_END_IF
if (EVT_VAR(7) != 0) { EVT_IF_NE(EVT_VAR(7), 0)
EVT_VAR(8) -= 1; EVT_SUB(EVT_VAR(8), 1)
EVT_VAR(7) += EVT_VAR(8); EVT_ADD(EVT_VAR(7), EVT_VAR(8))
if (EVT_VAR(7) <= 0) { EVT_IF_LE(EVT_VAR(7), 0)
EVT_VAR(8) = 0; EVT_SET(EVT_VAR(8), 0)
EVT_VAR(7) = 0; EVT_SET(EVT_VAR(7), 0)
spawn { EVT_THREAD
GetModelCenter(EVT_VAR(5)); EVT_CALL(GetModelCenter, EVT_VAR(5))
PlaySoundAt(0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_CALL(PlaySoundAt, 0x1DC, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
} EVT_END_THREAD
ModifyColliderFlags(1, EVT_VAR(9), 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 1, EVT_VAR(9), 0x7FFFFE00)
} EVT_END_IF
} EVT_END_IF
50: EVT_LABEL(50)
if (EVT_VAR(7) >= 90) { EVT_IF_GE(EVT_VAR(7), 90)
EVT_VAR(8) = -1; EVT_SET(EVT_VAR(8), -1)
EVT_VAR(7) = 90; EVT_SET(EVT_VAR(7), 90)
} EVT_END_IF
RotateModel(EVT_VAR(5), EVT_VAR(7), -1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(5), EVT_VAR(7), -1, 0, 0)
RotateModel(EVT_VAR(6), EVT_VAR(7), -1, 0, 0); EVT_CALL(RotateModel, EVT_VAR(6), EVT_VAR(7), -1, 0, 0)
sleep 1; EVT_WAIT_FRAMES(1)
} EVT_END_LOOP
}); EVT_RETURN
EVT_END
};
EvtSource N(80244284) = SCRIPT({ EvtSource N(80244284) = {
EVT_VAR(4) = 35; EVT_SET(EVT_VAR(4), 35)
EVT_VAR(5) = 14; EVT_SET(EVT_VAR(5), 14)
EVT_VAR(6) = 15; EVT_SET(EVT_VAR(6), 15)
EVT_VAR(7) = EVT_MAP_VAR(10); EVT_SET(EVT_VAR(7), EVT_MAP_VAR(10))
EVT_VAR(8) = EVT_MAP_VAR(11); EVT_SET(EVT_VAR(8), EVT_MAP_VAR(11))
EVT_VAR(9) = 38; EVT_SET(EVT_VAR(9), 38)
spawn N(80243FD0); EVT_EXEC(N(80243FD0))
EVT_VAR(4) = 36; EVT_SET(EVT_VAR(4), 36)
EVT_VAR(5) = 19; EVT_SET(EVT_VAR(5), 19)
EVT_VAR(6) = 20; EVT_SET(EVT_VAR(6), 20)
EVT_VAR(7) = EVT_MAP_VAR(12); EVT_SET(EVT_VAR(7), EVT_MAP_VAR(12))
EVT_VAR(8) = EVT_MAP_VAR(13); EVT_SET(EVT_VAR(8), EVT_MAP_VAR(13))
EVT_VAR(9) = 39; EVT_SET(EVT_VAR(9), 39)
spawn N(80243FD0); EVT_EXEC(N(80243FD0))
EVT_VAR(4) = 37; EVT_SET(EVT_VAR(4), 37)
EVT_VAR(5) = 24; EVT_SET(EVT_VAR(5), 24)
EVT_VAR(6) = 25; EVT_SET(EVT_VAR(6), 25)
EVT_VAR(7) = EVT_MAP_VAR(14); EVT_SET(EVT_VAR(7), EVT_MAP_VAR(14))
EVT_VAR(8) = EVT_MAP_VAR(15); EVT_SET(EVT_VAR(8), EVT_MAP_VAR(15))
EVT_VAR(9) = 40; EVT_SET(EVT_VAR(9), 40)
spawn N(80243FD0); EVT_EXEC(N(80243FD0))
}); EVT_RETURN
EVT_END
};
static s32 N(pad_XXX)[] = { 0, 0}; static s32 N(pad_XXX)[] = { 0, 0};
@ -318,13 +329,15 @@ NpcAISettings N(npcAISettings_80244424) = {
.unk_2C = 1, .unk_2C = 1,
}; };
EvtSource N(npcAI_80244454) = SCRIPT({ EvtSource N(npcAI_80244454) = {
SetSelfVar(0, 0); EVT_CALL(SetSelfVar, 0, 0)
SetSelfVar(5, -650); EVT_CALL(SetSelfVar, 5, -650)
SetSelfVar(6, 30); EVT_CALL(SetSelfVar, 6, 30)
SetSelfVar(1, 400); EVT_CALL(SetSelfVar, 1, 400)
N(func_80241C64_CD8F44)(N(npcAISettings_80244424)); EVT_CALL(N(func_80241C64_CD8F44), EVT_PTR(N(npcAISettings_80244424)))
}); EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_802444C4) = { NpcSettings N(npcSettings_802444C4) = {
.height = 28, .height = 28,
@ -348,31 +361,32 @@ NpcAISettings N(npcAISettings_802444F0) = {
.unk_2C = 3, .unk_2C = 3,
}; };
EvtSource N(npcAI_80244520) = SCRIPT({ EvtSource N(npcAI_80244520) = {
SetSelfVar(2, 3); EVT_CALL(SetSelfVar, 2, 3)
SetSelfVar(3, 18); EVT_CALL(SetSelfVar, 3, 18)
SetSelfVar(5, 3); EVT_CALL(SetSelfVar, 5, 3)
SetSelfVar(7, 4); EVT_CALL(SetSelfVar, 7, 4)
N(func_80242918_CD9BF8)(N(npcAISettings_802444F0)); EVT_CALL(N(func_80242918_CD9BF8), EVT_PTR(N(npcAISettings_802444F0)))
}); EVT_RETURN
EVT_END
};
EvtSource N(80244590) = SCRIPT({ EvtSource N(80244590) = {
SetNpcRotation(NPC_SELF, 0, 0, 0); EVT_CALL(SetNpcRotation, NPC_SELF, 0, 0, 0)
GetBattleOutcome(EVT_VAR(0)); EVT_CALL(GetBattleOutcome, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
SetSelfVar(10, 100); EVT_CALL(SetSelfVar, 10, 100)
DoNpcDefeat(); EVT_CALL(DoNpcDefeat)
} EVT_CASE_EQ(2)
== 2 { EVT_CALL(func_80045900, 0)
func_80045900(0); EVT_CASE_EQ(3)
} EVT_CALL(SetEnemyFlagBits, -1, 16, 1)
== 3 { EVT_CALL(RemoveNpc, NPC_SELF)
SetEnemyFlagBits(-1, 16, 1); EVT_END_SWITCH
RemoveNpc(NPC_SELF); EVT_RETURN
} EVT_END
} };
});
NpcSettings N(npcSettings_8024465C) = { NpcSettings N(npcSettings_8024465C) = {
.height = 21, .height = 21,
@ -603,11 +617,13 @@ static s32 N(pad_527C) = {
0x00000000, 0x00000000,
}; };
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
MakeEntity(0x802EA588, 660, 60, -115, 0, ITEM_THUNDER_RAGE, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EA588, 660, 60, -115, 0, 130, MAKE_ENTITY_END)
AssignBlockFlag(EVT_SAVE_FLAG(1390)); EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(1390))
MakeItemEntity(ITEM_LETTER09, -245, 0, 105, 17, EVT_SAVE_FLAG(1389)); EVT_CALL(MakeItemEntity, ITEM_LETTER09, -245, 0, 105, 17, EVT_SAVE_FLAG(1389))
}); EVT_RETURN
EVT_END
};
#include "world/common/UnkNpcAIFunc23.inc.c" #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" #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 }, .tattle = { MSG_flo_22_tattle },
}; };
EvtSource N(802402E0) = SCRIPT({ EvtSource N(802402E0) = {
match EVT_STORY_PROGRESS { EVT_SWITCH(EVT_SAVE_VAR(0))
< STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { EVT_CASE_LT(53)
SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8)
} else { EVT_CASE_DEFAULT
SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); 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(exitWalk_80240350) = EXIT_WALK_SCRIPT(60, 0, "flo_03", 1);
EvtSource N(802403AC) = SCRIPT({ EvtSource N(802403AC) = {
bind N(exitWalk_80240350) TRIGGER_FLOOR_ABOVE 0; EVT_BIND_TRIGGER(N(exitWalk_80240350), TRIGGER_FLOOR_ABOVE, 0, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; EVT_SET(EVT_SAVE_VAR(425), 38)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
MakeNpcs(0, N(npcGroupList_80240DE4)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80240DE4)))
spawn N(80241F6C); EVT_EXEC(N(80241F6C))
spawn N(80241528); EVT_EXEC(N(80241528))
GetEntryID(EVT_VAR(0)); EVT_CALL(GetEntryID, EVT_VAR(0))
ModifyColliderFlags(0, 1, 0x7FFFFE00); EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00)
EVT_VAR(0) = N(802403AC); EVT_SET(EVT_VAR(0), EVT_PTR(N(802403AC)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
spawn N(80240E24); EVT_EXEC(N(80240E24))
await N(802402E0); EVT_EXEC_WAIT(N(802402E0))
if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { EVT_IF_GE(EVT_SAVE_VAR(0), 53)
N(func_80240000_CEC240)(); EVT_CALL(N(func_80240000_CEC240))
} EVT_END_IF
}); EVT_RETURN
EVT_END
};
static s32 N(pad_518)[] = { static s32 N(pad_518)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000,
@ -67,101 +72,104 @@ NpcSettings N(npcSettings_80240520) = {
.level = 99, .level = 99,
}; };
EvtSource N(idle_8024054C) = SCRIPT({ EvtSource N(idle_8024054C) = {
EVT_MAP_VAR(10) = 0; EVT_SET(EVT_MAP_VAR(10), 0)
loop { EVT_LOOP(0)
match EVT_MAP_VAR(10) { EVT_SWITCH(EVT_MAP_VAR(10))
== 0 {} EVT_CASE_EQ(0)
== 1 { EVT_CASE_EQ(1)
SetPlayerAnimation(0x1002E); EVT_CALL(SetPlayerAnimation, 65582)
EVT_MAP_VAR(10) = 0; EVT_SET(EVT_MAP_VAR(10), 0)
StartBattle(); EVT_CALL(StartBattle)
} EVT_END_SWITCH
} EVT_WAIT_FRAMES(1)
sleep 1; EVT_END_LOOP
} EVT_RETURN
}); EVT_END
};
EvtSource N(defeat_802405E4) = SCRIPT({ EvtSource N(defeat_802405E4) = {
GetBattleOutcome(EVT_VAR(0)); EVT_CALL(GetBattleOutcome, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
spawn { EVT_THREAD
sleep 25; EVT_WAIT_FRAMES(25)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE); EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
} EVT_END_THREAD
DoNpcDefeat(); EVT_CALL(DoNpcDefeat)
} EVT_CASE_EQ(1)
== 1 { EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CASE_EQ(2)
} EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_bzzap_Palette_00_Anim_1)
== 2 { EVT_CALL(SetNpcPos, NPC_SELF, 30, 60, 0)
SetNpcAnimation(NPC_SELF, NPC_ANIM_bzzap_Palette_00_Anim_1); EVT_WAIT_FRAMES(10)
SetNpcPos(NPC_SELF, 30, 60, 0); EVT_CALL(SetNpcJumpscale, NPC_SELF, 0)
sleep 10; EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
SetNpcJumpscale(NPC_SELF, 0); EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
NpcJump0(NPC_SELF, 30, 0, 0, 15); EVT_END_SWITCH
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_RETURN
} EVT_END
} };
});
EvtSource N(init_80240740) = SCRIPT({ EvtSource N(init_80240740) = {
BindNpcIdle(NPC_SELF, N(idle_8024054C)); EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_8024054C)))
BindNpcDefeat(NPC_SELF, N(defeat_802405E4)); EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802405E4)))
}); EVT_RETURN
EVT_END
};
EvtSource N(idle_80240778) = SCRIPT({ EvtSource N(idle_80240778) = {
EVT_MAP_VAR(11) = 0; EVT_SET(EVT_MAP_VAR(11), 0)
loop { EVT_LOOP(0)
match EVT_MAP_VAR(11) { EVT_SWITCH(EVT_MAP_VAR(11))
== 0 {} EVT_CASE_EQ(0)
== 1 { EVT_CASE_EQ(1)
SetPlayerAnimation(0x1002E); EVT_CALL(SetPlayerAnimation, 65582)
EVT_MAP_VAR(11) = 0; EVT_SET(EVT_MAP_VAR(11), 0)
StartBattle(); EVT_CALL(StartBattle)
} EVT_END_SWITCH
} EVT_WAIT_FRAMES(1)
sleep 1; EVT_END_LOOP
} EVT_RETURN
}); EVT_END
};
EvtSource N(defeat_80240810) = SCRIPT({ EvtSource N(defeat_80240810) = {
GetBattleOutcome(EVT_VAR(0)); EVT_CALL(GetBattleOutcome, EVT_VAR(0))
match EVT_VAR(0) { EVT_SWITCH(EVT_VAR(0))
== 0 { EVT_CASE_EQ(0)
spawn { EVT_THREAD
sleep 25; EVT_WAIT_FRAMES(25)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcFlagBits(NPC_SELF, ((0x00000002)), FALSE); EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_2)), FALSE)
} EVT_END_THREAD
DoNpcDefeat(); EVT_CALL(DoNpcDefeat)
} EVT_CASE_EQ(1)
== 1 { EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CASE_EQ(3)
} EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1)
== 3 { EVT_WAIT_FRAMES(10)
SetNpcAnimation(NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1); EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FIXED(2.0))
sleep 10; EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
SetNpcJumpscale(NPC_SELF, 2.0); EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
NpcJump0(NPC_SELF, 30, 0, 0, 15); EVT_CASE_EQ(2)
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1)
} EVT_WAIT_FRAMES(10)
== 2 { EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FIXED(2.0))
SetNpcAnimation(NPC_SELF, NPC_ANIM_dayzee_Palette_00_Anim_1); EVT_CALL(NpcJump0, NPC_SELF, 30, 0, 0, 15)
sleep 10; EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0)
SetNpcJumpscale(NPC_SELF, 2.0); EVT_END_SWITCH
NpcJump0(NPC_SELF, 30, 0, 0, 15); EVT_RETURN
SetNpcPos(NPC_SELF, 0, -1000, 0); EVT_END
} };
}
});
EvtSource N(init_802409CC) = SCRIPT({ EvtSource N(init_802409CC) = {
BindNpcIdle(NPC_SELF, N(idle_80240778)); EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80240778)))
BindNpcDefeat(NPC_SELF, N(defeat_80240810)); EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_80240810)))
}); EVT_RETURN
EVT_END
};
StaticNpc N(npcGroup_80240A04) = { StaticNpc N(npcGroup_80240A04) = {
.id = NPC_BZZAP, .id = NPC_BZZAP,
@ -248,120 +256,126 @@ s32 N(itemList_80240E10)[] = {
ITEM_NONE, ITEM_NONE,
}; };
EvtSource N(80240E24) = SCRIPT({ EvtSource N(80240E24) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
sleep 20; EVT_WAIT_FRAMES(20)
ShowMessageAtScreenPos(MESSAGE_ID(0x11, 0x00DB), 300, 120); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x11, 0x00DB), 300, 120)
sleep 10; EVT_WAIT_FRAMES(10)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
}); EVT_RETURN
EVT_END
};
EvtSource N(80240E84) = SCRIPT({ EvtSource N(80240E84) = {
SetPlayerAnimation(0x6000E); EVT_CALL(SetPlayerAnimation, 393230)
spawn { EVT_THREAD
GetPlayerPos(EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); EVT_CALL(GetPlayerPos, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4))
EVT_VAR(6) = 35; EVT_SET(EVT_VAR(6), 35)
EVT_VAR(5) = 5; EVT_SET(EVT_VAR(5), 5)
MakeItemEntity(EVT_VAR(8), EVT_VAR(2), EVT_VAR(6), 0, 1, 0); EVT_CALL(MakeItemEntity, EVT_VAR(8), EVT_VAR(2), EVT_VAR(6), 0, 1, 0)
EVT_VAR(7) = EVT_VAR(0); EVT_SET(EVT_VAR(7), EVT_VAR(0))
MakeLerp(EVT_VAR(2), 35, 20, 5); EVT_CALL(MakeLerp, EVT_VAR(2), 35, 20, 5)
loop { EVT_LOOP(0)
UpdateLerp(); EVT_CALL(UpdateLerp)
SetItemPos(EVT_VAR(7), EVT_VAR(0), EVT_VAR(6), 0); EVT_CALL(SetItemPos, EVT_VAR(7), EVT_VAR(0), EVT_VAR(6), 0)
EVT_VAR(6) += EVT_VAR(5); EVT_ADD(EVT_VAR(6), EVT_VAR(5))
EVT_VAR(5) += -1; EVT_ADD(EVT_VAR(5), -1)
sleep 1; EVT_WAIT_FRAMES(1)
if (EVT_VAR(1) == 0) { EVT_IF_EQ(EVT_VAR(1), 0)
break loop; EVT_BREAK_LOOP
} EVT_END_IF
} EVT_END_LOOP
RemoveItemEntity(EVT_VAR(7)); EVT_CALL(RemoveItemEntity, EVT_VAR(7))
} EVT_END_THREAD
sleep 10; EVT_WAIT_FRAMES(10)
PlaySoundAt(0x302, 0, 35, 0, 0); EVT_CALL(PlaySoundAt, 0x302, 0, 35, 0, 0)
sleep 5; EVT_WAIT_FRAMES(5)
SetPlayerAnimation(ANIM_10002); EVT_CALL(SetPlayerAnimation, ANIM_10002)
sleep 10; EVT_WAIT_FRAMES(10)
}); EVT_RETURN
EVT_END
};
EvtSource N(80241028) = SCRIPT({ EvtSource N(80241028) = {
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
DisablePlayerInput(FALSE); EVT_CALL(DisablePlayerInput, FALSE)
ShowConsumableChoicePopup(); EVT_CALL(ShowConsumableChoicePopup)
CloseChoicePopup(); EVT_CALL(CloseChoicePopup)
DisablePlayerInput(TRUE); EVT_CALL(DisablePlayerInput, TRUE)
EVT_VAR(8) = EVT_VAR(0); EVT_SET(EVT_VAR(8), EVT_VAR(0))
match EVT_VAR(8) { EVT_SWITCH(EVT_VAR(8))
<= -1 {} EVT_CASE_LE(-1)
<= 0 { EVT_CASE_LE(0)
ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x015C), 160, 40); EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x015C), 160, 40)
} EVT_CASE_EQ(158)
== 158 { EVT_EXEC_WAIT(N(80240E84))
await N(80240E84); EVT_CALL(RemoveItemAt, EVT_VAR(1))
RemoveItemAt(EVT_VAR(1)); EVT_IF_EQ(EVT_SAVE_FLAG(1395), 0)
if (EVT_SAVE_FLAG(1395) == 0) { EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DD), 35, 35, 0)
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DD), 35, 35, 0); EVT_SET(EVT_SAVE_FLAG(1395), 1)
EVT_SAVE_FLAG(1395) = 1; EVT_CALL(MakeItemEntity, ITEM_FLOWER_SAVER_B, -35, 0, 0, 0, EVT_SAVE_FLAG(1392))
MakeItemEntity(ITEM_FLOWER_SAVER_B, -35, 0, 0, 0, EVT_SAVE_FLAG(1392)); EVT_SET(EVT_VAR(7), EVT_VAR(0))
EVT_VAR(7) = EVT_VAR(0); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_2)), TRUE)
SetNpcFlagBits(NPC_BZZAP, ((0x00000002)), TRUE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_HAS_SHADOW)), FALSE)
SetNpcFlagBits(NPC_BZZAP, ((NPC_FLAG_HAS_SHADOW)), FALSE); EVT_CALL(SetNpcPos, 0, 35, 0, 0)
SetNpcPos(NPC_BZZAP, 35, 0, 0); EVT_CALL(SetNpcJumpscale, 0, EVT_FIXED(1.0))
SetNpcJumpscale(NPC_BZZAP, 1.0); EVT_THREAD
spawn { EVT_CALL(NpcJump0, 0, -53, 0, 0, 25)
NpcJump0(NPC_BZZAP, -53, 0, 0, 25); EVT_CALL(NpcJump0, 0, -73, 0, 0, 15)
NpcJump0(NPC_BZZAP, -73, 0, 0, 15); EVT_CALL(NpcJump0, 0, -83, 0, 0, 8)
NpcJump0(NPC_BZZAP, -83, 0, 0, 8); EVT_END_THREAD
} EVT_LOOP(53)
loop 53 { EVT_CALL(GetNpcPos, 0, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
GetNpcPos(NPC_BZZAP, EVT_VAR(1), EVT_VAR(2), EVT_VAR(3)); EVT_CALL(SetItemPos, EVT_VAR(7), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3))
SetItemPos(EVT_VAR(7), EVT_VAR(1), EVT_VAR(2), EVT_VAR(3)); EVT_WAIT_FRAMES(1)
sleep 1; EVT_END_LOOP
} EVT_CALL(SetNpcPos, 0, 0, -1000, 0)
SetNpcPos(NPC_BZZAP, 0, -1000, 0); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_2)), FALSE)
SetNpcFlagBits(NPC_BZZAP, ((0x00000002)), FALSE); EVT_CALL(SetNpcFlagBits, 0, ((NPC_FLAG_HAS_SHADOW)), TRUE)
SetNpcFlagBits(NPC_BZZAP, ((NPC_FLAG_HAS_SHADOW)), TRUE); EVT_ELSE
} else { EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DE), 35, 35, 0)
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DE), 35, 35, 0); EVT_END_IF
} EVT_CASE_DEFAULT
} else { EVT_EXEC_WAIT(N(80240E84))
await N(80240E84); EVT_CALL(RemoveItemAt, EVT_VAR(1))
RemoveItemAt(EVT_VAR(1)); EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00DC), 35, 35, 0)
ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00DC), 35, 35, 0); EVT_CALL(RandInt, 1, EVT_VAR(1))
RandInt(1, EVT_VAR(1)); EVT_IF_EQ(EVT_VAR(1), 0)
if (EVT_VAR(1) == 0) { EVT_CALL(SetNpcJumpscale, 0, EVT_FIXED(0.0))
SetNpcJumpscale(NPC_BZZAP, 0.0); EVT_CALL(NpcFacePlayer, 0, 0)
NpcFacePlayer(NPC_BZZAP, 0); EVT_WAIT_FRAMES(1)
sleep 1; EVT_CALL(SetNpcPos, 0, 30, 0, 0)
SetNpcPos(NPC_BZZAP, 30, 0, 0); EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_bzzap_Palette_00_Anim_1)
SetNpcAnimation(NPC_BZZAP, NPC_ANIM_bzzap_Palette_00_Anim_1); EVT_CALL(NpcJump0, 0, 30, 60, 0, 20)
NpcJump0(NPC_BZZAP, 30, 60, 0, 20); EVT_WAIT_FRAMES(10)
sleep 10; EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_bzzap_Palette_00_Anim_4)
SetNpcAnimation(NPC_BZZAP, NPC_ANIM_bzzap_Palette_00_Anim_4); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_ADD(EVT_VAR(1), 20)
EVT_VAR(1) += 20; EVT_CALL(NpcJump0, 0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5)
NpcJump0(NPC_BZZAP, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 5); EVT_SET(EVT_MAP_VAR(10), 1)
EVT_MAP_VAR(10) = 1; EVT_ELSE
} else { EVT_CALL(SetNpcPos, 1, 30, 0, 0)
SetNpcPos(NPC_DAYZEE, 30, 0, 0); EVT_CALL(SetNpcAnimation, 1, NPC_ANIM_dayzee_Palette_00_Anim_E)
SetNpcAnimation(NPC_DAYZEE, NPC_ANIM_dayzee_Palette_00_Anim_E); EVT_CALL(GetPlayerPos, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2))
GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); EVT_ADD(EVT_VAR(1), 20)
EVT_VAR(1) += 20; EVT_CALL(SetNpcJumpscale, 1, EVT_FIXED(2.0))
SetNpcJumpscale(NPC_DAYZEE, 2.0); EVT_CALL(NpcJump0, 1, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20)
NpcJump0(NPC_DAYZEE, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20); EVT_SET(EVT_MAP_VAR(11), 1)
EVT_MAP_VAR(11) = 1; EVT_END_IF
} EVT_END_SWITCH
} EVT_CALL(DisablePlayerInput, FALSE)
} EVT_RETURN
DisablePlayerInput(FALSE); EVT_END
}); };
EvtSource N(80241528) = SCRIPT({ EvtSource N(80241528) = {
bind_padlock N(80241028) TRIGGER_WALL_PRESS_A 9 N(itemList_80240E10); EVT_BIND_PADLOCK(N(80241028), TRIGGER_WALL_PRESS_A, 9, EVT_PTR(N(itemList_80240E10)), 0, 1)
if (EVT_SAVE_FLAG(1395) == 1) { EVT_IF_EQ(EVT_SAVE_FLAG(1395), 1)
MakeItemEntity(ITEM_FLOWER_SAVER_B, -83, 0, 0, 0, EVT_SAVE_FLAG(1392)); 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)[] = { static s32 N(pad_1594)[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,9 +14,11 @@ MapConfig N(config) = {
.tattle = { MSG_kmr_12_tattle }, .tattle = { MSG_kmr_12_tattle },
}; };
EvtSource N(PlayMusic) = SCRIPT({ EvtSource N(PlayMusic) = {
SetMusicTrack(0, SONG_PLEASANT_PATH, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_PLEASANT_PATH, 0, 8)
}); EVT_RETURN
EVT_END
};
ApiStatus GetGoomba(Evt* script, s32 isInitialCall) { ApiStatus GetGoomba(Evt* script, s32 isInitialCall) {
script->varTable[0] = get_enemy_safe(NPC_GOOMBA); 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(MakeEntities);
extern EvtSource N(ReadWestSign); extern EvtSource N(ReadWestSign);
extern NpcGroupList N(npcGroupList); 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(exitWalk_8024013C) = EXIT_WALK_SCRIPT(60, 3, "sbk_10", 2);
EvtSource N(80240198) = SCRIPT({ EvtSource N(80240198) = {
bind N(exitWalk_802400E0) TRIGGER_FLOOR_ABOVE 3; EVT_BIND_TRIGGER(N(exitWalk_802400E0), TRIGGER_FLOOR_ABOVE, 3, 1, 0)
bind N(exitWalk_8024013C) TRIGGER_FLOOR_ABOVE 6; EVT_BIND_TRIGGER(N(exitWalk_8024013C), TRIGGER_FLOOR_ABOVE, 6, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_DRY_DRY_DESERT; EVT_SET(EVT_SAVE_VAR(425), 10)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
if (EVT_STORY_PROGRESS == STORY_CH2_GOT_PULSE_STONE) { EVT_IF_EQ(EVT_SAVE_VAR(0), -63)
DisablePulseStone(0); EVT_CALL(DisablePulseStone, 0)
} EVT_END_IF
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
MakeNpcs(0, N(npcGroupList_80240768)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80240768)))
await N(makeEntities); EVT_EXEC_WAIT(N(makeEntities))
N(SpawnSunEffect)(); EVT_CALL(N(SpawnSunEffect))
SetMusicTrack(0, SONG_DRY_DRY_DESERT, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_DRY_DRY_DESERT, 0, 8)
EVT_VAR(0) = N(80240198); EVT_SET(EVT_VAR(0), EVT_PTR(N(80240198)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
}); EVT_RETURN
EVT_END
};

View File

@ -16,10 +16,12 @@ NpcAISettings N(npcAISettings_80240300) = {
.unk_2C = 1, .unk_2C = 1,
}; };
EvtSource N(npcAI_80240330) = SCRIPT({ EvtSource N(npcAI_80240330) = {
N(SetNpcB5_3)(); EVT_CALL(N(SetNpcB5_3))
DoBasicAI(N(npcAISettings_80240300)); EVT_CALL(DoBasicAI, EVT_PTR(N(npcAISettings_80240300)))
}); EVT_RETURN
EVT_END
};
NpcSettings N(npcSettings_8024035C) = { NpcSettings N(npcSettings_8024035C) = {
.height = 72, .height = 72,
@ -114,9 +116,11 @@ static s32 N(pad_78C) = {
0x00000000, 0x00000000,
}; };
EvtSource N(makeEntities) = SCRIPT({ EvtSource N(makeEntities) = {
MakeEntity(0x802EA564, -230, 0, 155, 0, ITEM_FRIGHT_JAR, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EA564, -230, 0, 155, 0, 152, MAKE_ENTITY_END)
AssignBlockFlag(EVT_SAVE_FLAG(797)); EVT_CALL(AssignBlockFlag, EVT_SAVE_FLAG(797))
MakeEntity(0x802EA564, 160, 0, 205, 0, ITEM_COIN, MAKE_ENTITY_END); EVT_CALL(MakeEntity, 0x802EA564, 160, 0, 205, 0, 343, MAKE_ENTITY_END)
AssignBlockFlag(EVT_SAVE_FLAG(798)); 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(exitWalk_80240198) = EXIT_WALK_SCRIPT(60, 3, "sbk_11", 2);
EvtSource N(802401F4) = SCRIPT({ EvtSource N(802401F4) = {
bind N(exitWalk_802400E0) TRIGGER_FLOOR_ABOVE 7; EVT_BIND_TRIGGER(N(exitWalk_802400E0), TRIGGER_FLOOR_ABOVE, 7, 1, 0)
bind N(exitWalk_8024013C) TRIGGER_FLOOR_ABOVE 3; EVT_BIND_TRIGGER(N(exitWalk_8024013C), TRIGGER_FLOOR_ABOVE, 3, 1, 0)
bind N(exitWalk_80240198) TRIGGER_FLOOR_ABOVE 5; EVT_BIND_TRIGGER(N(exitWalk_80240198), TRIGGER_FLOOR_ABOVE, 5, 1, 0)
}); EVT_RETURN
EVT_END
};
EvtSource N(main) = SCRIPT({ EvtSource N(main) = {
EVT_WORLD_LOCATION = LOCATION_DRY_DRY_DESERT; EVT_SET(EVT_SAVE_VAR(425), 10)
SetSpriteShading(-1); EVT_CALL(SetSpriteShading, -1)
if (EVT_STORY_PROGRESS == STORY_CH2_GOT_PULSE_STONE) { EVT_IF_EQ(EVT_SAVE_VAR(0), -63)
DisablePulseStone(0); EVT_CALL(DisablePulseStone, 0)
} EVT_END_IF
SetCamPerspective(0, 3, 25, 16, 4096); EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096)
SetCamBGColor(0, 0, 0, 0); EVT_CALL(SetCamBGColor, 0, 0, 0, 0)
SetCamEnabled(0, 1); EVT_CALL(SetCamEnabled, 0, 1)
SetCamLeadPlayer(0, 0); EVT_CALL(SetCamLeadPlayer, 0, 0)
MakeNpcs(0, N(npcGroupList_802407D8)); EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802407D8)))
N(SpawnSunEffect)(); EVT_CALL(N(SpawnSunEffect))
SetMusicTrack(0, SONG_DRY_DRY_DESERT, 0, 8); EVT_CALL(SetMusicTrack, 0, SONG_DRY_DRY_DESERT, 0, 8)
EVT_VAR(0) = N(802401F4); EVT_SET(EVT_VAR(0), EVT_PTR(N(802401F4)))
spawn EnterWalk; EVT_EXEC(EnterWalk)
}); EVT_RETURN
EVT_END
};

View File

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

View File

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