From dcd315865c8e6300f25bcb79880b15afdbb22cb5 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 27 May 2022 14:00:53 +0100 Subject: [PATCH] Remove script DSL (#717) * remove cc_dsl task * ok --- src/world/area_flo/flo_00/C9DF60.c | 3068 +++++++++++++------------ src/world/area_flo/flo_10/CB9280.c | 1383 +++++------ tools/build/cc_dsl/compile_script.py | 941 -------- tools/build/cc_dsl/process_scripts.py | 69 - tools/build/configure.py | 16 +- 5 files changed, 2249 insertions(+), 3228 deletions(-) delete mode 100755 tools/build/cc_dsl/compile_script.py delete mode 100755 tools/build/cc_dsl/process_scripts.py diff --git a/src/world/area_flo/flo_00/C9DF60.c b/src/world/area_flo/flo_00/C9DF60.c index b4e48bdc79..cc399c5cb5 100644 --- a/src/world/area_flo/flo_00/C9DF60.c +++ b/src/world/area_flo/flo_00/C9DF60.c @@ -1,6 +1,7 @@ #include "flo_00.h" #include "script_api/common.h" #include "message_ids.h" +#include "effects.h" #include "sprite/npc/bubulb.h" #include "sprite/npc/lakilulu.h" #include "sprite/npc/tolielup.h" @@ -41,153 +42,156 @@ MapConfig N(config) = { .tattle = { MSG_flo_00_tattle }, }; -EvtScript N(802414D0) = SCRIPT({ - GetEntryID(EVT_VAR(0)); - match EVT_VAR(0) { - == 8 { - if (EVT_AREA_FLAG(44) != 0) { - SetMusicTrack(0, SONG_MAGIC_BEANSTALK, 1, 8); - } else { - SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); - } - } - == 9 { - SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8); - } - == 10 { - SetMusicTrack(0, SONG_STAR_SPIRIT_THEME, 1, 8); - spawn { - loop { - sleep 1; - if (EVT_STORY_PROGRESS >= STORY_CH6_STAR_SPRIT_DEPARTED) { - break loop; - } - } - SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); - } - } - == 11 { - FadeInMusic(0, 49, 0, 3000, 0, 127); - } else { - match EVT_STORY_PROGRESS { - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); - } else { - SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); - } - } - } - } -}); +EvtScript N(802414D0) = { + EVT_CALL(GetEntryID, LW(0)) + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(8) + EVT_IF_NE(LSWF(44), 0) + EVT_CALL(SetMusicTrack, 0, SONG_MAGIC_BEANSTALK, 1, 8) + EVT_ELSE + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EVT_END_IF + EVT_CASE_EQ(9) + EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8) + EVT_CASE_EQ(10) + EVT_CALL(SetMusicTrack, 0, SONG_STAR_SPIRIT_THEME, 1, 8) + EVT_THREAD + EVT_LOOP(0) + EVT_WAIT_FRAMES(1) + EVT_IF_GE(GSW(0), 59) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EVT_END_THREAD + EVT_CASE_EQ(11) + EVT_CALL(FadeInMusic, 0, 49, 0, 3000, 0, 127) + EVT_CASE_DEFAULT + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(53) + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EVT_END_SWITCH + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; static s32 N(pad_16BC) = { 0x00000000, }; -EvtScript N(802416C0) = SCRIPT({ - group 11; - EVT_VAR(10) = EVT_VAR(0); - EVT_VAR(11) = EVT_VAR(1); - EVT_VAR(12) = EVT_VAR(2); - EVT_VAR(13) = EVT_VAR(3); - EVT_VAR(14) = EVT_VAR(4); - EVT_VAR(12) -= EVT_VAR(0); - EVT_VAR(13) -= EVT_VAR(1); - EVT_VAR(0) = (float) EVT_VAR(12); - EVT_VAR(0) /= 100.0; - EVT_VAR(15) = 100.0; - EVT_VAR(15) /= (float) EVT_VAR(0); - EVT_VAR(15) += 11; - EVT_VAR(5) = 200; - EVT_VAR(5) /= EVT_VAR(15); - EVT_VAR(5) += 1; - loop EVT_VAR(5) { - RandInt(EVT_VAR(12), EVT_VAR(0)); - RandInt(EVT_VAR(13), EVT_VAR(1)); - RandInt(199, EVT_VAR(2)); - EVT_VAR(3) = 210; - EVT_VAR(3) -= EVT_VAR(2); - EVT_VAR(0) += EVT_VAR(10); - EVT_VAR(1) += EVT_VAR(11); - EVT_VAR(2) += EVT_VAR(14); - PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0); - } - sleep EVT_VAR(15); -0: - RandInt(EVT_VAR(12), EVT_VAR(0)); - RandInt(EVT_VAR(13), EVT_VAR(1)); - EVT_VAR(0) += EVT_VAR(10); - EVT_VAR(1) += EVT_VAR(11); - PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0); - sleep EVT_VAR(15); - goto 0; -}); +EvtScript N(802416C0) = { + EVT_SET_GROUP(11) + EVT_SET(LW(10), LW(0)) + EVT_SET(LW(11), LW(1)) + EVT_SET(LW(12), LW(2)) + EVT_SET(LW(13), LW(3)) + EVT_SET(LW(14), LW(4)) + EVT_SUB(LW(12), LW(0)) + EVT_SUB(LW(13), LW(1)) + EVT_SETF(LW(0), LW(12)) + EVT_DIVF(LW(0), EVT_FLOAT(100.0)) + EVT_SETF(LW(15), EVT_FLOAT(100.0)) + EVT_DIVF(LW(15), LW(0)) + EVT_ADD(LW(15), 11) + EVT_SET(LW(5), 200) + EVT_DIV(LW(5), LW(15)) + EVT_ADD(LW(5), 1) + EVT_LOOP(LW(5)) + EVT_CALL(RandInt, LW(12), LW(0)) + EVT_CALL(RandInt, LW(13), LW(1)) + EVT_CALL(RandInt, 199, LW(2)) + EVT_SET(LW(3), 210) + EVT_SUB(LW(3), LW(2)) + EVT_ADD(LW(0), LW(10)) + EVT_ADD(LW(1), LW(11)) + EVT_ADD(LW(2), LW(14)) + EVT_CALL(PlayEffect, EFFECT_FLOATING_FLOWER, LW(0), LW(2), LW(1), LW(3), 0, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_END_LOOP + EVT_WAIT_FRAMES(LW(15)) + EVT_LABEL(0) + EVT_CALL(RandInt, LW(12), LW(0)) + EVT_CALL(RandInt, LW(13), LW(1)) + EVT_ADD(LW(0), LW(10)) + EVT_ADD(LW(1), LW(11)) + EVT_CALL(PlayEffect, EFFECT_FLOATING_FLOWER, LW(0), LW(14), LW(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(LW(15)) + EVT_GOTO(0) + EVT_RETURN + EVT_END +}; -EvtScript N(8024196C) = SCRIPT({ - DisablePlayerInput(TRUE); - ModifyColliderFlags(0, 2, 0x7FFFFE00); - PlayerMoveTo(30, -170, 10); - InterpPlayerYaw(0, 0); - PlaySoundAtCollider(2, 463, 0); - MakeLerp(0, -100, 20, 4); - loop { - UpdateLerp(); - RotateGroup(28, EVT_VAR(0), 0, 1, 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - func_802D2C14(1); - PlayerMoveTo(0, -310, 30); - func_802D2C14(0); - if (EVT_STORY_PROGRESS == STORY_CH6_STAR_SPRIT_DEPARTED) { - EVT_STORY_PROGRESS = STORY_CH6_RETURNED_TO_TOAD_TOWN; - } - MakeLerp(-100, 0, 30, 1); - loop { - UpdateLerp(); - RotateGroup(28, EVT_VAR(0), 0, 1, 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - PlaySoundAtCollider(2, 464, 0); - GotoMap("mac_01", 5); - sleep 100; -}); +EvtScript N(8024196C) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(ModifyColliderFlags, 0, 2, 0x7FFFFE00) + EVT_CALL(PlayerMoveTo, 30, -170, 10) + EVT_CALL(InterpPlayerYaw, 0, 0) + EVT_CALL(PlaySoundAtCollider, 2, 463, 0) + EVT_CALL(MakeLerp, 0, -100, 20, 4) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateGroup, 28, LW(0), 0, 1, 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(func_802D2C14, 1) + EVT_CALL(PlayerMoveTo, 0, -310, 30) + EVT_CALL(func_802D2C14, 0) + EVT_IF_EQ(GSW(0), 59) + EVT_SET(GSW(0), 60) + EVT_END_IF + EVT_CALL(MakeLerp, -100, 0, 30, 1) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateGroup, 28, LW(0), 0, 1, 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(PlaySoundAtCollider, 2, 464, 0) + EVT_CALL(GotoMap, EVT_PTR("mac_01"), 5) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; -EvtScript N(80241B90) = SCRIPT({ - DisablePlayerInput(TRUE); - ModifyColliderFlags(0, 2, 0x7FFFFE00); - InterpPlayerYaw(180, 0); - PlaySoundAtCollider(2, 463, 0); - MakeLerp(0, -100, 30, 1); - loop { - UpdateLerp(); - RotateGroup(28, EVT_VAR(0), 0, 1, 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - func_802D2C14(1); - PlayerMoveTo(0, -135, 30); - func_802D2C14(0); - MakeLerp(-100, 0, 30, 1); - loop { - UpdateLerp(); - RotateGroup(28, EVT_VAR(0), 0, 1, 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - PlaySoundAtCollider(2, 464, 0); - DisablePlayerInput(FALSE); - ModifyColliderFlags(1, 2, 0x7FFFFE00); -}); +EvtScript N(80241B90) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(ModifyColliderFlags, 0, 2, 0x7FFFFE00) + EVT_CALL(InterpPlayerYaw, 180, 0) + EVT_CALL(PlaySoundAtCollider, 2, 463, 0) + EVT_CALL(MakeLerp, 0, -100, 30, 1) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateGroup, 28, LW(0), 0, 1, 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(func_802D2C14, 1) + EVT_CALL(PlayerMoveTo, 0, -135, 30) + EVT_CALL(func_802D2C14, 0) + EVT_CALL(MakeLerp, -100, 0, 30, 1) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateGroup, 28, LW(0), 0, 1, 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(PlaySoundAtCollider, 2, 464, 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_CALL(ModifyColliderFlags, 1, 2, 0x7FFFFE00) + EVT_RETURN + EVT_END +}; EvtScript N(exitWalk_80241D7C) = EXIT_WALK_SCRIPT(60, 1, "flo_14", 0); @@ -203,158 +207,157 @@ EvtScript N(exitWalk_80241F48) = EXIT_WALK_SCRIPT(60, 6, "flo_08", 0); const s32 N(pad_XXXX)[] = { 0, 0}; -EvtScript N(80241FA4) = SCRIPT({ - bind N(exitWalk_80241D7C) TRIGGER_FLOOR_ABOVE 5; - bind N(exitWalk_80241DD8) TRIGGER_FLOOR_ABOVE 9; - bind N(exitWalk_80241E34) TRIGGER_FLOOR_ABOVE 13; - bind N(exitWalk_80241E90) TRIGGER_FLOOR_ABOVE 17; - bind N(exitWalk_80241EEC) TRIGGER_FLOOR_ABOVE 21; - bind N(exitWalk_80241F48) TRIGGER_FLOOR_ABOVE 25; -}); +EvtScript N(80241FA4) = { + EVT_BIND_TRIGGER(N(exitWalk_80241D7C), TRIGGER_FLOOR_ABOVE, 5, 1, 0) + EVT_BIND_TRIGGER(N(exitWalk_80241DD8), TRIGGER_FLOOR_ABOVE, 9, 1, 0) + EVT_BIND_TRIGGER(N(exitWalk_80241E34), TRIGGER_FLOOR_ABOVE, 13, 1, 0) + EVT_BIND_TRIGGER(N(exitWalk_80241E90), TRIGGER_FLOOR_ABOVE, 17, 1, 0) + EVT_BIND_TRIGGER(N(exitWalk_80241EEC), TRIGGER_FLOOR_ABOVE, 21, 1, 0) + EVT_BIND_TRIGGER(N(exitWalk_80241F48), TRIGGER_FLOOR_ABOVE, 25, 1, 0) + EVT_RETURN + EVT_END +}; -EvtScript N(enterWalk_8024205C) = SCRIPT({ - GetLoadType(EVT_VAR(1)); - if (EVT_VAR(1) == 1) { - spawn EnterSavePoint; - spawn N(80241FA4); - } else { - GetEntryID(EVT_VAR(0)); - if (EVT_VAR(0) != 8) { - EVT_AREA_FLAG(44) = 0; - } - match EVT_VAR(0) { - == 0 { - spawn { - await N(80241B90); - spawn N(80241FA4); - } - } - 1 ... 6 { - EVT_VAR(0) = N(80241FA4); - spawn EnterWalk; - } - == 7 { - spawn { - await N(8024834C); - spawn N(80241FA4); - } - } - == 8 { - spawn { - await N(80247BCC); - spawn N(80241FA4); - } - } - == 9 { - spawn N(80242998); - EVT_VAR(0) = N(80241FA4); - spawn EnterWalk; - } - == 10 { - spawn N(80241FA4); - } - == 11 { - spawn N(80245EB8); - } - } - } - bind N(80242FCC) TRIGGER_WALL_PRESS_A 2; -}); +EvtScript N(enterWalk_8024205C) = { + EVT_CALL(GetLoadType, LW(1)) + EVT_IF_EQ(LW(1), 1) + EVT_EXEC(EnterSavePoint) + EVT_EXEC(N(80241FA4)) + EVT_ELSE + EVT_CALL(GetEntryID, LW(0)) + EVT_IF_NE(LW(0), 8) + EVT_SET(LSWF(44), 0) + EVT_END_IF + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(0) + EVT_THREAD + EVT_EXEC_WAIT(N(80241B90)) + EVT_EXEC(N(80241FA4)) + EVT_END_THREAD + EVT_CASE_RANGE(1, 6) + EVT_SET(LW(0), EVT_ADDR(N(80241FA4))) + EVT_EXEC(EnterWalk) + EVT_CASE_EQ(7) + EVT_THREAD + EVT_EXEC_WAIT(flo_00_8024834C) + EVT_EXEC(N(80241FA4)) + EVT_END_THREAD + EVT_CASE_EQ(8) + EVT_THREAD + EVT_EXEC_WAIT(flo_00_80247BCC) + EVT_EXEC(N(80241FA4)) + EVT_END_THREAD + EVT_CASE_EQ(9) + EVT_EXEC(flo_00_80242998) + EVT_SET(LW(0), EVT_ADDR(N(80241FA4))) + EVT_EXEC(EnterWalk) + EVT_CASE_EQ(10) + EVT_EXEC(N(80241FA4)) + EVT_CASE_EQ(11) + EVT_EXEC(flo_00_80245EB8) + EVT_END_SWITCH + EVT_END_IF + EVT_BIND_TRIGGER(flo_00_80242FCC, TRIGGER_WALL_PRESS_A, 2, 1, 0) + EVT_RETURN + EVT_END +}; -EvtScript N(main) = SCRIPT({ - EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; - SetSpriteShading(-1); - SetCamLeadPlayer(0, 0); - SetCamPerspective(0, 3, 25, 16, 4096); - SetCamBGColor(0, 0, 0, 0); - SetCamEnabled(0, 1); - EVT_SAVE_FLAG(1984) = 1; - if (EVT_STORY_PROGRESS < STORY_CH6_GREW_MAGIC_BEANSTALK) { - ModifyColliderFlags(0, 48, 0x7FFFFE00); - } - EVT_SAVE_FLAG(263) = 0; - GetEntryID(EVT_VAR(0)); - if (EVT_VAR(0) == 11) { - MakeNpcs(0, N(npcGroupList_80246834)); - } else { - MakeNpcs(0, N(npcGroupList_80245DE4)); - } - await N(makeEntities); - ParentColliderToModel(46, 81); - spawn N(80248F48); - spawn N(80248E30); - ModifyColliderFlags(3, 30, 0x00000006); - ModifyColliderFlags(3, 31, 0x00000006); - EVT_VAR(0) = 150; - EVT_VAR(1) = -270; - EVT_VAR(2) = 410; - EVT_VAR(3) = 170; - EVT_VAR(4) = 0; - spawn N(802416C0); - EVT_VAR(0) = 115; - EVT_VAR(1) = -450; - EVT_VAR(2) = 250; - EVT_VAR(3) = -270; - EVT_VAR(4) = 0; - spawn N(802416C0); - EVT_VAR(0) = -330; - EVT_VAR(1) = 220; - EVT_VAR(2) = 45; - EVT_VAR(3) = 410; - EVT_VAR(4) = 0; - spawn N(802416C0); - EVT_VAR(0) = -420; - EVT_VAR(1) = -260; - EVT_VAR(2) = -140; - EVT_VAR(3) = 160; - EVT_VAR(4) = 0; - spawn N(802416C0); - ModifyColliderFlags(0, 26, 0x7FFFFE00); - ModifyColliderFlags(0, 18, 0x7FFFFE00); - ModifyColliderFlags(0, 14, 0x7FFFFE00); - ModifyColliderFlags(0, 6, 0x7FFFFE00); - spawn N(enterWalk_8024205C); - GetLoadType(EVT_VAR(1)); - if (EVT_VAR(1) != 1) { - GetEntryID(EVT_VAR(0)); - if (EVT_VAR(0) == 10) { - sleep 65; - } - } - await N(802414D0); - if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { - N(func_80240000_C9DF20)(); - } - spawn { - EnableTexPanning(35, 1); - EVT_VAR(0) = 0; -0: - RandInt(300, EVT_VAR(1)); - EVT_VAR(1) += 100; - RandInt(1, EVT_VAR(2)); - EVT_VAR(2) += 1; - sleep EVT_VAR(1); - loop EVT_VAR(2) { - SetTexPanOffset(12, 0, -32768, 0); - sleep 2; - SetTexPanOffset(12, 0, -65536, 0); - sleep 2; - SetTexPanOffset(12, 0, -98304, 0); - RandInt(5, EVT_VAR(3)); - EVT_VAR(3) += 2; - sleep EVT_VAR(3); - SetTexPanOffset(12, 0, -65536, 0); - sleep 2; - SetTexPanOffset(12, 0, -32768, 0); - sleep 2; - SetTexPanOffset(12, 0, 0, 0); - RandInt(5, EVT_VAR(3)); - EVT_VAR(3) += 2; - sleep EVT_VAR(3); - } - goto 0; - } -}); +EvtScript N(main) = { + EVT_SET(GSW(425), 38) + EVT_CALL(SetSpriteShading, -1) + EVT_CALL(SetCamLeadPlayer, 0, 0) + EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) + EVT_CALL(SetCamBGColor, 0, 0, 0, 0) + EVT_CALL(SetCamEnabled, 0, 1) + EVT_SET(GSWF(1984), 1) + EVT_IF_LT(GSW(0), 55) + EVT_CALL(ModifyColliderFlags, 0, 48, 0x7FFFFE00) + EVT_END_IF + EVT_SET(GSWF(263), 0) + EVT_CALL(GetEntryID, LW(0)) + EVT_IF_EQ(LW(0), 11) + EVT_CALL(MakeNpcs, 0, EVT_ADDR(N(npcGroupList_80246834))) + EVT_ELSE + EVT_CALL(MakeNpcs, 0, EVT_ADDR(N(npcGroupList_80245DE4))) + EVT_END_IF + EVT_EXEC_WAIT(flo_00_makeEntities) + EVT_CALL(ParentColliderToModel, 46, 81) + EVT_EXEC(flo_00_80248F48) + EVT_EXEC(flo_00_80248E30) + EVT_CALL(ModifyColliderFlags, 3, 30, 0x00000006) + EVT_CALL(ModifyColliderFlags, 3, 31, 0x00000006) + EVT_SET(LW(0), 150) + EVT_SET(LW(1), -270) + EVT_SET(LW(2), 410) + EVT_SET(LW(3), 170) + EVT_SET(LW(4), 0) + EVT_EXEC(N(802416C0)) + EVT_SET(LW(0), 115) + EVT_SET(LW(1), -450) + EVT_SET(LW(2), 250) + EVT_SET(LW(3), -270) + EVT_SET(LW(4), 0) + EVT_EXEC(N(802416C0)) + EVT_SET(LW(0), -330) + EVT_SET(LW(1), 220) + EVT_SET(LW(2), 45) + EVT_SET(LW(3), 410) + EVT_SET(LW(4), 0) + EVT_EXEC(N(802416C0)) + EVT_SET(LW(0), -420) + EVT_SET(LW(1), -260) + EVT_SET(LW(2), -140) + EVT_SET(LW(3), 160) + EVT_SET(LW(4), 0) + EVT_EXEC(N(802416C0)) + EVT_CALL(ModifyColliderFlags, 0, 26, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 18, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 6, 0x7FFFFE00) + EVT_EXEC(N(enterWalk_8024205C)) + EVT_CALL(GetLoadType, LW(1)) + EVT_IF_NE(LW(1), 1) + EVT_CALL(GetEntryID, LW(0)) + EVT_IF_EQ(LW(0), 10) + EVT_WAIT_FRAMES(65) + EVT_END_IF + EVT_END_IF + EVT_EXEC_WAIT(N(802414D0)) + EVT_IF_GE(GSW(0), STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + EVT_CALL(N(func_80240000_C9DF20)) + EVT_END_IF + EVT_THREAD + EVT_CALL(EnableTexPanning, 35, 1) + EVT_SET(LW(0), 0) + EVT_LABEL(0) + EVT_CALL(RandInt, 300, LW(1)) + EVT_ADD(LW(1), 100) + EVT_CALL(RandInt, 1, LW(2)) + EVT_ADD(LW(2), 1) + EVT_WAIT_FRAMES(LW(1)) + EVT_LOOP(LW(2)) + EVT_CALL(SetTexPanOffset, 12, 0, -32768, 0) + EVT_WAIT_FRAMES(2) + EVT_CALL(SetTexPanOffset, 12, 0, -65536, 0) + EVT_WAIT_FRAMES(2) + EVT_CALL(SetTexPanOffset, 12, 0, -98304, 0) + EVT_CALL(RandInt, 5, LW(3)) + EVT_ADD(LW(3), 2) + EVT_WAIT_FRAMES(LW(3)) + EVT_CALL(SetTexPanOffset, 12, 0, -65536, 0) + EVT_WAIT_FRAMES(2) + EVT_CALL(SetTexPanOffset, 12, 0, -32768, 0) + EVT_WAIT_FRAMES(2) + EVT_CALL(SetTexPanOffset, 12, 0, 0, 0) + EVT_CALL(RandInt, 5, LW(3)) + EVT_ADD(LW(3), 2) + EVT_WAIT_FRAMES(LW(3)) + EVT_END_LOOP + EVT_GOTO(0) + EVT_END_THREAD + EVT_RETURN + EVT_END +}; NpcSettings N(npcSettings_80242840) = { .height = 24, @@ -370,9 +373,11 @@ NpcAISettings N(npcAISettings_8024286C) = { .unk_AI_2C = 1, }; -EvtScript N(npcAI_8024289C) = SCRIPT({ - N(PatrolNoAttackAI_Main)(N(npcAISettings_8024286C)); -}); +EvtScript N(npcAI_8024289C) = { + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_ADDR(N(npcAISettings_8024286C))) + EVT_RETURN + EVT_END +}; NpcSettings N(npcSettings_802428BC) = { .height = 42, @@ -407,628 +412,605 @@ NpcSettings N(npcSettings_8024296C) = { extern const char N(flo_07_name_hack)[]; -EvtScript N(80242998) = SCRIPT({ - DisablePlayerInput(TRUE); - DisablePlayerPhysics(TRUE); - UseSettingsFrom(0, 50, 0, -200); - SetPanTarget(0, 50, 0, -200); - SetCamDistance(0, 700); - SetCamPitch(0, 10.0, -11.0); - SetCamPosA(0, -27, 0); - SetCamPosB(0, 0, -50); - SetCamSpeed(0, 90.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 20; - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x00C4), 0, 50, -200); - sleep 10; - GotoMap(N(flo_07_name_hack), 1); - sleep 100; -}); +EvtScript N(80242998) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(UseSettingsFrom, 0, 50, 0, -200) + EVT_CALL(SetPanTarget, 0, 50, 0, -200) + EVT_CALL(SetCamDistance, 0, 700) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(10.0), EVT_FLOAT(-11.0)) + EVT_CALL(SetCamPosA, 0, -27, 0) + EVT_CALL(SetCamPosB, 0, 0, -50) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(20) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x00C4), 0, 50, -200) + EVT_WAIT_FRAMES(10) + EVT_CALL(GotoMap, EVT_PTR(N(flo_07_name_hack)), 1) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; -EvtScript N(80242AF0) = SCRIPT({ - DisablePlayerInput(TRUE); - UseSettingsFrom(0, 0, 0, -170); - SetPanTarget(0, 0, 0, -170); - SetCamDistance(0, 300); - SetCamPitch(0, 17.0, -8.0); - SetCamSpeed(0, 90.0); - PanToTarget(0, 0, 1); - sleep 75; - ShowMessageAtScreenPos(MESSAGE_ID(0x11, 0x0000), 160, 40); - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPlayerJumpscale(1.5); - PlayerJump1(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 12); - sleep 10; - DisablePartnerAI(0); - InterpPlayerYaw(270, 0); - InterpNpcYaw(NPC_PARTNER, 270, 0); - sleep 15; - InterpPlayerYaw(90, 0); - InterpNpcYaw(NPC_PARTNER, 90, 0); - sleep 15; - SetCamDistance(0, 800); - SetCamPitch(0, 15.0, -5.7998046875); - SetCamPosA(0, -2, 0); - PanToTarget(0, 0, 1); - sleep 15; - SpeakToPlayer(NPC_BUBULB0, -1, -1, 5, MESSAGE_ID(0x11, 0x0001)); - SetPlayerAnimation(ANIM_10002); - InterpPlayerYaw(350, 0); - sleep 15; - ContinueSpeech(0, -1, -1, 5, MESSAGE_ID(0x11, 0x0002)); - sleep 10; - SetCamDistance(0, 333); - SetCamPitch(0, 9.0, -22.0); - SetCamPosA(0, -2, 0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - EnablePartnerAI(); - func_802D2C14(1); - sleep 10; - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0003), 0, 70, -200); - SetCamPitch(0, 16.5, -11.7998046875); - SetCamDistance(0, 525); - SetCamPosA(0, -14, 0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - SetPlayerAnimation(ANIM_80007); - sleep 20; - SetPlayerAnimation(ANIM_10002); - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0004), 0, 50, -200); - SetCamPitch(0, 9.0, -22.0); - SetCamDistance(0, 333); - SetCamPosA(0, -2, 0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0005), 0, 70, -200); - ResetCam(0, 90.0); - EVT_STORY_PROGRESS = STORY_CH6_ARRIVED_AT_FLOWER_FIELDS; - func_802D2C14(0); - DisablePlayerInput(FALSE); -}); +EvtScript N(80242AF0) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseSettingsFrom, 0, 0, 0, -170) + EVT_CALL(SetPanTarget, 0, 0, 0, -170) + EVT_CALL(SetCamDistance, 0, 300) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(17.0), EVT_FLOAT(-8.0)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_WAIT_FRAMES(75) + EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x11, 0x0000), 160, 40) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(1.5)) + EVT_CALL(PlayerJump1, LW(0), LW(1), LW(2), 12) + EVT_WAIT_FRAMES(10) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) + EVT_WAIT_FRAMES(15) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0) + EVT_WAIT_FRAMES(15) + EVT_CALL(SetCamDistance, 0, 800) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(15.0), EVT_FLOAT(-5.8)) + EVT_CALL(SetCamPosA, 0, -2, 0) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_WAIT_FRAMES(15) + EVT_CALL(SpeakToPlayer, 0, -1, -1, 5, MESSAGE_ID(0x11, 0x0001)) + EVT_CALL(SetPlayerAnimation, ANIM_10002) + EVT_CALL(InterpPlayerYaw, 350, 0) + EVT_WAIT_FRAMES(15) + EVT_CALL(ContinueSpeech, 0, -1, -1, 5, MESSAGE_ID(0x11, 0x0002)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SetCamDistance, 0, 333) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(9.0), EVT_FLOAT(-22.0)) + EVT_CALL(SetCamPosA, 0, -2, 0) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(EnablePartnerAI) + EVT_CALL(func_802D2C14, 1) + EVT_WAIT_FRAMES(10) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0003), 0, 70, -200) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(16.5), EVT_FLOAT(-11.8)) + EVT_CALL(SetCamDistance, 0, 525) + EVT_CALL(SetCamPosA, 0, -14, 0) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SetPlayerAnimation, ANIM_80007) + EVT_WAIT_FRAMES(20) + EVT_CALL(SetPlayerAnimation, ANIM_10002) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0004), 0, 50, -200) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(9.0), EVT_FLOAT(-22.0)) + EVT_CALL(SetCamDistance, 0, 333) + EVT_CALL(SetCamPosA, 0, -2, 0) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0005), 0, 70, -200) + EVT_CALL(ResetCam, 0, EVT_FLOAT(90.0)) + EVT_SET(GSW(0), 43) + EVT_CALL(func_802D2C14, 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(80242FCC) = SCRIPT({ - DisablePlayerInput(TRUE); - sleep 2; - GetPlayerActionState(EVT_VAR(3)); - EVT_VAR(4) = 0; - if (EVT_VAR(3) == 0) { - EVT_VAR(4) += 1; - } - if (EVT_VAR(3) == 1) { - EVT_VAR(4) += 1; - } - if (EVT_VAR(3) == 2) { - EVT_VAR(4) += 1; - } - if (EVT_VAR(4) == 0) { - DisablePlayerInput(FALSE); - return; - } - if (EVT_STORY_PROGRESS == STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0006), 0, 50, -200); - EVT_STORY_PROGRESS = STORY_CH6_WISTERWOOD_GAVE_HINT; - DisablePlayerInput(FALSE); - return; - } - if (EVT_STORY_PROGRESS < STORY_CH6_RETURNED_TO_TOAD_TOWN) { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x000D), 0, 50, -200); - ShowChoice(MESSAGE_ID(0x1E, 0x001F)); - sleep 10; - match EVT_VAR(0) { - == 0 { - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - SwitchMessage(MESSAGE_ID(0x11, 0x000E)); - } - < STORY_CH6_GOT_FERTILE_SOIL { - SwitchMessage(MESSAGE_ID(0x11, 0x000F)); - } - < STORY_CH6_FILLED_SPRING_WITH_WATER { - SwitchMessage(MESSAGE_ID(0x11, 0x0010)); - } - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SwitchMessage(MESSAGE_ID(0x11, 0x0011)); - } - < STORY_CH6_GREW_MAGIC_BEANSTALK { - SwitchMessage(MESSAGE_ID(0x11, 0x0007)); - } - < STORY_CH6_BEGAN_PEACH_MISSION { - SwitchMessage(MESSAGE_ID(0x11, 0x0012)); - } else { - SwitchMessage(MESSAGE_ID(0x11, 0x0013)); - } - } - } - == 1 { - CloseMessage(); - spawn N(8024196C); - return; - } - == 2 { - CloseMessage(); - } - } - } else { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0014), 0, 50, -200); - ShowChoice(MESSAGE_ID(0x1E, 0x001F)); - sleep 10; - match EVT_VAR(0) { - == 0 { - SwitchMessage(MESSAGE_ID(0x11, 0x0015)); - } - == 1 { - CloseMessage(); - spawn N(8024196C); - return; - } - == 2 { - CloseMessage(); - } - } - } - DisablePlayerInput(FALSE); -}); +EvtScript N(80242FCC) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_WAIT_FRAMES(2) + EVT_CALL(GetPlayerActionState, LW(3)) + EVT_SET(LW(4), 0) + EVT_IF_EQ(LW(3), 0) + EVT_ADD(LW(4), 1) + EVT_END_IF + EVT_IF_EQ(LW(3), 1) + EVT_ADD(LW(4), 1) + EVT_END_IF + EVT_IF_EQ(LW(3), 2) + EVT_ADD(LW(4), 1) + EVT_END_IF + EVT_IF_EQ(LW(4), 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END_IF + EVT_IF_EQ(GSW(0), 53) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0006), 0, 50, -200) + EVT_SET(GSW(0), 54) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END_IF + EVT_IF_LT(GSW(0), 60) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x000D), 0, 50, -200) + EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x001F)) + EVT_WAIT_FRAMES(10) + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(0) + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x000E)) + EVT_CASE_LT(46) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x000F)) + EVT_CASE_LT(49) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0010)) + EVT_CASE_LT(53) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0011)) + EVT_CASE_LT(55) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0007)) + EVT_CASE_LT(58) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0012)) + EVT_CASE_DEFAULT + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0013)) + EVT_END_SWITCH + EVT_CASE_EQ(1) + EVT_CALL(CloseMessage) + EVT_EXEC(N(8024196C)) + EVT_RETURN + EVT_CASE_EQ(2) + EVT_CALL(CloseMessage) + EVT_END_SWITCH + EVT_ELSE + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0014), 0, 50, -200) + EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x001F)) + EVT_WAIT_FRAMES(10) + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(0) + EVT_CALL(SwitchMessage, MESSAGE_ID(0x11, 0x0015)) + EVT_CASE_EQ(1) + EVT_CALL(CloseMessage) + EVT_EXEC(N(8024196C)) + EVT_RETURN + EVT_CASE_EQ(2) + EVT_CALL(CloseMessage) + EVT_END_SWITCH + EVT_END_IF + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(80243368) = SCRIPT({ - AdjustCam(0, 90.0, 0, 600, 21.0, -12.0); - sleep 20; - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x000B), 0, 50, -200); - SetPanTarget(0, 0, 0, -30); - SetCamDistance(0, 250); - SetCamPitch(0, 25.0, -25.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x000C), 0, 50, -200); - ResetCam(0, 90.0); -}); +EvtScript N(80243368) = { + EVT_CALL(AdjustCam, 0, EVT_FLOAT(90.0), 0, 600, EVT_FLOAT(21.0), EVT_FLOAT(-12.0)) + EVT_WAIT_FRAMES(20) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x000B), 0, 50, -200) + EVT_CALL(SetPanTarget, 0, 0, 0, -30) + EVT_CALL(SetCamDistance, 0, 250) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(25.0), EVT_FLOAT(-25.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x000C), 0, 50, -200) + EVT_CALL(ResetCam, 0, EVT_FLOAT(90.0)) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243474) = SCRIPT({ - EnableGroup(121, 0); - EnableGroup(80, 0); - EnableGroup(132, 0); - SetNpcPos(NPC_SELF, 50, 70, -230); - SetNpcFlagBits(NPC_SELF, ((0x00000002)), TRUE); - EnableNpcShadow(NPC_SELF, FALSE); - if (EVT_STORY_PROGRESS < STORY_CH6_ARRIVED_AT_FLOWER_FIELDS) { - spawn N(80242AF0); - } -}); +EvtScript N(init_80243474) = { + EVT_CALL(EnableGroup, 121, 0) + EVT_CALL(EnableGroup, 80, 0) + EVT_CALL(EnableGroup, 132, 0) + EVT_CALL(SetNpcPos, NPC_SELF, 50, 70, -230) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_2, TRUE) + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_IF_LT(GSW(0), STORY_CH6_ARRIVED_AT_FLOWER_FIELDS) + EVT_EXEC(N(80242AF0)) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(interact_8024352C) = SCRIPT({ - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0016)); - } - < STORY_CH6_GOT_FERTILE_SOIL { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0017)); - } - < STORY_CH6_FILLED_SPRING_WITH_WATER { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0018)); - } - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0019)); - } - < STORY_CH6_STAR_SPIRIT_RESCUED { - match EVT_AREA_FLAG(18) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x001A)); - EVT_AREA_FLAG(18) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x001B)); - EVT_AREA_FLAG(18) = 0; - } - } - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, - 0x001C)); - } - } -}); +EvtScript N(interact_8024352C) = { + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0016)) + EVT_CASE_LT(46) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0017)) + EVT_CASE_LT(49) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0018)) + EVT_CASE_LT(53) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_3, NPC_ANIM_bubulb_Palette_00_Anim_2, 0, MESSAGE_ID(0x11, 0x0019)) + EVT_CASE_LT(57) + EVT_SWITCH(LSWF(18)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x001A)) + EVT_SET(LSWF(18), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x001B)) + EVT_SET(LSWF(18), 0) + EVT_END_SWITCH + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_00_Anim_9, NPC_ANIM_bubulb_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x001C)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; -EvtScript N(interact_802436C0) = SCRIPT({ - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001D)); - } - < STORY_CH6_GOT_FERTILE_SOIL { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001E)); - } - < STORY_CH6_FILLED_SPRING_WITH_WATER { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001F)); - } - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0020)); - } - < STORY_CH6_STAR_SPIRIT_RESCUED { - match EVT_AREA_FLAG(19) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0021)); - EVT_AREA_FLAG(19) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0022)); - EVT_AREA_FLAG(19) = 0; - } - } - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, - 0x0023)); - } - } -}); +EvtScript N(interact_802436C0) = { + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001D)) + EVT_CASE_LT(46) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001E)) + EVT_CASE_LT(49) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x001F)) + EVT_CASE_LT(53) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0020)) + EVT_CASE_LT(57) + EVT_SWITCH(LSWF(19)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0021)) + EVT_SET(LSWF(19), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0022)) + EVT_SET(LSWF(19), 0) + EVT_END_SWITCH + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_01_Anim_3, NPC_ANIM_bubulb_Palette_01_Anim_2, 0, MESSAGE_ID(0x11, 0x0023)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; -EvtScript N(interact_80243854) = SCRIPT({ - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0024)); - } - < STORY_CH6_GOT_FERTILE_SOIL { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0025)); - } - < STORY_CH6_FILLED_SPRING_WITH_WATER { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0026)); - } - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0027)); - } - < STORY_CH6_STAR_SPIRIT_RESCUED { - match EVT_AREA_FLAG(20) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, 0x0028)); - EVT_AREA_FLAG(20) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, 0x0029)); - EVT_AREA_FLAG(20) = 0; - } - } - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, - 0x002A)); - } - } -}); +EvtScript N(interact_80243854) = { + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0024)) + EVT_CASE_LT(46) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0025)) + EVT_CASE_LT(49) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0026)) + EVT_CASE_LT(53) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_3, NPC_ANIM_bubulb_Palette_02_Anim_2, 0, MESSAGE_ID(0x11, 0x0027)) + EVT_CASE_LT(57) + EVT_SWITCH(LSWF(20)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, 0x0028)) + EVT_SET(LSWF(20), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, 0x0029)) + EVT_SET(LSWF(20), 0) + EVT_END_SWITCH + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_02_Anim_9, NPC_ANIM_bubulb_Palette_02_Anim_8, 0, MESSAGE_ID(0x11, 0x002A)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; -EvtScript N(interact_802439E8) = SCRIPT({ - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002B)); - } - < STORY_CH6_GOT_FERTILE_SOIL { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002C)); - } - < STORY_CH6_FILLED_SPRING_WITH_WATER { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002D)); - } - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002E)); - } - < STORY_CH6_STAR_SPIRIT_RESCUED { - match EVT_AREA_FLAG(21) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, 0x002F)); - EVT_AREA_FLAG(21) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, 0x0030)); - EVT_AREA_FLAG(21) = 0; - } - } - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, - 0x0031)); - } - } -}); +EvtScript N(interact_802439E8) = { + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002B)) + EVT_CASE_LT(46) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002C)) + EVT_CASE_LT(49) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002D)) + EVT_CASE_LT(53) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_3, NPC_ANIM_bubulb_Palette_03_Anim_2, 0, MESSAGE_ID(0x11, 0x002E)) + EVT_CASE_LT(57) + EVT_SWITCH(LSWF(21)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, 0x002F)) + EVT_SET(LSWF(21), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, 0x0030)) + EVT_SET(LSWF(21), 0) + EVT_END_SWITCH + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_bubulb_Palette_03_Anim_9, NPC_ANIM_bubulb_Palette_03_Anim_8, 0, MESSAGE_ID(0x11, 0x0031)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243B7C) = SCRIPT({ - EVT_AREA_FLAG(18) = 0; - BindNpcInteract(NPC_SELF, N(interact_8024352C)); -}); +EvtScript N(init_80243B7C) = { + EVT_SET(LSWF(18), 0) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_8024352C))) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243BB0) = SCRIPT({ - EVT_AREA_FLAG(19) = 0; - BindNpcInteract(NPC_SELF, N(interact_802436C0)); -}); +EvtScript N(init_80243BB0) = { + EVT_SET(LSWF(19), 0) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_802436C0))) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243BE4) = SCRIPT({ - EVT_AREA_FLAG(20) = 0; - BindNpcInteract(NPC_SELF, N(interact_80243854)); -}); +EvtScript N(init_80243BE4) = { + EVT_SET(LSWF(20), 0) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_80243854))) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243C18) = SCRIPT({ - EVT_AREA_FLAG(21) = 0; - BindNpcInteract(NPC_SELF, N(interact_802439E8)); -}); +EvtScript N(init_80243C18) = { + EVT_SET(LSWF(21), 0) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_802439E8))) + EVT_RETURN + EVT_END +}; -EvtScript N(interact_80243C4C) = SCRIPT({ - if (EVT_SAVE_FLAG(1373) == 0) { - AdjustCam(0, 4.0, -30, 300, 20.0, -9.5); - EVT_SAVE_FLAG(1373) = 1; - } - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - match EVT_AREA_VAR(0) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0035)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 2; - } - == 2 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 0; - } - } - } - < 47 { - match EVT_AREA_VAR(0) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0036)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 2; - } - == 2 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 0; - } - } - } - < 53 { - match EVT_AREA_VAR(0) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0037)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 2; - } - == 2 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 0; - } - } - } - < 57 { - match EVT_AREA_VAR(0) { - == 0 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - EVT_AREA_VAR(0) = 1; - } - == 1 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - } - } - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, - MESSAGE_ID(0x11, 0x003A)); - EndSpeech(-1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0); - } - } - ResetCam(0, 4.0); -}); +EvtScript N(interact_80243C4C) = { + EVT_IF_EQ(GSWF(1373), 0) + EVT_CALL(AdjustCam, 0, EVT_FLOAT(4.0), -30, 300, EVT_FLOAT(20.0), EVT_FLOAT(-9.5)) + EVT_SET(GSWF(1373), 1) + EVT_END_IF + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_SWITCH(LSW(0)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0035)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 2) + EVT_CASE_EQ(2) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 0) + EVT_END_SWITCH + EVT_CASE_LT(47) + EVT_SWITCH(LSW(0)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0036)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 2) + EVT_CASE_EQ(2) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 0) + EVT_END_SWITCH + EVT_CASE_LT(53) + EVT_SWITCH(LSW(0)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0037)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 2) + EVT_CASE_EQ(2) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 0) + EVT_END_SWITCH + EVT_CASE_LT(57) + EVT_SWITCH(LSW(0)) + EVT_CASE_EQ(0) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0039)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_SET(LSW(0), 1) + EVT_CASE_EQ(1) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0038)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_END_SWITCH + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_tolielup_Palette_00_Anim_2, NPC_ANIM_tolielup_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x003A)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_tolielup_Palette_00_Anim_3, NPC_ANIM_tolielup_Palette_00_Anim_3, 0) + EVT_END_SWITCH + EVT_CALL(ResetCam, 0, EVT_FLOAT(4.0)) + EVT_RETURN + EVT_END +}; -EvtScript N(init_8024414C) = SCRIPT({ - BindNpcInteract(NPC_SELF, N(interact_80243C4C)); - SetNpcCollisionSize(-1, 65, 50); -}); +EvtScript N(init_8024414C) = { + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_80243C4C))) + EVT_CALL(SetNpcCollisionSize, -1, 65, 50) + EVT_RETURN + EVT_END +}; -EvtScript N(idle_80244188) = SCRIPT({ - loop { - loop 10 { - GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(1) -= 1; - SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - sleep 1; - } - loop 10 { - GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(1) += 1; - SetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - sleep 1; - } - } -}); +EvtScript N(idle_80244188) = { + EVT_LOOP(0) + EVT_LOOP(10) + EVT_CALL(GetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_SUB(LW(1), 1) + EVT_CALL(SetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_LOOP(10) + EVT_CALL(GetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_ADD(LW(1), 1) + EVT_CALL(SetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_END_LOOP + EVT_RETURN + EVT_END +}; -EvtScript N(8024427C) = SCRIPT({ - DisablePartnerAI(0); - func_802CF56C(2); - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(3) = EVT_VAR(0); - EVT_VAR(3) += -50; - EVT_VAR(4) = EVT_VAR(1); - EVT_VAR(4) += 26; - SetNpcPos(NPC_WORLD_KLEVAR, EVT_VAR(3), EVT_VAR(4), EVT_VAR(2)); - PlayerFaceNpc(6, 0); - NpcFaceNpc(NPC_PARTNER, NPC_WORLD_KLEVAR, 0); - EVT_VAR(0) += -25; - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamDistance(0, 475.0); - SetCamPitch(0, 18, -8); - SetCamSpeed(0, 90.0); - PanToTarget(0, 0, 1); - sleep 1; - WaitForPlayerInputEnabled(); - DisablePlayerInput(TRUE); - sleep 40; - SpeakToPlayer(NPC_WORLD_KLEVAR, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00D8)); - SetCamDistance(0, 300.0); - SetCamPitch(0, 18, -9); - SetCamSpeed(0, 4.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - MakeLerp(0, 360, 10, 0); - loop { - UpdateLerp(); - SetNpcRotation(NPC_WORLD_KLEVAR, 0, EVT_VAR(0), 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - EnableNpcAI(6, 0); - SetNpcAnimation(NPC_WORLD_KLEVAR, NPC_ANIM_world_klevar_Palette_00_Anim_4); - sleep 20; - SetPlayerAnimation(ANIM_GOT_ITEM); - PlaySoundAtPlayer(313, 0); - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(3) = EVT_VAR(1); - EVT_VAR(1) += 50; - EVT_VAR(2) += 10; - EVT_VAR(3) += 30; - loop 5 { - PlayEffect(0x11, 3, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20, 0, 0, 0, 0, 0, 0, 0, 0); - sleep 6; - PlayEffect(0x11, 1, EVT_VAR(0), EVT_VAR(3), EVT_VAR(2), 20, 0, 0, 0, 0, 0, 0, 0, 0); - sleep 6; - } - sleep 20; - PlaySoundAtPlayer(392, 0); - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(1) += 20; - PlayEffect(0x52, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 1, 30, 0, 0, 0, 0, 0, 0, 0); - sleep 30; - SetPlayerAnimation(ANIM_10002); - SetNpcAnimation(NPC_WORLD_KLEVAR, NPC_ANIM_world_klevar_Palette_00_Anim_1); - EnableNpcAI(6, 1); - N(PostChapter6StatUpdate)(); - ShowMessageAtScreenPos(MESSAGE_ID(0x1D, 0x0196), 160, 40); - sleep 10; - GetNpcPos(NPC_WORLD_KLEVAR, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamDistance(0, 250.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - SpeakToPlayer(NPC_WORLD_KLEVAR, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00D9)); - sleep 10; - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - EVT_VAR(0) += -25; - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamDistance(0, 300.0); - SetCamSpeed(0, 4.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - SpeakToPlayer(NPC_WORLD_KLEVAR, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00DA)); - SetNpcFlagBits(NPC_WORLD_KLEVAR, ((NPC_FLAG_40000)), TRUE); - spawn { - loop 25 { - GetNpcPos(NPC_WORLD_KLEVAR, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - PlayEffect(0x11, 4, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2), 20, 0, 0, 0, 0, 0, 0, 0, 0); - sleep 4; - } - } - spawn { - EVT_VAR(2) = 0; - EVT_VAR(3) = 1800; - MakeLerp(EVT_VAR(2), EVT_VAR(3), 100, 2); - loop { - UpdateLerp(); - SetNpcRotation(NPC_WORLD_KLEVAR, 0, EVT_VAR(0), 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - } - spawn { - GetNpcPos(NPC_WORLD_KLEVAR, EVT_VAR(2), EVT_VAR(3), EVT_VAR(4)); - EVT_VAR(5) = EVT_VAR(3); - EVT_VAR(5) += 180; - MakeLerp(EVT_VAR(3), EVT_VAR(5), 100, 2); - loop { - UpdateLerp(); - SetNpcPos(NPC_WORLD_KLEVAR, EVT_VAR(2), EVT_VAR(0), EVT_VAR(4)); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - SetNpcPos(NPC_WORLD_KLEVAR, 0, -1000, 0); - } - spawn { - sleep 15; - PlaySoundAtNpc(NPC_WORLD_KLEVAR, 0x2045, 0); - } - sleep 10; - SetPlayerAnimation(0x1002A); - sleep 110; - SetPlayerAnimation(ANIM_10002); - EVT_STORY_PROGRESS = STORY_CH6_STAR_SPRIT_DEPARTED; - await N(80243368); - EnablePartnerAI(); - DisablePlayerInput(FALSE); -}); +EvtScript N(8024427C) = { + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(func_802CF56C, 2) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_SET(LW(3), LW(0)) + EVT_ADD(LW(3), -50) + EVT_SET(LW(4), LW(1)) + EVT_ADD(LW(4), 26) + EVT_CALL(SetNpcPos, 6, LW(3), LW(4), LW(2)) + EVT_CALL(PlayerFaceNpc, 6, 0) + EVT_CALL(NpcFaceNpc, NPC_PARTNER, 6, 0) + EVT_ADD(LW(0), -25) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamDistance, 0, EVT_FLOAT(475.0)) + EVT_CALL(SetCamPitch, 0, 18, -8) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_WAIT_FRAMES(1) + EVT_CALL(WaitForPlayerInputEnabled) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_WAIT_FRAMES(40) + EVT_CALL(SpeakToPlayer, 6, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00D8)) + EVT_CALL(SetCamDistance, 0, EVT_FLOAT(300.0)) + EVT_CALL(SetCamPitch, 0, 18, -9) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(MakeLerp, 0, 360, 10, 0) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(SetNpcRotation, 6, 0, LW(0), 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(EnableNpcAI, 6, 0) + EVT_CALL(SetNpcAnimation, 6, NPC_ANIM_world_klevar_Palette_00_Anim_4) + EVT_WAIT_FRAMES(20) + EVT_CALL(SetPlayerAnimation, ANIM_GOT_ITEM) + EVT_CALL(PlaySoundAtPlayer, 313, 0) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_SET(LW(3), LW(1)) + EVT_ADD(LW(1), 50) + EVT_ADD(LW(2), 10) + EVT_ADD(LW(3), 30) + EVT_LOOP(5) + EVT_CALL(PlayEffect, EFFECT_SPARKLES, 3, LW(0), LW(1), LW(2), 20, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(6) + EVT_CALL(PlayEffect, EFFECT_SPARKLES, 1, LW(0), LW(3), LW(2), 20, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(6) + EVT_END_LOOP + EVT_WAIT_FRAMES(20) + EVT_CALL(PlaySoundAtPlayer, 392, 0) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_ADD(LW(1), 20) + EVT_CALL(PlayEffect, EFFECT_ENERGY_ORB_WAVE, 4, LW(0), LW(1), LW(2), 1, 30, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(30) + EVT_CALL(SetPlayerAnimation, ANIM_10002) + EVT_CALL(SetNpcAnimation, 6, NPC_ANIM_world_klevar_Palette_00_Anim_1) + EVT_CALL(EnableNpcAI, 6, 1) + EVT_CALL(N(PostChapter6StatUpdate)) + EVT_CALL(ShowMessageAtScreenPos, MESSAGE_ID(0x1D, 0x0196), 160, 40) + EVT_WAIT_FRAMES(10) + EVT_CALL(GetNpcPos, 6, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamDistance, 0, EVT_FLOAT(250.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, 6, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00D9)) + EVT_WAIT_FRAMES(10) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_ADD(LW(0), -25) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamDistance, 0, EVT_FLOAT(300.0)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, 6, NPC_ANIM_world_klevar_Palette_00_Anim_3, NPC_ANIM_world_klevar_Palette_00_Anim_1, 512, MESSAGE_ID(0x11, 0x00DA)) + EVT_CALL(SetNpcFlagBits, 6, NPC_FLAG_40000, TRUE) + EVT_THREAD + EVT_LOOP(25) + EVT_CALL(GetNpcPos, 6, LW(0), LW(1), LW(2)) + EVT_CALL(PlayEffect, EFFECT_SPARKLES, 4, LW(0), LW(1), LW(2), 20, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(4) + EVT_END_LOOP + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(2), 0) + EVT_SET(LW(3), 1800) + EVT_CALL(MakeLerp, LW(2), LW(3), 100, 2) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(SetNpcRotation, 6, 0, LW(0), 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_END_THREAD + EVT_THREAD + EVT_CALL(GetNpcPos, 6, LW(2), LW(3), LW(4)) + EVT_SET(LW(5), LW(3)) + EVT_ADD(LW(5), 180) + EVT_CALL(MakeLerp, LW(3), LW(5), 100, 2) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(SetNpcPos, 6, LW(2), LW(0), LW(4)) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetNpcPos, 6, 0, -1000, 0) + EVT_END_THREAD + EVT_THREAD + EVT_WAIT_FRAMES(15) + EVT_CALL(PlaySoundAtNpc, 6, 0x2045, 0) + EVT_END_THREAD + EVT_WAIT_FRAMES(10) + EVT_CALL(SetPlayerAnimation, ANIM_1002A) + EVT_WAIT_FRAMES(110) + EVT_CALL(SetPlayerAnimation, ANIM_10002) + EVT_SET(GSW(0), 59) + EVT_EXEC_WAIT(N(80243368)) + EVT_CALL(EnablePartnerAI) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80244BF4) = SCRIPT({ - GetLoadType(EVT_VAR(1)); - if (EVT_VAR(1) != 1) { - GetEntryID(EVT_VAR(0)); - if (EVT_VAR(0) == 10) { - BindNpcIdle(NPC_SELF, N(idle_80244188)); - spawn N(8024427C); - } else { - SetNpcPos(NPC_SELF, 0, -1000, 0); - } - } -}); +EvtScript N(init_80244BF4) = { + EVT_CALL(GetLoadType, LW(1)) + EVT_IF_NE(LW(1), 1) + EVT_CALL(GetEntryID, LW(0)) + EVT_IF_EQ(LW(0), 10) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_ADDR(N(idle_80244188))) + EVT_EXEC(N(8024427C)) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) + EVT_END_IF + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(interact_80244C98) = SCRIPT({ - if (EVT_STORY_PROGRESS <= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { - SpeakToPlayer(NPC_LAKILULU, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, - MESSAGE_ID(0x11, 0x0032)); - } else { - GetCurrentPartnerID(EVT_VAR(0)); - if (EVT_VAR(0) == 8) { - SpeakToPlayer(NPC_LAKILULU, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, - MESSAGE_ID(0x11, 0x0032)); - sleep 10; - DisablePartnerAI(0); - SpeakToPlayer(NPC_PARTNER, NPC_ANIM_world_lakilester_Palette_00_Anim_B, NPC_ANIM_world_lakilester_Palette_00_Anim_3, 5, MESSAGE_ID(0x11, 0x0033)); - SetNpcAnimation(NPC_PARTNER, NPC_ANIM_world_lakilester_Palette_00_Anim_1); - EndSpeech(-4, NPC_ANIM_world_lakilester_Palette_00_Anim_9, NPC_ANIM_world_lakilester_Palette_00_Anim_1, 5); - EnablePartnerAI(); - } else { - SpeakToPlayer(NPC_LAKILULU, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, - MESSAGE_ID(0x11, 0x0034)); - } - } -}); +EvtScript N(interact_80244C98) = { + EVT_IF_LE(GSW(0), 53) + EVT_CALL(SpeakToPlayer, 7, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0032)) + EVT_ELSE + EVT_CALL(GetCurrentPartnerID, LW(0)) + EVT_IF_EQ(LW(0), 8) + EVT_CALL(SpeakToPlayer, 7, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0032)) + EVT_WAIT_FRAMES(10) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, NPC_ANIM_world_lakilester_Palette_00_Anim_B, NPC_ANIM_world_lakilester_Palette_00_Anim_3, 5, MESSAGE_ID(0x11, 0x0033)) + EVT_CALL(SetNpcAnimation, NPC_PARTNER, NPC_ANIM_world_lakilester_Palette_00_Anim_1) + EVT_CALL(EndSpeech, -4, NPC_ANIM_world_lakilester_Palette_00_Anim_9, NPC_ANIM_world_lakilester_Palette_00_Anim_1, 5) + EVT_CALL(EnablePartnerAI) + EVT_ELSE + EVT_CALL(SpeakToPlayer, 7, NPC_ANIM_lakilulu_Palette_00_Anim_4, NPC_ANIM_lakilulu_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0034)) + EVT_END_IF + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(init_80244DD0) = SCRIPT({ - if (EVT_STORY_PROGRESS >= STORY_CH6_BEGAN_PEACH_MISSION) { - BindNpcInteract(NPC_SELF, N(interact_80244C98)); - SetNpcCollisionSize(-1, 36, 28); - SetNpcPos(NPC_SELF, -200, 15, -300); - } else { - SetNpcPos(NPC_SELF, 0, -1000, 0); - } -}); +EvtScript N(init_80244DD0) = { + EVT_IF_GE(GSW(0), 58) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_80244C98))) + EVT_CALL(SetNpcCollisionSize, -1, 36, 28) + EVT_CALL(SetNpcPos, NPC_SELF, -200, 15, -300) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; StaticNpc N(npcGroup_80244E64) = { .id = NPC_BUBULB0, @@ -1313,59 +1295,67 @@ f32 N(D_80245E88_CA3DA8)[] = { extern const char N(sam_11_name_hack)[]; -EvtScript N(80245EB8) = SCRIPT({ - SetPlayerPos(-400, 0, 200); - SetNpcPos(NPC_PARTNER, -380, 0, 200); - func_802CF56C(2); - DisablePartnerAI(0); - DisablePlayerInput(TRUE); - DisablePlayerPhysics(TRUE); - EVT_VAR(0) = 230; - EVT_VAR(1) = 0; - EVT_VAR(2) = 350; - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamSpeed(0, 90.0); - SetCamPitch(0, 17.0, -10.0); - SetCamDistance(0, 350); - SetCamPosA(0, 17.5, 35.0); - SetCamPosB(0, 0, -50); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 70; - InterpNpcYaw(NPC_BUBULB0, 90, 0); - sleep 10; - SetNpcAnimation(NPC_BUBULB0, NPC_ANIM_world_lakilester_Palette_00_Anim_9); - sleep 40; - SetNpcAnimation(NPC_BUBULB0, NPC_ANIM_world_lakilester_Palette_00_Anim_1); - SetNpcAnimation(NPC_BUBULB2, NPC_ANIM_world_parakarry_Palette_00_Anim_6); - sleep 40; - SetNpcAnimation(NPC_BUBULB2, NPC_ANIM_world_parakarry_Palette_00_Anim_1); - InterpNpcYaw(NPC_BUBULB2, 90, 0); - NpcFlyTo(2, 400, 200, 287, 80, -5, 0); - InterpNpcYaw(NPC_BUBULB0, 270, 0); - sleep 40; - FadeOutMusic(0, 1000); - GotoMap(N(sam_11_name_hack), 2); - sleep 100; -}); +EvtScript N(80245EB8) = { + EVT_CALL(SetPlayerPos, -400, 0, 200) + EVT_CALL(SetNpcPos, NPC_PARTNER, -380, 0, 200) + EVT_CALL(func_802CF56C, 2) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_SET(LW(0), 230) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), 350) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(17.0), EVT_FLOAT(-10.0)) + EVT_CALL(SetCamDistance, 0, 350) + EVT_CALL(SetCamPosA, 0, EVT_FLOAT(17.5), EVT_FLOAT(35.0)) + EVT_CALL(SetCamPosB, 0, 0, -50) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(70) + EVT_CALL(InterpNpcYaw, 0, 90, 0) + EVT_WAIT_FRAMES(10) + EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_world_lakilester_Palette_00_Anim_9) + EVT_WAIT_FRAMES(40) + EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_world_lakilester_Palette_00_Anim_1) + EVT_CALL(SetNpcAnimation, 2, NPC_ANIM_world_parakarry_Palette_00_Anim_6) + EVT_WAIT_FRAMES(40) + EVT_CALL(SetNpcAnimation, 2, NPC_ANIM_world_parakarry_Palette_00_Anim_1) + EVT_CALL(InterpNpcYaw, 2, 90, 0) + EVT_CALL(NpcFlyTo, 2, 400, 200, 287, 80, -5, 0) + EVT_CALL(InterpNpcYaw, 0, 270, 0) + EVT_WAIT_FRAMES(40) + EVT_CALL(FadeOutMusic, 0, 1000) + EVT_CALL(GotoMap, EVT_PTR(N(sam_11_name_hack)), 2) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80246170) = SCRIPT({ - SetPlayerPos(-400, 0, 200); - SetNpcPos(NPC_PARTNER, -380, 0, 200); - SetNpcPos(NPC_BUBULB0, 196, 20, 354); - SetNpcYaw(NPC_BUBULB0, 270); -}); +EvtScript N(init_80246170) = { + EVT_CALL(SetPlayerPos, -400, 0, 200) + EVT_CALL(SetNpcPos, NPC_PARTNER, -380, 0, 200) + EVT_CALL(SetNpcPos, 0, 196, 20, 354) + EVT_CALL(SetNpcYaw, 0, 270) + EVT_RETURN + EVT_END +}; -EvtScript N(init_802461E4) = SCRIPT({ - SetNpcPos(NPC_BUBULB1, 163, 20, 370); - SetNpcYaw(NPC_BUBULB1, 90); -}); +EvtScript N(init_802461E4) = { + EVT_CALL(SetNpcPos, 1, 163, 20, 370) + EVT_CALL(SetNpcYaw, 1, 90) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80246224) = SCRIPT({ - SetNpcPos(NPC_BUBULB2, 266, 20, 322); - SetNpcYaw(NPC_BUBULB2, 270); -}); +EvtScript N(init_80246224) = { + EVT_CALL(SetNpcPos, 2, 266, 20, 322) + EVT_CALL(SetNpcYaw, 2, 270) + EVT_RETURN + EVT_END +}; StaticNpc N(npcGroup_80246264)[] = { { @@ -1466,392 +1456,404 @@ static s32 N(pad_684C) = { 0x00000000, }; -EvtScript N(80246850) = SCRIPT({ - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) -= -700.0; - EVT_VAR(1) /= 100.0; - EVT_VAR(2) = (float) EVT_VAR(1); - EVT_VAR(2) *= 100.0; - if (EVT_VAR(2) > 100) { - EVT_VAR(1) = 1.0; - } - ScaleGroup(74, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(89, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(91, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(93, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(95, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(97, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(99, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(101, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(103, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(105, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(107, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(109, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(111, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(113, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(115, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(117, EVT_VAR(1), 1, EVT_VAR(1)); - ScaleModel(119, EVT_VAR(1), 1, EVT_VAR(1)); - TranslateGroup(74, 0, EVT_VAR(0), 0); - TranslateModel(89, 0, EVT_VAR(0), 0); - TranslateModel(91, 0, EVT_VAR(0), 0); - TranslateModel(93, 0, EVT_VAR(0), 0); - TranslateModel(95, 0, EVT_VAR(0), 0); - TranslateModel(97, 0, EVT_VAR(0), 0); - TranslateModel(99, 0, EVT_VAR(0), 0); - TranslateModel(101, 0, EVT_VAR(0), 0); - TranslateModel(103, 0, EVT_VAR(0), 0); - TranslateModel(105, 0, EVT_VAR(0), 0); - TranslateModel(107, 0, EVT_VAR(0), 0); - TranslateModel(109, 0, EVT_VAR(0), 0); - TranslateModel(111, 0, EVT_VAR(0), 0); - TranslateModel(113, 0, EVT_VAR(0), 0); - TranslateModel(115, 0, EVT_VAR(0), 0); - TranslateModel(117, 0, EVT_VAR(0), 0); - TranslateModel(119, 0, EVT_VAR(0), 0); - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) *= -12.0; - RotateGroup(74, EVT_VAR(1), 0, 1, 0); - RotateModel(89, EVT_VAR(1), 0, 1, 0); - RotateModel(91, EVT_VAR(1), 0, 1, 0); - RotateModel(93, EVT_VAR(1), 0, 1, 0); - RotateModel(95, EVT_VAR(1), 0, 1, 0); - RotateModel(97, EVT_VAR(1), 0, 1, 0); - RotateModel(99, EVT_VAR(1), 0, 1, 0); - RotateModel(101, EVT_VAR(1), 0, 1, 0); - RotateModel(103, EVT_VAR(1), 0, 1, 0); - RotateModel(105, EVT_VAR(1), 0, 1, 0); - RotateModel(107, EVT_VAR(1), 0, 1, 0); - RotateModel(109, EVT_VAR(1), 0, 1, 0); - RotateModel(111, EVT_VAR(1), 0, 1, 0); - RotateModel(113, EVT_VAR(1), 0, 1, 0); - RotateModel(115, EVT_VAR(1), 0, 1, 0); - RotateModel(117, EVT_VAR(1), 0, 1, 0); - RotateModel(119, EVT_VAR(1), 0, 1, 0); - TranslateModel(89, 8.1220703125, 56.1533203125, 1.166015625); - TranslateModel(91, -6.8779296875, 91.1533203125, 1.166015625); - TranslateModel(93, 13.1220703125, 106.1533203125, 1.166015625); - TranslateModel(95, -9.8779296875, 136.1533203125, 1.166015625); - TranslateModel(97, -7.8779296875, 201.1533203125, 1.166015625); - TranslateModel(99, 13.1220703125, 221.1533203125, 1.166015625); - TranslateModel(101, 8.126953125, 261.2294921875, 1.166015625); - TranslateModel(103, -12.8779296875, 266.1533203125, 1.166015625); - TranslateModel(105, 8.1220703125, 316.1533203125, -13.833984375); - TranslateModel(107, -10.943359375, 391.1533203125, 10.56640625); - TranslateModel(109, -7.001953125, 456.1533203125, 0.947265625); - TranslateModel(111, 12.998046875, 471.1533203125, 0.947265625); - TranslateModel(113, -10.001953125, 501.1533203125, 0.947265625); - TranslateModel(115, 8.0029296875, 536.2294921875, 0.947265625); - TranslateModel(117, 12.998046875, 586.1533203125, 0.947265625); - TranslateModel(119, -13.001953125, 631.1533203125, 0.947265625); - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) -= -700.0; - EVT_VAR(1) /= 300.0; - EVT_VAR(2) = (float) EVT_VAR(1); - EVT_VAR(2) *= 100.0; - if (EVT_VAR(2) > 100) { - EVT_VAR(1) = 1.0; - } - ScaleModel(89, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(91, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(93, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(95, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(97, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(99, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(101, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(103, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(105, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(107, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(109, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(111, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(113, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(115, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(117, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - ScaleModel(119, EVT_VAR(1), EVT_VAR(1), EVT_VAR(1)); - TranslateModel(89, -8.12109375, -56.15234375, -1.1650390625); - TranslateModel(91, 6.87890625, -91.15234375, -1.1650390625); - TranslateModel(93, -13.12109375, -106.15234375, -1.1650390625); - TranslateModel(95, 9.87890625, -136.15234375, -1.1650390625); - TranslateModel(97, 7.87890625, -201.15234375, -1.1650390625); - TranslateModel(99, -13.12109375, -221.15234375, -1.1650390625); - TranslateModel(101, -8.1259765625, -261.228515625, -1.1650390625); - TranslateModel(103, 12.87890625, -266.15234375, -1.1650390625); - TranslateModel(105, -8.12109375, -316.15234375, 13.8349609375); - TranslateModel(107, 10.9443359375, -391.15234375, -10.5654296875); - TranslateModel(109, 7.0029296875, -456.15234375, -0.9462890625); - TranslateModel(111, -12.9970703125, -471.15234375, -0.9462890625); - TranslateModel(113, 10.0029296875, -501.15234375, -0.9462890625); - TranslateModel(115, -8.001953125, -536.228515625, -0.9462890625); - TranslateModel(117, -12.9970703125, -586.15234375, -0.9462890625); - TranslateModel(119, 13.0029296875, -631.15234375, -0.9462890625); -}); +EvtScript N(80246850) = { + EVT_SETF(LW(1), LW(0)) + EVT_SUBF(LW(1), EVT_FLOAT(-700.0)) + EVT_DIVF(LW(1), EVT_FLOAT(100.0)) + EVT_SETF(LW(2), LW(1)) + EVT_MULF(LW(2), EVT_FLOAT(100.0)) + EVT_IF_GT(LW(2), 100) + EVT_SETF(LW(1), EVT_FLOAT(1.0)) + EVT_END_IF + EVT_CALL(ScaleGroup, 74, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 89, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 91, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 93, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 95, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 97, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 99, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 101, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 103, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 105, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 107, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 109, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 111, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 113, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 115, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 117, LW(1), 1, LW(1)) + EVT_CALL(ScaleModel, 119, LW(1), 1, LW(1)) + EVT_CALL(TranslateGroup, 74, 0, LW(0), 0) + EVT_CALL(TranslateModel, 89, 0, LW(0), 0) + EVT_CALL(TranslateModel, 91, 0, LW(0), 0) + EVT_CALL(TranslateModel, 93, 0, LW(0), 0) + EVT_CALL(TranslateModel, 95, 0, LW(0), 0) + EVT_CALL(TranslateModel, 97, 0, LW(0), 0) + EVT_CALL(TranslateModel, 99, 0, LW(0), 0) + EVT_CALL(TranslateModel, 101, 0, LW(0), 0) + EVT_CALL(TranslateModel, 103, 0, LW(0), 0) + EVT_CALL(TranslateModel, 105, 0, LW(0), 0) + EVT_CALL(TranslateModel, 107, 0, LW(0), 0) + EVT_CALL(TranslateModel, 109, 0, LW(0), 0) + EVT_CALL(TranslateModel, 111, 0, LW(0), 0) + EVT_CALL(TranslateModel, 113, 0, LW(0), 0) + EVT_CALL(TranslateModel, 115, 0, LW(0), 0) + EVT_CALL(TranslateModel, 117, 0, LW(0), 0) + EVT_CALL(TranslateModel, 119, 0, LW(0), 0) + EVT_SETF(LW(1), LW(0)) + EVT_MULF(LW(1), EVT_FLOAT(-12.0)) + EVT_CALL(RotateGroup, 74, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 89, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 91, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 93, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 95, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 97, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 99, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 101, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 103, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 105, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 107, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 109, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 111, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 113, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 115, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 117, LW(1), 0, 1, 0) + EVT_CALL(RotateModel, 119, LW(1), 0, 1, 0) + EVT_CALL(TranslateModel, 89, EVT_FLOAT(8.1220703125), EVT_FLOAT(56.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 91, EVT_FLOAT(-6.8779296875), EVT_FLOAT(91.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 93, EVT_FLOAT(13.1220703125), EVT_FLOAT(106.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 95, EVT_FLOAT(-9.8779296875), EVT_FLOAT(136.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 97, EVT_FLOAT(-7.8779296875), EVT_FLOAT(201.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 99, EVT_FLOAT(13.1220703125), EVT_FLOAT(221.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 101, EVT_FLOAT(8.126953125), EVT_FLOAT(261.2294921875), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 103, EVT_FLOAT(-12.8779296875), EVT_FLOAT(266.1533203125), EVT_FLOAT(1.166015625)) + EVT_CALL(TranslateModel, 105, EVT_FLOAT(8.1220703125), EVT_FLOAT(316.1533203125), EVT_FLOAT(-13.833984375)) + EVT_CALL(TranslateModel, 107, EVT_FLOAT(-10.943359375), EVT_FLOAT(391.1533203125), EVT_FLOAT(10.56640625)) + EVT_CALL(TranslateModel, 109, EVT_FLOAT(-7.001953125), EVT_FLOAT(456.1533203125), EVT_FLOAT(0.947265625)) + EVT_CALL(TranslateModel, 111, EVT_FLOAT(12.998046875), EVT_FLOAT(471.1533203125), EVT_FLOAT(0.947265625)) + EVT_CALL(TranslateModel, 113, EVT_FLOAT(-10.001953125), EVT_FLOAT(501.1533203125), EVT_FLOAT(0.947265625)) + EVT_CALL(TranslateModel, 115, EVT_FLOAT(8.0029296875), EVT_FLOAT(536.2294921875), EVT_FLOAT(0.947265625)) + EVT_CALL(TranslateModel, 117, EVT_FLOAT(12.998046875), EVT_FLOAT(586.1533203125), EVT_FLOAT(0.947265625)) + EVT_CALL(TranslateModel, 119, EVT_FLOAT(-13.001953125), EVT_FLOAT(631.1533203125), EVT_FLOAT(0.947265625)) + EVT_SETF(LW(1), LW(0)) + EVT_SUBF(LW(1), EVT_FLOAT(-700.0)) + EVT_DIVF(LW(1), EVT_FLOAT(300.0)) + EVT_SETF(LW(2), LW(1)) + EVT_MULF(LW(2), EVT_FLOAT(100.0)) + EVT_IF_GT(LW(2), 100) + EVT_SETF(LW(1), EVT_FLOAT(1.0)) + EVT_END_IF + EVT_CALL(ScaleModel, 89, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 91, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 93, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 95, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 97, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 99, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 101, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 103, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 105, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 107, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 109, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 111, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 113, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 115, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 117, LW(1), LW(1), LW(1)) + EVT_CALL(ScaleModel, 119, LW(1), LW(1), LW(1)) + EVT_CALL(TranslateModel, 89, EVT_FLOAT(-8.12109375), EVT_FLOAT(-56.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 91, EVT_FLOAT(6.87890625), EVT_FLOAT(-91.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 93, EVT_FLOAT(-13.12109375), EVT_FLOAT(-106.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 95, EVT_FLOAT(9.87890625), EVT_FLOAT(-136.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 97, EVT_FLOAT(7.87890625), EVT_FLOAT(-201.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 99, EVT_FLOAT(-13.12109375), EVT_FLOAT(-221.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 101, EVT_FLOAT(-8.1259765625), EVT_FLOAT(-261.228515625), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 103, EVT_FLOAT(12.87890625), EVT_FLOAT(-266.15234375), EVT_FLOAT(-1.1650390625)) + EVT_CALL(TranslateModel, 105, EVT_FLOAT(-8.12109375), EVT_FLOAT(-316.15234375), EVT_FLOAT(13.8349609375)) + EVT_CALL(TranslateModel, 107, EVT_FLOAT(10.9443359375), EVT_FLOAT(-391.15234375), EVT_FLOAT(-10.5654296875)) + EVT_CALL(TranslateModel, 109, EVT_FLOAT(7.0029296875), EVT_FLOAT(-456.15234375), EVT_FLOAT(-0.9462890625)) + EVT_CALL(TranslateModel, 111, EVT_FLOAT(-12.9970703125), EVT_FLOAT(-471.15234375), EVT_FLOAT(-0.9462890625)) + EVT_CALL(TranslateModel, 113, EVT_FLOAT(10.0029296875), EVT_FLOAT(-501.15234375), EVT_FLOAT(-0.9462890625)) + EVT_CALL(TranslateModel, 115, EVT_FLOAT(-8.001953125), EVT_FLOAT(-536.228515625), EVT_FLOAT(-0.9462890625)) + EVT_CALL(TranslateModel, 117, EVT_FLOAT(-12.9970703125), EVT_FLOAT(-586.15234375), EVT_FLOAT(-0.9462890625)) + EVT_CALL(TranslateModel, 119, EVT_FLOAT(13.0029296875), EVT_FLOAT(-631.15234375), EVT_FLOAT(-0.9462890625)) + EVT_RETURN + EVT_END +}; -EvtScript N(80247488) = SCRIPT({ - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) -= -700.0; - EVT_VAR(1) /= 100.0; - EVT_VAR(2) = (float) EVT_VAR(1); - EVT_VAR(2) *= 100.0; - if (EVT_VAR(2) > 100) { - EVT_VAR(1) = 1.0; - } - ScaleGroup(79, EVT_VAR(1), 1, EVT_VAR(1)); - TranslateGroup(79, 0, EVT_VAR(0), 0); - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) *= -12.0; - RotateGroup(79, EVT_VAR(1), 0, 1, 0); -}); +EvtScript N(80247488) = { + EVT_SETF(LW(1), LW(0)) + EVT_SUBF(LW(1), EVT_FLOAT(-700.0)) + EVT_DIVF(LW(1), EVT_FLOAT(100.0)) + EVT_SETF(LW(2), LW(1)) + EVT_MULF(LW(2), EVT_FLOAT(100.0)) + EVT_IF_GT(LW(2), 100) + EVT_SETF(LW(1), EVT_FLOAT(1.0)) + EVT_END_IF + EVT_CALL(ScaleGroup, 79, LW(1), 1, LW(1)) + EVT_CALL(TranslateGroup, 79, 0, LW(0), 0) + EVT_SETF(LW(1), LW(0)) + EVT_MULF(LW(1), EVT_FLOAT(-12.0)) + EVT_CALL(RotateGroup, 79, LW(1), 0, 1, 0) + EVT_RETURN + EVT_END +}; -EvtScript N(80247588) = SCRIPT({ - TranslateModel(83, 9.5, 12.0, 15.0); - TranslateModel(85, -9.5, 12.0, 15.0); - TranslateModel(87, 0.0, 0.0, 17.0); - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) *= 90.0; - RotateModel(83, EVT_VAR(1), 0, 0, -1); - RotateModel(85, EVT_VAR(1), 0, 0, 1); - TranslateModel(83, -9.5, -12.0, -15.0); - TranslateModel(85, 9.5, -12.0, -15.0); - TranslateModel(87, 0.0, 0.0, -17.0); - ScaleModel(83, EVT_VAR(0), EVT_VAR(0), EVT_VAR(0)); - ScaleModel(85, EVT_VAR(0), EVT_VAR(0), EVT_VAR(0)); - ScaleModel(87, EVT_VAR(0), EVT_VAR(0), EVT_VAR(0)); -}); +EvtScript N(80247588) = { + EVT_CALL(TranslateModel, 83, EVT_FLOAT(9.5), EVT_FLOAT(12.0), EVT_FLOAT(15.0)) + EVT_CALL(TranslateModel, 85, EVT_FLOAT(-9.5), EVT_FLOAT(12.0), EVT_FLOAT(15.0)) + EVT_CALL(TranslateModel, 87, EVT_FLOAT(0.0), EVT_FLOAT(0.0), EVT_FLOAT(17.0)) + EVT_SETF(LW(1), LW(0)) + EVT_MULF(LW(1), EVT_FLOAT(90.0)) + EVT_CALL(RotateModel, 83, LW(1), 0, 0, -1) + EVT_CALL(RotateModel, 85, LW(1), 0, 0, 1) + EVT_CALL(TranslateModel, 83, EVT_FLOAT(-9.5), EVT_FLOAT(-12.0), EVT_FLOAT(-15.0)) + EVT_CALL(TranslateModel, 85, EVT_FLOAT(9.5), EVT_FLOAT(-12.0), EVT_FLOAT(-15.0)) + EVT_CALL(TranslateModel, 87, EVT_FLOAT(0.0), EVT_FLOAT(0.0), EVT_FLOAT(-17.0)) + EVT_CALL(ScaleModel, 83, LW(0), LW(0), LW(0)) + EVT_CALL(ScaleModel, 85, LW(0), LW(0), LW(0)) + EVT_CALL(ScaleModel, 87, LW(0), LW(0), LW(0)) + EVT_RETURN + EVT_END +}; -EvtScript N(802476F4) = SCRIPT({ - ScaleModel(81, EVT_VAR(0), EVT_VAR(0), EVT_VAR(0)); - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) *= 90.0; - EVT_VAR(1) += -90.0; - RotateModel(81, EVT_VAR(1), 1, 0, 0); -}); +EvtScript N(802476F4) = { + EVT_CALL(ScaleModel, 81, LW(0), LW(0), LW(0)) + EVT_SETF(LW(1), LW(0)) + EVT_MULF(LW(1), EVT_FLOAT(90.0)) + EVT_ADDF(LW(1), EVT_FLOAT(-90.0)) + EVT_CALL(RotateModel, 81, LW(1), 1, 0, 0) + EVT_RETURN + EVT_END +}; -EvtScript N(80247770) = SCRIPT({ - EVT_VAR(1) = (float) EVT_VAR(0); - EVT_VAR(1) *= -3.0; - TranslateModel(81, -0.259765625, EVT_VAR(0), 1.4775390625); - RotateModel(81, EVT_VAR(1), 0, 1, 0); - UpdateColliderTransform(46); -}); +EvtScript N(80247770) = { + EVT_SETF(LW(1), LW(0)) + EVT_MULF(LW(1), EVT_FLOAT(-3.0)) + EVT_CALL(TranslateModel, 81, EVT_FLOAT(-0.26), LW(0), EVT_FLOAT(1.4775390625)) + EVT_CALL(RotateModel, 81, LW(1), 0, 1, 0) + EVT_CALL(UpdateColliderTransform, 46) + EVT_RETURN + EVT_END +}; extern const char N(flo_19_name_hack)[]; -EvtScript N(802477EC) = SCRIPT({ - if (EVT_AREA_FLAG(44) == 0) { - DisablePlayerInput(TRUE); - func_802D2B6C(); - sleep 15; - DisablePartnerAI(0); - EVT_AREA_FLAG(44) = 1; - ModifyColliderFlags(0, 47, 0x7FFFFE00); - ModifyColliderFlags(0, 48, 0x7FFFFE00); - EVT_VAR(9) = (int) -59.0; - EVT_VAR(10) = (int) 22.0; - EVT_VAR(11) = (int) 125.0; - EVT_VAR(12) = (int) -55.0; - EVT_VAR(13) = (int) 24.0; - EVT_VAR(14) = (int) 145.0; - PlayerMoveTo(EVT_VAR(9), EVT_VAR(11), 8); - SetNpcJumpscale(NPC_PARTNER, 0.0); - NpcJump0(NPC_PARTNER, EVT_VAR(12), EVT_VAR(13), EVT_VAR(14), 5); - PlaySound(0x19C); - SetMusicTrack(0, SONG_MAGIC_BEANSTALK, 1, 8); - SetNpcAnimation(NPC_PARTNER, 0x106); - SetPlayerAnimation(ANIM_WALKING); - N(func_80240F10_C9EE30)(EVT_VAR(3), EVT_VAR(4)); - match EVT_VAR(4) { - < 90 { - EVT_AREA_FLAG(16) = 0; - InterpPlayerYaw(90, 0); - InterpNpcYaw(NPC_PARTNER, 90, 0); - } - >= 270 { - EVT_AREA_FLAG(16) = 1; - InterpPlayerYaw(270, 0); - InterpNpcYaw(NPC_PARTNER, 270, 0); - } - } - TranslateModel(81, -0.259765625, 2.0, 1.4775390625); - UpdateColliderTransform(46); - EVT_MAP_VAR(10) = 0; - spawn { - EVT_VAR(15) = 0; - loop { - EVT_VAR(15) += 1; - N(UnkFloatFunc)(EVT_VAR(15), EVT_VAR(0), 0, 700, 800, 0, 0); - spawn N(80247770); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(2) *= -3.0; - EVT_VAR(3) = (float) EVT_VAR(0); - N(func_80240F80_C9EEA0)(); - N(func_802410B4_C9EFD4)(); - if (EVT_VAR(15) == 350) { - EVT_MAP_VAR(10) = 1; - } - sleep 1; - } - } -10: - if (EVT_MAP_VAR(10) == 0) { - sleep 1; - goto 10; - } - GotoMap(N(flo_19_name_hack), 3); - sleep 100; - } -}); +EvtScript N(802477EC) = { + EVT_IF_EQ(LSWF(44), 0) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(func_802D2B6C) + EVT_WAIT_FRAMES(15) + EVT_CALL(DisablePartnerAI, 0) + EVT_SET(LSWF(44), 1) + EVT_CALL(ModifyColliderFlags, 0, 47, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 48, 0x7FFFFE00) + EVT_SET(LW(9), EVT_FLOAT(-59.0)) + EVT_SET(LW(10), EVT_FLOAT(22.0)) + EVT_SET(LW(11), EVT_FLOAT(125.0)) + EVT_SET(LW(12), EVT_FLOAT(-55.0)) + EVT_SET(LW(13), EVT_FLOAT(24.0)) + EVT_SET(LW(14), EVT_FLOAT(145.0)) + EVT_CALL(PlayerMoveTo, LW(9), LW(11), 8) + EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(0.0)) + EVT_CALL(NpcJump0, NPC_PARTNER, LW(12), LW(13), LW(14), 5) + EVT_CALL(PlaySound, 0x19C) + EVT_CALL(SetMusicTrack, 0, SONG_MAGIC_BEANSTALK, 1, 8) + EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x000106) + EVT_CALL(SetPlayerAnimation, ANIM_WALKING) + EVT_CALL(N(func_80240F10_C9EE30), LW(3), LW(4)) + EVT_SWITCH(LW(4)) + EVT_CASE_LT(90) + EVT_SET(LSWF(16), 0) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0) + EVT_CASE_GE(270) + EVT_SET(LSWF(16), 1) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) + EVT_END_SWITCH + EVT_CALL(TranslateModel, 81, EVT_FLOAT(-0.26), EVT_FLOAT(2.0), EVT_FLOAT(1.4775390625)) + EVT_CALL(UpdateColliderTransform, 46) + EVT_SET(GW(10), 0) + EVT_THREAD + EVT_SET(LW(15), 0) + EVT_LOOP(0) + EVT_ADD(LW(15), 1) + EVT_CALL(N(UnkFloatFunc), LW(15), LW(0), 0, 700, 800, 0, 0) + EVT_EXEC(N(80247770)) + EVT_SETF(LW(2), LW(0)) + EVT_MULF(LW(2), EVT_FLOAT(-3.0)) + EVT_SETF(LW(3), LW(0)) + EVT_CALL(N(func_80240F80_C9EEA0)) + EVT_CALL(N(func_802410B4_C9EFD4)) + EVT_IF_EQ(LW(15), 350) + EVT_SET(GW(10), 1) + EVT_END_IF + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_END_THREAD + EVT_LABEL(10) + EVT_IF_EQ(GW(10), 0) + EVT_WAIT_FRAMES(1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(GotoMap, EVT_PTR(N(flo_19_name_hack)), 3) + EVT_WAIT_FRAMES(100) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(80247BCC) = SCRIPT({ - DisablePlayerInput(TRUE); - SetPlayerActionState(10); - ModifyColliderFlags(0, 47, 0x7FFFFE00); - ModifyColliderFlags(0, 48, 0x7FFFFE00); - GetPlayerPos(EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamSpeed(0, 90.0); - PanToTarget(0, 0, 1); - EVT_VAR(9) = (int) -59.0; - EVT_VAR(10) = (int) 22.0; - EVT_VAR(11) = (int) 125.0; - EVT_VAR(12) = (int) -55.0; - EVT_VAR(13) = (int) 23.0; - EVT_VAR(14) = (int) 145.0; - spawn { - sleep 5; - SetNpcAnimation(NPC_PARTNER, 0x106); - SetPlayerAnimation(ANIM_WALKING); - match EVT_AREA_FLAG(16) { - == 0 { - InterpPlayerYaw(90, 0); - InterpNpcYaw(NPC_PARTNER, 90, 0); - } - == 1 { - InterpPlayerYaw(270, 0); - InterpNpcYaw(NPC_PARTNER, 270, 0); - } - } - } - TranslateModel(81, -0.259765625, 2.0, 1.4775390625); - UpdateColliderTransform(46); - EVT_VAR(15) = 0; - loop 120 { - EVT_VAR(15) += 1; - N(UnkFloatFunc)(EVT_VAR(15), EVT_VAR(0), 70, 0, 120, 0, 0); - spawn N(80247770); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(2) *= -3.0; - EVT_VAR(3) = (float) EVT_VAR(0); - N(func_80240F80_C9EEA0)(); - N(func_802410B4_C9EFD4)(); - sleep 1; - } - EnablePartnerAI(); - ClearPartnerMoveHistory(-4); - SetPlayerJumpscale(1); - PlayerJump(10, 0, 110, 20); - SetPlayerActionState(10); - InterpPlayerYaw(90, 0); - sleep 5; - ModifyColliderFlags(1, 47, 0x7FFFFE00); - ModifyColliderFlags(1, 48, 0x7FFFFE00); - EVT_AREA_FLAG(44) = 0; - StopSound(413); - await N(802414D0); - ResetCam(0, 1.0); - DisablePlayerInput(FALSE); -}); +EvtScript N(80247BCC) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(SetPlayerActionState, 10) + EVT_CALL(ModifyColliderFlags, 0, 47, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 48, 0x7FFFFE00) + EVT_CALL(GetPlayerPos, LW(0), LW(1), LW(2)) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_SET(LW(9), EVT_FLOAT(-59.0)) + EVT_SET(LW(10), EVT_FLOAT(22.0)) + EVT_SET(LW(11), EVT_FLOAT(125.0)) + EVT_SET(LW(12), EVT_FLOAT(-55.0)) + EVT_SET(LW(13), EVT_FLOAT(23.0)) + EVT_SET(LW(14), EVT_FLOAT(145.0)) + EVT_THREAD + EVT_WAIT_FRAMES(5) + EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x000106) + EVT_CALL(SetPlayerAnimation, ANIM_WALKING) + EVT_SWITCH(LSWF(16)) + EVT_CASE_EQ(0) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 90, 0) + EVT_CASE_EQ(1) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) + EVT_END_SWITCH + EVT_END_THREAD + EVT_CALL(TranslateModel, 81, EVT_FLOAT(-0.26), EVT_FLOAT(2.0), EVT_FLOAT(1.4775390625)) + EVT_CALL(UpdateColliderTransform, 46) + EVT_SET(LW(15), 0) + EVT_LOOP(120) + EVT_ADD(LW(15), 1) + EVT_CALL(N(UnkFloatFunc), LW(15), LW(0), 70, 0, 120, 0, 0) + EVT_EXEC(N(80247770)) + EVT_SETF(LW(2), LW(0)) + EVT_MULF(LW(2), EVT_FLOAT(-3.0)) + EVT_SETF(LW(3), LW(0)) + EVT_CALL(N(func_80240F80_C9EEA0)) + EVT_CALL(N(func_802410B4_C9EFD4)) + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_CALL(EnablePartnerAI) + EVT_CALL(ClearPartnerMoveHistory, -4) + EVT_CALL(SetPlayerJumpscale, 1) + EVT_CALL(PlayerJump, 10, 0, 110, 20) + EVT_CALL(SetPlayerActionState, 10) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_WAIT_FRAMES(5) + EVT_CALL(ModifyColliderFlags, 1, 47, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 1, 48, 0x7FFFFE00) + EVT_SET(LSWF(44), 0) + EVT_CALL(StopSound, 413) + EVT_EXEC_WAIT(N(802414D0)) + EVT_CALL(ResetCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(80247FAC) = SCRIPT({ - PlaySoundAtCollider(47, 411, 0); - EVT_VAR(15) = 0; - loop 100 { - EVT_VAR(15) += 1; - N(UnkFloatFunc)(EVT_VAR(15), EVT_VAR(0), 0, 1.0, 100, 0, 0); - spawn N(80247588); - sleep 1; - } - EVT_MAP_VAR(10) = 0; - spawn { - EVT_VAR(15) = 0; - loop 1200 { - EVT_VAR(15) += 1; - N(UnkFloatFunc)(EVT_VAR(15), EVT_VAR(0), -700, 0, 1200, 0, 0); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(2) *= 1.0; - EVT_VAR(0) = (float) EVT_VAR(2); - spawn N(80246850); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(2) *= 1.0; - EVT_VAR(0) = (float) EVT_VAR(2); - spawn N(80247488); - match EVT_VAR(15) { - == 200 { - SetPlayerAnimation(0x1002A); - } - == 250 { - EVT_VAR(0) = -60; - EVT_VAR(1) = 0; - EVT_VAR(2) = 65; - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamSpeed(0, 90.0); - SetCamPitch(0, 12.5, -7.0); - SetCamDistance(0, 800); - SetCamPosA(0, -200, 0); - SetCamPosB(0, 0, -300); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - } else { - } - } - if (EVT_VAR(15) > 550) { - EVT_MAP_VAR(10) = 1; - } - sleep 1; - } - } -10: - if (EVT_MAP_VAR(10) == 0) { - sleep 1; - goto 10; - } - FadeInMusic(0, 50, 0, 3000, 0, 127); - FadeOutMusic(1, 3000); - GotoMap(N(flo_19_name_hack), 2); - sleep 100; -}); +EvtScript N(80247FAC) = { + EVT_CALL(PlaySoundAtCollider, 47, 411, 0) + EVT_SET(LW(15), 0) + EVT_LOOP(100) + EVT_ADD(LW(15), 1) + EVT_CALL(N(UnkFloatFunc), LW(15), LW(0), 0, EVT_FLOAT(1.0), 100, 0, 0) + EVT_EXEC(N(80247588)) + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_SET(GW(10), 0) + EVT_THREAD + EVT_SET(LW(15), 0) + EVT_LOOP(1200) + EVT_ADD(LW(15), 1) + EVT_CALL(N(UnkFloatFunc), LW(15), LW(0), -700, 0, 1200, 0, 0) + EVT_SETF(LW(2), LW(0)) + EVT_MULF(LW(2), EVT_FLOAT(1.0)) + EVT_SETF(LW(0), LW(2)) + EVT_EXEC(N(80246850)) + EVT_SETF(LW(2), LW(0)) + EVT_MULF(LW(2), EVT_FLOAT(1.0)) + EVT_SETF(LW(0), LW(2)) + EVT_EXEC(N(80247488)) + EVT_SWITCH(LW(15)) + EVT_CASE_EQ(200) + EVT_CALL(SetPlayerAnimation, ANIM_1002A) + EVT_CASE_EQ(250) + EVT_SET(LW(0), -60) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), 65) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(12.5), EVT_FLOAT(-7.0)) + EVT_CALL(SetCamDistance, 0, 800) + EVT_CALL(SetCamPosA, 0, -200, 0) + EVT_CALL(SetCamPosB, 0, 0, -300) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CASE_DEFAULT + EVT_END_SWITCH + EVT_IF_GT(LW(15), 550) + EVT_SET(GW(10), 1) + EVT_END_IF + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_END_THREAD + EVT_LABEL(10) + EVT_IF_EQ(GW(10), 0) + EVT_WAIT_FRAMES(1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(FadeInMusic, 0, 50, 0, 3000, 0, 127) + EVT_CALL(FadeOutMusic, 1, 3000) + EVT_CALL(GotoMap, EVT_PTR(N(flo_19_name_hack)), 2) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; -EvtScript N(8024834C) = SCRIPT({ - DisablePlayerInput(TRUE); - InterpPlayerYaw(200, 0); - SetPlayerPos(-60, 0, 30); - NpcFacePlayer(NPC_PARTNER, 1); - SetNpcPos(NPC_PARTNER, -20, 0, 10); - EVT_VAR(0) = -60; - EVT_VAR(1) = 0; - EVT_VAR(2) = 65; - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamSpeed(0, 90.0); - SetCamPitch(0, 12.5, -7.0); - SetCamDistance(0, 800); - SetCamPosA(0, -200, 0); - SetCamPosB(0, 0, -300); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - EVT_VAR(15) = 0; - loop 5 { - EVT_VAR(15) += 20; - N(UnkFloatFunc)(EVT_VAR(15), EVT_VAR(0), 0.0, 1.0, 100, 0, 0); - spawn N(802476F4); - sleep 1; - } - ModifyColliderFlags(1, 46, 0x7FFFFE00); - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x000A), 0, 50, -200); - ResetCam(0, 90.0); - DisablePlayerInput(FALSE); -}); +EvtScript N(8024834C) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(InterpPlayerYaw, 200, 0) + EVT_CALL(SetPlayerPos, -60, 0, 30) + EVT_CALL(NpcFacePlayer, NPC_PARTNER, 1) + EVT_CALL(SetNpcPos, NPC_PARTNER, -20, 0, 10) + EVT_SET(LW(0), -60) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), 65) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(12.5), EVT_FLOAT(-7.0)) + EVT_CALL(SetCamDistance, 0, 800) + EVT_CALL(SetCamPosA, 0, -200, 0) + EVT_CALL(SetCamPosB, 0, 0, -300) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_SET(LW(15), 0) + EVT_LOOP(5) + EVT_ADD(LW(15), 20) + EVT_CALL(N(UnkFloatFunc), LW(15), LW(0), EVT_FLOAT(0.0), EVT_FLOAT(1.0), 100, 0, 0) + EVT_EXEC(N(802476F4)) + EVT_WAIT_FRAMES(1) + EVT_END_LOOP + EVT_CALL(ModifyColliderFlags, 1, 46, 0x7FFFFE00) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x000A), 0, 50, -200) + EVT_CALL(ResetCam, 0, EVT_FLOAT(90.0)) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; s32 N(itemList_80248598)[] = { ITEM_FERTILE_SOIL, @@ -1860,225 +1862,225 @@ s32 N(itemList_80248598)[] = { ITEM_NONE, }; -EvtScript N(802485A8) = SCRIPT({ - DisablePlayerInput(TRUE); - func_802D2884(-85, 85, 0); - func_802CF56C(2); - DisablePlayerInput(FALSE); - if (EVT_SAVE_FLAG(1371) == 0) { - group 0; - SetTimeFreezeMode(1); -10: - ShowKeyChoicePopup(); - EVT_VAR(2) = EVT_VAR(0); - match EVT_VAR(2) { - <= 0 { - CloseChoicePopup(); - SetTimeFreezeMode(0); - AwaitPlayerLeave(-85, 85, 28); - return; - } - == 89 { - SetPlayerAnimation(0x60006); - sleep 5; - RemoveKeyItemAt(EVT_VAR(1)); - MakeItemEntity(ITEM_FERTILE_SOIL, -83, 0, 87, 1, 0); - EVT_MAP_VAR(11) = EVT_VAR(0); - SetPlayerAnimation(ANIM_STAND_STILL); - sleep 20; - } else { - match EVT_AREA_FLAG(17) { - == 0 { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0008), 0, 10, -200); - EVT_AREA_FLAG(17) = 1; - } else { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0009), 0, 10, -200); - } - } - } - } - DisablePlayerInput(FALSE); - DisablePlayerPhysics(FALSE); - if (EVT_VAR(2) != 89) { - goto 10; - } - EVT_SAVE_FLAG(1371) = 1; - } - if (EVT_SAVE_FLAG(1372) == 0) { - group 0; - SetTimeFreezeMode(1); -20: - ShowKeyChoicePopup(); - EVT_VAR(2) = EVT_VAR(0); - match EVT_VAR(2) { - <= 0 { - CloseChoicePopup(); - SetTimeFreezeMode(0); - AwaitPlayerLeave(-85, 85, 28); - return; - } - == 88 { - RemoveItemEntity(EVT_MAP_VAR(11)); - sleep 5; - SetPlayerAnimation(0x60006); - sleep 5; - RemoveKeyItemAt(EVT_VAR(1)); - MakeItemEntity(ITEM_MAGICAL_BEAN, -83, 0, 87, 1, 0); - EVT_MAP_VAR(11) = EVT_VAR(0); - SetPlayerAnimation(ANIM_STAND_STILL); - sleep 20; - } else { - match EVT_AREA_FLAG(17) { - == 0 { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0008), 0, 10, -200); - EVT_AREA_FLAG(17) = 1; - } else { - ShowMessageAtWorldPos(MESSAGE_ID(0x11, 0x0009), 0, 10, -200); - } - } - } - } - DisablePlayerInput(FALSE); - DisablePlayerPhysics(FALSE); - if (EVT_VAR(2) != 88) { - goto 20; - } - EVT_SAVE_FLAG(1372) = 1; - } - group 0; - SetTimeFreezeMode(1); -30: - ShowKeyChoicePopup(); - EVT_VAR(2) = EVT_VAR(0); - match EVT_VAR(2) { - <= 0 { - CloseChoicePopup(); - SetTimeFreezeMode(0); - AwaitPlayerLeave(-85, 85, 28); - return; - } - == 90 { - RemoveItemEntity(EVT_MAP_VAR(11)); - sleep 5; - SetPlayerAnimation(0x60006); - sleep 5; - RemoveKeyItemAt(EVT_VAR(1)); - N(SyncStatusMenu)(); - MakeItemEntity(ITEM_MIRACLE_WATER, -83, 0, 87, 1, 0); - EVT_MAP_VAR(11) = EVT_VAR(0); - SetPlayerAnimation(ANIM_STAND_STILL); - sleep 30; - RemoveItemEntity(EVT_MAP_VAR(11)); - sleep 30; - ModifyColliderFlags(0, 47, 0x7FFFFE00); - PlayerMoveTo(-60, 30, 20); - ModifyColliderFlags(1, 47, 0x7FFFFE00); - ModifyColliderFlags(1, 48, 0x7FFFFE00); - InterpPlayerYaw(200, 0); - func_802CF56C(2); - sleep 60; - FadeInMusic(1, 123, 0, 3000, 0, 127); - FadeOutMusic(0, 3000); - UseSettingsFrom(0, -85, 0, 75); - SetPanTarget(0, -85, 0, 75); - SetCamSpeed(0, 1.0); - SetCamPitch(0, 17.0, -6.0); - SetCamDistance(0, 250); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - await N(80247FAC); - } - } - if (EVT_VAR(2) != 90) { - goto 30; - } -}); +EvtScript N(802485A8) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(func_802D2884, -85, 85, 0) + EVT_CALL(func_802CF56C, 2) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_IF_EQ(GSWF(1371), 0) + EVT_SET_GROUP(0) + EVT_CALL(SetTimeFreezeMode, 1) + EVT_LABEL(10) + EVT_CALL(ShowKeyChoicePopup) + EVT_SET(LW(2), LW(0)) + EVT_SWITCH(LW(2)) + EVT_CASE_LE(0) + EVT_CALL(CloseChoicePopup) + EVT_CALL(SetTimeFreezeMode, 0) + EVT_CALL(AwaitPlayerLeave, -85, 85, 28) + EVT_RETURN + EVT_CASE_EQ(89) + EVT_CALL(SetPlayerAnimation, 393222) + EVT_WAIT_FRAMES(5) + EVT_CALL(RemoveKeyItemAt, LW(1)) + EVT_CALL(MakeItemEntity, ITEM_FERTILE_SOIL, -83, 0, 87, 1, 0) + EVT_SET(GW(11), LW(0)) + EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL) + EVT_WAIT_FRAMES(20) + EVT_CASE_DEFAULT + EVT_SWITCH(LSWF(17)) + EVT_CASE_EQ(0) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0008), 0, 10, -200) + EVT_SET(LSWF(17), 1) + EVT_CASE_DEFAULT + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0009), 0, 10, -200) + EVT_END_SWITCH + EVT_END_SWITCH + EVT_CALL(DisablePlayerInput, FALSE) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_IF_NE(LW(2), 89) + EVT_GOTO(10) + EVT_END_IF + EVT_SET(GSWF(1371), 1) + EVT_END_IF + EVT_IF_EQ(GSWF(1372), 0) + EVT_SET_GROUP(0) + EVT_CALL(SetTimeFreezeMode, 1) + EVT_LABEL(20) + EVT_CALL(ShowKeyChoicePopup) + EVT_SET(LW(2), LW(0)) + EVT_SWITCH(LW(2)) + EVT_CASE_LE(0) + EVT_CALL(CloseChoicePopup) + EVT_CALL(SetTimeFreezeMode, 0) + EVT_CALL(AwaitPlayerLeave, -85, 85, 28) + EVT_RETURN + EVT_CASE_EQ(88) + EVT_CALL(RemoveItemEntity, GW(11)) + EVT_WAIT_FRAMES(5) + EVT_CALL(SetPlayerAnimation, 393222) + EVT_WAIT_FRAMES(5) + EVT_CALL(RemoveKeyItemAt, LW(1)) + EVT_CALL(MakeItemEntity, ITEM_MAGICAL_BEAN, -83, 0, 87, 1, 0) + EVT_SET(GW(11), LW(0)) + EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL) + EVT_WAIT_FRAMES(20) + EVT_CASE_DEFAULT + EVT_SWITCH(LSWF(17)) + EVT_CASE_EQ(0) + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0008), 0, 10, -200) + EVT_SET(LSWF(17), 1) + EVT_CASE_DEFAULT + EVT_CALL(ShowMessageAtWorldPos, MESSAGE_ID(0x11, 0x0009), 0, 10, -200) + EVT_END_SWITCH + EVT_END_SWITCH + EVT_CALL(DisablePlayerInput, FALSE) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_IF_NE(LW(2), 88) + EVT_GOTO(20) + EVT_END_IF + EVT_SET(GSWF(1372), 1) + EVT_END_IF + EVT_SET_GROUP(0) + EVT_CALL(SetTimeFreezeMode, 1) + EVT_LABEL(30) + EVT_CALL(ShowKeyChoicePopup) + EVT_SET(LW(2), LW(0)) + EVT_SWITCH(LW(2)) + EVT_CASE_LE(0) + EVT_CALL(CloseChoicePopup) + EVT_CALL(SetTimeFreezeMode, 0) + EVT_CALL(AwaitPlayerLeave, -85, 85, 28) + EVT_RETURN + EVT_CASE_EQ(90) + EVT_CALL(RemoveItemEntity, GW(11)) + EVT_WAIT_FRAMES(5) + EVT_CALL(SetPlayerAnimation, 393222) + EVT_WAIT_FRAMES(5) + EVT_CALL(RemoveKeyItemAt, LW(1)) + EVT_CALL(N(SyncStatusMenu)) + EVT_CALL(MakeItemEntity, ITEM_MIRACLE_WATER, -83, 0, 87, 1, 0) + EVT_SET(GW(11), LW(0)) + EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL) + EVT_WAIT_FRAMES(30) + EVT_CALL(RemoveItemEntity, GW(11)) + EVT_WAIT_FRAMES(30) + EVT_CALL(ModifyColliderFlags, 0, 47, 0x7FFFFE00) + EVT_CALL(PlayerMoveTo, -60, 30, 20) + EVT_CALL(ModifyColliderFlags, 1, 47, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 1, 48, 0x7FFFFE00) + EVT_CALL(InterpPlayerYaw, 200, 0) + EVT_CALL(func_802CF56C, 2) + EVT_WAIT_FRAMES(60) + EVT_CALL(FadeInMusic, 1, 123, 0, 3000, 0, 127) + EVT_CALL(FadeOutMusic, 0, 3000) + EVT_CALL(UseSettingsFrom, 0, -85, 0, 75) + EVT_CALL(SetPanTarget, 0, -85, 0, 75) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(1.0)) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(17.0), EVT_FLOAT(-6.0)) + EVT_CALL(SetCamDistance, 0, 250) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_EXEC_WAIT(N(80247FAC)) + EVT_END_SWITCH + EVT_IF_NE(LW(2), 90) + EVT_GOTO(30) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(80248D3C) = SCRIPT({ -0: - IsPlayerWithin(-85, 85, 20, EVT_VAR(0)); - if (EVT_VAR(0) == 0) { - return; - } else { - IsPlayerOnValidFloor(EVT_VAR(0)); - if (EVT_VAR(0) == 0) { - sleep 1; - goto 0; - } - GetCurrentPartner(EVT_VAR(0)); - if (EVT_VAR(0) != 0) { - return; - } - } - N(func_8024139C_C9F2BC)(); - await N(802485A8); - N(func_802413BC_C9F2DC)(); -}); +EvtScript N(80248D3C) = { + EVT_LABEL(0) + EVT_CALL(IsPlayerWithin, -85, 85, 20, LW(0)) + EVT_IF_EQ(LW(0), 0) + EVT_RETURN + EVT_ELSE + EVT_CALL(IsPlayerOnValidFloor, LW(0)) + EVT_IF_EQ(LW(0), 0) + EVT_WAIT_FRAMES(1) + EVT_GOTO(0) + EVT_END_IF + EVT_CALL(GetCurrentPartner, LW(0)) + EVT_IF_NE(LW(0), 0) + EVT_RETURN + EVT_END_IF + EVT_END_IF + EVT_CALL(N(func_8024139C_C9F2BC)) + EVT_EXEC_WAIT(N(802485A8)) + EVT_CALL(N(func_802413BC_C9F2DC)) + EVT_RETURN + EVT_END +}; -EvtScript N(80248E30) = SCRIPT({ - if (EVT_STORY_PROGRESS < STORY_CH6_GREW_MAGIC_BEANSTALK) { - loop { - sleep 1; - if (EVT_STORY_PROGRESS == STORY_CH6_WISTERWOOD_GAVE_HINT) { - break; - } - } - if (EVT_SAVE_FLAG(1371) == 1) { - if (EVT_SAVE_FLAG(1372) == 0) { - MakeItemEntity(ITEM_FERTILE_SOIL, -83, 0, 87, 1, 0); - } else { - MakeItemEntity(ITEM_MAGICAL_BEAN, -83, 0, 87, 1, 0); - } - EVT_MAP_VAR(11) = EVT_VAR(0); - } - bind_padlock N(80248D3C) 0x10 0 N(itemList_80248598); - } -}); +EvtScript N(80248E30) = { + EVT_IF_LT(GSW(0), 55) + EVT_LOOP(0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(GSW(0), 54) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_IF_EQ(GSWF(1371), 1) + EVT_IF_EQ(GSWF(1372), 0) + EVT_CALL(MakeItemEntity, ITEM_FERTILE_SOIL, -83, 0, 87, 1, 0) + EVT_ELSE + EVT_CALL(MakeItemEntity, ITEM_MAGICAL_BEAN, -83, 0, 87, 1, 0) + EVT_END_IF + EVT_SET(GW(11), LW(0)) + EVT_END_IF + EVT_BIND_PADLOCK(N(80248D3C), 0x10, 0, EVT_ADDR(N(itemList_80248598)), 0, 1) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(80248F48) = SCRIPT({ - bind N(802477EC) TRIGGER_FLOOR_TOUCH 46; - EnableGroup(121, 1); - EnableGroup(80, 1); - match EVT_STORY_PROGRESS { - == STORY_CH6_WISTERWOOD_GAVE_HINT { - EVT_VAR(0) = -700; - spawn N(80246850); - spawn N(80247488); - EVT_VAR(0) = 0; - spawn N(80247588); - EVT_VAR(0) = 0; - spawn N(802476F4); - ModifyColliderFlags(0, 46, 0x7FFFFE00); - ModifyColliderFlags(0, 47, 0x7FFFFE00); - } - >= STORY_CH6_GREW_MAGIC_BEANSTALK { - EVT_VAR(0) = 1; - spawn N(80247588); - EVT_VAR(0) = 1; - spawn N(802476F4); - } else { - EVT_VAR(0) = -700; - spawn N(80246850); - spawn N(80247488); - EVT_VAR(0) = 0; - spawn N(80247588); - EVT_VAR(0) = 0; - spawn N(802476F4); - ModifyColliderFlags(0, 46, 0x7FFFFE00); - ModifyColliderFlags(0, 47, 0x7FFFFE00); - } - } -}); +EvtScript N(80248F48) = { + EVT_BIND_TRIGGER(N(802477EC), TRIGGER_FLOOR_TOUCH, 46, 1, 0) + EVT_CALL(EnableGroup, 121, 1) + EVT_CALL(EnableGroup, 80, 1) + EVT_SWITCH(GSW(0)) + EVT_CASE_EQ(54) + EVT_SET(LW(0), -700) + EVT_EXEC(N(80246850)) + EVT_EXEC(N(80247488)) + EVT_SET(LW(0), 0) + EVT_EXEC(N(80247588)) + EVT_SET(LW(0), 0) + EVT_EXEC(N(802476F4)) + EVT_CALL(ModifyColliderFlags, 0, 46, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 47, 0x7FFFFE00) + EVT_CASE_GE(55) + EVT_SET(LW(0), 1) + EVT_EXEC(N(80247588)) + EVT_SET(LW(0), 1) + EVT_EXEC(N(802476F4)) + EVT_CASE_DEFAULT + EVT_SET(LW(0), -700) + EVT_EXEC(N(80246850)) + EVT_EXEC(N(80247488)) + EVT_SET(LW(0), 0) + EVT_EXEC(N(80247588)) + EVT_SET(LW(0), 0) + EVT_EXEC(N(802476F4)) + EVT_CALL(ModifyColliderFlags, 0, 46, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 47, 0x7FFFFE00) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; static s32 N(pad_9128)[] = { 0x00000000, 0x00000000, }; -EvtScript N(makeEntities) = SCRIPT({ - if (EVT_STORY_PROGRESS < STORY_EPILOGUE) { - MakeEntity(0x802E9A18, 110, 60, -100, 0, MAKE_ENTITY_END); - } -}); +EvtScript N(makeEntities) = { + EVT_IF_LT(GSW(0), 96) + EVT_CALL(MakeEntity, EVT_ADDR(Entity_SavePoint), 110, 60, -100, 0, 0x80000000) + EVT_END_IF + EVT_RETURN + EVT_END +}; #include "world/common/enemy/PatrolNoAttackAI.inc.c" diff --git a/src/world/area_flo/flo_10/CB9280.c b/src/world/area_flo/flo_10/CB9280.c index 3dcfa07447..cd96369996 100644 --- a/src/world/area_flo/flo_10/CB9280.c +++ b/src/world/area_flo/flo_10/CB9280.c @@ -1,5 +1,6 @@ #include "flo_10.h" #include "message_ids.h" +#include "effects.h" #include "sprite/npc/lily.h" enum { @@ -20,145 +21,156 @@ MapConfig N(config) = { .tattle = { .get = N(func_80240000_CB9200) }, }; -EvtScript N(802414E0) = SCRIPT({ - GetEntryID(EVT_VAR(0)); - if (EVT_VAR(0) == 1) { - SetMusicTrack(0, SONG_SUNSHINE_RETURNS, 0, 8); - } else { - match EVT_STORY_PROGRESS { - < STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE { - SetMusicTrack(0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8); - } else { - SetMusicTrack(0, SONG_FLOWER_FIELDS_SUNNY, 0, 8); - } - } - } - if (EVT_STORY_PROGRESS >= STORY_CH6_FILLED_SPRING_WITH_WATER) { - PlaySound(0x80000022); - } -}); +EvtScript N(802414E0) = { + EVT_CALL(GetEntryID, LW(0)) + EVT_IF_EQ(LW(0), 1) + EVT_CALL(SetMusicTrack, 0, SONG_SUNSHINE_RETURNS, 0, 8) + EVT_ELSE + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(53) + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EVT_END_SWITCH + EVT_END_IF + EVT_IF_GE(GSW(0), 49) + EVT_CALL(PlaySound, 0x80000022) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(802415C4) = SCRIPT({ - PushSong(137, 2); -}); +EvtScript N(802415C4) = { + EVT_CALL(PushSong, 137, 2) + EVT_RETURN + EVT_END +}; -EvtScript N(802415E8) = SCRIPT({ - FadeOutMusic(0, 250); - sleep 10; - PopSong(); -}); +EvtScript N(802415E8) = { + EVT_CALL(FadeOutMusic, 0, 250) + EVT_WAIT_FRAMES(10) + EVT_CALL(PopSong) + EVT_RETURN + EVT_END +}; static s32 N(pad_1624)[] = { 0x00000000, 0x00000000, 0x00000000, }; -EvtScript N(80241630) = SCRIPT({ - if (EVT_STORY_PROGRESS >= STORY_CH6_FILLED_SPRING_WITH_WATER) { - MakeItemEntity(ITEM_WATER_STONE, 0, -60, 6, 1, 0); - } -}); +EvtScript N(80241630) = { + EVT_IF_GE(GSW(0), 49) + EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, 0, -60, 6, 1, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; static s32 N(pad_167C) = { 0x00000000, }; -EvtScript N(80241680) = SCRIPT({ - group 11; - EVT_VAR(10) = EVT_VAR(0); - EVT_VAR(11) = EVT_VAR(1); - EVT_VAR(12) = EVT_VAR(2); - EVT_VAR(13) = EVT_VAR(3); - EVT_VAR(14) = EVT_VAR(4); - EVT_VAR(12) -= EVT_VAR(0); - EVT_VAR(13) -= EVT_VAR(1); - EVT_VAR(0) = (float) EVT_VAR(12); - EVT_VAR(0) /= 100.0; - EVT_VAR(15) = 100.0; - EVT_VAR(15) /= (float) EVT_VAR(0); - EVT_VAR(15) += 11; - EVT_VAR(5) = 200; - EVT_VAR(5) /= EVT_VAR(15); - EVT_VAR(5) += 1; - loop EVT_VAR(5) { - RandInt(EVT_VAR(12), EVT_VAR(0)); - RandInt(EVT_VAR(13), EVT_VAR(1)); - RandInt(199, EVT_VAR(2)); - EVT_VAR(3) = 210; - EVT_VAR(3) -= EVT_VAR(2); - EVT_VAR(0) += EVT_VAR(10); - EVT_VAR(1) += EVT_VAR(11); - EVT_VAR(2) += EVT_VAR(14); - PlayEffect(0xD, EVT_VAR(0), EVT_VAR(2), EVT_VAR(1), EVT_VAR(3), 0, 0, 0, 0, 0, 0, 0, 0, 0); - } - sleep EVT_VAR(15); -0: - RandInt(EVT_VAR(12), EVT_VAR(0)); - RandInt(EVT_VAR(13), EVT_VAR(1)); - EVT_VAR(0) += EVT_VAR(10); - EVT_VAR(1) += EVT_VAR(11); - PlayEffect(0xD, EVT_VAR(0), EVT_VAR(14), EVT_VAR(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0); - sleep EVT_VAR(15); - goto 0; -}); +EvtScript N(80241680) = { + EVT_SET_GROUP(11) + EVT_SET(LW(10), LW(0)) + EVT_SET(LW(11), LW(1)) + EVT_SET(LW(12), LW(2)) + EVT_SET(LW(13), LW(3)) + EVT_SET(LW(14), LW(4)) + EVT_SUB(LW(12), LW(0)) + EVT_SUB(LW(13), LW(1)) + EVT_SETF(LW(0), LW(12)) + EVT_DIVF(LW(0), EVT_FLOAT(100.0)) + EVT_SETF(LW(15), EVT_FLOAT(100.0)) + EVT_DIVF(LW(15), LW(0)) + EVT_ADD(LW(15), 11) + EVT_SET(LW(5), 200) + EVT_DIV(LW(5), LW(15)) + EVT_ADD(LW(5), 1) + EVT_LOOP(LW(5)) + EVT_CALL(RandInt, LW(12), LW(0)) + EVT_CALL(RandInt, LW(13), LW(1)) + EVT_CALL(RandInt, 199, LW(2)) + EVT_SET(LW(3), 210) + EVT_SUB(LW(3), LW(2)) + EVT_ADD(LW(0), LW(10)) + EVT_ADD(LW(1), LW(11)) + EVT_ADD(LW(2), LW(14)) + EVT_CALL(PlayEffect, EFFECT_FLOATING_FLOWER, LW(0), LW(2), LW(1), LW(3), 0, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_END_LOOP + EVT_WAIT_FRAMES(LW(15)) + EVT_LABEL(0) + EVT_CALL(RandInt, LW(12), LW(0)) + EVT_CALL(RandInt, LW(13), LW(1)) + EVT_ADD(LW(0), LW(10)) + EVT_ADD(LW(1), LW(11)) + EVT_CALL(PlayEffect, EFFECT_FLOATING_FLOWER, LW(0), LW(14), LW(1), 200, 0, 0, 0, 0, 0, 0, 0, 0, 0) + EVT_WAIT_FRAMES(LW(15)) + EVT_GOTO(0) + EVT_RETURN + EVT_END +}; EvtScript N(exitWalk_8024192C) = EXIT_WALK_SCRIPT(60, 0, "flo_24", 1); -EvtScript N(80241988) = SCRIPT({ - bind N(exitWalk_8024192C) TRIGGER_FLOOR_ABOVE 0; -}); +EvtScript N(80241988) = { + EVT_BIND_TRIGGER(N(exitWalk_8024192C), TRIGGER_FLOOR_ABOVE, 0, 1, 0) + EVT_RETURN + EVT_END +}; -EvtScript N(main) = SCRIPT({ - EVT_WORLD_LOCATION = LOCATION_FLOWER_FIELDS; - SetSpriteShading(-1); - SetCamLeadPlayer(0, 0); - SetCamPerspective(0, 3, 25, 16, 4096); - SetCamBGColor(0, 0, 0, 0); - SetCamEnabled(0, 1); - MakeNpcs(0, N(npcGroupList_80244054)); - await N(80241630); - spawn N(80244A50); - spawn N(802435F8); - spawn N(80242AE8); - spawn N(80244074); - ModifyColliderFlags(3, 11, 0x00000006); - ModifyColliderFlags(3, 12, 0x00000006); - EVT_VAR(0) = -265; - EVT_VAR(1) = 247; - EVT_VAR(2) = 199; - EVT_VAR(3) = 313; - EVT_VAR(4) = 0; - spawn N(80241680); - EVT_VAR(0) = -300; - EVT_VAR(1) = -275; - EVT_VAR(2) = -140; - EVT_VAR(3) = -185; - EVT_VAR(4) = 0; - spawn N(80241680); - EVT_VAR(0) = 263; - EVT_VAR(1) = -248; - EVT_VAR(2) = 362; - EVT_VAR(3) = 146; - EVT_VAR(4) = 0; - spawn N(80241680); - GetEntryID(EVT_VAR(0)); - match EVT_VAR(0) { - == 1 { - spawn N(8024324C); - } - == 2 { - spawn N(802427EC); - spawn N(80241988); - } else { - ModifyColliderFlags(0, 1, 0x7FFFFE00); - EVT_VAR(0) = N(80241988); - spawn EnterWalk; - } - } - await N(802414E0); - if (EVT_STORY_PROGRESS >= STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) { - N(func_80240040_CB9240)(); - } -}); +EvtScript N(main) = { + EVT_SET(GSW(425), 38) + EVT_CALL(SetSpriteShading, -1) + EVT_CALL(SetCamLeadPlayer, 0, 0) + EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) + EVT_CALL(SetCamBGColor, 0, 0, 0, 0) + EVT_CALL(SetCamEnabled, 0, 1) + EVT_CALL(MakeNpcs, 0, EVT_ADDR(N(npcGroupList_80244054))) + EVT_EXEC_WAIT(N(80241630)) + EVT_EXEC(flo_10_80244A50) + EVT_EXEC(flo_10_802435F8) + EVT_EXEC(flo_10_80242AE8) + EVT_EXEC(flo_10_80244074) + EVT_CALL(ModifyColliderFlags, 3, 11, 0x00000006) + EVT_CALL(ModifyColliderFlags, 3, 12, 0x00000006) + EVT_SET(LW(0), -265) + EVT_SET(LW(1), 247) + EVT_SET(LW(2), 199) + EVT_SET(LW(3), 313) + EVT_SET(LW(4), 0) + EVT_EXEC(N(80241680)) + EVT_SET(LW(0), -300) + EVT_SET(LW(1), -275) + EVT_SET(LW(2), -140) + EVT_SET(LW(3), -185) + EVT_SET(LW(4), 0) + EVT_EXEC(N(80241680)) + EVT_SET(LW(0), 263) + EVT_SET(LW(1), -248) + EVT_SET(LW(2), 362) + EVT_SET(LW(3), 146) + EVT_SET(LW(4), 0) + EVT_EXEC(N(80241680)) + EVT_CALL(GetEntryID, LW(0)) + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(1) + EVT_EXEC(flo_10_8024324C) + EVT_CASE_EQ(2) + EVT_EXEC(flo_10_802427EC) + EVT_EXEC(N(80241988)) + EVT_CASE_DEFAULT + EVT_CALL(ModifyColliderFlags, 0, 1, 0x7FFFFE00) + EVT_SET(LW(0), EVT_ADDR(N(80241988))) + EVT_EXEC(EnterWalk) + EVT_END_SWITCH + EVT_EXEC_WAIT(N(802414E0)) + EVT_IF_GE(GSW(0), 53) + EVT_CALL(N(func_80240040_CB9240)) + EVT_END_IF + EVT_RETURN + EVT_END +}; static s32 N(pad_1CA8)[] = { 0x00000000, 0x00000000, @@ -166,378 +178,412 @@ static s32 N(pad_1CA8)[] = { s32** N(varStash) = NULL; -EvtScript N(80241CB4) = SCRIPT({ - ShowGotItem(EVT_VAR(0), 1, 0); - return; -}); +EvtScript N(80241CB4) = { + EVT_CALL(ShowGotItem, LW(0), 1, 0) + EVT_RETURN + EVT_RETURN + EVT_END +}; -EvtScript N(80241CE4) = SCRIPT({ - ShowGotItem(EVT_VAR(0), 1, 16); - return; -}); +EvtScript N(80241CE4) = { + EVT_CALL(ShowGotItem, LW(0), 1, 16) + EVT_RETURN + EVT_RETURN + EVT_END +}; -EvtScript N(updateTexturePan_80241D14) = SCRIPT({ - group 0; - if (EVT_VAR(5) == 1) { - if (EVT_VAR(6) == 1) { - if (EVT_VAR(7) == 1) { - if (EVT_VAR(8) == 1) { - N(UpdateTexturePanSmooth)(); - return; - } - } - } - } - N(UpdateTexturePanStepped)(); -}); +EvtScript N(updateTexturePan_80241D14) = { + EVT_SET_GROUP(0) + EVT_IF_EQ(LW(5), 1) + EVT_IF_EQ(LW(6), 1) + EVT_IF_EQ(LW(7), 1) + EVT_IF_EQ(LW(8), 1) + EVT_CALL(N(UpdateTexturePanSmooth)) + EVT_RETURN + EVT_END_IF + EVT_END_IF + EVT_END_IF + EVT_END_IF + EVT_CALL(N(UpdateTexturePanStepped)) + EVT_RETURN + EVT_END +}; -EvtScript N(80241DB0) = SCRIPT({ - MakeLerp(-50, 170, 385, 0); -1: - UpdateLerp(); - TranslateGroup(56, 0, EVT_VAR(0), 0); - if (EVT_VAR(1) == 1) { - sleep 1; - goto 1; - } -}); +EvtScript N(80241DB0) = { + EVT_CALL(MakeLerp, -50, 170, 385, 0) + EVT_LABEL(1) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, 56, 0, LW(0), 0) + EVT_IF_EQ(LW(1), 1) + EVT_WAIT_FRAMES(1) + EVT_GOTO(1) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(80241E40) = SCRIPT({ - MakeLerp(0, 100, 90, 1); -1: - UpdateLerp(); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(3) = (float) EVT_VAR(0); - EVT_VAR(2) /= 333.0; - EVT_VAR(3) /= 100.0; - EVT_VAR(2) += 0.703125; - ScaleGroup(56, EVT_VAR(2), EVT_VAR(3), EVT_VAR(2)); - if (EVT_VAR(1) == 1) { - sleep 1; - goto 1; - } -}); +EvtScript N(80241E40) = { + EVT_CALL(MakeLerp, 0, 100, 90, 1) + EVT_LABEL(1) + EVT_CALL(UpdateLerp) + EVT_SETF(LW(2), LW(0)) + EVT_SETF(LW(3), LW(0)) + EVT_DIVF(LW(2), EVT_FLOAT(333.0)) + EVT_DIVF(LW(3), EVT_FLOAT(100.0)) + EVT_ADDF(LW(2), EVT_FLOAT(0.703125)) + EVT_CALL(ScaleGroup, 56, LW(2), LW(3), LW(2)) + EVT_IF_EQ(LW(1), 1) + EVT_WAIT_FRAMES(1) + EVT_GOTO(1) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(80241F20) = SCRIPT({ - EnableTexPanning(53, 1); - spawn { - EVT_VAR(0) = 10; - EVT_VAR(1) = -150; - EVT_VAR(2) = 0; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 1; - EVT_VAR(6) = 0; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } -}); +EvtScript N(80241F20) = { + EVT_CALL(EnableTexPanning, 53, 1) + EVT_THREAD + EVT_SET(LW(0), 10) + EVT_SET(LW(1), -150) + EVT_SET(LW(2), 0) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 1) + EVT_SET(LW(6), 0) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_RETURN + EVT_END +}; -EvtScript N(80242030) = SCRIPT({ - sleep 60; - EnableModel(53, 1); - spawn N(80241F20); -}); +EvtScript N(80242030) = { + EVT_WAIT_FRAMES(60) + EVT_CALL(EnableModel, 53, 1) + EVT_EXEC(N(80241F20)) + EVT_RETURN + EVT_END +}; -EvtScript N(8024206C) = SCRIPT({ - sleep 80; - EnableNpcShadow(NPC_LILY, FALSE); - GetNpcPos(NPC_LILY, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - MakeLerp(10, 55, 108, 0); - loop { - UpdateLerp(); - EVT_VAR(6) = EVT_VAR(4); - EVT_VAR(6) += EVT_VAR(0); - EVT_VAR(6) += -10; - SetNpcPos(NPC_LILY, EVT_VAR(3), EVT_VAR(6), EVT_VAR(5)); - TranslateGroup(60, 0, EVT_VAR(0), 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } -}); +EvtScript N(8024206C) = { + EVT_WAIT_FRAMES(80) + EVT_CALL(EnableNpcShadow, 0, FALSE) + EVT_CALL(GetNpcPos, 0, LW(3), LW(4), LW(5)) + EVT_CALL(MakeLerp, 10, 55, 108, 0) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_SET(LW(6), LW(4)) + EVT_ADD(LW(6), LW(0)) + EVT_ADD(LW(6), -10) + EVT_CALL(SetNpcPos, 0, LW(3), LW(6), LW(5)) + EVT_CALL(TranslateGroup, 60, 0, LW(0), 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; -EvtScript N(80242188) = SCRIPT({ - DisablePlayerPhysics(TRUE); - sleep 40; - SetPlayerAnimation(0x80024); - GetPlayerPos(EVT_VAR(2), EVT_VAR(0), EVT_VAR(3)); - MakeLerp(-50, 90, 60, 1); - loop { - UpdateLerp(); - EVT_VAR(2) /= 1.2; - EVT_VAR(3) /= 1.2; - SetPlayerPos(EVT_VAR(2), EVT_VAR(0), EVT_VAR(3)); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - MakeLerp(90, 270, 280, 0); - loop { - UpdateLerp(); - SetPlayerPos(0, EVT_VAR(0), 0); - sleep 1; - if (EVT_VAR(1) == 0) { - break loop; - } - } - DisablePlayerPhysics(FALSE); -}); +EvtScript N(80242188) = { + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_WAIT_FRAMES(40) + EVT_CALL(SetPlayerAnimation, 524324) + EVT_CALL(GetPlayerPos, LW(2), LW(0), LW(3)) + EVT_CALL(MakeLerp, -50, 90, 60, 1) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_DIVF(LW(2), EVT_FLOAT(1.2)) + EVT_DIVF(LW(3), EVT_FLOAT(1.2)) + EVT_CALL(SetPlayerPos, LW(2), LW(0), LW(3)) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(MakeLerp, 90, 270, 280, 0) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(SetPlayerPos, 0, LW(0), 0) + EVT_WAIT_FRAMES(1) + EVT_IF_EQ(LW(1), 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(8024230C) = SCRIPT({ - sleep 80; - GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - UseSettingsFrom(0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - SetPanTarget(0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - SetCamSpeed(0, 0.7); - SetCamPitch(0, 25.0, -22.0); - SetCamDistance(0, 450); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); -}); +EvtScript N(8024230C) = { + EVT_WAIT_FRAMES(80) + EVT_CALL(GetPlayerPos, LW(3), LW(4), LW(5)) + EVT_CALL(UseSettingsFrom, 0, LW(3), LW(4), LW(5)) + EVT_CALL(SetPanTarget, 0, LW(3), LW(4), LW(5)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(0.7)) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(25.0), EVT_FLOAT(-22.0)) + EVT_CALL(SetCamDistance, 0, 450) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_RETURN + EVT_END +}; -EvtScript N(802423E4) = SCRIPT({ - DisablePartnerAI(0); - spawn N(80241DB0); - spawn N(80241E40); - spawn N(80242030); - spawn N(8024206C); - spawn N(80242188); - spawn N(8024230C); -}); +EvtScript N(802423E4) = { + EVT_CALL(DisablePartnerAI, 0) + EVT_EXEC(N(80241DB0)) + EVT_EXEC(N(80241E40)) + EVT_EXEC(N(80242030)) + EVT_EXEC(N(8024206C)) + EVT_EXEC(N(80242188)) + EVT_EXEC(N(8024230C)) + EVT_RETURN + EVT_END +}; -EvtScript N(8024244C) = SCRIPT({ - MakeLerp(170, 75, 150, 0); -1: - UpdateLerp(); - TranslateGroup(56, 0, EVT_VAR(0), 0); - if (EVT_VAR(1) == 1) { - sleep 1; - goto 1; - } -}); +EvtScript N(8024244C) = { + EVT_CALL(MakeLerp, 170, 75, 150, 0) + EVT_LABEL(1) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, 56, 0, LW(0), 0) + EVT_IF_EQ(LW(1), 1) + EVT_WAIT_FRAMES(1) + EVT_GOTO(1) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(802424DC) = SCRIPT({ - MakeLerp(100, 15, 150, 1); -1: - UpdateLerp(); - EVT_VAR(2) = (float) EVT_VAR(0); - EVT_VAR(3) = (float) EVT_VAR(0); - EVT_VAR(2) /= 333.0; - EVT_VAR(3) /= 100.0; - EVT_VAR(2) += 0.703125; - ScaleGroup(56, EVT_VAR(2), EVT_VAR(3), EVT_VAR(2)); - if (EVT_VAR(1) == 1) { - sleep 1; - goto 1; - } -}); +EvtScript N(802424DC) = { + EVT_CALL(MakeLerp, 100, 15, 150, 1) + EVT_LABEL(1) + EVT_CALL(UpdateLerp) + EVT_SETF(LW(2), LW(0)) + EVT_SETF(LW(3), LW(0)) + EVT_DIVF(LW(2), EVT_FLOAT(333.0)) + EVT_DIVF(LW(3), EVT_FLOAT(100.0)) + EVT_ADDF(LW(2), EVT_FLOAT(0.703125)) + EVT_CALL(ScaleGroup, 56, LW(2), LW(3), LW(2)) + EVT_IF_EQ(LW(1), 1) + EVT_WAIT_FRAMES(1) + EVT_GOTO(1) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(802425BC) = SCRIPT({ - spawn N(8024244C); - spawn N(802424DC); -}); +EvtScript N(802425BC) = { + EVT_EXEC(N(8024244C)) + EVT_EXEC(N(802424DC)) + EVT_RETURN + EVT_END +}; extern const char N(flo_24_name_hack)[]; -EvtScript N(802425E4) = SCRIPT({ - sleep 20; - SetPlayerAnimation(ANIM_STAND_STILL); - GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - UseSettingsFrom(0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - SetPanTarget(0, EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - SetCamSpeed(0, 1.0); - SetCamDistance(0, 600); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - EnableGroup(56, 1); - TranslateGroup(56, 0, -50, 0); - ScaleGroup(56, 0, 0, 0); - EnableGroup(60, 1); - await N(802423E4); - sleep 20; - PlaySound(0x80000024); - sleep 360; - InterpPlayerYaw(90, 0); - SetPlayerAnimation(ANIM_80017); - SetPlayerJumpscale(0.2); - PlayerJump1(-100, -10, -172, 75); - ShakeCam(0, 0, 5, 1.0); - await N(802425BC); - sleep 60; - GotoMap(N(flo_24_name_hack), 2); - sleep 100; -}); +EvtScript N(802425E4) = { + EVT_WAIT_FRAMES(20) + EVT_CALL(SetPlayerAnimation, ANIM_STAND_STILL) + EVT_CALL(GetPlayerPos, LW(3), LW(4), LW(5)) + EVT_CALL(UseSettingsFrom, 0, LW(3), LW(4), LW(5)) + EVT_CALL(SetPanTarget, 0, LW(3), LW(4), LW(5)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(1.0)) + EVT_CALL(SetCamDistance, 0, 600) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(EnableGroup, 56, 1) + EVT_CALL(TranslateGroup, 56, 0, -50, 0) + EVT_CALL(ScaleGroup, 56, 0, 0, 0) + EVT_CALL(EnableGroup, 60, 1) + EVT_EXEC_WAIT(N(802423E4)) + EVT_WAIT_FRAMES(20) + EVT_CALL(PlaySound, 0x80000024) + EVT_WAIT_FRAMES(360) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_CALL(SetPlayerAnimation, ANIM_80017) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.2)) + EVT_CALL(PlayerJump1, -100, -10, -172, 75) + EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(1.0)) + EVT_EXEC_WAIT(N(802425BC)) + EVT_WAIT_FRAMES(60) + EVT_CALL(GotoMap, EVT_PTR(N(flo_24_name_hack)), 2) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; -EvtScript N(802427EC) = SCRIPT({ - DisablePlayerInput(TRUE); - DisablePlayerPhysics(TRUE); - SetPlayerPos(-100, -10, -172); - InterpPlayerYaw(150, 0); - SetPlayerAnimation(ANIM_DEAD_STILL); - SetNpcPos(NPC_PARTNER, -129, 9, -177); - EnablePartnerAI(); - ClearPartnerMoveHistory(-4); - EnableGroup(52, 1); - EnableGroup(19, 0); - EnableGroup(61, 0); - EnableGroup(60, 0); - SetNpcPos(NPC_LILY, -57, -20, -105); - InterpNpcYaw(NPC_LILY, 90, 0); - AdjustCam(0, 90.0, 0, 450, 25.0, -6.0); - sleep 30; - SetPlayerAnimation(ANIM_GET_UP); - sleep 20; - SetPlayerAnimation(ANIM_10002); - sleep 10; - await N(802415C4); - sleep 10; - SpeakToPlayer(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x0082)); - NpcFacePlayer(NPC_LILY, 1); - SpeakToPlayer(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0083)); - SetNpcAnimation(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_6); - sleep 20; - SetNpcAnimation(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_1); - EVT_VAR(0) = 90; - EVT_VAR(1) = 1; - await N(80241CB4); - AddKeyItem(ITEM_MIRACLE_WATER); - SpeakToPlayer(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0084)); - EndSpeech(0, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0); - SetNpcAnimation(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_1); - ResetCam(0, 4.0); - await N(802415E8); - DisablePlayerPhysics(FALSE); - DisablePlayerInput(FALSE); -}); +EvtScript N(802427EC) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(SetPlayerPos, -100, -10, -172) + EVT_CALL(InterpPlayerYaw, 150, 0) + EVT_CALL(SetPlayerAnimation, ANIM_DEAD_STILL) + EVT_CALL(SetNpcPos, NPC_PARTNER, -129, 9, -177) + EVT_CALL(EnablePartnerAI) + EVT_CALL(ClearPartnerMoveHistory, -4) + EVT_CALL(EnableGroup, 52, 1) + EVT_CALL(EnableGroup, 19, 0) + EVT_CALL(EnableGroup, 61, 0) + EVT_CALL(EnableGroup, 60, 0) + EVT_CALL(SetNpcPos, 0, -57, -20, -105) + EVT_CALL(InterpNpcYaw, 0, 90, 0) + EVT_CALL(AdjustCam, 0, EVT_FLOAT(90.0), 0, 450, EVT_FLOAT(25.0), EVT_FLOAT(-6.0)) + EVT_WAIT_FRAMES(30) + EVT_CALL(SetPlayerAnimation, ANIM_GET_UP) + EVT_WAIT_FRAMES(20) + EVT_CALL(SetPlayerAnimation, ANIM_10002) + EVT_WAIT_FRAMES(10) + EVT_EXEC_WAIT(N(802415C4)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x0082)) + EVT_CALL(NpcFacePlayer, 0, 1) + EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0083)) + EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_lily_Palette_00_Anim_6) + EVT_WAIT_FRAMES(20) + EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_lily_Palette_00_Anim_1) + EVT_SET(LW(0), 90) + EVT_SET(LW(1), 1) + EVT_EXEC_WAIT(N(80241CB4)) + EVT_CALL(AddKeyItem, ITEM_MIRACLE_WATER) + EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0084)) + EVT_CALL(EndSpeech, 0, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0) + EVT_CALL(SetNpcAnimation, 0, NPC_ANIM_lily_Palette_00_Anim_1) + EVT_CALL(ResetCam, 0, EVT_FLOAT(4.0)) + EVT_EXEC_WAIT(N(802415E8)) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; -EvtScript N(80242AE8) = SCRIPT({ - if (EVT_STORY_PROGRESS < STORY_CH6_FILLED_SPRING_WITH_WATER) { - EnableGroup(52, 0); - EnableGroup(61, 0); - ModifyColliderFlags(0, 21, 0x7FFFFE00); - } else { - EnableGroup(19, 0); - EnableGroup(61, 0); - EnableGroup(60, 0); - ModifyColliderFlags(0, 14, 0x7FFFFE00); - ModifyColliderFlags(0, 15, 0x7FFFFE00); - ModifyColliderFlags(0, 16, 0x7FFFFE00); - ModifyColliderFlags(0, 17, 0x7FFFFE00); - } - EnableTexPanning(54, 1); - EnableTexPanning(48, 1); - EnableTexPanning(55, 1); - EnableTexPanning(59, 1); - EnableTexPanning(49, 1); - EnableTexPanning(51, 1); - spawn { - EVT_VAR(0) = 1; - EVT_VAR(1) = 0; - EVT_VAR(2) = -2000; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 0; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - spawn { - EVT_VAR(0) = 3; - EVT_VAR(1) = -100; - EVT_VAR(2) = 80; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 1; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - spawn { - EVT_VAR(0) = 5; - EVT_VAR(1) = -1000; - EVT_VAR(2) = 2000; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 1; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - spawn { - EVT_VAR(0) = 6; - EVT_VAR(1) = 0; - EVT_VAR(2) = -2000; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 0; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - spawn { - EVT_VAR(0) = 8; - EVT_VAR(1) = 0; - EVT_VAR(2) = -1500; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 0; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - spawn { - EVT_VAR(0) = 9; - EVT_VAR(1) = 0; - EVT_VAR(2) = -1000; - EVT_VAR(3) = 0; - EVT_VAR(4) = 0; - EVT_VAR(5) = 0; - EVT_VAR(6) = 1; - EVT_VAR(7) = 0; - EVT_VAR(8) = 0; - EVT_VAR(9) = 0; - EVT_VAR(10) = 0; - EVT_VAR(11) = 0; - EVT_VAR(12) = 0; - spawn N(updateTexturePan_80241D14); - } - if (EVT_STORY_PROGRESS >= STORY_CH6_FILLED_SPRING_WITH_WATER) { - spawn N(80241F20); - } -}); +EvtScript N(80242AE8) = { + EVT_IF_LT(GSW(0), 49) + EVT_CALL(EnableGroup, 52, 0) + EVT_CALL(EnableGroup, 61, 0) + EVT_CALL(ModifyColliderFlags, 0, 21, 0x7FFFFE00) + EVT_ELSE + EVT_CALL(EnableGroup, 19, 0) + EVT_CALL(EnableGroup, 61, 0) + EVT_CALL(EnableGroup, 60, 0) + EVT_CALL(ModifyColliderFlags, 0, 14, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 15, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 16, 0x7FFFFE00) + EVT_CALL(ModifyColliderFlags, 0, 17, 0x7FFFFE00) + EVT_END_IF + EVT_CALL(EnableTexPanning, 54, 1) + EVT_CALL(EnableTexPanning, 48, 1) + EVT_CALL(EnableTexPanning, 55, 1) + EVT_CALL(EnableTexPanning, 59, 1) + EVT_CALL(EnableTexPanning, 49, 1) + EVT_CALL(EnableTexPanning, 51, 1) + EVT_THREAD + EVT_SET(LW(0), 1) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), -2000) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 0) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(0), 3) + EVT_SET(LW(1), -100) + EVT_SET(LW(2), 80) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 1) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(0), 5) + EVT_SET(LW(1), -1000) + EVT_SET(LW(2), 2000) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 1) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(0), 6) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), -2000) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 0) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(0), 8) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), -1500) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 0) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_THREAD + EVT_SET(LW(0), 9) + EVT_SET(LW(1), 0) + EVT_SET(LW(2), -1000) + EVT_SET(LW(3), 0) + EVT_SET(LW(4), 0) + EVT_SET(LW(5), 0) + EVT_SET(LW(6), 1) + EVT_SET(LW(7), 0) + EVT_SET(LW(8), 0) + EVT_SET(LW(9), 0) + EVT_SET(LW(10), 0) + EVT_SET(LW(11), 0) + EVT_SET(LW(12), 0) + EVT_EXEC(N(updateTexturePan_80241D14)) + EVT_END_THREAD + EVT_IF_GE(GSW(0), 49) + EVT_EXEC(N(80241F20)) + EVT_END_IF + EVT_RETURN + EVT_END +}; static s32 N(pad_3218)[] = { 0x00000000, 0x00000000, @@ -551,207 +597,201 @@ NpcSettings N(npcSettings_80243220) = { const char N(flo_24_name_hack)[] = "flo_24"; -EvtScript N(8024324C) = SCRIPT({ - DisablePlayerInput(TRUE); - DisablePlayerPhysics(TRUE); - SetNpcPos(NPC_LILY, 60, 0, 55); - UseSettingsFrom(0, 0, 0, 0); - SetPanTarget(0, 0, 0, 0); - SetCamDistance(0, 450); - SetCamPitch(0, 17.0, -6.0); - SetCamSpeed(0, 90.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 20; - SpeakToPlayer(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C6)); - sleep 10; - GotoMap("flo_12", 1); - sleep 100; -}); +EvtScript N(8024324C) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(SetNpcPos, 0, 60, 0, 55) + EVT_CALL(UseSettingsFrom, 0, 0, 0, 0) + EVT_CALL(SetPanTarget, 0, 0, 0, 0) + EVT_CALL(SetCamDistance, 0, 450) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(17.0), EVT_FLOAT(-6.0)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(20) + EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x00C6)) + EVT_WAIT_FRAMES(10) + EVT_CALL(GotoMap, EVT_PTR("flo_12"), 1) + EVT_WAIT_FRAMES(100) + EVT_RETURN + EVT_END +}; s32 N(itemList_80243394)[] = { ITEM_WATER_STONE, ITEM_NONE, }; -EvtScript N(8024339C) = SCRIPT({ - if (EVT_SAVE_FLAG(1376) == 1) { - GetCurrentPartner(EVT_VAR(10)); - if (EVT_VAR(10) != 0) { - AwaitPlayerLeave(0, 0, 19); - return; - } - DisablePlayerInput(TRUE); - group 0; - SetTimeFreezeMode(1); - ShowKeyChoicePopup(); - EVT_VAR(2) = EVT_VAR(0); - match EVT_VAR(2) { - == -1 { - CloseChoicePopup(); - SetTimeFreezeMode(0); - sleep 10; - SpeakToPlayer(NPC_LILY, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x0081)); - } else { - GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - PlayerMoveTo(-17, -17, 20); - func_802CF56C(2); - InterpPlayerYaw(100, 1); - sleep 10; - AdjustCam(0, 1.0, 0, 450, 25.0, -6.0); - sleep 10; - SetPlayerAnimation(0x60006); - RemoveKeyItemAt(EVT_VAR(1)); - MakeItemEntity(ITEM_WATER_STONE, 0, -60, 6, 1, 0); - EVT_VAR(10) = EVT_VAR(0); - CloseChoicePopup(); - SetTimeFreezeMode(0); - await N(802425E4); - } - } - DisablePlayerInput(FALSE); - AwaitPlayerLeave(0, 0, 19); - } -}); +EvtScript N(8024339C) = { + EVT_IF_EQ(GSWF(1376), 1) + EVT_CALL(GetCurrentPartner, LW(10)) + EVT_IF_NE(LW(10), 0) + EVT_CALL(AwaitPlayerLeave, 0, 0, 19) + EVT_RETURN + EVT_END_IF + EVT_CALL(DisablePlayerInput, TRUE) + EVT_SET_GROUP(0) + EVT_CALL(SetTimeFreezeMode, 1) + EVT_CALL(ShowKeyChoicePopup) + EVT_SET(LW(2), LW(0)) + EVT_SWITCH(LW(2)) + EVT_CASE_EQ(-1) + EVT_CALL(CloseChoicePopup) + EVT_CALL(SetTimeFreezeMode, 0) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, 0, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x0081)) + EVT_CASE_DEFAULT + EVT_CALL(GetPlayerPos, LW(3), LW(4), LW(5)) + EVT_CALL(PlayerMoveTo, -17, -17, 20) + EVT_CALL(func_802CF56C, 2) + EVT_CALL(InterpPlayerYaw, 100, 1) + EVT_WAIT_FRAMES(10) + EVT_CALL(AdjustCam, 0, EVT_FLOAT(1.0), 0, 450, EVT_FLOAT(25.0), EVT_FLOAT(-6.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SetPlayerAnimation, 393222) + EVT_CALL(RemoveKeyItemAt, LW(1)) + EVT_CALL(MakeItemEntity, ITEM_WATER_STONE, 0, -60, 6, 1, 0) + EVT_SET(LW(10), LW(0)) + EVT_CALL(CloseChoicePopup) + EVT_CALL(SetTimeFreezeMode, 0) + EVT_EXEC_WAIT(N(802425E4)) + EVT_END_SWITCH + EVT_CALL(DisablePlayerInput, FALSE) + EVT_CALL(AwaitPlayerLeave, 0, 0, 19) + EVT_END_IF + EVT_RETURN + EVT_END +}; -EvtScript N(802435F8) = SCRIPT({ - bind_padlock N(8024339C) TRIGGER_FLOOR_TOUCH 15 N(itemList_80243394); -}); +EvtScript N(802435F8) = { + EVT_BIND_PADLOCK(N(8024339C), TRIGGER_FLOOR_TOUCH, 15, EVT_ADDR(N(itemList_80243394)), 0, 1) + EVT_RETURN + EVT_END +}; -EvtScript N(80243628) = SCRIPT({ - sleep 10; - GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - GetPlayerPos(EVT_VAR(3), EVT_VAR(4), EVT_VAR(5)); - if (EVT_VAR(5) < EVT_VAR(2)) { - EVT_VAR(6) = 30; - } else { - EVT_VAR(6) = 20; - } - EVT_VAR(1) = EVT_VAR(0); - EVT_VAR(4) = EVT_VAR(0); - EVT_VAR(1) -= EVT_VAR(6); - EVT_VAR(4) += EVT_VAR(6); - match EVT_VAR(3) { - EVT_VAR(1) ... EVT_VAR(4) { - spawn { - if (EVT_VAR(3) < EVT_VAR(0)) { - EVT_VAR(0) -= 40; - } else { - EVT_VAR(0) += 40; - } - SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), TRUE); - PlayerMoveTo(EVT_VAR(0), EVT_VAR(5), 15); - PlayerFaceNpc(0, 1); - SetNpcFlagBits(NPC_SELF, ((NPC_FLAG_100)), FALSE); - } - } - } -}); +EvtScript N(80243628) = { + EVT_WAIT_FRAMES(10) + EVT_CALL(GetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_CALL(GetPlayerPos, LW(3), LW(4), LW(5)) + EVT_IF_LT(LW(5), LW(2)) + EVT_SET(LW(6), 30) + EVT_ELSE + EVT_SET(LW(6), 20) + EVT_END_IF + EVT_SET(LW(1), LW(0)) + EVT_SET(LW(4), LW(0)) + EVT_SUB(LW(1), LW(6)) + EVT_ADD(LW(4), LW(6)) + EVT_SWITCH(LW(3)) + EVT_CASE_RANGE(LW(1), LW(4)) + EVT_THREAD + EVT_IF_LT(LW(3), LW(0)) + EVT_SUB(LW(0), 40) + EVT_ELSE + EVT_ADD(LW(0), 40) + EVT_END_IF + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100, TRUE) + EVT_CALL(PlayerMoveTo, LW(0), LW(5), 15) + EVT_CALL(PlayerFaceNpc, 0, 1) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100, FALSE) + EVT_END_THREAD + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; -EvtScript N(interact_802437C8) = SCRIPT({ - await N(802415C4); - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_MAGICAL_BEAN { - spawn N(80243628); - GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamDistance(0, 325); - SetCamPitch(0, 23.0, -9.0); - SetCamSpeed(0, 4.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, 0x0078)); - EndSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_9, NPC_ANIM_lily_Palette_00_Anim_5, 5); - } - < STORY_CH6_GOT_WATER_STONE { - if (EVT_SAVE_FLAG(1375) == 0) { - spawn N(80243628); - GetNpcPos(NPC_SELF, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - UseSettingsFrom(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetPanTarget(0, EVT_VAR(0), EVT_VAR(1), EVT_VAR(2)); - SetCamDistance(0, 325); - SetCamPitch(0, 23.0, -9.0); - SetCamSpeed(0, 4.0); - PanToTarget(0, 0, 1); - WaitForCam(0, 1.0); - sleep 10; - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, - 0x0079)); - NpcFacePlayer(NPC_SELF, 1); - SetNpcAnimation(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_1); - PlaySoundAtNpc(NPC_SELF, SOUND_262, 0); - ShowEmote(-1, EMOTE_EXCLAMATION, 0, 15, 1, 0, 0, 0, 0); - sleep 15; - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_1, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, - 0x007A)); - EndSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_5, NPC_ANIM_lily_Palette_00_Anim_1, 0); - GetPlayerTargetYaw(EVT_VAR(0)); - InterpNpcYaw(NPC_SELF, EVT_VAR(0), 1); - sleep 20; - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, - 0x007B)); - NpcFacePlayer(NPC_SELF, 1); - sleep 20; - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, - 0x007C)); - ShowChoice(MESSAGE_ID(0x1E, 0x0011)); - sleep 10; - match EVT_VAR(0) { - == 0 { - ContinueSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x007D)); - } - == 1 { - ContinueSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x007E)); - } - } - sleep 10; - EVT_SAVE_FLAG(1375) = 1; - SetEnemyFlagBits(-1, 4194304, 0); - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, - 0x007F)); - } - } - < 49 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0080)); - EVT_SAVE_FLAG(1376) = 1; - } - < 53 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x0085)); - EndSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0); - EndSpeech(-1, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0); - } - < 60 { - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0086)); - } else { - SpeakToPlayer(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, - 0x0087)); - } - } - ResetCam(0, 4.0); - await N(802415E8); -}); +EvtScript N(interact_802437C8) = { + EVT_EXEC_WAIT(N(802415C4)) + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(45) + EVT_EXEC(N(80243628)) + EVT_CALL(GetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamDistance, 0, 325) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(23.0), EVT_FLOAT(-9.0)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, 0x0078)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_9, NPC_ANIM_lily_Palette_00_Anim_5, 5) + EVT_CASE_LT(48) + EVT_IF_EQ(GSWF(1375), 0) + EVT_EXEC(N(80243628)) + EVT_CALL(GetNpcPos, NPC_SELF, LW(0), LW(1), LW(2)) + EVT_CALL(UseSettingsFrom, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetPanTarget, 0, LW(0), LW(1), LW(2)) + EVT_CALL(SetCamDistance, 0, 325) + EVT_CALL(SetCamPitch, 0, EVT_FLOAT(23.0), EVT_FLOAT(-9.0)) + EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) + EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_WAIT_FRAMES(10) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, 0x0079)) + EVT_CALL(NpcFacePlayer, NPC_SELF, 1) + EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_1) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_262, 0) + EVT_CALL(ShowEmote, -1, EMOTE_EXCLAMATION, 0, 15, 1, 0, 0, 0, 0) + EVT_WAIT_FRAMES(15) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_1, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x007A)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_5, NPC_ANIM_lily_Palette_00_Anim_1, 0) + EVT_CALL(GetPlayerTargetYaw, LW(0)) + EVT_CALL(InterpNpcYaw, NPC_SELF, LW(0), 1) + EVT_WAIT_FRAMES(20) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 5, MESSAGE_ID(0x11, 0x007B)) + EVT_CALL(NpcFacePlayer, NPC_SELF, 1) + EVT_WAIT_FRAMES(20) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x007C)) + EVT_CALL(ShowChoice, MESSAGE_ID(0x1E, 0x0011)) + EVT_WAIT_FRAMES(10) + EVT_SWITCH(LW(0)) + EVT_CASE_EQ(0) + EVT_CALL(ContinueSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x007D)) + EVT_CASE_EQ(1) + EVT_CALL(ContinueSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x007E)) + EVT_END_SWITCH + EVT_WAIT_FRAMES(10) + EVT_SET(GSWF(1375), 1) + EVT_CALL(SetEnemyFlagBits, -1, 4194304, 0) + EVT_ELSE + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 5, MESSAGE_ID(0x11, 0x007F)) + EVT_END_IF + EVT_CASE_LT(49) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0080)) + EVT_SET(GSWF(1376), 1) + EVT_CASE_LT(53) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0, MESSAGE_ID(0x11, 0x0085)) + EVT_CALL(EndSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0) + EVT_CALL(EndSpeech, -1, NPC_ANIM_lily_Palette_00_Anim_4, NPC_ANIM_lily_Palette_00_Anim_8, 0) + EVT_CASE_LT(60) + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_3, NPC_ANIM_lily_Palette_00_Anim_7, 0, MESSAGE_ID(0x11, 0x0086)) + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_2, NPC_ANIM_lily_Palette_00_Anim_1, 0, MESSAGE_ID(0x11, 0x0087)) + EVT_END_SWITCH + EVT_CALL(ResetCam, 0, EVT_FLOAT(4.0)) + EVT_EXEC_WAIT(N(802415E8)) + EVT_RETURN + EVT_END +}; -EvtScript N(init_80243D78) = SCRIPT({ - BindNpcInteract(NPC_SELF, N(interact_802437C8)); - match EVT_STORY_PROGRESS { - < STORY_CH6_GOT_WATER_STONE { - if (EVT_SAVE_FLAG(1375) == 0) { - SetNpcAnimation(NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_8); - InterpNpcYaw(NPC_SELF, 90, 1); - SetEnemyFlagBits(-1, 4194304, 1); - } - } - == STORY_CH6_GOT_WATER_STONE { - InterpNpcYaw(NPC_SELF, 270, 1); - } - >= STORY_CH6_FILLED_SPRING_WITH_WATER { - SetNpcPos(NPC_SELF, -67, -20, -105); - } - } -}); +EvtScript N(init_80243D78) = { + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_ADDR(N(interact_802437C8))) + EVT_SWITCH(GSW(0)) + EVT_CASE_LT(48) + EVT_IF_EQ(GSWF(1375), 0) + EVT_CALL(SetNpcAnimation, NPC_SELF, NPC_ANIM_lily_Palette_00_Anim_8) + EVT_CALL(InterpNpcYaw, NPC_SELF, 90, 1) + EVT_CALL(SetEnemyFlagBits, -1, 4194304, 1) + EVT_END_IF + EVT_CASE_EQ(48) + EVT_CALL(InterpNpcYaw, NPC_SELF, 270, 1) + EVT_CASE_GE(49) + EVT_CALL(SetNpcPos, NPC_SELF, -67, -20, -105) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; StaticNpc N(npcGroup_80243E64) = { .id = NPC_LILY, @@ -797,9 +837,10 @@ s32 N(D_80244070_CBD270) = { 0x00000000, }; -EvtScript N(80244074) = SCRIPT({ - -}); +EvtScript N(80244074) = { + EVT_RETURN + EVT_END +}; static s32 N(pad_4084)[] = { 0x00000000, 0x00000000, 0x00000000, diff --git a/tools/build/cc_dsl/compile_script.py b/tools/build/cc_dsl/compile_script.py deleted file mode 100755 index d1daf76f34..0000000000 --- a/tools/build/cc_dsl/compile_script.py +++ /dev/null @@ -1,941 +0,0 @@ -#! /usr/bin/python3 - -from sys import argv, stdin, stderr -from lark import Lark, exceptions, Tree, Transformer, Visitor, v_args, Token -from lark.visitors import Discard -import traceback - -DEBUG_OUTPUT = None # "debug.i" - - - -def eprint(*args, **kwargs): - print(*args, file=stderr, **kwargs) - -#write_buf = "" -def write(s): - #global write_buf - #write_buf += s - print(s, end="") - - if DEBUG_OUTPUT: - print(s, file=DEBUG_OUTPUT, end="") - -ANSI_RED = "\033[1;31;40m" -ANSI_RESET = "\u001b[0m" - -def pairs(seq): - i = iter(seq) - prev = next(i) - for item in i: - yield prev, item - prev = item - -script_parser = Lark(r""" - - block: "{" (_block SEMICOLON*)? "}" - - _block: stmt SEMICOLON _block - | stmt_no_semi SEMICOLON? _block - | stmt SEMICOLON - | stmt_no_semi - - ?stmt: call - | var_decl - | "goto" label -> label_goto - | "return" -> return_stmt - | "break" -> break_stmt - | "break match" -> break_match_stmt - | "break loop" -> break_loop_stmt - | "sleep" expr -> sleep_stmt - | "sleep" expr "secs" -> sleep_secs_stmt - | "spawn" expr -> spawn_stmt - | "await" expr -> await_stmt - | "jump" expr -> jump_stmt - | lhs "=" "spawn" expr -> spawn_set_stmt - | lhs "=" "does_script_exist" expr -> does_script_exist - | lhs set_op expr -> set_stmt - | lhs set_op "(int)" expr -> set_int_stmt - | lhs set_op "(float)" expr -> set_float_stmt - | lhs set_op "(const)" expr -> set_const_stmt - | bind_stmt - | bind_set_stmt - | "bind_padlock" expr expr collider_id expr -> bind_padlock_stmt - | "unbind" -> unbind_stmt - | "priority" expr -> set_priority - | "timescale" expr -> set_timescale - | "group" expr -> set_group - | suspend_stmt - | resume_stmt - | kill_stmt - | "buf_use" expr -> buf_use - | "buf_read" expr+ -> buf_read - | "buf_peek" expr expr -> buf_peek - | "buf_usef" expr -> buf_usef - | "buf_readf" expr+ -> buf_readf - | "buf_peekf" expr expr -> buf_peekf - | "arr_use" expr -> use_array - | "flags_use" expr -> use_flags - | "arr_new" expr expr -> new_array - - ?stmt_no_semi: label ":" -> label_decl - | if_stmt - | match_stmt - | loop_stmt - | ["await"] block -> block_stmt - | "spawn" block -> spawn_block_stmt - | "parallel" block -> parallel_block_stmt - - call: (c_identifier | HEX_INT) "(" [expr ("," expr)* [","]] ")" - - if_stmt: "if" "(" expr cond_op expr ")" block ["else" block] - - ?cond_op: "==" -> cond_op_eq - | "!=" -> cond_op_ne - | ">" -> cond_op_gt - | "<" -> cond_op_lt - | ">=" -> cond_op_ge - | "<=" -> cond_op_le - | "&" -> cond_op_flag - | "!&" -> cond_op_not_flag - - match_stmt: "match" expr "{" (match_cases SEMICOLON*)? "}" - match_const_stmt: "matchc" expr "{" (match_cases SEMICOLON*)? "}" - match_cases: match_case SEMICOLON* match_cases - | match_case - ?match_case: "else" block -> case_else - | cond_op expr ["," multi_case] block -> case_op - | expr "..." expr ["," multi_case] block -> case_range - | multi_case block -> case_multi - multi_case: expr ("," expr)* - - suspend_stmt: "suspend" control_type expr ("," control_type expr)* [","] - resume_stmt: "resume" control_type expr ("," control_type expr)* [","] - kill_stmt: "kill" control_type expr ("," control_type expr)* [","] - ?control_type: "group" -> control_type_group - | "others" -> control_type_others - | ["script"] -> control_type_script - - bind_stmt: "bind" expr expr collider_id - bind_set_stmt: lhs "=" "bind" expr expr collider_id - - loop_stmt: "loop" [expr] block - - var_decl: ("int"|"float") variable - - ?collider_id: "entity" "(" expr ")" -> entity_id - | expr - - ?expr: c_const_expr - | ESCAPED_STRING - | SIGNED_INT - | SIGNED_DECIMAL - | HEX_INT - | variable - | c_identifier - - ?lhs: c_const_expr - | variable - - ?set_op: "=" -> set_op_eq - | "+=" -> set_op_add - | "-=" -> set_op_sub - | "*=" -> set_op_mul - | "/=" -> set_op_div - | "%=" -> set_op_mod - | "&=" -> set_op_and - | "|=" -> set_op_or - - variable: "$" CNAME - - c_identifier: CNAME - - c_const_expr: "(" c_const_expr_internal ")" - c_const_expr_internal: "(" (c_const_expr_internal | NOT_PARENS)+ ")" - NOT_PARENS: /[^()]+/ - - SEMICOLON: ";" - - label: /[a-zA-Z0-9_]+/ - - %import common.CNAME - %import common.SIGNED_INT - %import common.DECIMAL - %import common.HEXDIGIT - %import common.ESCAPED_STRING - - SIGNED_DECIMAL: ["+"|"-"] DECIMAL - HEX_INT: ["+"|"-"] "0x" HEXDIGIT+ - - LINE_COMMENT: "//" /[^\n]*/ NEWLINE - %ignore LINE_COMMENT - - %import common.WS_INLINE - %import common.NEWLINE - %ignore WS_INLINE - %ignore NEWLINE - -""", start="block", propagate_positions=True)#, parser="lalr", cache=True) - -class BaseCmd(): - def __init__(self, *args, **kwargs): - self.args = args - self.meta = kwargs.get("meta", None) - self.context = [RootCtx()] - - def add_context(self, ctx): - if not isinstance(ctx, CmdCtx): - raise Exception() - self.context.insert(0, ctx) - - # must be overloaded - def opcode(self): - raise Exception() - - def to_bytecode(self): - return [ self.opcode(), len(self.args), *self.args ] - - def __str__(self): - return f"Cmd({self.opcode()}, {', '.join(map(str, self.args))})" - -class Cmd(BaseCmd): - def __init__(self, opcode, *args, **kwargs): - super().__init__(*args, **kwargs) - self._opcode = opcode - - def opcode(self): - return self._opcode - -class BreakCmd(BaseCmd): - def __init__(self, **kwargs): - super().__init__(**kwargs) - - def opcode(self): - for ctx in self.context: - opcode = ctx.break_opcode(self.meta) - if opcode: - return opcode - - def __str__(self): - return "BreakCmd" - -class CmdCtx(): - def break_opcode(self, meta): - pass - -class RootCtx(CmdCtx): - def break_opcode(self, meta): - return "EVT_OP_END" - -class IfCtx(CmdCtx): - pass - -class MatchCtx(CmdCtx): - def break_opcode(self, meta): - return "EVT_OP_BREAK_SWITCH" - -class LoopCtx(CmdCtx): - def break_opcode(self, meta): - return "EVT_OP_BREAK_LOOP" - -class LabelCtx(CmdCtx): - def __init__(self, label): - super().__init__() - self.label = label - - # TODO: implement break_opcode so you can do lbl: loop { break lbl } - -class BlockCtx(CmdCtx): - pass - -class SpawnCtx(CmdCtx): - pass - -class ParallelCtx(CmdCtx): - pass - -class CompileError(Exception): - def __init__(self, message, meta): - super().__init__(message) - self.meta = meta - -def is_fixed_var(v): - if type(v) == int: - if v <= -250000000: - return False - elif v <= -220000000: - return True - return False - -class LabelAllocation(Visitor): - def __init__(self): - super().__init__() - self.labels = [] - self.variables = [] - - def label_decl(self, tree): - name = tree.children[0].children[0] - if name in self.labels: - raise CompileError(f"label `{name}' already declared", tree.meta) - - try: - label_idx = int(name) - - while len(self.labels) <= label_idx: - self.labels.append(None) - - self.labels[label_idx] = name - except ValueError: - self.labels.append(name) - - def variable(self, tree): - name = tree.children[0] - - if name not in self.variables: - self.variables.append(name) - - if len(self.variables) > 16: - raise CompileError("too many variables (max 16)", tree.meta) - - def gen_label(self): - self.labels.append("$generated") - return len(self.labels) - 1 - -@v_args(tree=True) -class Compile(Transformer): - SIGNED_INT = str - HEX_INT = str - - def transform(self, tree): - self.alloc = LabelAllocation() - self.alloc.visit_topdown(tree) - return super().transform(tree) - - def c_identifier(self, tree): - if "_" in tree.children[0] and tree.children[0].isupper(): - return f"{tree.children[0]}" - return f"(Bytecode)(&{tree.children[0]})" - - def ESCAPED_STRING(self, str_with_quotes): - return f"(Bytecode)({str_with_quotes})" - - NOT_PARENS = str - def c_const_expr_internal(self, tree): - return f"({' '.join(tree.children)})" - def c_const_expr(self, tree): - return f"(Bytecode){tree.children[0]}" - - def SIGNED_DECIMAL(self, v): - # fixed-point - return int((float(v) * 1024) - 230000000) - - def block(self, tree): - # flatten children list - flat = [] - for node in tree.children: - if type(node) is list: - flat += node - elif isinstance(node, BaseCmd): - flat.append(node) - elif isinstance(node, Token) and (node.value.startswith("\n") or node.value == ";"): - pass - else: - raise Exception(f"block statment {type(node)} is not a BaseCmd: {node}") - return flat - def _block(self, tree): - if len(tree.children) == 1: - return [tree.children[0]] - else: - return [tree.children[0], *tree.children[2]] - - def call(self, tree): - # TODO: type checking etc - return Cmd("EVT_OP_CALL", *tree.children, meta=tree.meta) - - def if_stmt(self, tree): - if len(tree.children) == 4: # no else - a, op, b, block = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(IfCtx()) - return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd("EVT_OP_END_IF") ] - else: - a, op, b, block, else_block = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(IfCtx()) - for cmd in else_block: - if isinstance(cmd, BaseCmd): - cmd.add_context(IfCtx()) - return [ Cmd(op["if"], a, b, meta=tree.meta), *block, Cmd("EVT_OP_ELSE"), *else_block, Cmd("EVT_OP_END_IF") ] - - def cond_op_eq(self, tree): return { "if": "EVT_OP_IF_EQ", "case": "EVT_OP_CASE_EQ" } - def cond_op_ne(self, tree): return { "if": "EVT_OP_IF_NE", "case": "EVT_OP_CASE_NE" } - def cond_op_lt(self, tree): return { "if": "EVT_OP_IF_LT", "case": "EVT_OP_CASE_LT" } - def cond_op_gt(self, tree): return { "if": "EVT_OP_IF_GT", "case": "EVT_OP_CASE_GT" } - def cond_op_le(self, tree): return { "if": "EVT_OP_IF_LE", "case": "EVT_OP_CASE_LE" } - def cond_op_ge(self, tree): return { "if": "EVT_OP_IF_GE", "case": "EVT_OP_CASE_GE" } - def cond_op_flag(self, tree): return { "__op__": "&", "if": "EVT_OP_IF_FLAG", "case": "EVT_OP_CASE_FLAG" } - def cond_op_not_flag(self, tree): return { "__op__": "!&", "if": "EVT_OP_IF_NOT_FLAG" } - - def match_stmt(self, tree): - expr = tree.children[0] - - cases = [] - for node in tree.children[1:]: - if type(node) is list: - for el in node: - if type(el) is list: - cases += el - else: - cases.append(el) - - for cmd in cases: - if isinstance(cmd, BaseCmd): - cmd.add_context(MatchCtx()) - else: - raise Exception(f"uncompiled match case: {cmd}") - - return [ - Cmd("EVT_OP_SWITCH", expr, meta=tree.meta), - *cases, - Cmd("EVT_OP_END_SWITCH"), - ] - def match_const_stmt(self, tree): - commands = self.match_stmt(tree) - commands[0].opcode = "EVT_OP_MATCH_CONST" - return commands - def match_cases(self, tree): - if len(tree.children) == 1: - return [tree.children[0]] - else: - return [tree.children[0], *tree.children[1]] - - def case_else(self, tree): - return [Cmd("EVT_OP_CASE_DEFAULT"), *tree.children[0]] - def case_op(self, tree): - if len(tree.children) == 4: - op, expr, multi_case, block = tree.children - - if not "case" in op: - raise CompileError(f"operation `{opcodes['__op__']}' not supported in match cases", tree.meta) - - return [Cmd(op["case"], expr), *multi_case, *block, Cmd("EVT_OP_END_CASE_GROUP")] - else: - op, expr, block = tree.children - - if not "case" in op: - raise CompileError(f"operation `{opcodes['__op__']}' not supported in match cases", tree.meta) - - return [Cmd(op["case"], expr), *block] - def case_range(self, tree): - if len(tree.children) == 4: - a, b, multi_case, block = tree.children - return [Cmd("EVT_OP_CASE_RANGE", a, b), *multi_case, *block, Cmd("EVT_OP_END_CASE_GROUP")] - else: - a, b, block = tree.children - return [Cmd("EVT_OP_CASE_RANGE", a, b), *block] - def case_multi(self, tree): - multi_case, block = tree.children - return [*multi_case, *block, Cmd("EVT_OP_END_CASE_GROUP")] - - def multi_case(self, tree): - return [Cmd("EVT_OP_CASE_OR_EQ", expr) for expr in tree.children] - - def loop_stmt(self, tree): - expr = tree.children.pop(0) if len(tree.children) > 1 else 0 - block = tree.children[0] - - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(LoopCtx()) - - return [ Cmd("EVT_OP_LOOP", expr, meta=tree.meta), *block, Cmd("EVT_OP_END_LOOP") ] - - def return_stmt(self, tree): - return Cmd("EVT_OP_RETURN", meta=tree.meta) - - def break_stmt(self, tree): - return BreakCmd(meta=tree.meta) - - def break_match_stmt(self, tree): - return Cmd("EVT_OP_BREAK_SWITCH", meta=tree.meta) - - def break_loop_stmt(self, tree): - return Cmd("EVT_OP_BREAK_LOOP", meta=tree.meta) - - def set_priority(self, tree): - return Cmd("EVT_OP_SET_PRIORITY", tree.children[0], meta=tree.meta) - - def set_timescale(self, tree): - return Cmd("EVT_OP_SET_TIMESCALE", tree.children[0], meta=tree.meta) - - def set_group(self, tree): - return Cmd("EVT_OP_SET_GROUP", tree.children[0], meta=tree.meta) - - def suspend_stmt(self, tree): - commands = [] - for opcodes, expr in pairs(tree.children): - if not "suspend" in opcodes: - raise CompileError(f"`suspend {opcodes['__control_type__']}' not supported", meta=tree.meta) - commands.append(Cmd(opcodes["suspend"], expr, meta=tree.meta)) - return commands - def resume_stmt(self, tree): - commands = [] - for opcodes, expr in pairs(tree.children): - if not "resume" in opcodes: - raise CompileError(f"`resume {opcodes['__control_type__']}' not supported", meta=tree.meta) - commands.append(Cmd(opcodes["resume"], expr, meta=tree.meta)) - return commands - def kill_stmt(self, tree): - commands = [] - for opcodes, expr in pairs(tree.children): - if not "kill" in opcodes: - raise CompileError(f"`kill {opcodes['__control_type__']}' not supported", meta=tree.meta) - commands.append(Cmd(opcodes["kill"], expr, meta=tree.meta)) - return commands - def control_type_group(self, tree): - return { - "__control_type__": "group", - "suspend": "EVT_OP_SUSPEND_GROUP", - "resume": "EVT_OP_RESUME_GROUP", - } - def control_type_others(self, tree): - return { - "__control_type__": "others", - "suspend": "EVT_OP_SUSPEND_OTHERS", - "resume": "EVT_OP_RESUME_OTHERS", - } - def control_type_script(self, tree): - return { - "__control_type__": "script", - "suspend": "EVT_OP_SUSPEND_THREAD", - "resume": "EVT_OP_RESUME_THREAD", - "kill": "EVT_OP_KILL_THREAD", - } - - def sleep_stmt(self, tree): - return Cmd("EVT_OP_WAIT_FRAMES", tree.children[0], meta=tree.meta) - def sleep_secs_stmt(self, tree): - return Cmd("EVT_OP_WAIT_SECS", tree.children[0], meta=tree.meta) - - def bind_stmt(self, tree): - script, trigger, target = tree.children - return Cmd("EVT_OP_BIND_TRIGGER", script, trigger, target, 1, 0, meta=tree.meta) - def bind_set_stmt(self, tree): - ret, script, trigger, target = tree.children - return Cmd("EVT_OP_BIND_TRIGGER", script, trigger, target, 1, ret, meta=tree.meta) - def bind_padlock_stmt(self, tree): - script, trigger, target, items = tree.children - return Cmd("EVT_OP_BIND_PADLOCK", script, trigger, target, items, 0, 1, meta=tree.meta) - def unbind_stmt(self, tree): - return Cmd("EVT_OP_UNBIND", meta=tree.meta) - - def spawn_stmt(self, tree): - return Cmd("EVT_OP_EXEC", tree.children[0], meta=tree.meta) - def spawn_set_stmt(self, tree): - lhs, script = tree.children - return Cmd("EVT_OP_EXEC_GET_TID", script, lhs, meta=tree.meta) - def await_stmt(self, tree): - return Cmd("EVT_OP_EXEC_WAIT", tree.children[0], meta=tree.meta) - def jump_stmt(self, tree): - return Cmd("EVT_OP_JUMP", tree.children[0], meta=tree.meta) - - def set_stmt(self, tree): - lhs, opcodes, rhs = tree.children - if is_fixed_var(rhs): - opcode = opcodes.get("float", None) - if not opcode: - raise CompileError(f"float operation `{opcodes['__op__']}' not supported", tree.meta) - else: - opcode = opcodes.get("int", None) - if not opcode: - raise CompileError(f"int operation `{opcodes['__op__']}' not supported", tree.meta) - return Cmd(opcode, lhs, rhs) - def set_int_stmt(self, tree): - lhs, opcodes, rhs = tree.children - opcode = opcodes.get("int", None) - if not opcode: - raise CompileError(f"int operation `{opcodes['__op__']}' not supported", tree.meta) - return Cmd(opcode, lhs, rhs) - def set_float_stmt(self, tree): - lhs, opcodes, rhs = tree.children - opcode = opcodes.get("float", None) - if not opcode: - raise CompileError(f"float operation `{opcodes['__op__']}' not supported", tree.meta) - return Cmd(opcode, lhs, rhs) - def set_const_stmt(self, tree): - lhs, opcodes, rhs = tree.children - opcode = opcodes.get("const", None) - if not opcode: - raise CompileError(f"const operation `{opcodes['__op__']}' not supported", tree.meta) - return Cmd(opcode, lhs, rhs) - def set_op_eq(self, tree): - return { - "__op__": "=", - "int": "EVT_OP_SET", - "const": "EVT_OP_SET_CONST", - "float": "EVT_OP_SETF", - } - def set_op_add(self, tree): - return { - "__op__": "+", - "int": "EVT_OP_ADD", - "float": "EVT_OP_ADDF", - } - def set_op_sub(self, tree): - return { - "__op__": "-", - "int": "EVT_OP_SUB", - "float": "EVT_OP_SUBF", - } - def set_op_mul(self, tree): - return { - "__op__": "*", - "int": "EVT_OP_MUL", - "float": "EVT_OP_MULF", - } - def set_op_div(self, tree): - return { - "__op__": "/", - "int": "EVT_OP_DIV", - "float": "EVT_OP_DIVF", - } - def set_op_mod(self, tree): - return { - "__op__": "%", - "int": "EVT_OP_MOD", - } - def set_op_and(self, tree): - return { - "__op__": "&", - "int": "EVT_OP_BITWISE_AND", - "const": "EVT_OP_BITWISE_AND_CONST", - } - def set_op_or(self, tree): - return { - "__op__": "|", - "int": "EVT_OP_BITWISE_OR", - "const": "EVT_OP_BITWISE_OR_CONST", - } - - def variable(self, tree): - name = tree.children[0] - return self.alloc.variables.index(name) - 30000000 - - def var_decl(self, tree): - return [] - - def label_decl(self, tree): - if len(tree.children) == 1: - label = tree.children[0] - return Cmd("EVT_OP_LABEL", label, meta=tree.meta) - else: - label, cmd_or_block = tree.children - - if type(cmd_or_block) is not list: - cmd_or_block = [cmd_or_block] - - for cmd in cmd_or_block: - if isinstance(cmd, BaseCmd): - cmd.add_context(LabelCtx(label)) - - return [ - Cmd("EVT_OP_LABEL", label, meta=tree.meta), - *cmd_or_block - ] - def label_goto(self, tree): - label = tree.children[0] - return Cmd("EVT_OP_GOTO", label, meta=tree.meta) - def label(self, tree): - name = tree.children[0] - if name in self.alloc.labels: - return self.alloc.labels.index(name) - raise CompileError(f"label `{name}' is undeclared", tree.meta) - - def block_stmt(self, tree): - block, = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(BlockCtx()) - return block - def spawn_block_stmt(self, tree): - block, = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(SpawnCtx()) - return [ Cmd("EVT_OP_THREAD", meta=tree.meta), *block, Cmd("EVT_OP_END_THREAD") ] - def parallel_block_stmt(self, tree): - block, = tree.children - for cmd in block: - if isinstance(cmd, BaseCmd): - cmd.add_context(ParallelCtx()) - return [ Cmd("EVT_OP_CHILD_THREAD", meta=tree.meta), *block, Cmd("EVT_OP_END_CHILD_THREAD") ] - - def entity_id(self, tree): - expr, = tree.children - return f"({expr} + 0x4000)" - - def buf_use(self, tree): - return Cmd("EVT_OP_USE_BUF", tree.children[0], meta=tree.meta) - def buf_read(self, tree): - args = tree.children - cmds = [] - - while args: - if len(args) >= 4: - cmds.append(Cmd("EVT_OP_BUF_READ4", args.pop(0), args.pop(0), args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 3: - cmds.append(Cmd("EVT_OP_BUF_READ3", args.pop(0), args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 2: - cmds.append(Cmd("EVT_OP_BUF_READ2", args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 1: - cmds.append(Cmd("EVT_OP_BUF_READ1", args.pop(0), meta=tree.meta)) - else: - break - - return cmds - def buf_peek(self, tree): - return Cmd("EVT_OP_BUF_PEEK", tree.children[0], tree.children[1], meta=tree.meta) - - def buf_usef(self, tree): - return Cmd("EVT_OP_USE_FBUF", tree.children[0], meta=tree.meta) - def buf_readf(self, tree): - args = tree.children - cmds = [] - - while args: - if len(args) >= 4: - cmds.append(Cmd("EVT_OP_FBUF_READ4", args.pop(0), args.pop(0), args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 3: - cmds.append(Cmd("EVT_OP_FBUF_READ3", args.pop(0), args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 2: - cmds.append(Cmd("EVT_OP_FBUF_READ2", args.pop(0), args.pop(0), meta=tree.meta)) - elif len(args) == 1: - cmds.append(Cmd("EVT_OP_FBUF_READ1", args.pop(0), meta=tree.meta)) - else: - break - - return cmds - def buf_peekf(self, tree): - return Cmd("EVT_OP_FBUF_PEEK", tree.children[0], tree.children[1], meta=tree.meta) - - def use_array(self, tree): - return Cmd("EVT_OP_USE_ARRAY", tree.children[0], meta=tree.meta) - def use_flags(self, tree): - return Cmd("EVT_OP_USE_FLAGS", tree.children[0], meta=tree.meta) - def new_array(self, tree): - return Cmd("EVT_OP_NEW_ARRAY", tree.children[0], tree.children[1], meta=tree.meta) - - def does_script_exist(self, tree): - return Cmd("EVT_OP_IS_THREAD_RUNNING", tree.children[1], tree.children[0], meta=tree.meta) - -def compile_script(s): - tree = script_parser.parse(s) - - #eprint(tree.pretty()) - - commands = Compile().transform(tree) - - # add RETURN END if no explicit END (top-level `break') was given - if next((cmd for cmd in commands if cmd.opcode() == "EVT_OP_END"), None) == None: - commands += (Cmd("EVT_OP_RETURN"), Cmd("EVT_OP_END")) - - return commands - -def read_until_closing_paren(f, depth=1, lex_strings=False): - text = "" - - in_string = False - string_escape = False - - while True: - char = f.read(1) - - if len(char) == 0: - # EOF - return text - - if string_escape == True: - string_escape = False - elif char == "(" and not in_string: - depth += 1 - elif char == ")" and not in_string: - depth -= 1 - if depth == 0: - break - elif char == '"' and lex_strings: - in_string = not in_string - elif char == "\\" and in_string: - string_escape = True - - text += char - - return text - -def read_line(f): - line = "" - - while True: - char = f.read(1) - - if len(char) == 0: - # EOF - return line - - if char == "\n": - break - - line += char - - return line - -def gen_line_map(source, source_line_no = 1): - line_map = {} - output = "" - - output_line_no = 1 - - for line in source.splitlines(True): - if line[0] == "#": - parts = line[2:-1].split(" ") - source_line_no = int(parts[0]) - else: - line_map[output_line_no] = source_line_no - output += line - output_line_no += 1 - source_line_no += 1 - - return output, line_map - -# Expects output from C preprocessor on argv -SINGLE_FILE = False -import sys - -if __name__ == "__main__": - if DEBUG_OUTPUT is not None: - DEBUG_OUTPUT = open(DEBUG_OUTPUT, "w") - ''' - while char := stdin.read(1): - DEBUG_OUTPUT.write(char) - exit() - ''' - - in_file = stdin - if SINGLE_FILE: - in_file = open(sys.argv[1], "r") - - line_no = 1 - char_no = 1 - file_info = [] - error = False - - macro_name = "" # captures recent UPPER_CASE identifier - prev_char = "" - while not error: - char = in_file.read(1) - - if len(char) == 0: - # EOF - write(macro_name) - break - - if char == "#" and (prev_char == "\n" or prev_char == ""): - # cpp line/file marker - line = read_line(in_file) - line_split = line[1:].split(" ") - - line_no = int(line_split[0]) - file_info = line_split[1:] - - write("#" + line + "\n") - elif char == "(": - if SINGLE_FILE: - filename = sys.argv[1] - else: - filename = file_info[0][1:-1] - - # SCRIPT(...) - if macro_name == "SCRIPT": - read_data = read_until_closing_paren(in_file, lex_strings=True) - script_source, line_map = gen_line_map(read_data, source_line_no=line_no) - - try: - commands = compile_script(script_source) - - write("{\n") - for command in commands: - if command.meta: - write(f"# {line_map[command.meta.line]} {file_info[0]}\n") - write(" ") - for word in command.to_bytecode(): - if type(word) == str: - write(word) - elif type(word) == int: - write(f"0x{word & 0xFFFFFFFF:X}") - else: - raise Exception(f"{command}.to_bytecode() gave {type(word)} {word}") - write(", ") - write("\n") - write("}") - except exceptions.UnexpectedEOF as e: - eprint(f"{filename}:{line_no}: {ANSI_RED}error{ANSI_RESET}: unterminated SCRIPT(...) macro") - error = True - except exceptions.UnexpectedCharacters as e: - line = line_map[e.line] - char = script_source[e.pos_in_stream] - allowed = e.allowed - - eprint(f"{filename}:{line}: {ANSI_RED}script parse error{ANSI_RESET}: unexpected `{char}', expected {' or '.join(allowed)}") - eprint(e.get_context(script_source)) - - error = True - except exceptions.UnexpectedToken as e: - line = line_map[e.line] - - eprint(f"{filename}:{line}: {ANSI_RED}script parse error{ANSI_RESET}: unexpected `{e.token}'") - eprint(e.get_context(script_source)) - - error = True - except exceptions.VisitError as e: - if type(e.orig_exc) == CompileError: - line = line_map[e.orig_exc.meta.line] - eprint(f"{filename}:{line}: {ANSI_RED}script compile error{ANSI_RESET}: {e.orig_exc}") - else: - eprint(f"{filename}:{line_no}: {ANSI_RED}internal script transform error{ANSI_RESET}") - traceback.print_exc() - error = True - except CompileError as e: - line = line_map[e.meta.line] - eprint(f"{filename}:{line}: {ANSI_RED}script compile error{ANSI_RESET}: {e}") - error = True - except Exception as e: - eprint(f"{filename}:{line_no}: {ANSI_RED}internal script compilation error{ANSI_RESET}") - traceback.print_exc() - error = True - - line_no += script_source.count("\n") - write(f"\n# {line_no} {file_info[0]}\n") - else: - # leave non-macro in source - write(macro_name + char) - - macro_name = "" - elif char == "_" or (char >= 'A' and char <= 'Z'): - macro_name += char - else: - write(macro_name + char) - macro_name = "" - - if char == "\n": - char_no = 0 - line_no += 1 - - char_no += 1 - prev_char = char - - if error: - write("{ 1 / 0 };") - exit(1) - else: - exit(0) diff --git a/tools/build/cc_dsl/process_scripts.py b/tools/build/cc_dsl/process_scripts.py deleted file mode 100755 index 29dcfd860c..0000000000 --- a/tools/build/cc_dsl/process_scripts.py +++ /dev/null @@ -1,69 +0,0 @@ -#! /usr/bin/python3 - -import sys -from compile_script import read_until_closing_paren - -def read_scripts_in_file(in_file): - line_no = 1 - - macro_name = "" # captures recent UPPER_CASE identifier - prev_char = "" - while True: - char = in_file.read(1) - - if len(char) == 0: - # EOF - break - - if char == "#" and (prev_char == "\n" or prev_char == ""): - pass - elif char == "(": - # SCRIPT(...) - if macro_name == "SCRIPT": - pos_before = in_file.tell() - read_data = read_until_closing_paren(in_file, lex_strings=True) - line_no += read_data.count("\n") - assert read_data[0] == '{' - yield pos_before, in_file.tell(), read_data - - macro_name = "" - elif char == "_" or (char >= 'A' and char <= 'Z'): - macro_name += char - else: - macro_name = "" - - if char == "\n": - line_no += 1 - - prev_char = char - -def process_script(script): - # TODO - return script - -def process_file(filename): - with open(filename, "r") as f: - scripts = [k for k in read_scripts_in_file(f)] - f.seek(0) - file_content = f.read() - - pos_delta = 0 - - for start_pos, end_pos, script in scripts: - start_pos = start_pos - pos_delta - end_pos = end_pos - pos_delta - - script_len_before = len(script) - script = process_script(script) - script_len_after = len(script) - - pos_delta += script_len_before - script_len_after - - file_content = file_content[:start_pos] + script + file_content[end_pos-1:] - - with open(filename, "w") as f: - f.write(file_content) - -if __name__ == "__main__": - for filename in sys.argv[1:]: - process_file(filename) diff --git a/tools/build/configure.py b/tools/build/configure.py index 49d6351d98..c12ba578c1 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -56,7 +56,6 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra cc_272_dir = f"{BUILD_TOOLS}/cc/gcc2.7.2/" cc_272 = f"{cc_272_dir}/gcc" cxx = f"{BUILD_TOOLS}/cc/gcc/g++" - compile_script = f"$python {BUILD_TOOLS}/cc_dsl/compile_script.py" CPPFLAGS_COMMON = "-Iver/$version/build/include -Iinclude -Isrc -Iassets/$version -D_LANGUAGE_C -D_FINALROM " \ "-DVERSION=$version -DF3DEX_GBI_2 -D_MIPS_SZLONG=32" @@ -107,13 +106,6 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra deps="gcc", ) - ninja.rule("cc_dsl", - description="dsl $in", - command=f"bash -o pipefail -c '{cpp} {CPPFLAGS} {cppflags} $cppflags -MD -MF $out.d $in -o - | {compile_script} | {iconv} > $out.i && {cc} {cflags} $cflags $out.i -o $out'", - depfile="$out.d", - deps="gcc", - ) - ninja.rule("cc_ido", description="ido $in", command=f"{ccache}{cc_ido} -w {CPPFLAGS_COMMON} {cppflags} $cppflags -c -mips1 -O0 -G0 -non_shared -Xfullwarn -Xcpluscomm -o $out $in", @@ -345,7 +337,7 @@ class Configure: if task == "yay0": implicit.append(YAY0_COMPRESS_TOOL) - elif task in ["cc", "cc_dsl", "cxx"]: + elif task in ["cc", "cxx"]: order_only.append("generated_headers_" + self.version) ninja.build( @@ -381,14 +373,10 @@ class Configure: else: # papermario cflags = "-fforce-addr" - # check for dsl + # c task = "cc" if entry.src_paths[0].suffixes[-1] == ".cpp": task = "cxx" - with entry.src_paths[0].open() as f: - s = f.read() - if " SCRIPT(" in s or "#pragma SCRIPT" in s: - task = "cc_dsl" if seg.name.endswith("osFlash"): task = "cc_ido"