z_msgevent

This commit is contained in:
RevoSucks 2023-10-31 20:52:55 -04:00
commit dd37f53637
46 changed files with 5449 additions and 710 deletions

View File

@ -591,59 +591,167 @@ void ZeldaArena_GetSizes(size_t* outMaxFree, size_t* outFree, size_t* outAlloc);
s32 ZeldaArena_Check(void);
void ZeldaArena_Init(void* start, size_t size);
void ZeldaArena_Cleanup(void);
u8 ZeldaArena_IsInitialized(void);
// void func_8010A760(void);
// void func_8010A7CC(void);
// void func_8010A814(void);
// void func_8010A85C(void);
// void func_8010A8A4(void);
// void func_8010A8EC(void);
// void func_8010A990(void);
// void func_8010AA54(void);
// void func_8010AB30(void);
// void func_8010AB94(void);
// void func_8010AC00(void);
// void func_8010AD24(void);
// void func_8010ADD4(void);
// void func_8010AE48(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// UNK_TYPE4 func_8010AECC(UNK_TYPE4 param_1, s32 param_2, s32* param_3);
// void func_8010AF20(void);
// void func_8010AF6C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void func_8010AF94(void);
// void func_8010AFE0(void);
// void func_8010B010(void);
// void func_8010B06C(void);
// void func_8010B0B4(void);
// void func_8010B0DC(void);
// void func_8010B108(void);
// void func_8010B140(void);
// void func_8010B180(void);
// void func_8010B1BC(void);
// void func_8010B22C(void);
// void func_8010B284(void);
// void func_8010B2C0(void);
// void func_8010B300(void);
// void func_8010B434(void);
// void func_8010B4A4(void);
// void func_8010B520(void);
// void func_8010B664(void);
// void func_8010B7A8(void);
// void func_8010B828(void);
// void func_8010B878(void);
// void func_8010B8E4(void);
// void func_8010BB0C(void);
// void func_8010BB6C(void);
// void func_8010BBCC(void);
// void func_8010BC28(void);
// void func_8010BC7C(void);
// void func_8010BD48(void);
// void func_8010BD90(void);
// void func_8010BDDC(void);
// void func_8010BE78(void);
// void func_8010BEBC(void);
// void func_8010BEF0(void);
// void func_8010BF24(void);
s32 func_8010BF58(Actor* actor, PlayState* play, void* param_3, UNK_PTR param_4, s32* param_5);
u8 ZeldaArena_IsInitialized();
// void func_80102E40(void);
// void func_80102E90(void);
// void func_80102EA4(void);
void func_80102EB4(u32 param_1);
void func_80102ED0(u32 param_1);
s32 func_80102EF0(PlayState* play);
// void func_80102F9C(void);
// void func_80103090(void);
// void func_801030B4(void);
// void func_801030F4(void);
// void func_801031D0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_801039EC(void);
// void func_80103A10(void);
// void func_80103A58(void);
// void func_8010439C(void);
// void func_801045AC(void);
// void func_80104AE8(void);
// void func_80104C80(void);
void func_80104CF4(PlayState* play);
// void func_80104F34(void);
s32 func_80105294(void);
s16 func_80105318(void);
// void func_80105328(void);
// void func_8010534C(void);
void func_8010549C(PlayState* play, void* segmentAddress);
void func_8010565C(PlayState* play, u8 num, void* segmentAddress);
void func_80105818(PlayState* play, u32 uParm2, TransitionActorEntry* puParm3);
void func_80105A40(PlayState* play);
void func_80105B34(PlayState* play);
void func_80105C40(s16 arg0);
// void func_80105FE0(void);
// void func_80106408(void);
// void func_80106450(void);
// void func_801064CC(void);
s32 func_80106530(PlayState* play);
// void func_8010657C(void);
void func_80106644(PlayState* play, s16 arg1, s16 arg2, s16 arg3);
// void func_8010683C(void);
// void func_801068B4(void);
// void func_801068D8(void);
void* func_801068FC(PlayState* play, void* arg1, size_t size);
// void func_80106BEC(void);
// void func_80106D08(void);
// void func_80106D5C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_80107B78(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_80108124(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
// void func_80108558(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
// void func_80108A10(void);
// void func_80108A64(void);
void func_80108AF8(PlayState* play);
s32 func_801090B0(s32 arg0);
s32 func_80109124(s16 arg0);
void func_801091F0(PlayState* play);
void func_80109428(PlayState* play);
// void func_801094A0(void);
// void func_801094C8(void);
// void func_801094F8(void);
// void func_80109528(void);
// void func_8010954C(void);
// void func_8010956C(void);
// void func_8010958C(void);
// void func_801095AC(void);
// void func_801095DC(void);
// void func_8010960C(void);
// void func_80109630(void);
// void func_80109650(void);
// void func_80109670(void);
// void func_801096D4(void);
// void func_80109714(void);
// void func_80109754(void);
// void func_801097C8(void);
// void func_8010983C(void);
// void func_801098A0(void);
// void func_80109908(void);
// UNK_TYPE4 func_80109964(s32 param_1);
// void func_8010997C(void);
// void func_801099AC(void);
// void func_801099DC(void);
// void func_80109A00(void);
// void func_80109A20(void);
// void func_80109A40(void);
// void func_80109A98(void);
// void func_80109AD8(void);
// void func_80109B38(void);
// void func_80109BA0(void);
// void func_80109BF4(void);
// void func_80109C38(void);
// void func_80109CBC(void);
// void func_80109D40(void);
// void func_80109DD8(void);
// void func_80109E70(void);
// void func_80109EF8(void);
// void func_80109F78(void);
s32 Map_GetDungeonOrBossAreaIndex(PlayState* play);
s32 Map_IsInDungeonOrBossArea(PlayState* play);
s32 func_8010A0A4(PlayState* play);
// void Map_GetDungeonAreaIndex(PlayState* play);
// void Map_IsInDungeonArea(PlayState* play);
// void Map_GetBossAreaIndex(PlayState* play);
// void Map_IsInBossArea(PlayState* play);
// void func_8010A238(PlayState* play);
// void func_8010A2AC(PlayState* play);
void Minimap_SavePlayerRoomInitInfo(PlayState* play);
void Map_InitRoomData(PlayState* play, s16 room);
void Map_Destroy(PlayState* play);
void Map_Init(PlayState* play);
void Minimap_Draw(PlayState* play);
void Map_Update(PlayState* play);
// void MsgEvent_Cmd00(void);
// void MsgEvent_Cmd01(void);
// void MsgEvent_Cmd02(void);
// void MsgEvent_Cmd03(void);
// void MsgEvent_Cmd04(void);
// void MsgEvent_Cmd05(void);
// void MsgEvent_Cmd06(void);
// void MsgEvent_Cmd07(void);
// void MsgEvent_Cmd08(void);
// void MsgEvent_Cmd09(void);
// void MsgEvent_Cmd10(void);
// void MsgEvent_Cmd11(void);
// void MsgEvent_Cmd12(void);
// void MsgEvent_Cmd13(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// UNK_TYPE4 MsgEvent_Cmd14(UNK_TYPE4 param_1, s32 param_2, s32* param_3);
// void MsgEvent_Cmd15(void);
// void MsgEvent_Cmd16(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5);
// void MsgEvent_Cmd17(void);
// void MsgEvent_Cmd18(void);
// void MsgEvent_Cmd19(void);
// void MsgEvent_Cmd20(void);
// void MsgEvent_Cmd21(void);
// void MsgEvent_Cmd22(void);
// void MsgEvent_Cmd23(void);
// void MsgEvent_Cmd24(void);
// void MsgEvent_Cmd25(void);
// void MsgEvent_Cmd26(void);
// void MsgEvent_Cmd27(void);
// void MsgEvent_Cmd28(void);
// void MsgEvent_Cmd29(void);
// void MsgEvent_Cmd30(void);
// void MsgEvent_Cmd31(void);
// void MsgEvent_Cmd32(void);
// void MsgEvent_Cmd33(void);
// void MsgEvent_Cmd34(void);
// void MsgEvent_Cmd35(void);
// void MsgEvent_Cmd36(void);
// void MsgEvent_Cmd37(void);
// void MsgEvent_Cmd38(void);
// void MsgEvent_Cmd39(void);
// void MsgEvent_Cmd40(void);
// void MsgEvent_Cmd41(void);
// void MsgEvent_Cmd42(void);
// void MsgEvent_Cmd43(void);
// void MsgEvent_Cmd44(void);
// void MsgEvent_Cmd45(void);
// void MsgEvent_Cmd46(void);
// void MsgEvent_Cmd47(void);
// void MsgEvent_Cmd48(void);
// void MsgEvent_Cmd49(void);
// void MsgEvent_Cmd50(void);
s32 MsgEvent_RunScript(Actor* actor, PlayState* play, MsgScript* script, MsgEventCallback callback, s32* pos);
void Nmi_Init(void);
void Nmi_SetPrenmiStart(void);
// s32 Nmi_GetPrenmiHasStarted(void);
@ -712,7 +820,7 @@ void func_80123E90(PlayState* play, Actor* actor);
s32 func_80123F2C(PlayState* play, s32 ammo);
s32 Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 yRange);
u8 Player_GetStrength(void);
u8 Player_GetMask(PlayState* play);
s32 Player_GetMask(PlayState* play);
void Player_RemoveMask(PlayState* play);
s32 Player_HasMirrorShieldEquipped(PlayState* play);
s32 Player_IsHoldingMirrorShield(PlayState* play);

View File

@ -102,6 +102,61 @@ extern u8 kanfontOrdering[92];
// extern actor_init_var_func sInitChainHandlers[11];
extern UNK_PTR D_801BF5C0;
// extern UNK_TYPE4 D_801BEAD4;
// extern UNK_TYPE4 D_801BEAD8;
// extern UNK_TYPE1 D_801BEAE0;
// extern UNK_TYPE4 D_801BEAF4;
// extern UNK_TYPE4 D_801BEAF8;
// extern UNK_TYPE4 D_801BEB04;
// extern UNK_TYPE4 D_801BEB08;
// extern UNK_TYPE4 D_801BEB14;
// extern UNK_TYPE4 D_801BEB18;
// extern UNK_TYPE4 D_801BEB24;
// extern UNK_TYPE4 D_801BEB28;
// extern UNK_TYPE1 D_801BEB38;
// extern UNK_TYPE4 D_801BEBB8;
// extern UNK_TYPE4 D_801BEBD8;
// extern UNK_TYPE2 D_801BEBF8;
// extern UNK_TYPE2 D_801BEBFA;
// extern UNK_TYPE2 D_801BEBFC;
// extern UNK_TYPE2 D_801BEC10;
extern UNK_PTR D_801BEC14;
// extern UNK_TYPE4 D_801BEC1C;
// extern UNK_TYPE4 D_801BEC20;
// extern UNK_TYPE1 D_801BEC24;
// extern UNK_TYPE1 D_801BEC2C;
// extern UNK_TYPE2 D_801BEC5C;
// extern UNK_TYPE2 D_801BEC5E;
// extern UNK_TYPE4 D_801BEC70;
// extern UNK_TYPE1 D_801BEC84;
// extern UNK_TYPE1 D_801BECA4;
// extern UNK_TYPE1 D_801BECC4;
// extern UNK_TYPE1 D_801BECE4;
// extern UNK_TYPE1 D_801BED00;
// extern UNK_TYPE2 D_801BED24;
// extern UNK_TYPE1 D_801BED3C;
// extern UNK_TYPE1 D_801BED40;
// extern UNK_TYPE1 D_801BED4C;
// extern UNK_TYPE1 D_801BED54;
// extern UNK_TYPE1 D_801BED55;
// extern UNK_TYPE1 D_801BED56;
// extern UNK_TYPE1 D_801BED88;
// extern UNK_TYPE1 D_801BEFC8;
// extern UNK_TYPE1 D_801BF15C;
// extern UNK_TYPE1 D_801BF170;
// extern UNK_TYPE1 D_801BF176;
// extern UNK_TYPE1 D_801BF177;
// extern UNK_TYPE1 D_801BF178;
// extern UNK_TYPE1 D_801BF3B4;
// extern UNK_TYPE2 D_801BF550;
// extern UNK_TYPE2 D_801BF554;
// extern UNK_TYPE2 D_801BF558;
// extern UNK_TYPE4 D_801BF55C;
// extern UNK_TYPE4 D_801BF580;
// extern UNK_TYPE4 D_801BF594;
// extern UNK_TYPE4 D_801BF5A4;
// extern UNK_TYPE2 D_801BF5B0;
// extern UNK_TYPE1 D_801BF68C;
extern FlexSkeletonHeader* gPlayerSkeletons[PLAYER_FORM_MAX];
extern PlayerModelIndices gPlayerModelTypes[];

View File

@ -64,6 +64,7 @@
#include "z64rumble.h"
#include "z64transition.h"
#include "z64view.h"
#include "z64msgevent.h"
#include "regs.h"

395
include/z64msgevent.h Normal file
View File

@ -0,0 +1,395 @@
#ifndef Z64MSGEVENT_H
#define Z64MSGEVENT_H
#include "PR/ultratypes.h"
struct PlayState;
struct Actor;
typedef enum {
MSCRIPT_CMD_00,
MSCRIPT_CMD_01,
MSCRIPT_CMD_02,
MSCRIPT_CMD_03,
MSCRIPT_CMD_04,
MSCRIPT_CMD_05,
MSCRIPT_CMD_06,
MSCRIPT_CMD_07,
MSCRIPT_CMD_08,
MSCRIPT_CMD_09,
MSCRIPT_CMD_10,
MSCRIPT_CMD_11,
MSCRIPT_CMD_12,
MSCRIPT_CMD_13,
MSCRIPT_CMD_14,
MSCRIPT_CMD_15,
MSCRIPT_CMD_16,
MSCRIPT_CMD_17,
MSCRIPT_CMD_18,
MSCRIPT_CMD_19,
MSCRIPT_CMD_20,
MSCRIPT_CMD_21,
MSCRIPT_CMD_22,
MSCRIPT_CMD_23,
MSCRIPT_CMD_24,
MSCRIPT_CMD_25,
MSCRIPT_CMD_26,
MSCRIPT_CMD_27,
MSCRIPT_CMD_28,
MSCRIPT_CMD_29,
MSCRIPT_CMD_30,
MSCRIPT_CMD_31,
MSCRIPT_CMD_32,
MSCRIPT_CMD_33,
MSCRIPT_CMD_34,
MSCRIPT_CMD_35,
MSCRIPT_CMD_36,
MSCRIPT_CMD_BRANCH_ON_ITEM,
MSCRIPT_CMD_38,
MSCRIPT_CMD_39,
MSCRIPT_CMD_40,
MSCRIPT_CMD_41,
MSCRIPT_CMD_DEL_ITEM,
MSCRIPT_CMD_43,
MSCRIPT_CMD_44,
MSCRIPT_CMD_45,
MSCRIPT_CMD_46,
MSCRIPT_CMD_47,
MSCRIPT_CMD_48,
MSCRIPT_CMD_49,
MSCRIPT_CMD_50
} MsgScriptCmd;
typedef u8 MsgScript;
typedef s32 (*MsgEventCallback)(struct Actor* thisx, struct PlayState* play);
typedef s32 (*MsgEventHandler)(struct Actor* actor, struct PlayState* play, u8** scriptPtr, MsgEventCallback callback, s32*);
#define MSCRIPT_GET_8(script, i) ((script)[i])
#define MSCRIPT_GET_16(script, i) ((((script)[i + 1] | ((script)[i] << 8))))
// Command macros
#define MSCRIPT_PACK_8(v) (u8)(v)
#define MSCRIPT_PACK_16(v) (u8)_SHIFTR(v, 8, 8), (u8)_SHIFTR(v, 0, 8)
/**
*
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(flags, test, skip) \
MSCRIPT_CMD_00, MSCRIPT_PACK_8(flags), MSCRIPT_PACK_8(test), MSCRIPT_PACK_16(skip)
#define MSCRIPT_BRANCH_ON_WEEK_EVENT_REG_LENGTH 5
/**
*
* Size = 3
*/
#define MSCRIPT_BRANCH_IF_GORON(skip) \
MSCRIPT_CMD_01, MSCRIPT_PACK_16(skip)
/**
*
* Size = 3
*/
#define MSCRIPT_BRANCH_IF_ZORA(skip) \
MSCRIPT_CMD_02, MSCRIPT_PACK_16(skip)
/**
*
* Size = 3
*/
#define MSCRIPT_BRANCH_IF_DEKU(skip) \
MSCRIPT_CMD_03, MSCRIPT_PACK_16(skip)
/**
*
* Size = 3
*/
#define MSCRIPT_BRANCH_IF_HUMAN(skip) \
MSCRIPT_CMD_04, MSCRIPT_PACK_16(skip)
/**
*
* Size = 7
*/
#define MSCRIPT_BRANCH_ON_TEXT_CHOICE(skip0, skip1, skip2) \
MSCRIPT_CMD_05, MSCRIPT_PACK_16(skip0), MSCRIPT_PACK_16(skip1), MSCRIPT_PACK_16(skip2)
/**
*
* Size = 5
*/
#define MSCRIPT_OFFER_ITEM(unk, skip) \
MSCRIPT_CMD_06, MSCRIPT_PACK_16(unk), MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_CMD07(skip) \
MSCRIPT_CMD_07, MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_RUPEES(rupees, skip) \
MSCRIPT_CMD_08, MSCRIPT_PACK_16(rupees), MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(skip) \
MSCRIPT_CMD_09, MSCRIPT_PACK_16(skip)
/**
* Size = 13
*/
#define MSCRIPT_BRANCH_ON_DAY(skipDay1, skipNight1, skipDay2, skipNight2, skipDay3, skipNight3) \
MSCRIPT_CMD_10, \
MSCRIPT_PACK_16(skipDay1), MSCRIPT_PACK_16(skipNight1), \
MSCRIPT_PACK_16(skipDay2), MSCRIPT_PACK_16(skipNight2), \
MSCRIPT_PACK_16(skipDay3), MSCRIPT_PACK_16(skipNight3)
/**
* Size = 3
*/
#define MSCRIPT_CMD11(skip) \
MSCRIPT_CMD_11, MSCRIPT_PACK_16(skip)
/**
* Size = 1
*/
#define MSCRIPT_AWAIT_TEXT() \
MSCRIPT_CMD_12
/**
* Size = 1
*/
#define MSCRIPT_CMD13() \
MSCRIPT_CMD_13
/**
* Size = 3
*/
#define MSCRIPT_BEGIN_TEXT(arg) \
MSCRIPT_CMD_14, MSCRIPT_PACK_16(arg)
/**
* Size = 3
*/
#define MSCRIPT_CONTINUE_TEXT(arg) \
MSCRIPT_CMD_15, MSCRIPT_PACK_16(arg)
/**
* Size = 1
*/
#define MSCRIPT_DONE() \
MSCRIPT_CMD_16
/**
* Size = 3
*/
#define MSCRIPT_WEEK_EVENT_REG_SET(flags, value) \
MSCRIPT_CMD_17, MSCRIPT_PACK_8(flags), MSCRIPT_PACK_8(value)
/**
* Size = 1
*/
#define MSCRIPT_CLOSE_TEXT() \
MSCRIPT_CMD_18
/**
* Size = 3
*/
#define MSCRIPT_COLLECT_SET(collectFlag) \
MSCRIPT_CMD_19, MSCRIPT_PACK_16(collectFlag)
/**
* Size = 3
*/
#define MSCRIPT_CHANGE_RUPEES(unk) \
MSCRIPT_CMD_20, MSCRIPT_PACK_16(unk)
/**
* Size = 1
*/
#define MSCRIPT_PAUSE() \
MSCRIPT_CMD_21
/**
* Size = 1
*/
#define MSCRIPT_CMD22() \
MSCRIPT_CMD_22
/**
* Size = 1
*/
#define MSCRIPT_FOCUS_TO_CHILD() \
MSCRIPT_CMD_23
/**
* Size = 1
*/
#define MSCRIPT_FOCUS_TO_SELF() \
MSCRIPT_CMD_24
/**
* Size = 3
*/
#define MSCRIPT_JUMP(skip) \
MSCRIPT_CMD_25, MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_QUEST_ITEM(questItem, skip) \
MSCRIPT_CMD_26, MSCRIPT_PACK_16(questItem), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_EVENT_INF(flag, value, skip) \
MSCRIPT_CMD_27, MSCRIPT_PACK_8(flag), MSCRIPT_PACK_8(value), MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_SET_EVENT_INF(flag, value) \
MSCRIPT_CMD_28, MSCRIPT_PACK_8(flag), MSCRIPT_PACK_8(value)
/**
* Size = 3
*/
#define MSCRIPT_UNSET_EVENT_INF(flag, value) \
MSCRIPT_CMD_29, MSCRIPT_PACK_8(flag), MSCRIPT_PACK_8(value)
/**
* Size = 9
*/
#define MSCRIPT_BRANCH_ON_ITEMACTION(unk, skipEqual, skipDefault, skipUnk) \
MSCRIPT_CMD_30, MSCRIPT_PACK_16(unk), MSCRIPT_PACK_16(skipEqual), MSCRIPT_PACK_16(skipDefault), MSCRIPT_PACK_16(skipUnk)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_SONG_OBTAINED(questItem, skip) \
MSCRIPT_CMD_31, MSCRIPT_PACK_16(questItem), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_WORN_MASK(mask, skip) \
MSCRIPT_CMD_32, MSCRIPT_PACK_16(mask), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_TIME_GT(hours, minutes, skip) \
MSCRIPT_CMD_33, MSCRIPT_PACK_8(hours), MSCRIPT_PACK_8(minutes), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_TIME_LEQ(hours, minutes, skip) \
MSCRIPT_CMD_34, MSCRIPT_PACK_8(hours), MSCRIPT_PACK_8(minutes), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_SWITCH_FLAG(switchFlag, skip) \
MSCRIPT_CMD_35, MSCRIPT_PACK_16(switchFlag), MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_SET_SWITCH_FLAG(switchFlag) \
MSCRIPT_CMD_36, MSCRIPT_PACK_16(switchFlag)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_ON_ITEM(item, skip) \
MSCRIPT_CMD_BRANCH_ON_ITEM, MSCRIPT_PACK_16(item), MSCRIPT_PACK_16(skip)
/**
* Size = 7
*/
#define MSCRIPT_BRANCH_ON_TIME_INTERVAL(hours1, minutes1, hours2, minutes2, skip) \
MSCRIPT_CMD_38, MSCRIPT_PACK_8(hours1), MSCRIPT_PACK_8(minutes1), MSCRIPT_PACK_8(hours2), MSCRIPT_PACK_8(minutes2), MSCRIPT_PACK_16(skip)
/**
* Size = 5
*/
#define MSCRIPT_BRANCH_IF_DAY(day, skip) \
MSCRIPT_CMD_39, MSCRIPT_PACK_16(day), MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_BRANCH_ON_CALLBACK_2(skip) \
MSCRIPT_CMD_40, MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_HAS_POWDER_KEG(skip) \
MSCRIPT_CMD_41, MSCRIPT_PACK_16(skip)
/**
* Size = 3
*/
#define MSCRIPT_DEL_ITEM(item) \
MSCRIPT_CMD_DEL_ITEM, MSCRIPT_PACK_16(item)
/**
* Size = 7
*/
#define MSCRIPT_BRANCH_ON_CALLBACK(skip1, skip2, skip3) \
MSCRIPT_CMD_43, MSCRIPT_PACK_16(skip1), MSCRIPT_PACK_16(skip2), MSCRIPT_PACK_16(skip3)
/**
* Size = 3
*/
#define MSCRIPT_CMD44(textId) \
MSCRIPT_CMD_44, MSCRIPT_PACK_16(textId)
/**
* Size = 3
*/
#define MSCRIPT_NOTEBOOK_EVENT(event) \
MSCRIPT_CMD_45, MSCRIPT_PACK_16(event)
/**
* Size = 1
*/
#define MSCRIPT_CMD46() \
MSCRIPT_CMD_46
/**
* Size = 3
*/
#define MSCRIPT_JUMP_3(skip) \
MSCRIPT_CMD_47, MSCRIPT_PACK_16(skip)
/**
* Size = 1
*/
#define MSCRIPT_PLAY_DECIDE() \
MSCRIPT_CMD_48
/**
* Size = 1
*/
#define MSCRIPT_PLAY_CANCEL() \
MSCRIPT_CMD_49
/**
* Size = 1
*/
#define MSCRIPT_PLAY_ERROR() \
MSCRIPT_CMD_50
#endif

1
spec
View File

@ -484,7 +484,6 @@ beginseg
include "build/src/code/z_map_data.o"
include "build/src/code/z_map_exp.o"
include "build/src/code/z_msgevent.o"
include "build/data/code/z_msgevent.data.o"
include "build/src/code/z_nmi_buff.o"
include "build/src/code/code_8010C1B0.o"
include "build/src/code/z_olib.o"

File diff suppressed because it is too large Load Diff

View File

@ -1385,7 +1385,7 @@ u8 Player_GetStrength(void) {
return sPlayerStrengths[GET_PLAYER_FORM];
}
u8 Player_GetMask(PlayState* play) {
s32 Player_GetMask(PlayState* play) {
Player* player = GET_PLAYER(play);
return player->currentMask;

View File

@ -30,20 +30,43 @@ ActorInit Dm_Tag_InitVars = {
/**/ NULL,
};
s32 D_80C22BF0[] = {
0x0E28F00C,
0x15090000,
0x10000000,
MsgScript D_80C22BF0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F0),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_PAUSE(),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
};
s32 D_80C22BFC[] = {
0x0900000E, 0x28F10C09, 0x00000E28, 0xF20C0900, 0x000E28F3, 0x0C090000, 0x0E28F40C,
0x0900000E, 0x28F50C09, 0x00000E28, 0xF60C1511, 0x55040900, 0x00100000,
MsgScript D_80C22BFC[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F1),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F2),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0011 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F3),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0018 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F4),
/* 0x001B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001F 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F5),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0026 0x03 */ MSCRIPT_BEGIN_TEXT(0x28F6),
/* 0x0029 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002A 0x01 */ MSCRIPT_PAUSE(),
/* 0x002B 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x55, 0x04),
/* 0x002E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0031 0x01 */ MSCRIPT_DONE(),
};
s32 D_80C22C30[] = {
0x0E28EF0C,
0x10000000,
MsgScript D_80C22C30[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28EF),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
Actor* func_80C22350(DmTag* this, PlayState* play, u8 actorCat, s16 actorId) {
@ -91,8 +114,8 @@ s16 func_80C2247C(DmTag* this, s32 numCutscenes) {
return csId;
}
s32 func_80C224D8(DmTag* this, PlayState* play) {
s32 pad;
s32 func_80C224D8(Actor* thisx, PlayState* play) {
DmTag* this = THIS;
Actor* sp30;
Actor* sp2C;
s16 csId = this->actor.csId;
@ -169,7 +192,9 @@ s32 func_80C224D8(DmTag* this, PlayState* play) {
return ret;
}
s32 func_80C227E8(DmTag* this, PlayState* play) {
s32 func_80C227E8(Actor* thisx, PlayState* play) {
DmTag* this = THIS;
if (this->unk_1A4 == 0) {
func_800B7298(play, &this->actor, PLAYER_CSACTION_WAIT);
play->nextEntrance = ENTRANCE(STOCK_POT_INN, 4);
@ -182,7 +207,7 @@ s32 func_80C227E8(DmTag* this, PlayState* play) {
return false;
}
s32* func_80C22880(DmTag* this, PlayState* play) {
MsgScript* func_80C22880(DmTag* this, PlayState* play) {
s32 time;
switch (this->unk_18E) {
@ -230,7 +255,7 @@ void DmTag_DoNothing(DmTag* this, PlayState* play) {
}
void func_80C229FC(DmTag* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
this->actionFunc = func_80C229AC;
}
}

View File

@ -6,7 +6,6 @@
struct DmTag;
typedef void (*DmTagActionFunc)(struct DmTag*, PlayState*);
typedef s32 (*DmTagMsgEventFunc)(struct DmTag*, PlayState*);
typedef struct DmTag {
/* 0x000 */ Actor actor;
@ -14,11 +13,11 @@ typedef struct DmTag {
/* 0x188 */ DmTagActionFunc actionFunc;
/* 0x18C */ u16 unk_18C;
/* 0x18E */ u8 unk_18E;
/* 0x190 */ s32* msgEventScript;
/* 0x190 */ MsgScript* msgEventScript;
/* 0x194 */ s32 msgEventArg4;
/* 0x198 */ UNK_TYPE1 pad198[0xC];
/* 0x1A4 */ s16 unk_1A4;
/* 0x1A8 */ DmTagMsgEventFunc msgEventCallback;
/* 0x1A8 */ MsgEventCallback msgEventCallback;
} DmTag; // size = 0x1AC
#endif // Z_DM_TAG_H

View File

@ -39,13 +39,36 @@ static u8 D_80BD3DB0[] = {
/* 0x37 */ SCHEDULE_CMD_RET_NONE(),
};
s32 D_80BD3DE8[] = { 0x0E28FF0C, 0x10000000 };
MsgScript D_80BD3DE8[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28FF),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BD3DF0[] = { 0x0E29000C, 0x10000000 };
MsgScript D_80BD3DF0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2900),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BD3DF8[] = { 0x00330100, 0x050E28FE, 0x0C100E28, -0x03F3F000 };
MsgScript D_80BD3DF8[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x33, 0x01, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x28FE),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
s32 D_80BD3E08[] = { 0x0E28FD0C, 0x0F29540C, 0x10000000 };
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x28FC),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BD3E08[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28FD),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2954),
/* 0x0007 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Ah_InitVars = {
/**/ ACTOR_EN_AH,
@ -363,7 +386,7 @@ s32 func_80BD3198(EnAh* this, PlayState* play) {
return false;
}
s32* func_80BD3294(EnAh* this, PlayState* play) {
MsgScript* func_80BD3294(EnAh* this, PlayState* play) {
s32 mask = Player_GetMask(play);
if (PLAYER_MASK_KAFEIS_MASK == mask) {
@ -514,8 +537,8 @@ void func_80BD3768(EnAh* this, PlayState* play) {
Vec3f sp40;
Vec3f sp34;
if (func_8010BF58(&this->actor, play, func_80BD3294(this, play), NULL, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_2D8, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, func_80BD3294(this, play), NULL, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_2D8, 3, 7);
this->unk_2D8 &= ~8;
this->unk_2D8 |= 0x80;
this->unk_2F4 = 20;

View File

@ -36,52 +36,360 @@ static u8 D_80BDFC70[] = {
/* 0x46 */ SCHEDULE_CMD_RET_VAL_L(1),
};
s32 D_80BDFCBC[] = {
0x09000017, 0x0E27A50C, 0x09000018, 0x0E27A60C, 0x09000017, 0x0E27A70C, 0x09000018, 0x0E27A80C,
0x09000017, 0x0E27A90C, 0x09000018, 0x0E27AA0C, 0x09000017, 0x0E27AB0C, 0x09000018, 0x0E27AC0C,
0x09000017, 0x0E27AD2D, 0x000B2D00, 0x080C1159, 0x08090000, 0x10000000,
MsgScript D_80BDFCBC[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A5),
/* 0x0007 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0008 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x000C 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A6),
/* 0x000F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0013 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0014 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A7),
/* 0x0017 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0018 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x001C 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A8),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0023 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0024 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A9),
/* 0x0027 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0028 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x002C 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AA),
/* 0x002F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0033 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0034 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AB),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x003C 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AC),
/* 0x003F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0043 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0044 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AD),
/* 0x0047 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x004A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x004D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x59, 0x08),
/* 0x0051 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0054 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BDFD14[] = {
0x00562000, 0xA2090000, 0x170E2AA6, 0x0C090000, 0x180E2AA7, 0x0C090000, 0x170E2AA8, 0x0C090000,
0x180E2AA9, 0x0C090000, 0x170E2AAA, 0x0C090000, 0x180E2AAB, 0x0C090000, 0x170E2AAC, 0x0C090000,
0x170E2AAD, 0x0C0F2AAE, 0x0C090000, 0x180E2AAF, 0x0C090000, 0x170E2AB0, 0x0C090000, 0x170E2AB1,
0x0C090000, 0x180E2AB2, 0x0C090000, 0x170E2AB3, 0x0C090000, 0x180E2AB4, 0x0C090000, 0x170E2AB5,
0x0C090000, 0x180E2AB6, 0x0C090000, 0x170E2AB7, 0x0C090000, 0x180E2AB8, 0x2D00082D, 0x00092D00,
0x0A0C1156, 0x20121009, 0x0000170E, 0x2AEA0C09, 0x0000180E, 0x2AEB0C09, 0x00001210,
MsgScript D_80BDFD14[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x56, 0x20, 0x00A7 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA6),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0010 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA7),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0018 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA8),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0020 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0021 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA9),
/* 0x0024 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0028 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0029 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAA),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0030 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0031 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAB),
/* 0x0034 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0035 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0038 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0039 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAC),
/* 0x003C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0040 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0041 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAD),
/* 0x0044 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0045 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AAE),
/* 0x0048 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004C 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x004D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAF),
/* 0x0050 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0051 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0054 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0055 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB0),
/* 0x0058 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0059 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x005C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x005D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB1),
/* 0x0060 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0061 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0064 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0065 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB2),
/* 0x0068 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0069 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x006C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x006D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB3),
/* 0x0070 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0071 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0074 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0075 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB4),
/* 0x0078 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0079 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x007C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x007D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB5),
/* 0x0080 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0081 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0084 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0085 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB6),
/* 0x0088 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0089 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x008C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x008D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB7),
/* 0x0090 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0091 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0094 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0095 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB8),
/* 0x0098 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x009B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOTO),
/* 0x009E 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00A1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A2 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x20),
/* 0x00A5 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00A6 0x01 */ MSCRIPT_DONE(),
/* 0x00A7 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00AA 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x00AB 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEA),
/* 0x00AE 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00AF 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00B2 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x00B3 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEB),
/* 0x00B6 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B7 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00BA 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00BB 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BDFDD0[] = { 0x005C0800, 0x0B0E2AE5, 0x2D000811, 0x5C080C10, 0x0E2AE62D, 0x00080C10 };
MsgScript D_80BDFDD0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x5C, 0x08, 0x0010 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AE5),
/* 0x0008 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x000B 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5C, 0x08),
/* 0x000E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000F 0x01 */ MSCRIPT_DONE(),
s32 D_80BDFDE8[] = { 0x0900000E, 0x2B192D00, 0x080C1509, 0x00001210 };
s32 D_80BDFDF8[] = {
0x09000000, 0x39040071, 0x0E2B1A0C, 0x0F00FF1E, 0x00330018, 0x000D0000, 0x0E2B1B2D, 0x00080C15, 0x09000012,
0x102C2B1C, 0x0C2F0000, 0x0C19FFDC, 0x2C2B1D0C, 0x2F00000C, 0x0F2B1E0C, 0x0F2B1F0C, 0x122A002E, 0x00390800,
0x1306006F, 0x00001300, 0x6F2F0000, 0x2E2D0023, 0x0C07000C, 0x06000500, 0x00130005, 0x0C070000, 0x0E2B202D,
0x00080C16, 0x11390411, 0x390819FF, 0xA60E2B3C, 0x2D00080C, 0x19FF9C00,
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AE6),
/* 0x0013 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BDFE7C[] = { 0x0E2A9C2D, 0x00080C10 };
s32 D_80BDFE84[] = { 0x0E2A9D2D, 0x00080C10 };
s32 D_80BDFE8C[] = {
0x00390200, 0x0F0E2A9E, 0x0C0F2A9F, 0x0C0F2AA0, 0x0C190004, 0x0E2AA00C, 0x05000000, 0x1A001A30, 0x0E2AA20C,
0x1206008F, 0x00001300, 0x8F2F0000, 0x2E2D002C, 0x2D00080C, 0x10310E2A, 0xA12D0008, 0x0C113902, 0x10000000,
MsgScript D_80BDFDE8[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B19),
/* 0x0006 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0009 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_PAUSE(),
/* 0x000B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000E 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000F 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BDFED4[] = {
0x0900002C, 0x2B1D0C2F, 0x00000C0F, 0x2B1E0C0F, 0x2B1F0C12, 0x2A002E00, 0x39080013,
0x06006F00, 0x0013006F, 0x2F00002E, 0x2D00230C, 0x07000C06, 0x00050000, 0x1300050C,
0x0700000E, 0x2B202D00, 0x080C1611, 0x39041139, 0x08150900, 0x00121000,
MsgScript D_80BDFDF8[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x39, 0x04, 0x0079 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B1A),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x00FF),
/* 0x000F 0x09 */ MSCRIPT_BRANCH_ON_ITEMACTION(0x0033, 0x0030 - 0x0018, 0x0025 - 0x0018, 0x0),
/* 0x0018 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B1B),
/* 0x001B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_PAUSE(),
/* 0x0020 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0023 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_DONE(),
/* 0x0025 0x03 */ MSCRIPT_CMD44(0x2B1C),
/* 0x0028 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_JUMP(0x000C - 0x0030),
/* 0x0030 0x03 */ MSCRIPT_CMD44(0x2B1D),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1E),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1F),
/* 0x003F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0040 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_MAMA),
/* 0x0044 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x39, 0x08, 0x005C - 0x0049),
/* 0x0049 0x05 */ MSCRIPT_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x004E 0x03 */ MSCRIPT_COLLECT_SET(0x006F),
/* 0x0051 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0054 0x01 */ MSCRIPT_CMD46(),
/* 0x0055 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x0058 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0059 0x03 */ MSCRIPT_CMD07(0x0068 - 0x005C),
/* 0x005C 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0061 0x03 */ MSCRIPT_COLLECT_SET(0x0005),
/* 0x0064 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0065 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0068 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B20),
/* 0x006B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x006E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006F 0x01 */ MSCRIPT_CMD22(),
/* 0x0070 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x04),
/* 0x0073 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x08),
/* 0x0076 0x03 */ MSCRIPT_JUMP(0x001F - 0x0079),
/* 0x0079 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B3C),
/* 0x007C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x007F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0080 0x03 */ MSCRIPT_JUMP(0x001F - 0x0083),
};
s32 D_80BDFF24[] = {
0x0900002C, 0x2B1C0C0F, 0x00FF1E00, 0x33000DFF, 0xF000000E, 0x2B1B2D00, 0x080C1509, 0x00001210,
0x2C2B1D0C, 0x2F00000C, 0x0F2B1E0C, 0x0F2B1F0C, 0x122A002E, 0x00390800, 0x1306006F, 0x00001300,
0x6F2F0000, 0x2E2D0023, 0x0C07000C, 0x06000500, 0x00130005, 0x0C070000, 0x0E2B202D, 0x00080C16,
0x11390411, 0x390819FF, 0xB10E2B3C, 0x2D00080C, 0x19FFA700,
MsgScript D_80BDFE7C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2A9C),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BDFE84[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2A9D),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BDFE8C[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x39, 0x02, 0x0014 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2A9E),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2A9F),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AA0),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_JUMP(0x0018 - 0x0014),
/* 0x0014 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA0),
/* 0x0017 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0039 - 0x001F, 0x0039 - 0x001F),
/* 0x001F 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0020 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA2),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0025 0x05 */ MSCRIPT_OFFER_ITEM(GI_MASK_KAFEIS_MASK, 0x0),
/* 0x002A 0x03 */ MSCRIPT_COLLECT_SET(0x008F),
/* 0x002D 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0030 0x01 */ MSCRIPT_CMD46(),
/* 0x0031 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_KAFEIS_MASK),
/* 0x0034 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_DONE(),
/* 0x0039 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x003A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA1),
/* 0x003D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0040 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x02),
/* 0x0044 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BDFED4[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD44(0x2B1D),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x000A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1E),
/* 0x000E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1F),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_MAMA),
/* 0x0017 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x39, 0x08, 0x002F - 0x001C),
/* 0x001C 0x05 */ MSCRIPT_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x0021 0x03 */ MSCRIPT_COLLECT_SET(0x006F),
/* 0x0024 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0027 0x01 */ MSCRIPT_CMD46(),
/* 0x0028 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x002B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CMD07(0x003B - 0x002F),
/* 0x002F 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0034 0x03 */ MSCRIPT_COLLECT_SET(0x0005),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x003B 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B20),
/* 0x003E 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0041 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0042 0x01 */ MSCRIPT_CMD22(),
/* 0x0043 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x04),
/* 0x0046 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x08),
/* 0x0049 0x01 */ MSCRIPT_PAUSE(),
/* 0x004A 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x004E 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BDFF24[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD44(0x2B1C),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CONTINUE_TEXT(0x00FF),
/* 0x000A 0x09 */ MSCRIPT_BRANCH_ON_ITEMACTION(0x0033, 0x0020 - 0x0013, 0x0003 - 0x0013, 0x0),
/* 0x0013 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B1B),
/* 0x0016 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_PAUSE(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_DONE(),
/* 0x0020 0x03 */ MSCRIPT_CMD44(0x2B1D),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0027 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0028 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1E),
/* 0x002B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B1F),
/* 0x002F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0030 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_MAMA),
/* 0x0034 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x39, 0x08, 0x004C - 0x0039),
/* 0x0039 0x05 */ MSCRIPT_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x003E 0x03 */ MSCRIPT_COLLECT_SET(0x006F),
/* 0x0041 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0044 0x01 */ MSCRIPT_CMD46(),
/* 0x0045 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x0048 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_CMD07(0x0058 - 0x004C),
/* 0x004C 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0051 0x03 */ MSCRIPT_COLLECT_SET(0x0005),
/* 0x0054 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0055 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0058 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B20),
/* 0x005B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x005E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005F 0x01 */ MSCRIPT_CMD22(),
/* 0x0060 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x04),
/* 0x0063 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x39, 0x08),
/* 0x0066 0x03 */ MSCRIPT_JUMP(0x001A - 0x0069),
// Unreachable
/* 0x0069 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B3C),
/* 0x006C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x006F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_JUMP(0x001A - 0x0073),
};
ActorInit En_Al_InitVars = {
@ -331,8 +639,8 @@ s32 func_80BDE678(EnAl* this, s16* arg1, s16 arg2) {
return ret;
}
s32 func_80BDE7FC(EnAl* this, PlayState* play) {
s32 pad;
s32 func_80BDE7FC(Actor* thisx, PlayState* play) {
EnAl* this = THIS;
s16 csId = func_80BDE484(this, 0);
s32 pad2;
s32 sp20 = false;
@ -376,8 +684,9 @@ s32 func_80BDE7FC(EnAl* this, PlayState* play) {
return sp20;
}
s32 func_80BDE92C(EnAl* this, PlayState* play) {
s32 pad[2];
s32 func_80BDE92C(Actor* thisx, PlayState* play) {
s32 pad;
EnAl* this = THIS;
Actor* sp1C = func_80BDE1A0(this, play, ACTORCAT_NPC, ACTOR_EN_GM);
Actor* temp_v0 = func_80BDE1A0(this, play, ACTORCAT_NPC, ACTOR_EN_TOTO);
@ -423,8 +732,8 @@ s32 func_80BDE92C(EnAl* this, PlayState* play) {
return true;
}
s32 func_80BDEA14(EnAl* this, PlayState* play) {
s32 pad;
s32 func_80BDEA14(Actor* thisx, PlayState* play) {
EnAl* this = THIS;
s32 sp18 = false;
switch (this->unk_4E6) {
@ -450,7 +759,7 @@ s32 func_80BDEA14(EnAl* this, PlayState* play) {
return sp18;
}
s32* func_80BDEABC(EnAl* this, PlayState* play) {
MsgScript* func_80BDEABC(EnAl* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (this->unk_35C == 3) {
@ -514,7 +823,7 @@ s32 func_80BDEC2C(EnAl* this, PlayState* play) {
}
SubS_SetOfferMode(&this->unk_4C2, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_4E6 = 0;
this->unk_4EC = 0;
this->unk_4EC = NULL;
this->actor.child = this->unk_368;
this->unk_360 = func_80BDEABC(this, play);
this->unk_4C2 |= 0x20;
@ -799,8 +1108,8 @@ void func_80BDF5E8(EnAl* this, PlayState* play) {
}
void func_80BDF6C4(EnAl* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->unk_360, this->unk_4EC, &this->unk_364)) {
SubS_SetOfferMode(&this->unk_4C2, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->unk_360, this->unk_4EC, &this->unk_364)) {
SubS_SetOfferMode(&this->unk_4C2, 3, 7);
this->unk_4C2 &= ~0x20;
this->unk_4C2 |= 0x200;
this->actor.child = NULL;

View File

@ -7,7 +7,6 @@
struct EnAl;
typedef void (*EnAlActionFunc)(struct EnAl*, PlayState*);
typedef s32 (*EnAlUnkFunc)(struct EnAl*, PlayState*);
typedef void (*EnAlUnkFunc2)(struct EnAl*, PlayState*);
typedef struct EnAl {
@ -18,7 +17,7 @@ typedef struct EnAl {
/* 0x190 */ MtxF unk_190[6];
/* 0x310 */ ColliderCylinder unk_310;
/* 0x35C */ u8 unk_35C;
/* 0x360 */ s32* unk_360;
/* 0x360 */ MsgScript* unk_360;
/* 0x364 */ s32 unk_364;
/* 0x368 */ Actor* unk_368;
/* 0x36C */ Vec3f unk_36C;
@ -39,7 +38,7 @@ typedef struct EnAl {
/* 0x4E6 */ s16 unk_4E6;
/* 0x4E8 */ s16 unk_4E8;
/* 0x4EA */ s16 unk_4EA;
/* 0x4EC */ EnAlUnkFunc unk_4EC;
/* 0x4EC */ MsgEventCallback unk_4EC;
/* 0x4F0 */ s32 unk_4F0;
/* 0x4F4 */ s32 unk_4F4;
/* 0x4F8 */ s32 animIndex;

View File

@ -3217,7 +3217,7 @@ void EnAn_FollowSchedule(EnAn* this, PlayState* play) {
}
void EnAn_Talk(EnAn* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos)) {
// Message event script is done
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);

View File

@ -37,13 +37,58 @@ static u8 sScheduleScript[] = {
/* 0x11 */ SCHEDULE_CMD_RET_NONE(),
};
static u8 sMsgEventScript[] = {
0x0E, 0x29, 0x48, 0x0C, 0x0E, 0x00, 0xFF, 0x2B, 0x00, 0x00, 0x00, 0x52, 0x00, 0x5F, 0x2C, 0x29, 0x4A, 0x0C, 0x2F,
0x00, 0x00, 0x0C, 0x15, 0x09, 0x00, 0x00, 0x0E, 0x29, 0x4B, 0x0C, 0x15, 0x09, 0x00, 0x00, 0x0E, 0x29, 0x4C, 0x0C,
0x12, 0x00, 0x49, 0x08, 0x00, 0x1D, 0x09, 0x00, 0x00, 0x06, 0x00, 0x0C, 0x00, 0x00, 0x13, 0x00, 0x0C, 0x2F, 0x00,
0x00, 0x2E, 0x2D, 0x00, 0x28, 0x2D, 0x00, 0x0D, 0x0C, 0x11, 0x49, 0x08, 0x11, 0x5A, 0x80, 0x10, 0x09, 0x00, 0x00,
0x06, 0x00, 0x02, 0x00, 0x00, 0x13, 0x00, 0x02, 0x2F, 0x00, 0x00, 0x2E, 0x2D, 0x00, 0x0D, 0x0C, 0x11, 0x5A, 0x80,
0x10, 0x2C, 0x29, 0x49, 0x0C, 0x2F, 0x00, 0x00, 0x0C, 0x2D, 0x00, 0x0D, 0x12, 0x10, 0x2D, 0x00, 0x0D, 0x12, 0x10,
static MsgScript sMsgEventScript[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2948),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x0060 - 0x000E, 0x006D - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD44(0x294A),
/* 0x0011 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_PAUSE(),
/* 0x0017 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001A 0x03 */ MSCRIPT_BEGIN_TEXT(0x294B),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_PAUSE(),
/* 0x001F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0022 0x03 */ MSCRIPT_BEGIN_TEXT(0x294C),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0027 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x49, 0x08, 0x0049 - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002F 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0034 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x0037 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x003A 0x01 */ MSCRIPT_CMD46(),
/* 0x003B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_TOILET_HAND_HP),
/* 0x003E 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x0041 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0042 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x49, 0x08),
/* 0x0045 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5A, 0x80),
/* 0x0048 0x01 */ MSCRIPT_DONE(),
/* 0x0049 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004C 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x0051 0x03 */ MSCRIPT_COLLECT_SET(0x0002),
/* 0x0054 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0057 0x01 */ MSCRIPT_CMD46(),
/* 0x0058 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x005B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005C 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5A, 0x80),
/* 0x005F 0x01 */ MSCRIPT_DONE(),
/* 0x0060 0x03 */ MSCRIPT_CMD44(0x2949),
/* 0x0063 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0064 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x006B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x006C 0x01 */ MSCRIPT_DONE(),
/* 0x006D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x0070 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0071 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Bjt_InitVars = {
@ -364,7 +409,7 @@ s32 EnBjt_ChooseAnimation(EnBjt* this, PlayState* play) {
void EnBjt_Talk(EnBjt* this, PlayState* play) {
s16 yaw = this->actor.yawTowardsPlayer;
if (func_8010BF58(&this->actor, play, sMsgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (MsgEvent_RunScript(&this->actor, play, sMsgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
this->actor.flags &= ~ACTOR_FLAG_TALK_REQUESTED;
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->stateFlags &= ~TOILET_HAND_STATE_TALKING;

View File

@ -7,7 +7,6 @@
struct EnBjt;
typedef void (*EnBjtActionFunc)(struct EnBjt*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
typedef struct EnBjt {
/* 0x000 */ Actor actor;
@ -26,7 +25,7 @@ typedef struct EnBjt {
/* 0x242 */ s16 timer;
/* 0x244 */ UNK_TYPE1 unk_244[4];
/* 0x248 */ s32 playedSfx; // to only play once
/* 0x24C */ MsgEventFunc msgEventCallback;
/* 0x24C */ MsgEventCallback msgEventCallback;
/* 0x250 */ s32 animIndex;
/* 0x254 */ UNK_TYPE1 pad_254[8];
} EnBjt; // size = 0x25C

View File

@ -246,10 +246,28 @@ void func_80B3E834(EnDai* this) {
}
}
// Some kind of struct?
static s32 D_80B3FC8C[] = {
0x0100060E, 0x0C900C12, 0x10005520, 0x00110E0C, 0x910C0F0C,
0x920C0F0C, 0x930C1211, 0x5520100E, 0x0C940C12, 0x10000000,
static MsgScript D_80B3FC8C[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C90),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x55, 0x20, 0x001F - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C91),
/* 0x0011 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0C92),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0C93),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x55, 0x20),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
/* 0x001F 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C94),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_DONE(),
};
static f32 D_80B3FCB4[] = {
@ -443,8 +461,8 @@ void func_80B3EEDC(EnDai* this, PlayState* play) {
}
void func_80B3EF90(EnDai* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, D_80B3FC8C, NULL, &this->unk_1D0)) {
SubS_SetOfferMode(&this->unk_1CE, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, D_80B3FC8C, NULL, &this->unk_1D0)) {
SubS_SetOfferMode(&this->unk_1CE, 3, 7);
this->unk_1D0 = 0;
this->actionFunc = func_80B3F00C;
} else {

View File

@ -18,28 +18,203 @@ void EnDnh_Draw(Actor* thisx, PlayState* play);
void func_80A50F38(EnDnh* this, PlayState* play);
void EnDnh_DoNothing(EnDnh* this, PlayState* play);
UNK_TYPE D_80A51250[] = {
0x000C0800, 0x080E0862, 0x0C111101, 0x10040005, 0x0E08670C, 0x10001402, 0x007A0019, 0x1000300E, 0x08590C25,
0x000D0018, 0x0F08630C, 0x12060043, 0x00001300, 0x430C0700, 0x000E088D, 0x0C190007, 0x0F088D0C, 0x19000012,
0x11191009, 0x00001000, 0x1A100016, 0x0E085A11, 0x1A100C0F, 0x085B0C0F, 0x085C0C05, 0x00060024, 0x00060E08,
0x5B19FFEE, 0x300F085E, 0x0C08000A, 0x00050F08, 0x750C1014, 0xFFF60F08, 0x600C1211, 0x19100900, 0x0010310F,
0x085F0C10, 0x00192000, 0x49001A10, 0x003D0E08, 0x68111A10, 0x0C0F0869, 0x0C0F086A, 0x0C0F086B, 0x0C0F086C,
0x0C050000, 0x00190000, 0x300E086E, 0x1119201C, 0x03201D03, 0x401D0380, 0x1D04010C, 0x12090000, 0x10310E08,
0x6D0C100E, 0x08700C19, 0xFFCB0019, 0x2000070E, 0x08710C19, 0xFFBB0E08, 0x720C0F08, 0x730C0500, 0x00001700,
0x0008000A, 0x0006320F, 0x08750C10, 0x3014FFF6, 0x001A4000, 0x0919FFA8, 0x310E0874, 0x0C100E08, 0x76111920,
0x1C03201D, 0x03401D03, 0x801D0401, 0x0C120900, 0x00100000,
MsgScript D_80A51250[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x0C, 0x08, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x0862),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x11, 0x01),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
/* 0x000D 0x03 */ MSCRIPT_BRANCH_IF_HUMAN(0x0015 - 0x0010),
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x0867),
/* 0x0013 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0014 0x01 */ MSCRIPT_DONE(),
/* 0x0015 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x14, 0x02, 0x0094 - 0x001A),
/* 0x001A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x19, 0x10, 0x004F - 0x001F),
/* 0x001F 0x03 */ MSCRIPT_BEGIN_TEXT(0x0859),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x05 */ MSCRIPT_BRANCH_ON_ITEM(ITEM_PICTOGRAPH_BOX, 0x0040 - 0x0028),
/* 0x0028 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0863),
/* 0x002B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002C 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x002D 0x05 */ MSCRIPT_OFFER_ITEM(GI_PICTOGRAPH_BOX, 0x0),
/* 0x0032 0x03 */ MSCRIPT_COLLECT_SET(0x0043),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0039 0x03 */ MSCRIPT_BEGIN_TEXT(0x088D),
/* 0x003C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_JUMP(0x0047 - 0x0040),
/* 0x0040 0x03 */ MSCRIPT_CONTINUE_TEXT(0x088D),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP(0x0),
/* 0x0047 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x19, 0x10),
/* 0x004B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004E 0x01 */ MSCRIPT_DONE(),
/* 0x004F 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1A, 0x10, 0x006A - 0x0054),
/* 0x0054 0x03 */ MSCRIPT_BEGIN_TEXT(0x085A),
/* 0x0057 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1A, 0x10),
/* 0x005A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x085B),
/* 0x005E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x085C),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0070 - 0x006A, 0x008E - 0x006A, 0x0070 - 0x006A),
/* 0x006A 0x03 */ MSCRIPT_BEGIN_TEXT(0x085B),
/* 0x006D 0x03 */ MSCRIPT_JUMP(0x005E - 0x0070),
/* 0x0070 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0071 0x03 */ MSCRIPT_CONTINUE_TEXT(0x085E),
/* 0x0074 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0075 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x000A, 0x007F - 0x007A),
/* 0x007A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0875),
/* 0x007D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007E 0x01 */ MSCRIPT_DONE(),
/* 0x007F 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFFF6),
/* 0x0082 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0860),
/* 0x0085 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0086 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0087 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x19, 0x10),
/* 0x008A 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x008D 0x01 */ MSCRIPT_DONE(),
/* 0x008E 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x008F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x085F),
/* 0x0092 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0093 0x01 */ MSCRIPT_DONE(),
/* 0x0094 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x19, 0x20, 0x00E2 - 0x0099),
/* 0x0099 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1A, 0x10, 0x00DB - 0x009E),
/* 0x009E 0x03 */ MSCRIPT_BEGIN_TEXT(0x0868),
/* 0x00A1 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1A, 0x10),
/* 0x00A4 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A5 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0869),
/* 0x00A8 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A9 0x03 */ MSCRIPT_CONTINUE_TEXT(0x086A),
/* 0x00AC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_CONTINUE_TEXT(0x086B),
/* 0x00B0 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B1 0x03 */ MSCRIPT_CONTINUE_TEXT(0x086C),
/* 0x00B4 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B5 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x00D5 - 0x00BC, 0x0),
/* 0x00BC 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x00BD 0x03 */ MSCRIPT_BEGIN_TEXT(0x086E),
/* 0x00C0 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x19, 0x20),
/* 0x00C3 0x03 */ MSCRIPT_SET_EVENT_INF(0x03, 0x20),
/* 0x00C6 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x40),
/* 0x00C9 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x80),
/* 0x00CC 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x04, 0x01),
/* 0x00CF 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00D0 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00D1 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00D4 0x01 */ MSCRIPT_DONE(),
/* 0x00D5 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x00D6 0x03 */ MSCRIPT_BEGIN_TEXT(0x086D),
/* 0x00D9 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00DA 0x01 */ MSCRIPT_DONE(),
/* 0x00DB 0x03 */ MSCRIPT_BEGIN_TEXT(0x0870),
/* 0x00DE 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00DF 0x03 */ MSCRIPT_JUMP(0x00AD - 0x00E2),
/* 0x00E2 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x19, 0x20, 0x00EE - 0x00E7),
/* 0x00E7 0x03 */ MSCRIPT_BEGIN_TEXT(0x0871),
/* 0x00EA 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00EB 0x03 */ MSCRIPT_JUMP(0x00A9 - 0x00EE),
/* 0x00EE 0x03 */ MSCRIPT_BEGIN_TEXT(0x0872),
/* 0x00F1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00F2 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0873),
/* 0x00F5 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00F6 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0114 - 0x00FD, 0x0),
/* 0x00FD 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x000A, 0x0108 - 0x0102),
/* 0x0102 0x01 */ MSCRIPT_PLAY_ERROR(),
/* 0x0103 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0875),
/* 0x0106 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0107 0x01 */ MSCRIPT_DONE(),
/* 0x0108 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0109 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFFF6),
/* 0x010C 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1A, 0x40, 0x011A - 0x0111),
/* 0x0111 0x03 */ MSCRIPT_JUMP(0x00BC - 0x0114),
/* 0x0114 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0115 0x03 */ MSCRIPT_BEGIN_TEXT(0x0874),
/* 0x0118 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0119 0x01 */ MSCRIPT_DONE(),
/* 0x011A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0876),
/* 0x011D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x19, 0x20),
/* 0x0120 0x03 */ MSCRIPT_SET_EVENT_INF(0x03, 0x20),
/* 0x0123 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x40),
/* 0x0126 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x80),
/* 0x0129 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x04, 0x01),
/* 0x012C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x012D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x012E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0131 0x01 */ MSCRIPT_DONE(),
};
UNK_TYPE D_80A51384[] = {
0x0E08610C,
0x16100000,
MsgScript D_80A51384[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x0861),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD22(),
/* 0x0005 0x01 */ MSCRIPT_DONE(),
};
UNK_TYPE D_80A5138C[] = {
0x1B034000, 0x67001A40, 0x003A1B03, 0x80001A0E, 0x087C0C00, 0x5B20000A, 0x0F087E0C, 0x115B2019,
0x004E0F08, 0x7B0C1900, 0x470E087D, 0x0C120600, 0x0C000013, 0x000C0C07, 0x00000E08, 0x7E0C111A,
0x4019002C, 0x1B038000, 0x0B0E087A, 0x0C0F087B, 0x0C19001C, 0x0E08780C, 0x12060005, 0x00001300,
0x050C0700, 0x000E0879, 0x0C190004, 0x0E08770C, 0x1D03201D, 0x03401D03, 0x801D0401, 0x16100000,
MsgScript D_80A5138C[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x03, 0x40, 0x006C - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1A, 0x40, 0x0044 - 0x000A),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x03, 0x80, 0x0029 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x087C),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x5B, 0x20, 0x0022 - 0x0018),
/* 0x0018 0x03 */ MSCRIPT_CONTINUE_TEXT(0x087E),
/* 0x001B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5B, 0x20),
/* 0x001F 0x03 */ MSCRIPT_JUMP(0x0070 - 0x0022),
/* 0x0022 0x03 */ MSCRIPT_CONTINUE_TEXT(0x087B),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_JUMP(0x0070 - 0x0029),
/* 0x0029 0x03 */ MSCRIPT_BEGIN_TEXT(0x087D),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x002E 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0033 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x0036 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x003A 0x03 */ MSCRIPT_BEGIN_TEXT(0x087E),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1A, 0x40),
/* 0x0041 0x03 */ MSCRIPT_JUMP(0x0070 - 0x0044),
/* 0x0044 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x03, 0x80, 0x0054 - 0x0049),
/* 0x0049 0x03 */ MSCRIPT_BEGIN_TEXT(0x087A),
/* 0x004C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x087B),
/* 0x0050 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0051 0x03 */ MSCRIPT_JUMP(0x0070 - 0x0054),
/* 0x0054 0x03 */ MSCRIPT_BEGIN_TEXT(0x0878),
/* 0x0057 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0059 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x005E 0x03 */ MSCRIPT_COLLECT_SET(0x0005),
/* 0x0061 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0062 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0065 0x03 */ MSCRIPT_BEGIN_TEXT(0x0879),
/* 0x0068 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0069 0x03 */ MSCRIPT_JUMP(0x0070 - 0x006C),
/* 0x006C 0x03 */ MSCRIPT_BEGIN_TEXT(0x0877),
/* 0x006F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x20),
/* 0x0073 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x40),
/* 0x0076 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x03, 0x80),
/* 0x0079 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x04, 0x01),
/* 0x007C 0x01 */ MSCRIPT_CMD22(),
/* 0x007D 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Dnh_InitVars = {
@ -70,8 +245,8 @@ static TexturePtr sEyeTextures[] = {
gKoumeKioskEyeHalfTex,
};
s32 func_80A50D40(Actor* actor, PlayState* play) {
func_800B7298(play, actor, PLAYER_CSACTION_WAIT);
s32 func_80A50D40(Actor* thisx, PlayState* play) {
func_800B7298(play, thisx, PLAYER_CSACTION_WAIT);
if (CHECK_EVENTINF(EVENTINF_35)) {
play->nextEntrance = ENTRANCE(SOUTHERN_SWAMP_CLEARED, 6);
} else {
@ -86,7 +261,7 @@ s32 func_80A50D40(Actor* actor, PlayState* play) {
return 1;
}
void* func_80A50DF8(EnDnh* this, PlayState* play) {
MsgScript* func_80A50DF8(EnDnh* this, PlayState* play) {
switch (this->unk198) {
case 1:
return D_80A51384;
@ -121,8 +296,8 @@ s32 func_80A50EC0(EnDnh* this) {
}
void func_80A50F38(EnDnh* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->unk194)) {
SubS_SetOfferMode(&this->unk18C, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->unk194)) {
SubS_SetOfferMode(&this->unk18C, 3, 7);
this->unk194 = 0;
this->unk198 = 0;
this->actionFunc = EnDnh_DoNothing;

View File

@ -6,9 +6,10 @@
struct EnDnh;
typedef void (*EnDnhActionFunc)(struct EnDnh*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
typedef void (*EnDnhActionFunc)(struct EnDnh*, PlayState*);
typedef struct EnDnh {
/* 0x000 */ Actor actor;
/* 0x144 */ EnDnhActionFunc actionFunc;

View File

@ -126,8 +126,22 @@ static AnimationInfoS sAnimationInfo[DEKU_PRINCESS_ANIM_MAX] = {
{ &gDekuPrincessGlareLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DEKU_PRINCESS_ANIM_GLARE_LOOP
};
static s32 D_80B3DE58[] = {
0x00172000, 0x0D040005, 0x0E09670C, 0x100E0968, 0x0C100E09, 0x6F0C0F09, 0x700C1000,
static MsgScript D_80B3DE58[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x20, 0x0012 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_HUMAN(0x000D - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x0967),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0968),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_DONE(),
/* 0x0012 0x03 */ MSCRIPT_BEGIN_TEXT(0x096F),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0970),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
};
s32 func_80B3CA20(EnDnp* this) {
@ -367,8 +381,8 @@ void func_80B3D338(EnDnp* this, PlayState* play) {
}
void func_80B3D3F8(EnDnp* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, D_80B3DE58, NULL, &this->unk_328)) {
SubS_SetOfferMode(&this->unk_322, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, D_80B3DE58, NULL, &this->unk_328)) {
SubS_SetOfferMode(&this->unk_322, 3, 7);
this->unk_322 &= ~8;
this->actionFunc = func_80B3D2D4;
} else {

View File

@ -20,9 +20,45 @@ void EnDnq_Draw(Actor* thisx, PlayState* play);
void func_80A52FB8(EnDnq* this, PlayState* play);
static s32 D_80A53400[] = {
0x00120100, 0x150E0899, 0x0C120F08, 0x9A0C0F08, 0x9B0C0F08, 0x9C0C1112, 0x01100E08, 0x980C1000, 0x00120200,
0x0C0E089D, 0x0C0F089E, 0x0C111202, 0x100E089F, 0x0C100000, 0x0E08A10C, 0x0F08A20C, 0x10000000,
static MsgScript D_80A53400[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x01, 0x001A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x0899),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x089A),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x03 */ MSCRIPT_CONTINUE_TEXT(0x089B),
/* 0x0011 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CONTINUE_TEXT(0x089C),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x12, 0x01),
/* 0x0019 0x01 */ MSCRIPT_DONE(),
/* 0x001A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0898),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_80A53420[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x02, 0x0011 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x089D),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CONTINUE_TEXT(0x089E),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x12, 0x02),
/* 0x0010 0x01 */ MSCRIPT_DONE(),
/* 0x0011 0x03 */ MSCRIPT_BEGIN_TEXT(0x089F),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_80A53438[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x08A1),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CONTINUE_TEXT(0x08A2),
/* 0x0007 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Dnq_InitVars = {
@ -340,16 +376,16 @@ void func_80A52C6C(EnDnq* this, PlayState* play) {
this->picto.actor.xzDistToPlayer = Math_Vec3f_DistXZ(&sp28, &sp1C);
}
s32* func_80A52CF8(EnDnq* this, PlayState* play) {
MsgScript* func_80A52CF8(EnDnq* this, PlayState* play) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_23_20)) {
return &D_80A53400[14];
return D_80A53438;
}
if (this->unk_3A4 != 0) {
return &D_80A53400[8];
return D_80A53420;
}
return &D_80A53400[0];
return D_80A53400;
}
s32 func_80A52D44(EnDnq* this, PlayState* play) {
@ -411,8 +447,8 @@ void func_80A52DC8(EnDnq* this, PlayState* play) {
void func_80A52FB8(EnDnq* this, PlayState* play) {
s16 sp2E = this->picto.actor.yawTowardsPlayer;
if (func_8010BF58(&this->picto.actor, play, this->unk_380, NULL, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_37C, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->picto.actor, play, this->unk_380, NULL, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_37C, 3, 7);
this->unk_386 = 0;
this->actionFunc = func_80A52DC8;
} else {

View File

@ -21,7 +21,7 @@ typedef struct EnDnq {
/* 0x370 */ Vec3f unk_370;
/* 0x37C */ u16 unk_37C;
/* 0x37E */ s16 unk_37E;
/* 0x380 */ s32* unk_380;
/* 0x380 */ MsgScript* unk_380;
/* 0x384 */ s16 unk_384;
/* 0x386 */ s16 unk_386;
/* 0x388 */ s16 unk_388;

View File

@ -19,10 +19,64 @@ void func_8092D330(EnDns* this, PlayState* play);
void EnDns_DoNothing(EnDns* this, PlayState* play);
void func_8092D4D8(EnDns* this, PlayState* play);
static s32 D_8092DCB0[] = {
0x00172000, 0x050E082F, 0x0C100E08, 0x200C1000, 0x00172000, 0x050E0830, 0x0C100E08, 0x210C1000,
0x00172000, 0x050E0831, 0x0C100E08, 0x220C1000, 0x00172000, 0x050E0832, 0x0C100E08, 0x230C1000,
0x0E08330C, 0x09000015, 0x1C014016, 0x10000000, 0x0E082E0C, 0x10000000,
static MsgScript D_8092DCB0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x082F),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0820),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_8092DCC0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x0830),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0821),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_8092DCD0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x0831),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0822),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_8092DCE0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x0832),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0823),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_8092DCF0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x0833),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0007 0x01 */ MSCRIPT_PAUSE(),
/* 0x0008 0x03 */ MSCRIPT_SET_EVENT_INF(0x01, 0x40),
/* 0x000B 0x01 */ MSCRIPT_CMD22(),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_8092DD00[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x082E),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Dns_InitVars = {
@ -115,7 +169,6 @@ s32 EnDns_ChangeAnim(EnDns* this, s32 animIndex) {
changeAnim = true;
}
break;
default:
if (this->animIndex != animIndex) {
changeAnim = true;
@ -178,29 +231,30 @@ void func_8092C934(EnDns* this) {
}
}
s32* func_8092C9BC(EnDns* this, PlayState* play) {
MsgScript* func_8092C9BC(EnDns* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_23_20)) {
if (player->transformation != PLAYER_FORM_DEKU) {
return &D_8092DCB0[16];
return D_8092DCF0;
} else if (this->unk_2FC != 0) {
return &D_8092DCB0[20];
return D_8092DD00;
}
}
switch (ENDNS_GET_7(&this->actor)) {
case ENDNS_GET_7_0:
return &D_8092DCB0[0];
return D_8092DCB0;
case ENDNS_GET_7_1:
return &D_8092DCB0[4];
return D_8092DCC0;
case ENDNS_GET_7_2:
return &D_8092DCB0[8];
return D_8092DCD0;
case ENDNS_GET_7_3:
return &D_8092DCB0[12];
return D_8092DCE0;
default:
return NULL;
@ -285,9 +339,9 @@ s32 func_8092CC68(PlayState* play) {
return ret;
}
s32 func_8092CCEC(EnDns* this, PlayState* play) {
s32 func_8092CCEC(Actor* thisx, PlayState* play) {
Player* player = GET_PLAYER(play);
s32 pad;
EnDns* this = THIS;
Vec3f sp3C = player->actor.world.pos;
Vec3f sp30 = this->actor.world.pos;
s16 sp2E;
@ -410,7 +464,7 @@ void func_8092D1B8(EnDns* this, PlayState* play) {
EnDns_ChangeAnim(this, EN_DNS_ANIM_WALK);
this->actionFunc = EnDns_DoNothing;
} else if (CHECK_EVENTINF(EVENTINF_16)) {
func_8092CCEC(this, play);
func_8092CCEC(&this->actor, play);
EnDns_ChangeAnim(this, EN_DNS_ANIM_WALK);
this->actionFunc = func_8092D330;
}
@ -455,8 +509,8 @@ void func_8092D4D8(EnDns* this, PlayState* play) {
if (func_8092CE38(this)) {
EnDns_ChangeAnim(this, EN_DNS_ANIM_WALK);
}
} else if (func_8010BF58(&this->actor, play, this->unk_1E0, this->unk_2F4, &this->unk_1DC)) {
SubS_SetOfferMode(&this->unk_2C6, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
} else if (MsgEvent_RunScript(&this->actor, play, this->unk_1E0, this->unk_2F4, &this->unk_1DC)) {
SubS_SetOfferMode(&this->unk_2C6, 3, 7);
this->unk_2F4 = NULL;
if (ENDNS_GET_4000(&this->actor)) {
if (!CHECK_EVENTINF(EVENTINF_15)) {

View File

@ -7,7 +7,6 @@
struct EnDns;
typedef void (*EnDnsActionFunc)(struct EnDns*, PlayState*);
typedef s32 (*EnDnsFunc)(struct EnDns*, PlayState*);
#define ENDNS_GET_7(thisx) ((thisx)->params & 7)
#define ENDNS_GET_4000(thisx) ((thisx)->params & 0x4000)
@ -27,7 +26,7 @@ typedef struct EnDns {
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ u8 cueId;
/* 0x1DC */ s32 unk_1DC;
/* 0x1E0 */ s32* unk_1E0;
/* 0x1E0 */ MsgScript* unk_1E0;
/* 0x1E4 */ Gfx* unk_1E4[KINGS_CHAMBER_DEKU_GUARD_LIMB_MAX];
/* 0x218 */ Vec3f unk_218;
/* 0x224 */ Vec3s unk_224;
@ -51,7 +50,7 @@ typedef struct EnDns {
/* 0x2E8 */ UNK_TYPE1 unk_2E8[0x4];
/* 0x2EC */ f32 unk_2EC;
/* 0x2F0 */ f32 animCurFrame;
/* 0x2F4 */ EnDnsFunc unk_2F4;
/* 0x2F4 */ MsgEventCallback unk_2F4;
/* 0x2F8 */ s32 animIndex;
/* 0x2FC */ s32 unk_2FC;
} EnDns; // size = 0x300

View File

@ -121,38 +121,234 @@ static s32 D_80951A0C[] = {
-1, 1, 4, 1, -1, 1, -1, -1, -1, 0, 2, 3, 5, 6, 8, 1, 0, 8, 3, 6, 0, 1, 4, 7, 0, 1, 2, 4, 5, 7, 1,
};
static s32 D_80951A88[] = { 0x0E2AB92D, 0x000A0C10 };
static s32 D_80951A90[] = { 0x0E2ABA2D, 0x000A0C10 };
static s32 D_80951A98[] = {
0x00564000, 0x1A090000, 0x0E2AA40C, 0x09000017, 0x0E2AA52D, 0x000A0C09, 0x00001211, 0x56401009,
0x00000E2A, 0xEC0C0900, 0x00170E2A, 0xED0C0900, 0x00180E2A, 0xEE2D000A, 0x0C090000, 0x12100000,
static MsgScript D_80951A88[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB9),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80951AD8[] = {
0x00562000, 0xA1090000, 0x0E2AA60C, 0x09000017, 0x0E2AA70C, 0x09000018, 0x0E2AA80C, 0x09000017,
0x0E2AA90C, 0x09000018, 0x0E2AAA0C, 0x09000017, 0x0E2AAB0C, 0x09000018, 0x0E2AAC0C, 0x09000017,
0x0E2AAD0C, 0x0F2AAE0C, 0x09000017, 0x0E2AAF0C, 0x09000017, 0x0E2AB00C, 0x09000018, 0x0E2AB10C,
0x09000017, 0x0E2AB20C, 0x09000017, 0x0E2AB30C, 0x09000017, 0x0E2AB40C, 0x09000018, 0x0E2AB50C,
0x09000017, 0x0E2AB60C, 0x09000018, 0x0E2AB70C, 0x09000017, 0x0E2AB82D, 0x00082D00, 0x092D000A,
0x0C115620, 0x12100900, 0x000E2AEA, 0x0C090000, 0x170E2AEB, 0x2D00082D, 0x000A0C09, 0x00001210,
static MsgScript D_80951A90[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2ABA),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80951B98[] = {
0x004B0100, 0x42090000, 0x0900000E, 0x2B010C09, 0x0000170E, 0x2B020C09, 0x0000180E,
0x2B030C09, 0x0000170E, 0x2B040C0F, 0x2B050C09, 0x0000180E, 0x2B060C09, 0x0000170E,
0x2B072D00, 0x0A0C114B, 0x01150900, 0x0012100E, 0x2B082D00, 0x0A0C1210,
static MsgScript D_80951A98[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x56, 0x40, 0x001F - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA4),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000F 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA5),
/* 0x0013 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001A 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x40),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
/* 0x001F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0022 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEC),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0029 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x002A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AED),
/* 0x002D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0031 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0032 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEE),
/* 0x0035 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0038 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0039 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003C 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x003D 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80951BE8[] = {
0x09000000, 0x32010031, 0x00338000, 0x2C004B02, 0x000D0E2B, 0x132D000A, 0x0C114B02, 0x1900150E, 0x2B140C0F,
0x2B150C0F, 0x2B160C0F, 0x2B170C0F, 0x2B180C15, 0x09000012, 0x100E2B12, 0x2D000A0C, 0x10000000,
static MsgScript D_80951AD8[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x56, 0x20, 0x00A6 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA6),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000F 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA7),
/* 0x0013 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0017 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0018 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA8),
/* 0x001B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001F 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0020 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AA9),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0027 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0028 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAA),
/* 0x002B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002F 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0030 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAB),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0037 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0038 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAC),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003F 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0040 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAD),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AAE),
/* 0x0047 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004B 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x004C 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AAF),
/* 0x004F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0050 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0053 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0054 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB0),
/* 0x0057 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0058 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x005B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x005C 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB1),
/* 0x005F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0060 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0063 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0064 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB2),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x006B 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x006C 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB3),
/* 0x006F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0073 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0074 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB4),
/* 0x0077 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0078 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x007B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x007C 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB5),
/* 0x007F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0080 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0083 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0084 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB6),
/* 0x0087 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0088 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x008B 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x008C 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB7),
/* 0x008F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0090 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0093 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0094 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AB8),
/* 0x0097 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x009A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOTO),
/* 0x009D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00A0 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A1 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x20),
/* 0x00A4 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00A5 0x01 */ MSCRIPT_DONE(),
/* 0x00A6 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00A9 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEA),
/* 0x00AC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00B0 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x00B1 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AEB),
/* 0x00B4 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x00B7 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00BA 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00BB 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x00BE 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00BF 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80951C2C[] = { 0x0E295A2D, 0x000A0C10 };
static MsgScript D_80951B98[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x4B, 0x01, 0x0047 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000B 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B01),
/* 0x000E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0012 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0013 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B02),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001A 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x001B 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B03),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0022 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0023 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B04),
/* 0x0026 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B05),
/* 0x002A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002E 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x002F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B06),
/* 0x0032 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0036 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0037 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B07),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x4B, 0x01),
/* 0x0041 0x01 */ MSCRIPT_PAUSE(),
/* 0x0042 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0045 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_DONE(),
static s32 D_80951C34[] = { 0x0E29622D, 0x000A0C10 };
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B08),
/* 0x004A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x004D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004E 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x004F 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_80951BE8[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x32, 0x01, 0x0039 - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x33, 0x80, 0x0039 - 0x000D),
/* 0x000D 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x4B, 0x02, 0x001F - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B13),
/* 0x0015 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x4B, 0x02),
/* 0x001C 0x03 */ MSCRIPT_JUMP(0x0034 - 0x001F),
/* 0x001F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B14),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B15),
/* 0x0026 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B16),
/* 0x002A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B17),
/* 0x002E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2B18),
/* 0x0032 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_PAUSE(),
/* 0x0034 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0037 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_DONE(),
/* 0x0039 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B12),
/* 0x003C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x003F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0040 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_80951C2C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x295A),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static MsgScript D_80951C34[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2962),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Gm_InitVars = {
/**/ ACTOR_EN_GM,
@ -468,8 +664,8 @@ s16 func_8094E4D0(EnGm* this, s32 numCutscenes) {
return csId;
}
s32 func_8094E52C(EnGm* this, PlayState* play) {
s32 pad;
s32 func_8094E52C(Actor* thisx, PlayState* play) {
EnGm* this = THIS;
s16 csId = func_8094E4D0(this, 0);
s32 ret = false;
@ -600,8 +796,9 @@ s32 func_8094E69C(EnGm* this, PlayState* play) {
return ret;
}
s32 func_8094EA34(EnGm* this, PlayState* play) {
s32 pad[2];
s32 func_8094EA34(Actor* thisx, PlayState* play) {
EnGm* this = THIS;
s32 pad;
Actor* al;
Actor* toto;
@ -650,8 +847,9 @@ s32 func_8094EA34(EnGm* this, PlayState* play) {
return true;
}
s32 func_8094EB1C(EnGm* this, PlayState* play) {
s32 pad[2];
s32 func_8094EB1C(Actor* thisx, PlayState* play) {
EnGm* this = THIS;
s32 pad;
s32 ret = false;
s16 oldYaw;
@ -704,7 +902,7 @@ s32 func_8094EB1C(EnGm* this, PlayState* play) {
return ret;
}
s32* func_8094EDBC(EnGm* this, PlayState* play) {
MsgScript* func_8094EDBC(EnGm* this, PlayState* play) {
switch (this->unk_258) {
case 1:
this->unk_3E4 = func_8094E52C;
@ -715,7 +913,8 @@ s32* func_8094EDBC(EnGm* this, PlayState* play) {
return D_80951AD8;
case 3:
this->unk_3E4 = func_8094E69C;
// TODO ideally func_8094E69C should take Actor* and cast to EnGm* rather than cast here
this->unk_3E4 = (MsgEventCallback)func_8094E69C;
return D_80951B98;
case 5:
@ -1636,8 +1835,8 @@ void func_80950DB8(EnGm* this, PlayState* play) {
Vec3f sp34;
Actor* al;
if (func_8010BF58(&this->actor, play, this->unk_264, this->unk_3E4, &this->unk_25C)) {
SubS_SetOfferMode(&this->unk_3A4, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->unk_264, this->unk_3E4, &this->unk_25C)) {
SubS_SetOfferMode(&this->unk_3A4, 3, 7);
al = func_8094DEE0(this, play, ACTORCAT_NPC, ACTOR_EN_AL);
if ((this->unk_258 == 2) && (al != NULL) && (al->update != NULL)) {
this->unk_268 = al;

View File

@ -7,7 +7,6 @@
struct EnGm;
typedef void (*EnGmActionFunc)(struct EnGm*, PlayState*);
typedef s32 (*EnGmUnkFunc)(struct EnGm*, PlayState*);
typedef void (*EnGmUnkFunc2)(struct EnGm*, PlayState*);
#define ENGM_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF)
@ -69,7 +68,7 @@ typedef struct EnGm {
/* 0x3DE */ s16 unk_3DE;
/* 0x3E0 */ s16 unk_3E0;
/* 0x3E2 */ s16 unk_3E2;
/* 0x3E4 */ EnGmUnkFunc unk_3E4;
/* 0x3E4 */ MsgEventCallback unk_3E4;
/* 0x3E8 */ s32 animIndex;
/* 0x3EC */ UNK_TYPE1 unk3EC[0x4];
/* 0x3F0 */ s32 prevTalkState;

View File

@ -124,70 +124,451 @@ void EnGo_Snowball(EnGo* this, PlayState* play);
void EnGo_Talk(EnGo* this, PlayState* play);
// MsgEvent script for the Goron who made Darmani's grave in the mountain village.
static s32 sMsgScriptGoronGravemaker[] = {
0x00150800, 0x40010022, 0x00150200, 0x180E0E10, 0x0C0F0E11, 0x0C0F0E12, 0x0C0F0E13, 0x0C0F0E14, 0x0C111502,
0x100E0E15, 0x0C100015, 0x0400110E, 0x0E160C0F, 0x0E170C0F, 0x0E180C11, 0x15041610, 0x0E0E190C, 0x10001504,
0x000D0100, 0x050E0E31, 0x0C100E0E, 0x2F0C1001, 0x00050E0E, 0x2D0C100E, 0x0E2B0C10,
static MsgScript sMsgScriptGoronGravemaker[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x08, 0x0045 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x002A - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x02, 0x0025 - 0x000D),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E10),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E11),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E12),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E13),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E14),
/* 0x0020 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0021 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x15, 0x02),
/* 0x0024 0x01 */ MSCRIPT_DONE(),
/* 0x0025 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E15),
/* 0x0028 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0029 0x01 */ MSCRIPT_DONE(),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x04, 0x0040 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E16),
/* 0x0032 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E17),
/* 0x0036 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E18),
/* 0x003A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003B 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x15, 0x04),
/* 0x003E 0x01 */ MSCRIPT_CMD22(),
/* 0x003F 0x01 */ MSCRIPT_DONE(),
/* 0x0040 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E19),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x01 */ MSCRIPT_DONE(),
/* 0x0045 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x04, 0x0057 - 0x004A),
/* 0x004A 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0052 - 0x004D),
/* 0x004D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E31),
/* 0x0050 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0051 0x01 */ MSCRIPT_DONE(),
/* 0x0052 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E2F),
/* 0x0055 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0056 0x01 */ MSCRIPT_DONE(),
/* 0x0057 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x005F - 0x005A),
/* 0x005A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E2D),
/* 0x005D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005E 0x01 */ MSCRIPT_DONE(),
/* 0x005F 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E2B),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the frozen Goron aside the gravemaker in the mountain village.
static s32 sMsgScriptGoronFrozen[] = {
0x00150800, 0x7E01004D, 0x00150400, 0x180E0E1A, 0x0C170F0E, 0x230C180F, 0x0E240C0F, 0x0E250C12, 0x16111508,
0x100E0E1A, 0x0C170F0E, 0x230C180F, 0x0E240C0F, 0x0E250C17, 0x0F0E260C, 0x180F0E27, 0x0C170F0E, 0x280C180F,
0x0E290C17, 0x0F0E2A0C, 0x16111508, 0x100E0E1A, 0x0C170F0E, 0x1B0C180F, 0x0E1C0C0F, 0x0E1D0C0F, 0x0E1E0C17,
0x0F0E1F0C, 0x180F0E20, 0x0C170F0E, 0x210C0F0E, 0x220C1611, 0x15081000, 0x1504000D, 0x0100050E, 0x0E320C10,
0x0E0E300C, 0x10010005, 0x0E0E2E0C, 0x100E0E2C, 0x0C100000,
static MsgScript sMsgScriptGoronFrozen[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x08, 0x0083 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0055 - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x04, 0x0025 - 0x000D),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E1A),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0012 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E23),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E24),
/* 0x001A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E25),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0020 0x01 */ MSCRIPT_CMD22(),
/* 0x0021 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x15, 0x08),
/* 0x0024 0x01 */ MSCRIPT_DONE(),
/* 0x0025 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E1A),
/* 0x0028 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0029 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x002A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E23),
/* 0x002D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002E 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E24),
/* 0x0032 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E25),
/* 0x0036 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0037 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0038 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E26),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x003D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E27),
/* 0x0040 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0041 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0042 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E28),
/* 0x0045 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0047 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E29),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x004C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E2A),
/* 0x004F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0050 0x01 */ MSCRIPT_CMD22(),
/* 0x0051 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x15, 0x08),
/* 0x0054 0x01 */ MSCRIPT_DONE(),
/* 0x0055 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E1A),
/* 0x0058 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0059 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x005A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E1B),
/* 0x005D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005E 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x005F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E1C),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E1D),
/* 0x0066 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0067 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E1E),
/* 0x006A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006B 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x006C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E1F),
/* 0x006F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0070 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0071 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E20),
/* 0x0074 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0075 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0076 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E21),
/* 0x0079 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E22),
/* 0x007D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007E 0x01 */ MSCRIPT_CMD22(),
/* 0x007F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x15, 0x08),
/* 0x0082 0x01 */ MSCRIPT_DONE(),
/* 0x0083 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x15, 0x04, 0x0095 - 0x0088),
/* 0x0088 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0090 - 0x008B),
/* 0x008B 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E32),
/* 0x008E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x008F 0x01 */ MSCRIPT_DONE(),
/* 0x0090 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E30),
/* 0x0093 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0094 0x01 */ MSCRIPT_DONE(),
/* 0x0095 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x009D - 0x0098),
/* 0x0098 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E2E),
/* 0x009B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x009C 0x01 */ MSCRIPT_DONE(),
/* 0x009D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E2C),
/* 0x00A0 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A1 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the shrine Goron standing aside the store.
static s32 sMsgScriptGoronAsideStore[] = { 0xE0E520C, 0x10000000 };
static MsgScript sMsgScriptGoronAsideStore[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E52),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the shrine Goron standing aside the Elder's son.
static s32 sMsgScriptGoronAsideEldersSon[] = {
0x160400, 0x38010010, 0xE0E430C, 0xF0E440C, 0xF0E450C, 0x11188010, 0x160800, 0x1B0E0E46, 0xC0F0E47,
0xC0F0E48, 0xC0F0E49, 0xC0F0E4A, 0xC111608, 0x11188010, 0xE0E4B0C, 0x100E0E42, 0xC100000,
static MsgScript sMsgScriptGoronAsideEldersSon[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x16, 0x04, 0x003D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0018 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E43),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E44),
/* 0x000F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E45),
/* 0x0013 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x18, 0x80),
/* 0x0017 0x01 */ MSCRIPT_DONE(),
/* 0x0018 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x16, 0x08, 0x0038 - 0x001D),
/* 0x001D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E46),
/* 0x0020 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0021 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E47),
/* 0x0024 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E48),
/* 0x0028 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E49),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E4A),
/* 0x0030 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x16, 0x08),
/* 0x0034 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x18, 0x80),
/* 0x0037 0x01 */ MSCRIPT_DONE(),
/* 0x0038 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E4B),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_DONE(),
/* 0x003D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E42),
/* 0x0040 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0041 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the shrine Goron standing aside the Elder's room.
static s32 sMsgScriptGoronAsideEldersRoom[] = {
0x160400, 0x22010009, 0xE0E4D0C, 0xF0E4E0C, 0x10001701, 0xC0E0E,
0x4F0C0F0E, 0x500C1117, 0x1100E0E, 0x510C100E, 0xE4C0C10,
static MsgScript sMsgScriptGoronAsideEldersRoom[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x16, 0x04, 0x0027 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0011 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E4D),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E4E),
/* 0x000F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0010 0x01 */ MSCRIPT_DONE(),
/* 0x0011 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x01, 0x0022 - 0x0016),
/* 0x0016 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E4F),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0E50),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x17, 0x01),
/* 0x0021 0x01 */ MSCRIPT_DONE(),
/* 0x0022 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E51),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_DONE(),
/* 0x0027 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E4C),
/* 0x002A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002B 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the Goron in Goron Village who sells Powder Kegs.
static s32 sMsgScriptGoronMedigoron[] = {
0x1001200, 0x12200008, 0xE0C8E0C, 0x11122010, 0xE0C8F0C, 0x10001240, 0x1D0E0C, 0x800C1112, 0x40001280,
0x742500, 0xC006F00, 0x13010045, 0xF0C810C, 0x19001300, 0x1280005E, 0x25000C00, 0x59001301, 0x2F0E0C,
0x810C0F0C, 0x820C0500, 0x1A00, 0x1A300E0C, 0x830C1209, 0x700, 0xE0C84, 0x160C1113, 0x1100E0C,
0x840C1031, 0xE0C850C, 0x1029FFF2, 0x130200, 0xF0E0C88, 0xC0F0C89, 0xC05000A, 0xFFE3FFE3, 0xE0C860C,
0x11128019, 0x213019, 0xFFC02900, 0x2C0E0C8C, 0xC050000, 0x50000, 0x8006400, 0x6320E0C, 0x8D0C1030,
0x14FF9C12, 0x6003400, 0x130034, 0x700000E, 0xC870C16, 0x100E0C8B, 0xC100000,
static MsgScript sMsgScriptGoronMedigoron[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0015 - 0x0003),
/* 0x0003 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x20, 0x0010 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C8E),
/* 0x000B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x12, 0x20),
/* 0x000F 0x01 */ MSCRIPT_DONE(),
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C8F),
/* 0x0013 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0014 0x01 */ MSCRIPT_DONE(),
/* 0x0015 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x40, 0x0037 - 0x001A),
/* 0x001A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C80),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x12, 0x40),
/* 0x0021 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x80, 0x009A - 0x0026),
/* 0x0026 0x05 */ MSCRIPT_BRANCH_ON_ITEM(ITEM_POWDER_KEG, 0x009A - 0x002B),
/* 0x002B 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x13, 0x01, 0x0075 - 0x0030),
/* 0x0030 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0C81),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_JUMP(0x004A - 0x0037),
/* 0x0037 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x12, 0x80, 0x009A - 0x003C),
/* 0x003C 0x05 */ MSCRIPT_BRANCH_ON_ITEM(ITEM_POWDER_KEG, 0x009A - 0x0041),
/* 0x0041 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x13, 0x01, 0x0075 - 0x0046),
/* 0x0046 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C81),
/* 0x0049 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0C82),
/* 0x004D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004E 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x006F - 0x0055, 0x006F - 0x0055),
/* 0x0055 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0056 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C83),
/* 0x0059 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005A 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x005B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x005E 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0061 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C84),
/* 0x0064 0x01 */ MSCRIPT_CMD22(),
/* 0x0065 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0066 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x13, 0x01),
/* 0x0069 0x01 */ MSCRIPT_DONE(),
/* 0x006A 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C84),
/* 0x006D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006E 0x01 */ MSCRIPT_DONE(),
/* 0x006F 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0070 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C85),
/* 0x0073 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0074 0x01 */ MSCRIPT_DONE(),
/* 0x0075 0x03 */ MSCRIPT_HAS_POWDER_KEG(0x006A - 0x0078),
/* 0x0078 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x13, 0x02, 0x008C - 0x007D),
/* 0x007D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C88),
/* 0x0080 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0081 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0C89),
/* 0x0084 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0085 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0096 - 0x008C, 0x006F - 0x008C, 0x006F - 0x008C),
/* 0x008C 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C86),
/* 0x008F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0090 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x12, 0x80),
/* 0x0093 0x03 */ MSCRIPT_JUMP(0x00B7 - 0x0096),
/* 0x0096 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0097 0x03 */ MSCRIPT_JUMP(0x005A - 0x009A),
/* 0x009A 0x03 */ MSCRIPT_HAS_POWDER_KEG(0x00C9 - 0x009D),
/* 0x009D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C8C),
/* 0x00A0 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A1 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x00AD - 0x00A8, 0x0),
/* 0x00A8 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x0064, 0x00B3 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_PLAY_ERROR(),
/* 0x00AE 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C8D),
/* 0x00B1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B2 0x01 */ MSCRIPT_DONE(),
/* 0x00B3 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x00B4 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFF9C),
/* 0x00B7 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00B8 0x05 */ MSCRIPT_OFFER_ITEM(GI_POWDER_KEG, 0x0),
/* 0x00BD 0x03 */ MSCRIPT_COLLECT_SET(0x0034),
/* 0x00C0 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00C3 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C87),
/* 0x00C6 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00C7 0x01 */ MSCRIPT_CMD22(),
/* 0x00C8 0x01 */ MSCRIPT_DONE(),
/* 0x00C9 0x03 */ MSCRIPT_BEGIN_TEXT(0x0C8B),
/* 0x00CC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00CD 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the gatekeeper Goron in Goron Village who opens the shrine gate.
static s32 sMsgScriptGoronGatekeeper[] = {
0x584000, 0x2903000E, 0x2001301, 0x180058, 0x80005119, 0x1E0059, 0x1004919, 0x160059, 0x2004119,
0xE0059, 0x4003919, 0x2F0E0D, 0x4D0C1210, 0xE0D480C, 0xF0D490C, 0xF0D4A0C, 0x5000000, 0xF000F30,
0xE0D4B0C, 0x15090000, 0xE0D4D0C, 0x1210310E, 0xD4C0C12, 0x100E0D4E, 0xC19FFD8, 0xE0D4F0C, 0x19FFD500,
static MsgScript sMsgScriptGoronGatekeeper[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x58, 0x40, 0x002E - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_IF_DEKU(0x0016 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_BRANCH_IF_ZORA(0x001E - 0x000B),
/* 0x000B 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0026 - 0x000E),
/* 0x000E 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x58, 0x80, 0x0064 - 0x0013),
/* 0x0013 0x03 */ MSCRIPT_JUMP(0x0034 - 0x0016),
/* 0x0016 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x59, 0x01, 0x0064 - 0x001B),
/* 0x001B 0x03 */ MSCRIPT_JUMP(0x0034 - 0x001E),
/* 0x001E 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x59, 0x02, 0x0064 - 0x0023),
/* 0x0023 0x03 */ MSCRIPT_JUMP(0x0034 - 0x0026),
/* 0x0026 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x59, 0x04, 0x0064 - 0x002B),
/* 0x002B 0x03 */ MSCRIPT_JUMP(0x005D - 0x002E),
/* 0x002E 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4D),
/* 0x0031 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0032 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_DONE(),
/* 0x0034 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D48),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0D49),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0D4A),
/* 0x003F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0040 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0056 - 0x0047, 0x0056 - 0x0047),
/* 0x0047 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0048 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4B),
/* 0x004B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004C 0x01 */ MSCRIPT_PAUSE(),
/* 0x004D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0050 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4D),
/* 0x0053 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0054 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0055 0x01 */ MSCRIPT_DONE(),
/* 0x0056 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0057 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4C),
/* 0x005A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x005C 0x01 */ MSCRIPT_DONE(),
/* 0x005D 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4E),
/* 0x0060 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0061 0x03 */ MSCRIPT_JUMP(0x003C - 0x0064),
/* 0x0064 0x03 */ MSCRIPT_BEGIN_TEXT(0x0D4F),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_JUMP(0x0040 - 0x006B),
};
// MsgEvent script for one of the Goron stretchers at the racetrack (Initially stretching side to side while squatting).
static s32 sMsgScriptGoronAthleticA[] = { 0x100060E, 0xDFE0C12, 0x100E0DFF, 0xC121000 };
static MsgScript sMsgScriptGoronAthleticA[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0DFE),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x0DFF),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for one of the Goron stretchers at the racetrack (Initially doing sidebend stretches with one arm).
static s32 sMsgScriptGoronAthleticB[] = { 0x100060E, 0xE000C12, 0x100E0E01, 0xC121000 };
static MsgScript sMsgScriptGoronAthleticB[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E00),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E01),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for one of the Goron stretchers at the racetrack (Initially shaking out their limbs).
static s32 sMsgScriptGoronAthleticC[] = { 0x100060E, 0xE020C12, 0x100E0E03, 0xC121000 };
static MsgScript sMsgScriptGoronAthleticC[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E02),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E03),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for one of the Goron stretchers (Initially doing sidebend stretches with both arms).
static s32 sMsgScriptGoronAthleticD[] = { 0x100060E, 0xE040C12, 0x100E0E05, 0xC121000 };
static MsgScript sMsgScriptGoronAthleticD[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E04),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E05),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for the pair of Gorons stretching one Goron's hamstrings.
static s32 sMsgScriptGoronAthleticHamstring[] = { 0x100060E, 0xE060C12, 0x100E0E07, 0xC121000 };
static MsgScript sMsgScriptGoronAthleticHamstring[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_IF_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E06),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_DONE(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x0E07),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_DONE(),
};
// MsgEvent script for any sleeping Goron.
static s32 sMsgScriptGoronSleeping[] = { 0xE023A0C, 0x12100000 };
static MsgScript sMsgScriptGoronSleeping[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x023A),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0005 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Go_InitVars = {
/**/ ACTOR_EN_GO,
@ -982,11 +1363,11 @@ s32 EnGo_UpdateSkelAnime(EnGo* this, PlayState* play) {
s8 extraObjIndex = -1;
s32 isAnimFinished = false;
if ((this->animIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjectSlot > OBJECT_SLOT_NONE)) {
if ((this->curAnimIndex >= ENGO_ANIM_SPRING_MIN) && (this->hakuginDemoObjectSlot > OBJECT_SLOT_NONE)) {
extraObjIndex = this->hakuginDemoObjectSlot;
} else if ((this->animIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjectSlot > OBJECT_SLOT_NONE)) {
} else if ((this->curAnimIndex >= ENGO_ANIM_ATHLETICS_MIN) && (this->taisouObjectSlot > OBJECT_SLOT_NONE)) {
extraObjIndex = this->taisouObjectSlot;
} else if (this->animIndex < ENGO_ANIM_ATHLETICS_MIN) {
} else if (this->curAnimIndex < ENGO_ANIM_ATHLETICS_MIN) {
extraObjIndex = this->actor.objectSlot;
}
@ -1005,7 +1386,7 @@ s32 EnGo_UpdateSkelAnime(EnGo* this, PlayState* play) {
*/
s32 EnGo_UpdateSfx(EnGo* this, PlayState* play) {
if (play->csCtx.state == CS_STATE_IDLE) {
if (this->animIndex == ENGO_ANIM_ROLL) {
if (this->curAnimIndex == ENGO_ANIM_ROLL) {
if (Animation_OnFrame(&this->skelAnime, 2.0f)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_CIRCLE);
}
@ -1013,7 +1394,7 @@ s32 EnGo_UpdateSfx(EnGo* this, PlayState* play) {
if (Animation_OnFrame(&this->skelAnime, 22.0f)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_SIT_IMT);
}
} else if ((this->animIndex == ENGO_ANIM_UNROLL) || (this->animIndex == ENGO_ANIM_UNROLL_IMM)) {
} else if ((this->curAnimIndex == ENGO_ANIM_UNROLL) || (this->curAnimIndex == ENGO_ANIM_UNROLL_IMM)) {
if (Animation_OnFrame(&this->skelAnime, 2.0f)) {
Actor_PlaySfx(&this->actor, NA_SE_EN_GOLON_CIRCLE_OFF);
}
@ -1052,7 +1433,7 @@ s32 EnGo_ChangeAnim(EnGo* this, PlayState* play, EnGoAnimation animIndex) {
if (extraObjIndex >= 0) {
gSegments[6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[extraObjIndex].segment);
this->animIndex = animIndex;
this->curAnimIndex = animIndex;
didAnimChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex);
this->animPlaySpeed = this->skelAnime.playSpeed;
gSegments[6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[objectSlot].segment);
@ -1651,7 +2032,7 @@ void EnGo_ChangeToStretchingAnimation(EnGo* this, PlayState* play) {
EnGo_ChangeAnim(this, play, sSubtypeToAnimIndex[subtypeLookup]);
// Move the sitting Goron forward, since their spawn location is the same as their standing counterpart.
if (this->animIndex == ENGO_ANIM_SITTING_STRETCH) {
if (this->curAnimIndex == ENGO_ANIM_SITTING_STRETCH) {
Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &sStretchingGoronOffset,
&newSittingStretcherPos);
@ -1701,7 +2082,7 @@ void EnGo_ChangeToSpectatingAnimation(EnGo* this, PlayState* play) {
void EnGo_ChangeToFrozenAnimation(EnGo* this, PlayState* play) {
Collider_InitAndSetCylinder(play, &this->colliderCylinder, &this->actor, &sCylinderInitFrozen);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
this->animIndex = ENGO_ANIM_NONE;
this->curAnimIndex = ENGO_ANIM_NONE;
EnGo_ChangeAnim(this, play, ENGO_ANIM_SHIVER);
this->sleepState = ENGO_AWAKE;
this->iceBlockScale = (this->scaleFactor / 0.01f) * 0.9f;
@ -1822,11 +2203,11 @@ void EnGo_SetupGatekeeper(EnGo* this, PlayState* play) {
}
EnGo_ChangeToSnowballAnimation(this, play);
this->actionFunc = EnGo_Snowball;
this->msgEventFunc = EnGo_HandleOpenShrineCutscene;
this->msgEventCallback = EnGo_HandleOpenShrineCutscene;
} else {
EnGo_ChangeToShiveringAnimation(this, play);
this->actionFunc = EnGo_Idle;
this->msgEventFunc = EnGo_HandleOpenShrineCutscene;
this->msgEventCallback = EnGo_HandleOpenShrineCutscene;
}
}
@ -1883,7 +2264,7 @@ void EnGo_SetupMedigoron(EnGo* this, PlayState* play) {
SubS_SetOfferMode(&this->actionFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->actionFlags |= ENGO_FLAG_LOST_ATTENTION;
this->actionFlags |= ENGO_FLAG_EYES_OPEN;
this->msgEventFunc = EnGo_HandleGivePowderKegCutscene;
this->msgEventCallback = EnGo_HandleGivePowderKegCutscene;
this->actionFunc = EnGo_Idle;
}
@ -1899,7 +2280,7 @@ void EnGo_SetupInitialAction(EnGo* this, PlayState* play) {
SkelAnime_InitFlex(play, &this->skelAnime, &gGoronSkel, NULL, this->jointTable, this->morphTable,
GORON_LIMB_MAX);
this->animIndex = ENGO_ANIM_NONE;
this->curAnimIndex = ENGO_ANIM_NONE;
EnGo_ChangeAnim(this, play, ENGO_ANIM_UNROLL);
this->actor.draw = EnGo_Draw;
@ -1910,7 +2291,7 @@ void EnGo_SetupInitialAction(EnGo* this, PlayState* play) {
this->actor.targetMode = TARGET_MODE_1;
this->scaleFactor = ENGO_NORMAL_SCALE;
this->msgEventFunc = NULL;
this->msgEventCallback = NULL;
switch (ENGO_GET_TYPE(&this->actor)) {
case ENGO_ATHLETIC:
@ -2168,14 +2549,14 @@ void EnGo_HandleSpringArrivalCutscene(EnGo* this, PlayState* play) {
switch (this->springArrivalCueId) {
case 3:
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) &&
(this->animIndex == ENGO_ANIM_LOOK_AROUND)) {
(this->curAnimIndex == ENGO_ANIM_LOOK_AROUND)) {
EnGo_ChangeAnim(this, play, ENGO_ANIM_LOOK_AROUND_LOOPED);
}
break;
case 4:
if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) &&
(this->animIndex == ENGO_ANIM_SHOW)) {
(this->curAnimIndex == ENGO_ANIM_SHOW)) {
EnGo_ChangeAnim(this, play, ENGO_ANIM_SHOW_LOOPED);
}
break;
@ -2317,8 +2698,8 @@ void EnGo_Snowball(EnGo* this, PlayState* play) {
/**
* Return the MsgEvent script appropriate for the actor.
*/
s32* EnGo_GetMsgEventScript(EnGo* this, PlayState* play) {
static s32 sMsgScriptGraveyard[] = {
MsgScript* EnGo_GetMsgEventScript(EnGo* this, PlayState* play) {
static MsgScript* sMsgScriptGraveyard[] = {
sMsgScriptGoronGravemaker,
sMsgScriptGoronFrozen,
};
@ -2384,8 +2765,8 @@ void EnGo_Talk(EnGo* this, PlayState* play) {
Vec3f targetPos;
Vec3f thisPos;
if (!func_8010BF58(&this->actor, play, EnGo_GetMsgEventScript(this, play), this->msgEventFunc,
&this->msgScriptResumePos)) {
if (!MsgEvent_RunScript(&this->actor, play, EnGo_GetMsgEventScript(this, play), this->msgEventCallback,
&this->msgScriptResumePos)) {
if ((ENGO_GET_TYPE(&this->actor) != ENGO_ATHLETIC) && !(this->actionFlags & ENGO_FLAG_ROLLED_UP)) {
Math_Vec3f_Copy(&targetPos, &this->attentionTarget->world.pos);
Math_Vec3f_Copy(&thisPos, &this->actor.world.pos);
@ -2599,7 +2980,7 @@ void EnGo_Draw(Actor* thisx, PlayState* play) {
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTexIndex]));
if (this->animIndex == ENGO_ANIM_SITTING_STRETCH) {
if (this->curAnimIndex == ENGO_ANIM_SITTING_STRETCH) {
Matrix_Translate(0.0f, 0.0f, -4000.0f, MTXMODE_APPLY);
}
SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable,

View File

@ -7,7 +7,6 @@
struct EnGo;
typedef void (*EnGoActionFunc)(struct EnGo*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
#define ENGO_GET_TYPE(thisx) (((thisx)->params & 0xF) & 0xFF)
#define ENGO_GET_SUBTYPE(thisx) ((((thisx)->params & 0x70) >> 4) & 0xFF)
@ -131,8 +130,8 @@ typedef struct EnGo {
/* 0x3C8 */ s16 fidgetTableZ[ENGO_FIDGET_TABLE_LEN];
/* 0x3CE */ s16 fidgetTableY[ENGO_FIDGET_TABLE_LEN];
/* 0x3D4 */ s16 surprisePhase;
/* 0x3D8 */ MsgEventFunc msgEventFunc;
/* 0x3DC */ s32 animIndex;
/* 0x3D8 */ MsgEventCallback msgEventCallback;
/* 0x3DC */ s32 curAnimIndex;
/* 0x3E0 */ UNK_TYPE1 unk3E0[0x4];
/* 0x3E4 */ s32 indexPathPoint;
/* 0x3E8 */ s32 indexEffect;

View File

@ -61,31 +61,94 @@ static u8 D_80BF3260[] = {
static s32 D_80BF3318[] = { -1, -1, 3, 1, 3, 1, 2, 0, 3, 5, 0, 3, 1, 2, 4 };
static s32 D_80BF3354[] = {
0x0E28B00C,
0x10000000,
static MsgScript D_80BF3354[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B0),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80BF335C[] = {
0x09000000, 0x4B10001F, 0x170E28B1, 0x0C090000, 0x180E28B2, 0x0C090000, 0x170E28B3, 0x2D000111, 0x37020C09,
0x00001000, 0x5610002F, 0x170E28B1, 0x0C090000, 0x180E28B5, 0x0C090000, 0x170E28B6, 0x0C090000, 0x180E28B7,
0x0C090000, 0x170E28B8, 0x2D00010C, 0x09000011, 0x56101009, 0x0000180E, 0x29560C09, 0x0000170E, 0x29570C09,
0x0000180E, 0x29580C09, 0x0000170E, 0x29592D00, 0x010C0900, 0x00121000,
static MsgScript D_80BF335C[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x4B, 0x10, 0x0027 - 0x0008),
/* 0x0008 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B1),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0010 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B2),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0018 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B3),
/* 0x001C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x001F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x37, 0x02),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0026 0x01 */ MSCRIPT_DONE(),
/* 0x0027 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x56, 0x10, 0x005B - 0x002C),
/* 0x002C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x002D 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B1),
/* 0x0030 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0034 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0035 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B5),
/* 0x0038 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0039 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x003D 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B6),
/* 0x0040 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0044 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0045 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B7),
/* 0x0048 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004C 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x004D 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B8),
/* 0x0050 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0053 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0054 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0057 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x10),
/* 0x005A 0x01 */ MSCRIPT_DONE(),
/* 0x005B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x005E 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x005F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2956),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0066 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0067 0x03 */ MSCRIPT_BEGIN_TEXT(0x2957),
/* 0x006A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x006E 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x006F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2958),
/* 0x0072 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0073 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0076 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0077 0x03 */ MSCRIPT_BEGIN_TEXT(0x2959),
/* 0x007A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x007D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0081 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0082 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80BF33E0[] = {
0x0E28B90C,
0x10000000,
static MsgScript D_80BF33E0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B9),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80BF33E8[] = {
0x0E28B40C,
0x10000000,
static MsgScript D_80BF33E8[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x28B4),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
static s32 D_80BF33F0[] = {
0x0E295B0C,
0x10000000,
static MsgScript D_80BF33F0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x295B),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Ig_InitVars = {
@ -362,8 +425,8 @@ s16 func_80BF1744(EnIg* this, s32 numCutscenes) {
return csId;
}
s32 func_80BF17BC(EnIg* this, PlayState* play) {
s32 pad;
s32 func_80BF17BC(Actor* thisx, PlayState* play) {
EnIg* this = THIS;
s16 csId;
s32 ret;
@ -410,7 +473,7 @@ s32 func_80BF17BC(EnIg* this, PlayState* play) {
return ret;
}
s32* func_80BF1920(EnIg* this, PlayState* play) {
MsgScript* func_80BF1920(EnIg* this, PlayState* play) {
switch (this->scheduleResult) {
case 3:
this->unk_3F8 = func_80BF17BC;
@ -931,8 +994,8 @@ void func_80BF2BD4(EnIg* this, PlayState* play) {
Vec3f sp38;
Vec3f sp2C;
if (func_8010BF58(&this->actor, play, this->unk_29C, this->unk_3F8, &this->unk_2A0)) {
SubS_SetOfferMode(&this->unk_3D0, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->unk_29C, this->unk_3F8, &this->unk_2A0)) {
SubS_SetOfferMode(&this->unk_3D0, 3, 7);
this->unk_3D0 &= ~0x20;
this->unk_3D0 |= 0x200;
this->unk_3EE = 20;

View File

@ -7,7 +7,6 @@
struct EnIg;
typedef void (*EnIgActionFunc)(struct EnIg*, PlayState*);
typedef s32 (*EnIgUnkFunc)(struct EnIg*, PlayState*);
typedef void (*EnIgUnkFunc2)(struct EnIg*, PlayState*);
#define ENIG_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF)
@ -28,7 +27,7 @@ typedef struct EnIg {
/* 0x290 */ s32 timePathWaypoint;
/* 0x294 */ s32 timePathElapsedTime;
/* 0x298 */ u8 scheduleResult;
/* 0x29C */ s32* unk_29C;
/* 0x29C */ MsgScript* unk_29C;
/* 0x2A0 */ s32 unk_2A0;
/* 0x2A4 */ s8 unk_2A4;
/* 0x2A8 */ Actor* unk_2A8;
@ -57,7 +56,7 @@ typedef struct EnIg {
/* 0x3F2 */ s16 unk_3F2;
/* 0x3F4 */ s16 unk_3F4;
/* 0x3F6 */ s16 unk_3F6;
/* 0x3F8 */ EnIgUnkFunc unk_3F8;
/* 0x3F8 */ MsgEventCallback unk_3F8;
/* 0x3FC */ s32 animIndex;
/* 0x400 */ UNK_TYPE1 unk400[0x8];
/* 0x408 */ s32 unk_408;

View File

@ -33,20 +33,84 @@ static u8 D_80BC35F0[] = {
/* 0x1A */ SCHEDULE_CMD_RET_NONE(),
};
s32 D_80BC360C[] = {
0x0E29370C, 0x170E2938, 0x0C180E29, 0x390C170E, 0x293A0C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC360C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2937),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2938),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2939),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x293A),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0016 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BC362C[] = {
0x0E29400C, 0x170E2941, 0x0C180E29, 0x420C170E, 0x29430C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC362C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2940),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2941),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2942),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2943),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0016 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BC364C[] = {
0x0E293C0C, 0x170E293D, 0x0C180E29, 0x3E0C170E, 0x293F0C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC364C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x293C),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x293D),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x293E),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x293F),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0016 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BC366C[] = {
0x0E29440C, 0x170E2945, 0x0C180E29, 0x460C170E, 0x29470C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC366C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2944),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2945),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2946),
/* 0x000D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2947),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0016 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Ja_InitVars = {
@ -332,7 +396,7 @@ void func_80BC21A8(EnJa* this, PlayState* play) {
func_80BC2150(this, play);
}
s32* func_80BC2274(EnJa* this, PlayState* play) {
MsgScript* func_80BC2274(EnJa* this, PlayState* play) {
switch (this->unk_1D8.unk_00) {
case 1:
if (ENJA_GET_3(&this->actor) == 0) {
@ -352,7 +416,7 @@ s32* func_80BC2274(EnJa* this, PlayState* play) {
}
void func_80BC22F4(EnJa* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, func_80BC2274(this, play), this->unk_368, &this->unk_1D8.unk_04)) {
if (MsgEvent_RunScript(&this->actor, play, func_80BC2274(this, play), this->unk_368, &this->unk_1D8.unk_04)) {
this->unk_340 &= ~8;
SubS_SetOfferMode(&this->unk_340, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_1D8.unk_04 = 0;

View File

@ -55,7 +55,7 @@ typedef struct EnJa {
/* 0x362 */ s16 unk_362;
/* 0x364 */ s16 unk_364;
/* 0x366 */ s16 unk_366;
/* 0x368 */ void* unk_368;
/* 0x368 */ MsgEventCallback unk_368;
/* 0x36C */ s32 animIndex;
/* 0x370 */ UNK_TYPE1 unk_370[4];
/* 0x374 */ s32 prevTalkState;

View File

@ -77,34 +77,176 @@ static u8 sScheduleScript[] = {
/* 0x72 */ SCHEDULE_CMD_RET_NONE(),
};
u8 D_80BC1464[] = {
0x1B, 0x04, 0x08, 0x00, 0x6A, 0x0A, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x0E,
0x29, 0x12, 0x2D, 0x00, 0x0E, 0x0C, 0x10, 0x0E, 0x29, 0x01, 0x2D, 0x00, 0x0E, 0x0C, 0x10, 0x0E, 0x29, 0x02, 0x0C,
0x0F, 0x29, 0x03, 0x0C, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x22, 0x31, 0x2D, 0x00, 0x0E, 0x12, 0x10, 0x30, 0x1C,
0x04, 0x04, 0x0E, 0x29, 0x04, 0x0C, 0x20, 0x00, 0x03, 0x00, 0x04, 0x15, 0x09, 0x00, 0xC4, 0x09, 0x00, 0x00, 0x0F,
0x29, 0x05, 0x0C, 0x15, 0x09, 0x00, 0xB9, 0x30, 0x1D, 0x04, 0x04, 0x0E, 0x29, 0x0B, 0x0C, 0x20, 0x00, 0x03, 0x00,
0x04, 0x15, 0x09, 0x00, 0xA8, 0x09, 0x00, 0x00, 0x0F, 0x29, 0x0C, 0x0C, 0x15, 0x09, 0x00, 0x9D, 0x20, 0x00, 0x03,
0x00, 0x17, 0x1B, 0x04, 0x04, 0x00, 0x09, 0x0E, 0x29, 0x11, 0x2D, 0x00, 0x0E, 0x0C, 0x16, 0x10, 0x0E, 0x29, 0x0A,
0x2D, 0x00, 0x0E, 0x0C, 0x16, 0x10, 0x1B, 0x04, 0x04, 0x00, 0x3B, 0x0E, 0x29, 0x0D, 0x0C, 0x05, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x0E, 0x29, 0x10, 0x2D, 0x00, 0x0E, 0x0C, 0x12, 0x16, 0x10, 0x0E, 0x29, 0x0E, 0x00, 0x32, 0x04,
0x00, 0x59, 0x0C, 0x0F, 0x29, 0x0F, 0x0C, 0x12, 0x06, 0x00, 0x0C, 0x00, 0x00, 0x13, 0x00, 0x0C, 0x2F, 0x00, 0x00,
0x2E, 0x2D, 0x00, 0x2A, 0x2D, 0x00, 0x0E, 0x11, 0x32, 0x04, 0x0C, 0x16, 0x10, 0x0E, 0x29, 0x06, 0x0C, 0x05, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x29, 0x07, 0x2D, 0x00, 0x0E, 0x0C, 0x12, 0x16, 0x10, 0x0E, 0x29, 0x08, 0x00,
0x32, 0x02, 0x00, 0x1E, 0x0C, 0x0F, 0x29, 0x09, 0x0C, 0x12, 0x06, 0x00, 0x0C, 0x00, 0x00, 0x13, 0x00, 0x0C, 0x2F,
0x00, 0x00, 0x2E, 0x2D, 0x00, 0x29, 0x2D, 0x00, 0x0E, 0x11, 0x32, 0x02, 0x0C, 0x16, 0x10, 0x2D, 0x00, 0x0E, 0x0C,
0x12, 0x16, 0x10, 0x00, 0x00, 0x00,
MsgScript D_80BC1464[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x04, 0x08, 0x006F - 0x0005),
/* 0x0005 0x0D */ MSCRIPT_BRANCH_ON_DAY(0x0022 - 0x0012, 0x001A - 0x0012, 0x0022 - 0x0012, 0x001A - 0x0012, 0x0, 0x001A - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_BEGIN_TEXT(0x2912),
/* 0x0015 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x01 */ MSCRIPT_DONE(),
/* 0x001A 0x03 */ MSCRIPT_BEGIN_TEXT(0x2901),
/* 0x001D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0020 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0021 0x01 */ MSCRIPT_DONE(),
/* 0x0022 0x03 */ MSCRIPT_BEGIN_TEXT(0x2902),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2903),
/* 0x0029 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002A 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0037 - 0x0031, 0x0053 - 0x0031),
/* 0x0031 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0035 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0038 0x03 */ MSCRIPT_SET_EVENT_INF(0x04, 0x04),
/* 0x003B 0x03 */ MSCRIPT_BEGIN_TEXT(0x2904),
/* 0x003E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003F 0x05 */ MSCRIPT_BRANCH_ON_WORN_MASK(0x0003, 0x0048 - 0x0044),
/* 0x0044 0x01 */ MSCRIPT_PAUSE(),
/* 0x0045 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x010C - 0x0048),
/* 0x0048 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2905),
/* 0x004E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004F 0x01 */ MSCRIPT_PAUSE(),
/* 0x0050 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x010C - 0x0053),
/* 0x0053 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x0054 0x03 */ MSCRIPT_UNSET_EVENT_INF(0x04, 0x04),
/* 0x0057 0x03 */ MSCRIPT_BEGIN_TEXT(0x290B),
/* 0x005A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005B 0x05 */ MSCRIPT_BRANCH_ON_WORN_MASK(0x0003, 0x0064 - 0x0060),
/* 0x0060 0x01 */ MSCRIPT_PAUSE(),
/* 0x0061 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x010C - 0x0064),
/* 0x0064 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0067 0x03 */ MSCRIPT_CONTINUE_TEXT(0x290C),
/* 0x006A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006B 0x01 */ MSCRIPT_PAUSE(),
/* 0x006C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x010C - 0x006F),
/* 0x006F 0x05 */ MSCRIPT_BRANCH_ON_WORN_MASK(0x0003, 0x008B - 0x0074),
/* 0x0074 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x04, 0x04, 0x0082 - 0x0079),
/* 0x0079 0x03 */ MSCRIPT_BEGIN_TEXT(0x2911),
/* 0x007C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x007F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0080 0x01 */ MSCRIPT_CMD22(),
/* 0x0081 0x01 */ MSCRIPT_DONE(),
/* 0x0082 0x03 */ MSCRIPT_BEGIN_TEXT(0x290A),
/* 0x0085 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0088 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0089 0x01 */ MSCRIPT_CMD22(),
/* 0x008A 0x01 */ MSCRIPT_DONE(),
/* 0x008B 0x05 */ MSCRIPT_BRANCH_ON_EVENT_INF(0x04, 0x04, 0x00CB - 0x0090),
/* 0x0090 0x03 */ MSCRIPT_BEGIN_TEXT(0x290D),
/* 0x0093 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0094 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x00A5 - 0x009B, 0x0),
/* 0x009B 0x03 */ MSCRIPT_BEGIN_TEXT(0x2910),
/* 0x009E 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00A1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A2 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00A3 0x01 */ MSCRIPT_CMD22(),
/* 0x00A4 0x01 */ MSCRIPT_DONE(),
/* 0x00A5 0x03 */ MSCRIPT_BEGIN_TEXT(0x290E),
/* 0x00A8 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x32, 0x04, 0x0106 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00AE 0x03 */ MSCRIPT_CONTINUE_TEXT(0x290F),
/* 0x00B1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B2 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00B3 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00B8 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x00BB 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x00BE 0x01 */ MSCRIPT_CMD46(),
/* 0x00BF 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_LONG_STORY_HP),
/* 0x00C2 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00C5 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x32, 0x04),
/* 0x00C8 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00C9 0x01 */ MSCRIPT_CMD22(),
/* 0x00CA 0x01 */ MSCRIPT_DONE(),
/* 0x00CB 0x03 */ MSCRIPT_BEGIN_TEXT(0x2906),
/* 0x00CE 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00CF 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x00E0 - 0x00D6, 0x0, 0x0),
/* 0x00D6 0x03 */ MSCRIPT_BEGIN_TEXT(0x2907),
/* 0x00D9 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00DC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00DD 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00DE 0x01 */ MSCRIPT_CMD22(),
/* 0x00DF 0x01 */ MSCRIPT_DONE(),
/* 0x00E0 0x03 */ MSCRIPT_BEGIN_TEXT(0x2908),
/* 0x00E3 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x32, 0x02, 0x0106 - 0x00E8),
/* 0x00E8 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00E9 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2909),
/* 0x00EC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00ED 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00EE 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00F3 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x00F6 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x00F9 0x01 */ MSCRIPT_CMD46(),
/* 0x00FA 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_SHORT_STORY_HP),
/* 0x00FD 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0100 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x32, 0x02),
/* 0x0103 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0104 0x01 */ MSCRIPT_CMD22(),
/* 0x0105 0x01 */ MSCRIPT_DONE(),
/* 0x0106 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0109 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x010A 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x010B 0x01 */ MSCRIPT_CMD22(),
/* 0x010C 0x01 */ MSCRIPT_DONE(),
};
u8 D_80BC1574[] = {
0x09, 0x00, 0x00, 0x0E, 0x28, 0xC7, 0x0C, 0x09, 0x00, 0x00, 0x17, 0x0E, 0x28, 0xC8, 0x0C, 0x09, 0x00,
0x00, 0x18, 0x0E, 0x28, 0xC9, 0x0C, 0x09, 0x00, 0x00, 0x17, 0x0E, 0x28, 0xCA, 0x0C, 0x09, 0x00, 0x00,
0x18, 0x0E, 0x28, 0xCB, 0x0C, 0x09, 0x00, 0x00, 0x17, 0x0E, 0x28, 0xCC, 0x0C, 0x09, 0x00, 0x00, 0x18,
0x0E, 0x28, 0xCD, 0x0C, 0x09, 0x00, 0x00, 0x17, 0x0E, 0x28, 0xCE, 0x0C, 0x09, 0x00, 0x00, 0x18, 0x0E,
0x28, 0xCF, 0x2D, 0x00, 0x01, 0x2D, 0x00, 0x0E, 0x0C, 0x09, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
MsgScript D_80BC1574[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x28C7),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000B 0x03 */ MSCRIPT_BEGIN_TEXT(0x28C8),
/* 0x000E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0012 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0013 0x03 */ MSCRIPT_BEGIN_TEXT(0x28C9),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x001B 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CA),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0022 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0023 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CB),
/* 0x0026 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x002B 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CC),
/* 0x002E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0032 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0033 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CD),
/* 0x0036 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x003B 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CE),
/* 0x003E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0042 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0043 0x03 */ MSCRIPT_BEGIN_TEXT(0x28CF),
/* 0x0046 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0049 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x004C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0050 0x01 */ MSCRIPT_DONE(),
};
u8 D_80BC15C8[] = {
0x0E, 0x23, 0x62, 0x2D, 0x00, 0x0E, 0x0C, 0x10,
MsgScript D_80BC15C8[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2362),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Nb_InitVars = {
@ -382,7 +524,7 @@ s32 func_80BC01DC(Actor* thisx, PlayState* play) {
return ret;
}
u8* func_80BC045C(EnNb* this, PlayState* play) {
MsgScript* func_80BC045C(EnNb* this, PlayState* play) {
if (CHECK_EVENTINF(EVENTINF_43)) {
this->msgEventCallback = func_80BC01DC;
return D_80BC1464;
@ -658,7 +800,7 @@ void EnNb_FollowSchedule(EnNb* this, PlayState* play) {
}
void func_80BC0EAC(EnNb* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (CHECK_EVENTINF(EVENTINF_43)) {
CLEAR_EVENTINF(EVENTINF_42);
CLEAR_EVENTINF(EVENTINF_43);

View File

@ -7,7 +7,6 @@
struct EnNb;
typedef void (*EnNbActionFunc)(struct EnNb*, PlayState*);
typedef s32 (*EnNbUnkFunc)(Actor*, PlayState*);
typedef void (*EnNbUnkFunc2)(struct EnNb*, PlayState*);
typedef enum EnNbAnimation {
@ -27,7 +26,7 @@ typedef struct EnNb {
/* 0x18C */ EnNbUnkFunc2 unk_18C;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ u8 scheduleResult;
/* 0x1E0 */ u8* msgEventScript;
/* 0x1E0 */ MsgScript* msgEventScript;
/* 0x1E4 */ s32 msgEventArg4;
/* 0x1E8 */ Actor* unk_1E8;
/* 0x1EC */ UNK_TYPE1 unk_1EC[4];
@ -49,7 +48,7 @@ typedef struct EnNb {
/* 0x284 */ s16 unk_284; // storyState?
/* 0x286 */ s16 storyTimer;
/* 0x288 */ s16 behaviour;
/* 0x28C */ EnNbUnkFunc msgEventCallback;
/* 0x28C */ MsgEventCallback msgEventCallback;
/* 0x290 */ EnNbAnimation animIndex;
/* 0x294 */ UNK_TYPE1 unk_294[4];
/* 0x294 */ TextState prevTalkState;

View File

@ -387,89 +387,268 @@ static s32 D_80AFB430[] = {
2, 1, 0, 6, 7, 9, 8, -1, 0, 1, 10, 3, 1, 0, 11, 12, 8, 2, 2, 3, 0, 1, 1, 0, 6, 9, 1, 2, 12, 13,
};
// Game scripts
static UNK_TYPE D_80AFB5A0[] = {
0x00560800, 0x45090000, 0x170E28BA, 0x0C090000, 0x180E28BB, 0x0C090000, 0x170E28BC, 0x0C090000, 0x180E28BD,
0x0C090000, 0x170E28BE, 0x0C090000, 0x180E28BF, 0x0C090000, 0x170E28C0, 0x2D00012D, 0x000B0C09, 0x00001156,
0x08100900, 0x00170E29, 0x5C0C0900, 0x00180E29, 0x5D0C0900, 0x00170E29, 0x5E2D0001, 0x2D000B0C, 0x09000010,
static MsgScript D_80AFB5A0[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x56, 0x08, 0x004A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0008 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BA),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0010 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BB),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0018 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BC),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0020 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0021 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BD),
/* 0x0024 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0028 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0029 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BE),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0030 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0031 0x03 */ MSCRIPT_BEGIN_TEXT(0x28BF),
/* 0x0034 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0035 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0038 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x0039 0x03 */ MSCRIPT_BEGIN_TEXT(0x28C0),
/* 0x003C 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003F 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0042 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0043 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0046 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x08),
/* 0x0049 0x01 */ MSCRIPT_DONE(),
/* 0x004A 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x004D 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x004E 0x03 */ MSCRIPT_BEGIN_TEXT(0x295C),
/* 0x0051 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0052 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0055 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0056 0x03 */ MSCRIPT_BEGIN_TEXT(0x295D),
/* 0x0059 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005A 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x005D 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x005E 0x03 */ MSCRIPT_BEGIN_TEXT(0x295E),
/* 0x0061 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0064 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x006B 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB60C[] = {
0x0E27742D,
0x000B0C10,
static MsgScript D_80AFB60C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2774),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB614[] = {
0x0E27752D,
0x000B0C10,
static MsgScript D_80AFB614[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2775),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB61C[] = {
0x0E27772D,
0x000B0C10,
static MsgScript D_80AFB61C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2777),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB624[] = {
0x0E27782D,
0x000B0C10,
static MsgScript D_80AFB624[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2778),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB62C[] = {
0x0E27792D,
0x000B0C10,
static MsgScript D_80AFB62C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2779),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB634[] = {
0x0E27812D,
0x000B0C10,
static MsgScript D_80AFB634[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2781),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB63C[] = {
0x0E277A2D,
0x000B0C10,
static MsgScript D_80AFB63C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x277A),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB644[] = {
0x0E27822D,
0x000B0C11,
0x58021000,
static MsgScript D_80AFB644[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2782),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x58, 0x02),
/* 0x000A 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB650[] = {
0x0E27832D,
0x000B0C10,
static MsgScript D_80AFB650[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2783),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB658[] = {
0x25002E00, 0x1A005280, 0x000C0E27, 0x7C2D000B, 0x0C115280, 0x12100E27, 0x7D2D000B, 0x0C12100E, 0x277C0C0E,
0x00FF1E00, 0x33000000, 0x1800282C, 0xFFFF0900, 0x000E277E, 0x2D000B0C, 0x11528011, 0x56012A00, 0x2E12102C,
0x277D0C2F, 0x00002D00, 0x0B0C1152, 0x8012100E, 0x277D2D00, 0x0B0C1152, 0x80121000,
static MsgScript D_80AFB658[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_ITEM(ITEM_LETTER_MAMA, 0x001F - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x52, 0x80, 0x0016 - 0x000A),
/* 0x000A 0x03 */ MSCRIPT_BEGIN_TEXT(0x277C),
/* 0x000D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x0014 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_DONE(),
/* 0x0016 0x03 */ MSCRIPT_BEGIN_TEXT(0x277D),
/* 0x0019 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
/* 0x001F 0x03 */ MSCRIPT_BEGIN_TEXT(0x277C),
/* 0x0022 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0026 0x09 */ MSCRIPT_BRANCH_ON_ITEMACTION(0x0033, 0x0, 0x0047 - 0x002F, 0x0057 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD44(0xFFFF),
/* 0x0032 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0035 0x03 */ MSCRIPT_BEGIN_TEXT(0x277E),
/* 0x0038 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x003F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x01),
/* 0x0042 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_MAMA),
/* 0x0045 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_DONE(),
/* 0x0047 0x03 */ MSCRIPT_CMD44(0x277D),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x004E 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0051 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0052 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x0055 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0056 0x01 */ MSCRIPT_DONE(),
/* 0x0057 0x03 */ MSCRIPT_BEGIN_TEXT(0x277D),
/* 0x005A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x005D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005E 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x0061 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0062 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB6BC[] = {
0x0900000E, 0x27A50C09, 0x0000170E, 0x27A60C09, 0x0000180E, 0x27A70C09, 0x0000170E,
0x27A80C09, 0x0000180E, 0x27A90C09, 0x0000170E, 0x27AA0C09, 0x0000180E, 0x27AB0C09,
0x0000170E, 0x27AC0C09, 0x0000180E, 0x27AD2D00, 0x0B2D0008, 0x0C115908, 0x09000010,
static MsgScript D_80AFB6BC[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A5),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x000B 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A6),
/* 0x000E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0012 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0013 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A7),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x001B 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A8),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0022 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0023 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A9),
/* 0x0026 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x002A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x002B 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AA),
/* 0x002E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0032 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0033 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AB),
/* 0x0036 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x003A 0x01 */ MSCRIPT_FOCUS_TO_CHILD(),
/* 0x003B 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AC),
/* 0x003E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0042 0x01 */ MSCRIPT_FOCUS_TO_SELF(),
/* 0x0043 0x03 */ MSCRIPT_BEGIN_TEXT(0x27AD),
/* 0x0046 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0049 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x004C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x59, 0x08),
/* 0x0050 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0053 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB710[] = {
0x25003E00, 0x230E2780, 0x0C0F27AE, 0x0C120600, 0x84000013, 0x0084115A, 0x042F0000,
0x2E2D000B, 0x2D00310C, 0x115A0110, 0x0E27802D, 0x000B0C11, 0x5A011210,
static MsgScript D_80AFB710[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_ITEM(ITEM_MASK_POSTMAN, 0x0028 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2780),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CONTINUE_TEXT(0x27AE),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000E 0x05 */ MSCRIPT_OFFER_ITEM(GI_MASK_POSTMAN, 0x0),
/* 0x0013 0x03 */ MSCRIPT_COLLECT_SET(0x0084),
/* 0x0016 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5A, 0x04),
/* 0x0019 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x001C 0x01 */ MSCRIPT_CMD46(),
/* 0x001D 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0020 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_POSTMANS_HAT),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5A, 0x01),
/* 0x0027 0x01 */ MSCRIPT_DONE(),
/* 0x0028 0x03 */ MSCRIPT_BEGIN_TEXT(0x2780),
/* 0x002B 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x002E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x5A, 0x01),
/* 0x0032 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB744[] = {
0x0E23692D,
0x000B0C10,
static MsgScript D_80AFB744[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2369),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB74C[] = {
0x2CFFFF09, 0x00000E27, 0x7E2D000B, 0x0C115280, 0x1156012A, 0x002E1210,
static MsgScript D_80AFB74C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0006 0x03 */ MSCRIPT_BEGIN_TEXT(0x277E),
/* 0x0009 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x0010 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x56, 0x01),
/* 0x0013 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_MAMA),
/* 0x0016 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0017 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AFB764[] = {
0x2C277D2D,
0x000B0C11,
0x52801210,
static MsgScript D_80AFB764[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x277D),
/* 0x0003 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x52, 0x80),
/* 0x000A 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x000B 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Pm_InitVars = {
@ -818,8 +997,8 @@ s16 func_80AF8170(EnPm* this, s32 numCutscenes) {
return csId;
}
s32 func_80AF81E8(EnPm* this, PlayState* play) {
s32 pad;
s32 func_80AF81E8(Actor* thisx, PlayState* play) {
EnPm* this = THIS;
s16 csId = func_80AF8170(this, 0);
s32 ret = false;
@ -861,8 +1040,8 @@ s32 func_80AF81E8(EnPm* this, PlayState* play) {
return ret;
}
s32 func_80AF8348(EnPm* this, PlayState* play) {
s32 pad;
s32 func_80AF8348(Actor* thisx, PlayState* play) {
EnPm* this = THIS;
s16 csId = func_80AF8170(this, 0);
s32 ret = false;
@ -903,8 +1082,8 @@ s32 func_80AF8348(EnPm* this, PlayState* play) {
return ret;
}
s32 func_80AF8478(EnPm* this, PlayState* play) {
s32 pad;
s32 func_80AF8478(Actor* thisx, PlayState* play) {
EnPm* this = THIS;
s32 ret = false;
switch (this->unk_378) {
@ -928,7 +1107,7 @@ s32 func_80AF8478(EnPm* this, PlayState* play) {
return ret;
}
UNK_TYPE* func_80AF8540(EnPm* this, PlayState* play) {
MsgScript* func_80AF8540(EnPm* this, PlayState* play) {
switch (this->unk_258) {
case 28:
this->unk_37C = func_80AF8348;
@ -2024,8 +2203,8 @@ void func_80AFA5FC(EnPm* this, PlayState* play) {
Vec3f sp38;
Vec3f sp2C;
if (func_8010BF58(&this->actor, play, this->unk_25C, this->unk_37C, &this->unk_264)) {
SubS_SetOfferMode(&this->unk_356, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->unk_25C, this->unk_37C, &this->unk_264)) {
SubS_SetOfferMode(&this->unk_356, 3, 7);
this->unk_356 &= ~0x20;
this->unk_356 |= 0x200;
this->actor.child = NULL;

View File

@ -6,7 +6,6 @@
struct EnPm;
typedef void (*EnPmActionFunc)(struct EnPm*, PlayState*);
typedef s32 (*EnPmFunc)(struct EnPm*, PlayState*);
typedef s32 (*EnPmFunc2)(struct EnPm*, PlayState*);
#define ENPM_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF)
@ -26,7 +25,7 @@ typedef struct EnPm {
/* 0x250 */ s32 timePathWaypoint;
/* 0x254 */ s32 timePathElapsedTime;
/* 0x258 */ u8 unk_258;
/* 0x25C */ UNK_TYPE* unk_25C;
/* 0x25C */ MsgScript* unk_25C;
/* 0x260 */ s8 unk_260;
/* 0x264 */ s32 unk_264;
/* 0x268 */ Actor* unk_268;
@ -49,7 +48,7 @@ typedef struct EnPm {
/* 0x374 */ s16 timePathTimeSpeed;
/* 0x376 */ s16 unk_376;
/* 0x378 */ s16 unk_378;
/* 0x37C */ EnPmFunc unk_37C;
/* 0x37C */ MsgEventCallback unk_37C;
/* 0x380 */ s32 unk_380;
/* 0x384 */ s32 unk_384;
/* 0x388 */ s32 prevTalkState;

View File

@ -59,64 +59,329 @@ static u8 D_80B2C230[] = {
/* 0x9 */ SCHEDULE_CMD_RET_VAL_L(POSTBOX_SCH_CHECKED_BY_POSTMAN),
};
s32 D_80B2C23C[] = {
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
0x2C27870C, 0x2F00000C, 0x111B022A, 0x002F001B, 0x4000080F, 0x27882D00, 0x180C100F,
0x27892D00, 0x180C1012, 0x2C27850C, 0x2FFFD20E, 0x27860C10,
MsgScript D_80B2C23C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x02),
/* 0x0027 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1B, 0x40, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C288[] = {
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
0x2C27870C, 0x2F00000C, 0x111B042A, 0x002F001B, 0x8000080F, 0x27882D00, 0x180C100F,
0x27892D00, 0x180C1012, 0x2C27850C, 0x2FFFD20E, 0x27860C10,
MsgScript D_80B2C288[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x04),
/* 0x0027 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1B, 0x80, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C2D4[] = {
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
0x2C27870C, 0x2F00000C, 0x111B082A, 0x002F001C, 0x0100080F, 0x27882D00, 0x180C100F,
0x27892D00, 0x180C1012, 0x2C27850C, 0x2FFFD20E, 0x27860C10,
MsgScript D_80B2C2D4[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x08),
/* 0x0027 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x01, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C320[] = {
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
0x2C27870C, 0x2F00000C, 0x111B102A, 0x002F001C, 0x0200080F, 0x27882D00, 0x180C100F,
0x27892D00, 0x180C1012, 0x2C27850C, 0x2FFFD20E, 0x27860C10,
MsgScript D_80B2C320[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x10),
/* 0x0027 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x02, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C36C[] = {
0x0E27840C, 0x0E00FF2B, 0x00000031, 0x00392800, 0x0A122C27, 0xA40C2F00, 0x000C1012,
0x2C27870C, 0x2F00000C, 0x111B202A, 0x002F001C, 0x0400080F, 0x27882D00, 0x180C100F,
0x27892D00, 0x180C1012, 0x2C27850C, 0x2FFFD20E, 0x27860C10,
MsgScript D_80B2C36C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x001F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x20),
/* 0x0027 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x04, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C3B8[] = {
0x0E27A10C, 0x0F27A20C, 0x12005108, 0x000F0600, 0x0C000013, 0x000C0C11,
0x51080700, 0x0C060001, 0x00001300, 0x010C0700, 0x000E27A3, 0x0C161000,
MsgScript D_80B2C3B8[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A1),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CONTINUE_TEXT(0x27A2),
/* 0x0007 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0009 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x51, 0x08, 0x001D - 0x000E),
/* 0x000E 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0013 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x0016 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x51, 0x08),
/* 0x001A 0x03 */ MSCRIPT_CMD07(0x0029 - 0x001D),
/* 0x001D 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_GREEN, 0x0),
/* 0x0022 0x03 */ MSCRIPT_COLLECT_SET(0x0001),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0029 0x03 */ MSCRIPT_BEGIN_TEXT(0x27A3),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x01 */ MSCRIPT_CMD22(),
/* 0x002E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C3E8[] = {
0x2C27870C, 0x111B022A, 0x002F001B, 0x4000080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C3E8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x02),
/* 0x0007 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1B, 0x40, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C408[] = {
0x2C27870C, 0x111B042A, 0x002F001B, 0x8000080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C408[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x04),
/* 0x0007 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1B, 0x80, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C428[] = {
0x2C27870C, 0x111B082A, 0x002F001C, 0x0100080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C428[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x08),
/* 0x0007 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x01, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C448[] = {
0x2C27870C, 0x111B102A, 0x002F001C, 0x0200080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C448[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x10),
/* 0x0007 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x02, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C468[] = {
0x2C27870C, 0x111B202A, 0x002F001C, 0x0400080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C468[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2787),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x1B, 0x20),
/* 0x0007 0x03 */ MSCRIPT_DEL_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x1C, 0x04, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C488[] = { 0x2C27A40C, 0x10000000 };
MsgScript D_80B2C488[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x27A4),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
s32 D_80B2C490[] = { 0x2C27850C, 0x10000000 };
MsgScript D_80B2C490[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0x2785),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Pst_InitVars = {
/**/ ACTOR_EN_PST,
@ -231,7 +496,7 @@ s32 EnPst_ChooseBehaviour(Actor* thisx, PlayState* play) {
return scriptBranch;
}
s32* EnPst_GetMsgEventScript(EnPst* this, PlayState* play) {
MsgScript* EnPst_GetMsgEventScript(EnPst* this, PlayState* play) {
if (Player_GetMask(play) == PLAYER_MASK_POSTMAN) {
return D_80B2C3B8;
}
@ -353,7 +618,7 @@ void EnPst_FollowSchedule(EnPst* this, PlayState* play) {
}
void EnPst_Talk(EnPst* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->msgEventArg4)) {
if (EnPst_HandleLetterDay1(this) != this->isLetterToKafeiDeposited) {
switch (gSaveContext.save.day) {
case 1:

View File

@ -15,7 +15,6 @@ typedef enum {
struct EnPst;
typedef void (*EnPstActionFunc)(struct EnPst*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
typedef struct EnPst {
/* 0x000 */ Actor actor;
@ -23,14 +22,14 @@ typedef struct EnPst {
/* 0x188 */ EnPstActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ u8 scheduleResult;
/* 0x1DC */ s32* msgEventScript;
/* 0x1DC */ MsgScript* msgEventScript;
/* 0x1E0 */ s32 msgEventArg4;
/* 0x1E4 */ Vec3s jointTable[POSTBOX_LIMB_MAX];
/* 0x1F6 */ Vec3s morphTable[POSTBOX_LIMB_MAX];
/* 0x208 */ u16 stateFlags;
/* 0x20A */ UNK_TYPE1 pad20A[4];
/* 0x20E */ s16 behaviour;
/* 0x210 */ MsgEventFunc msgEventCallback;
/* 0x210 */ MsgEventCallback msgEventCallback;
/* 0x214 */ s32 unk214; // Set and not used
/* 0x218 */ s32 exchangeItemAction;
/* 0x21C */ s32 isLetterToKafeiDeposited;

View File

@ -19,37 +19,378 @@ void EnShn_Draw(Actor* thisx, PlayState* play);
void func_80AE6A64(EnShn* this, PlayState* play);
// Could be something related to text/dialogue?
static UNK_TYPE D_80AE6F00[] = {
0x00170800, 0x0B0E09C4, 0x0C0F09C5, 0x0C111708, 0x03018C04, 0x018E1901, 0x860F00FF, 0x1E001300, 0x00011501,
0x47280012, 0x28001928, 0x002D2800, 0x5D280093, 0x28003319, 0x00472C09, 0xE70C2F00, 0x000C1210, 0x2C09CB0C,
0x2F00000C, 0x0F09CC0C, 0x0F09CD0C, 0x0500A500, 0xCB00CB2C, 0x09D10C2F, 0x00000C0F, 0x09D20C19, 0xFFE62C09,
0xD30C2F00, 0x000C0F09, 0xD40C0F09, 0xD50C0500, 0x9200B200, 0xB22C09D9, 0x0C2F0000, 0x0C0F09DA, 0x0C102C09,
0xE80C2F00, 0x000C0F09, 0xE90C0F09, 0xEA0C0057, 0x04001712, 0x06000C00, 0x0013000C, 0x0C115704, 0x0700000E,
0x09EB0C12, 0x16101206, 0x00060000, 0x1300060C, 0x07FFEC2C, 0x09EC0C2F, 0x00000C0F, 0x09ED0C0F, 0x09EE0C00,
0x57040017, 0x1206000C, 0x00001300, 0x0C0C1157, 0x04070000, 0x0E09EF0C, 0x12161012, 0x06000600, 0x00130006,
0x0C07FFEC, 0x12060004, 0x00001300, 0x040C0700, 0x000E09CE, 0x0C161012, 0x06000200, 0x00130002, 0x0C070000,
0x0E09D80C, 0x16100C0F, 0x09CF0C1C, 0x05011509, 0x0000100E, 0x09D60C19, 0xFFF10037, 0x40001C2C, 0x09DB0C2F,
0x00000C0F, 0x09DC0C0F, 0x09DD0C0F, 0x09DE0C0F, 0x09DF0C11, 0x3740102C, 0x09E00C2F, 0x00000C0F, 0x09E10C0F,
0x09E20C10, 0x00374000, 0x180E09DB, 0x0C0F09DC, 0x0C0F09DD, 0x0C0F09DE, 0x0C0F09DF, 0x0C113740, 0x100E09E0,
0x0C0F09E1, 0x0C0F09E2, 0x0C100E09, 0xC90C0F09, 0xCA0C100E, 0x09C60C10, 0x001402FF, 0xED0E09C8, 0x0C19FE69
static MsgScript D_80AE6F00[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x17, 0x08, 0x0010 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x09C4),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09C5),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x17, 0x08),
/* 0x0010 0x03 */ MSCRIPT_BRANCH_IF_DEKU(0x019F - 0x0013),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_IF_HUMAN(0x01A4 - 0x0016),
/* 0x0016 0x03 */ MSCRIPT_JUMP(0x019F - 0x0019),
/* 0x0019 0x03 */ MSCRIPT_CONTINUE_TEXT(0x00FF),
/* 0x001C 0x09 */ MSCRIPT_BRANCH_ON_ITEMACTION(0x0013, 0x0, 0x013A - 0x0025, 0x016C - 0x0025),
/* 0x0025 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x003A - 0x0028),
/* 0x0028 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0044 - 0x002B),
/* 0x002B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x005B - 0x002E),
/* 0x002E 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x008E - 0x0031),
/* 0x0031 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x00C7 - 0x0034),
/* 0x0034 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x006A - 0x0037),
/* 0x0037 0x03 */ MSCRIPT_JUMP(0x0081 - 0x003A),
/* 0x003A 0x03 */ MSCRIPT_CMD44(0x09E7),
/* 0x003D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0041 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0042 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0043 0x01 */ MSCRIPT_DONE(),
/* 0x0044 0x03 */ MSCRIPT_CMD44(0x09CB),
/* 0x0047 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x004B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CC),
/* 0x004F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0050 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CD),
/* 0x0053 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0054 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0100 - 0x005B, 0x0126 - 0x005B, 0x0126 - 0x005B),
/* 0x005B 0x03 */ MSCRIPT_CMD44(0x09D1),
/* 0x005E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005F 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D2),
/* 0x0066 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0067 0x03 */ MSCRIPT_JUMP(0x0050 - 0x006A),
/* 0x006A 0x03 */ MSCRIPT_CMD44(0x09D3),
/* 0x006D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006E 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0071 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0072 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D4),
/* 0x0075 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0076 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D5),
/* 0x0079 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007A 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0113 - 0x0081, 0x0133 - 0x0081, 0x0133 - 0x0081),
/* 0x0081 0x03 */ MSCRIPT_CMD44(0x09D9),
/* 0x0084 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0085 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0088 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0089 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DA),
/* 0x008C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x008D 0x01 */ MSCRIPT_DONE(),
/* 0x008E 0x03 */ MSCRIPT_CMD44(0x09E8),
/* 0x0091 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0092 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0095 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0096 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E9),
/* 0x0099 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x009A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09EA),
/* 0x009D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x009E 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x57, 0x04, 0x00BA - 0x00A3),
/* 0x00A3 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00A4 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00A9 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x00AC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x57, 0x04),
/* 0x00B0 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00B3 0x03 */ MSCRIPT_BEGIN_TEXT(0x09EB),
/* 0x00B6 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B7 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00B8 0x01 */ MSCRIPT_CMD22(),
/* 0x00B9 0x01 */ MSCRIPT_DONE(),
/* 0x00BA 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00BB 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00C0 0x03 */ MSCRIPT_COLLECT_SET(0x0006),
/* 0x00C3 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00C4 0x03 */ MSCRIPT_CMD07(0x00B3 - 0x00C7),
/* 0x00C7 0x03 */ MSCRIPT_CMD44(0x09EC),
/* 0x00CA 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00CB 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x00CE 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00CF 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09ED),
/* 0x00D2 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00D3 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09EE),
/* 0x00D6 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00D7 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x57, 0x04, 0x00F3 - 0x00DC),
/* 0x00DC 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00DD 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00E2 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x00E5 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00E6 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x57, 0x04),
/* 0x00E9 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00EC 0x03 */ MSCRIPT_BEGIN_TEXT(0x09EF),
/* 0x00EF 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00F0 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00F1 0x01 */ MSCRIPT_CMD22(),
/* 0x00F2 0x01 */ MSCRIPT_DONE(),
/* 0x00F3 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00F4 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00F9 0x03 */ MSCRIPT_COLLECT_SET(0x0006),
/* 0x00FC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00FD 0x03 */ MSCRIPT_CMD07(0x00EC - 0x0100),
/* 0x0100 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0101 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_RED, 0x0),
/* 0x0106 0x03 */ MSCRIPT_COLLECT_SET(0x0004),
/* 0x0109 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x010A 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x010D 0x03 */ MSCRIPT_BEGIN_TEXT(0x09CE),
/* 0x0110 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0111 0x01 */ MSCRIPT_CMD22(),
/* 0x0112 0x01 */ MSCRIPT_DONE(),
/* 0x0113 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0114 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x0119 0x03 */ MSCRIPT_COLLECT_SET(0x0002),
/* 0x011C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x011D 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0120 0x03 */ MSCRIPT_BEGIN_TEXT(0x09D8),
/* 0x0123 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0124 0x01 */ MSCRIPT_CMD22(),
/* 0x0125 0x01 */ MSCRIPT_DONE(),
/* 0x0126 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0127 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CF),
/* 0x012A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x012B 0x03 */ MSCRIPT_SET_EVENT_INF(0x05, 0x01),
/* 0x012E 0x01 */ MSCRIPT_PAUSE(),
/* 0x012F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0132 0x01 */ MSCRIPT_DONE(),
/* 0x0133 0x03 */ MSCRIPT_BEGIN_TEXT(0x09D6),
/* 0x0136 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0137 0x03 */ MSCRIPT_JUMP(0x012B - 0x013A),
/* 0x013A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x37, 0x40, 0x015B - 0x013F),
/* 0x013F 0x03 */ MSCRIPT_CMD44(0x09DB),
/* 0x0142 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0143 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0146 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0147 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DC),
/* 0x014A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x014B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DD),
/* 0x014E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x014F 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DE),
/* 0x0152 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0153 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DF),
/* 0x0156 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0157 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x37, 0x40),
/* 0x015A 0x01 */ MSCRIPT_DONE(),
/* 0x015B 0x03 */ MSCRIPT_CMD44(0x09E0),
/* 0x015E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x015F 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0162 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0163 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E1),
/* 0x0166 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0167 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E2),
/* 0x016A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x016B 0x01 */ MSCRIPT_DONE(),
/* 0x016C 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x37, 0x40, 0x0189 - 0x0171),
/* 0x0171 0x03 */ MSCRIPT_BEGIN_TEXT(0x09DB),
/* 0x0174 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0175 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DC),
/* 0x0178 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0179 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DD),
/* 0x017C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x017D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DE),
/* 0x0180 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0181 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DF),
/* 0x0184 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0185 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x37, 0x40),
/* 0x0188 0x01 */ MSCRIPT_DONE(),
/* 0x0189 0x03 */ MSCRIPT_BEGIN_TEXT(0x09E0),
/* 0x018C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x018D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E1),
/* 0x0190 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0191 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E2),
/* 0x0194 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0195 0x01 */ MSCRIPT_DONE(),
/* 0x0196 0x03 */ MSCRIPT_BEGIN_TEXT(0x09C9),
/* 0x0199 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x019A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CA),
/* 0x019D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x019E 0x01 */ MSCRIPT_DONE(),
/* 0x019F 0x03 */ MSCRIPT_BEGIN_TEXT(0x09C6),
/* 0x01A2 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x01A3 0x01 */ MSCRIPT_DONE(),
/* 0x01A4 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x14, 0x02, 0x0196 - 0x01A9),
/* 0x01A9 0x03 */ MSCRIPT_BEGIN_TEXT(0x09C8),
/* 0x01AC 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x01AD 0x03 */ MSCRIPT_JUMP(0x0019 - 0x01B0),
};
static UNK_TYPE D_80AE70B0[] = { 0x0E09D00C, 0x16100000 };
static UNK_TYPE D_80AE70B8[] = {
0x28001228, 0x00152800, 0x28280055, 0x28008A28, 0x002D1900, 0x402C09E7, 0x0C12102C, 0x09CB2F00, 0x000C0F09,
0xCC0C0F09, 0xCD0C0500, 0xA000C600, 0xC62C09D1, 0x2F00000C, 0x0F09D20C, 0x19FFE72C, 0x09D32F00, 0x000C0F09,
0xD40C0F09, 0xD50C0500, 0x8F00AF00, 0xAF2C09D9, 0x2F00000C, 0x0F09DA0C, 0x102C09E8, 0x2F00000C, 0x0F09E90C,
0x0F09EA0C, 0x00570400, 0x17120600, 0x0C000013, 0x000C0C11, 0x57040700, 0x000E09EB, 0x0C121610, 0x12060006,
0x00001300, 0x060C07FF, 0xEC2C09EC, 0x2F00000C, 0x0F09ED0C, 0x0F09EE0C, 0x00570800, 0x17120600, 0x0C000013,
0x000C0C11, 0x57080700, 0x000E09EF, 0x0C121610, 0x12060006, 0x00001300, 0x060C07FF, 0xEC120600, 0x04000013,
0x00040C07, 0x00000E09, 0xCE0C1610, 0x12060002, 0x00001300, 0x020C0700, 0x000E09D8, 0x0C16100C, 0x0F09CF0C,
0x1C050115, 0x09000010, 0x0E09D60C, 0x19FFF100,
static MsgScript D_80AE70B0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x09D0),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD22(),
/* 0x0005 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80AE71C4[] = { 0x00374000, 0x1C2C09DB, 0x0C2F0000, 0x0C0F09DC, 0x0C0F09DD, 0x0C0F09DE, 0x0C0F09DF,
0x0C113740, 0x102C09E0, 0x0C2F0000, 0x0C0F09E1, 0x0C0F09E2, 0x0C100000 };
static MsgScript D_80AE70B8[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0015 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x001B - 0x0006),
/* 0x0006 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0031 - 0x0009),
/* 0x0009 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0061 - 0x000C),
/* 0x000C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0099 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x003F - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_JUMP(0x0055 - 0x0015),
/* 0x0015 0x03 */ MSCRIPT_CMD44(0x09E7),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_DONE(),
/* 0x001B 0x03 */ MSCRIPT_CMD44(0x09CB),
/* 0x001E 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0021 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CC),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CD),
/* 0x0029 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002A 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x00D1 - 0x0031, 0x00F7 - 0x0031, 0x00F7 - 0x0031),
/* 0x0031 0x03 */ MSCRIPT_CMD44(0x09D1),
/* 0x0034 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0037 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D2),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_JUMP(0x0026 - 0x003F),
/* 0x003F 0x03 */ MSCRIPT_CMD44(0x09D3),
/* 0x0042 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0045 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0046 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D4),
/* 0x0049 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004A 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09D5),
/* 0x004D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004E 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x00E4 - 0x0055, 0x0104 - 0x0055, 0x0104 - 0x0055),
/* 0x0055 0x03 */ MSCRIPT_CMD44(0x09D9),
/* 0x0058 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x005B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x005C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DA),
/* 0x005F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0060 0x01 */ MSCRIPT_DONE(),
/* 0x0061 0x03 */ MSCRIPT_CMD44(0x09E8),
/* 0x0064 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E9),
/* 0x006B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x006C 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09EA),
/* 0x006F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0070 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x57, 0x04, 0x008C - 0x0075),
/* 0x0075 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0076 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x007B 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x007E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x007F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x57, 0x04),
/* 0x0082 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x0085 0x03 */ MSCRIPT_BEGIN_TEXT(0x09EB),
/* 0x0088 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0089 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x008A 0x01 */ MSCRIPT_CMD22(),
/* 0x008B 0x01 */ MSCRIPT_DONE(),
/* 0x008C 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x008D 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x0092 0x03 */ MSCRIPT_COLLECT_SET(0x0006),
/* 0x0095 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0096 0x03 */ MSCRIPT_CMD07(0x0085 - 0x0099),
/* 0x0099 0x03 */ MSCRIPT_CMD44(0x09EC),
/* 0x009C 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x009F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A0 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09ED),
/* 0x00A3 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A4 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09EE),
/* 0x00A7 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00A8 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x57, 0x08, 0x00C4 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00AE 0x05 */ MSCRIPT_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00B3 0x03 */ MSCRIPT_COLLECT_SET(0x000C),
/* 0x00B6 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00B7 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x57, 0x08),
/* 0x00BA 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00BD 0x03 */ MSCRIPT_BEGIN_TEXT(0x09EF),
/* 0x00C0 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00C1 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00C2 0x01 */ MSCRIPT_CMD22(),
/* 0x00C3 0x01 */ MSCRIPT_DONE(),
/* 0x00C4 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00C5 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00CA 0x03 */ MSCRIPT_COLLECT_SET(0x0006),
/* 0x00CD 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00CE 0x03 */ MSCRIPT_CMD07(0x00BD - 0x00D1),
/* 0x00D1 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00D2 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_RED, 0x0),
/* 0x00D7 0x03 */ MSCRIPT_COLLECT_SET(0x0004),
/* 0x00DA 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00DB 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00DE 0x03 */ MSCRIPT_BEGIN_TEXT(0x09CE),
/* 0x00E1 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00E2 0x01 */ MSCRIPT_CMD22(),
/* 0x00E3 0x01 */ MSCRIPT_DONE(),
/* 0x00E4 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x00E5 0x05 */ MSCRIPT_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x00EA 0x03 */ MSCRIPT_COLLECT_SET(0x0002),
/* 0x00ED 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00EE 0x03 */ MSCRIPT_CMD07(0x0),
/* 0x00F1 0x03 */ MSCRIPT_BEGIN_TEXT(0x09D8),
/* 0x00F4 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00F5 0x01 */ MSCRIPT_CMD22(),
/* 0x00F6 0x01 */ MSCRIPT_DONE(),
/* 0x00F7 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00F8 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09CF),
/* 0x00FB 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x00FC 0x03 */ MSCRIPT_SET_EVENT_INF(0x05, 0x01),
/* 0x00FF 0x01 */ MSCRIPT_PAUSE(),
/* 0x0100 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0103 0x01 */ MSCRIPT_DONE(),
/* 0x0104 0x03 */ MSCRIPT_BEGIN_TEXT(0x09D6),
/* 0x0107 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0108 0x03 */ MSCRIPT_JUMP(0x00FC - 0x010B),
};
static MsgScript D_80AE71C4[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x37, 0x40, 0x0021 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD44(0x09DB),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x000C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DC),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DD),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DE),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09DF),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x37, 0x40),
/* 0x0020 0x01 */ MSCRIPT_DONE(),
/* 0x0021 0x03 */ MSCRIPT_CMD44(0x09E0),
/* 0x0024 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0028 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E1),
/* 0x002C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CONTINUE_TEXT(0x09E2),
/* 0x0030 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0031 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Shn_InitVars = {
/**/ ACTOR_EN_SHN,
@ -271,18 +612,18 @@ s32 func_80AE6704(Actor* thisx, PlayState* play) {
return ret;
}
UNK_TYPE* func_80AE6880(EnShn* this, PlayState* play) {
MsgScript* func_80AE6880(EnShn* this, PlayState* play) {
if (this->unk_2BE != 0) {
return D_80AE70B0;
}
if (this->unk_1D8 & 0x80) {
this->unk_2D8 = func_80AE6704;
this->msgEventCallback = func_80AE6704;
return D_80AE70B8;
}
if (this->unk_1D8 & 0x100) {
return D_80AE71C4;
}
this->unk_2D8 = func_80AE6704;
this->msgEventCallback = func_80AE6704;
return D_80AE6F00;
}
@ -326,8 +667,8 @@ void func_80AE6A64(EnShn* this, PlayState* play) {
Vec3f playerPos;
Vec3f shnPos;
if (func_8010BF58(&this->actor, play, this->unk_1DC, this->unk_2D8, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_1D8, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, this->unk_1DC, this->msgEventCallback, &this->unk_1E0)) {
SubS_SetOfferMode(&this->unk_1D8, 3, 7);
this->unk_1D8 &= ~8;
this->unk_1D8 |= 0x20;
this->unk_2CA = 20;
@ -357,7 +698,7 @@ void EnShn_Init(Actor* thisx, PlayState* play) {
this->actor.targetMode = TARGET_MODE_6;
Actor_SetScale(&this->actor, 0.01f);
this->unk_2E0 = 0;
this->unk_2D8 = 0;
this->msgEventCallback = NULL;
this->unk_1D8 = 0;
if (gSaveContext.save.entrance != ENTRANCE(TOURIST_INFORMATION, 2)) {
SubS_SetOfferMode(&this->unk_1D8, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);

View File

@ -7,7 +7,6 @@
struct EnShn;
typedef void (*EnShnActionFunc)(struct EnShn*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
typedef struct EnShn {
/* 0x000 */ Actor actor;
@ -16,7 +15,7 @@ typedef struct EnShn {
/* 0x18C */ UNK_TYPE1 pad_18C[0x4C];
/* 0x1D8 */ u16 unk_1D8;
/* 0x1DA */ u16 unk_1DA;
/* 0x1DC */ UNK_TYPE* unk_1DC;
/* 0x1DC */ MsgScript* unk_1DC;
/* 0x1E0 */ s32 unk_1E0;
/* 0x1E4 */ Player* shnPlayerRef;
/* 0x1E8 */ Vec3f unk_1E8;
@ -35,7 +34,7 @@ typedef struct EnShn {
/* 0x2CC */ f32 playSpeed;
/* 0x2D0 */ f32 unk_2D0;
/* 0x2D4 */ f32 unk_2D4;
/* 0x2D8 */ MsgEventFunc unk_2D8;
/* 0x2D8 */ MsgEventCallback msgEventCallback;
/* 0x2DC */ s32 prevTalkState;
/* 0x2E0 */ s32 unk_2E0;
/* 0x2E4 */ s32 unk_2E4;

View File

@ -38,32 +38,194 @@ static u8 D_80BE18D0[] = {
/* 0x41 */ SCHEDULE_CMD_RET_NONE(),
};
s32 D_80BE1914[] = {
0x003A0200, 0x080E2AF9, 0x0C113A02, 0x100E2AFA, 0x0C150900, 0x000E2AFB,
0x0C003401, 0x00090F2A, 0xFD0C0F2A, 0xFE0C100F, 0x2AFC0C10,
MsgScript D_80BE1914[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x3A, 0x02, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AF9),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x3A, 0x02),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AFA),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_PAUSE(),
/* 0x0012 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0015 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AFB),
/* 0x0018 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0019 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x34, 0x01, 0x0027 - 0x001E),
/* 0x001E 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFD),
/* 0x0021 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFE),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_DONE(),
/* 0x0027 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFC),
/* 0x002A 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002B 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BE1940[] = {
0x003F0400, 0x080E2B3D, 0x0C113F04, 0x100E2B3E, 0x0C0F2AFA, 0x0C150900,
0x000E2AFB, 0x0C003401, 0x00090F2A, 0xFD0C0F2A, 0xFE0C100F, 0x2AFC0C10,
MsgScript D_80BE1940[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x3F, 0x04, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B3D),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x3F, 0x04),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B3E),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFA),
/* 0x0014 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_PAUSE(),
/* 0x0016 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0019 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AFB),
/* 0x001C 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001D 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x34, 0x01, 0x002B - 0x0022),
/* 0x0022 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFD),
/* 0x0025 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFE),
/* 0x0029 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002A 0x01 */ MSCRIPT_DONE(),
/* 0x002B 0x03 */ MSCRIPT_CONTINUE_TEXT(0x2AFC),
/* 0x002E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x002F 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BE1970[] = { 0x003A0100, 0x080E2AFF, 0x0C113A01, 0x100E2B00, 0x0C100000 };
MsgScript D_80BE1970[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x3A, 0x01, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2AFF),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x3A, 0x01),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
s32 D_80BE1984[] = { 0x00500100, 0x080E2B3F, 0x0C115001, 0x100E2B40, 0x0C100000 };
s32 D_80BE1998[] = { 0x0E2B090C, 0x10000000 };
s32 D_80BE19A0[] = {
0x0E2B0A0C, 0x05004E00, 0x00004E30, 0x2800050E, 0x2B0E0C10, 0x0E2B0B0C, 0x05000000, 0x08001008, 0x00140026,
0x19000E08, 0x00C8000F, 0x19000631, 0x0E2B0D0C, 0x10320E2B, 0x0C0C1030, 0x1214FF38, 0x06009100, 0x00130091,
0x0C103012, 0x14FFEC06, 0x00920000, 0x1300920C, 0x10300034, 0x0100050E, 0x2B0F0C10, 0x0E2B110C, 0x10000000,
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B00),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_DONE(),
};
s32 D_80BE1A0C[] = {
0x0E2B0A0C, 0x05004E00, 0x00004E30, 0x2800050E, 0x2B0E0C10, 0x0E2B0B0C, 0x05000000, 0x08001008, 0x00140026,
0x19000E08, 0x00C8000F, 0x19000631, 0x0E2B0D0C, 0x10320E2B, 0x0C0C1030, 0x1214FF38, 0x06009100, 0x00130091,
0x0C103012, 0x14FFEC06, 0x00920000, 0x1300920C, 0x10300034, 0x0100050E, 0x2B100C10, 0x0E2B110C, 0x10000000,
MsgScript D_80BE1984[] = {
/* 0x0000 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x50, 0x01, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B3F),
/* 0x0008 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x50, 0x01),
/* 0x000C 0x01 */ MSCRIPT_DONE(),
/* 0x000D 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B40),
/* 0x0010 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BE1998[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B09),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BE19A0[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0A),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0059 - 0x000B, 0x0, 0x0059 - 0x000B),
/* 0x000B 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x000C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0014 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0E),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_DONE(),
/* 0x0014 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0B),
/* 0x0017 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0027 - 0x001F, 0x002F - 0x001F),
/* 0x001F 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x0014, 0x004A - 0x0024),
/* 0x0024 0x03 */ MSCRIPT_JUMP(0x0035 - 0x0027),
/* 0x0027 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x00C8, 0x003B - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_JUMP(0x0035 - 0x002F),
/* 0x002F 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0030 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0D),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_DONE(),
/* 0x0035 0x01 */ MSCRIPT_PLAY_ERROR(),
/* 0x0036 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0C),
/* 0x0039 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003A 0x01 */ MSCRIPT_DONE(),
/* 0x003B 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x003C 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFF38),
/* 0x0040 0x05 */ MSCRIPT_OFFER_ITEM(GI_CHATEAU, 0x0),
/* 0x0045 0x03 */ MSCRIPT_COLLECT_SET(0x0091),
/* 0x0048 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_DONE(),
/* 0x004A 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x004B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFFEC),
/* 0x004F 0x05 */ MSCRIPT_OFFER_ITEM(GI_MILK, 0x0),
/* 0x0054 0x03 */ MSCRIPT_COLLECT_SET(0x0092),
/* 0x0057 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_DONE(),
/* 0x0059 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x005A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x34, 0x01, 0x0064 - 0x005F),
/* 0x005F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0F),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_DONE(),
/* 0x0064 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B11),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x01 */ MSCRIPT_DONE(),
};
MsgScript D_80BE1A0C[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0A),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0059 - 0x000B, 0x0, 0x0059 - 0x000B),
/* 0x000B 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x000C 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_2(0x0014 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0E),
/* 0x0012 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_DONE(),
/* 0x0014 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0B),
/* 0x0017 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_BRANCH_ON_TEXT_CHOICE(0x0, 0x0027 - 0x001F, 0x002F - 0x001F),
/* 0x001F 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x0014, 0x004A - 0x0024),
/* 0x0024 0x03 */ MSCRIPT_JUMP(0x0035 - 0x0027),
/* 0x0027 0x05 */ MSCRIPT_BRANCH_ON_RUPEES(0x00C8, 0x003B - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_JUMP(0x0035 - 0x002F),
/* 0x002F 0x01 */ MSCRIPT_PLAY_CANCEL(),
/* 0x0030 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0D),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_DONE(),
/* 0x0035 0x01 */ MSCRIPT_PLAY_ERROR(),
/* 0x0036 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B0C),
/* 0x0039 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003A 0x01 */ MSCRIPT_DONE(),
/* 0x003B 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x003C 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFF38),
/* 0x0040 0x05 */ MSCRIPT_OFFER_ITEM(GI_CHATEAU, 0x0),
/* 0x0045 0x03 */ MSCRIPT_COLLECT_SET(0x0091),
/* 0x0048 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_DONE(),
/* 0x004A 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x004B 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CHANGE_RUPEES(0xFFEC),
/* 0x004F 0x05 */ MSCRIPT_OFFER_ITEM(GI_MILK, 0x0),
/* 0x0054 0x03 */ MSCRIPT_COLLECT_SET(0x0092),
/* 0x0057 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_DONE(),
/* 0x0059 0x01 */ MSCRIPT_PLAY_DECIDE(),
/* 0x005A 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x34, 0x01, 0x0064 - 0x005F),
/* 0x005F 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B10),
/* 0x0062 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_DONE(),
/* 0x0064 0x03 */ MSCRIPT_BEGIN_TEXT(0x2B11),
/* 0x0067 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0068 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Tab_InitVars = {
@ -311,12 +473,12 @@ s32 func_80BE0C04(EnTab* this, Actor* actor, f32 arg2) {
return ret;
}
s32 func_80BE0D38(EnTab* this, PlayState* play) {
s32 func_80BE0D38(Actor* thisx, PlayState* play) {
return Inventory_HasEmptyBottle();
}
s32 func_80BE0D60(EnTab* this, PlayState* play) {
s32 pad;
s32 func_80BE0D60(Actor* thisx, PlayState* play) {
EnTab* this = THIS;
s32 ret = false;
this->unk_320++;
@ -330,7 +492,7 @@ s32 func_80BE0D60(EnTab* this, PlayState* play) {
return ret;
}
s32* func_80BE0E04(EnTab* this, PlayState* play) {
MsgScript* func_80BE0E04(EnTab* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (player->transformation == PLAYER_FORM_DEKU) {
@ -491,8 +653,8 @@ void func_80BE1348(EnTab* this, PlayState* play) {
Vec3f sp40;
Vec3f sp34;
if (func_8010BF58(&this->actor, play, func_80BE0E04(this, play), this->unk_328, &this->unk_1DC)) {
SubS_SetOfferMode(&this->unk_2FC, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
if (MsgEvent_RunScript(&this->actor, play, func_80BE0E04(this, play), this->unk_328, &this->unk_1DC)) {
SubS_SetOfferMode(&this->unk_2FC, 3, 7);
this->unk_2FC &= ~8;
this->unk_2FC |= 0x40;
this->unk_324 = 20;

View File

@ -7,7 +7,6 @@
struct EnTab;
typedef void (*EnTabActionFunc)(struct EnTab*, PlayState*);
typedef s32 (*EnTabUnkFunc)(struct EnTab*, PlayState*);
typedef struct EnTab {
/* 0x000 */ Actor actor;
@ -38,7 +37,7 @@ typedef struct EnTab {
/* 0x320 */ s16 unk_320;
/* 0x322 */ s16 unk_322;
/* 0x324 */ s16 unk_324;
/* 0x328 */ EnTabUnkFunc unk_328;
/* 0x328 */ MsgEventCallback unk_328;
/* 0x32C */ s32 unk_32C;
/* 0x330 */ UNK_TYPE1 unk330[4];
/* 0x334 */ s32 prevTalkState;

View File

@ -44,36 +44,99 @@ typedef enum {
/* 0x10 */ KOUME_ANIM_MAX
} KoumeAnimation;
static UNK_TYPE D_80A88910[] = {
0x0E08520C,
0x16100000,
static MsgScript D_80A88910[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x0852),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD22(),
/* 0x0005 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80A88918[] = {
0x0900000E,
0x08630C12,
0x16100000,
static MsgScript D_80A88918[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BEGIN_TEXT(0x0863),
/* 0x0006 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD22(),
/* 0x0009 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80A88924[] = {
0x0E08660C,
0x10000000,
static MsgScript D_80A88924[] = {
/* 0x0000 0x03 */ MSCRIPT_BEGIN_TEXT(0x0866),
/* 0x0003 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80A8892C[] = {
0x09000004, 0x00050E08, 0x650C1000, 0x1010000B, 0x0E08530C, 0x0F08540C, 0x1900040E, 0x08560C11,
0x10100E00, 0xFF2B0000, 0x001E0027, 0x2C08640C, 0x2F00000C, 0x15090000, 0x0E08570C, 0x15090000,
0x0E08580C, 0x15090000, 0x12102C08, 0x550C2F00, 0x000C100E, 0x08550C10,
static MsgScript D_80A8892C[] = {
/* 0x0000 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0003 0x03 */ MSCRIPT_BRANCH_IF_HUMAN(0x000B - 0x0006),
/* 0x0006 0x03 */ MSCRIPT_BEGIN_TEXT(0x0865),
/* 0x0009 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_DONE(),
/* 0x000B 0x05 */ MSCRIPT_BRANCH_ON_WEEK_EVENT_REG(0x10, 0x10, 0x001B - 0x0010),
/* 0x0010 0x03 */ MSCRIPT_BEGIN_TEXT(0x0853),
/* 0x0013 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CONTINUE_TEXT(0x0854),
/* 0x0017 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0018 0x03 */ MSCRIPT_JUMP(0x001F - 0x001B),
/* 0x001B 0x03 */ MSCRIPT_BEGIN_TEXT(0x0856),
/* 0x001E 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_WEEK_EVENT_REG_SET(0x10, 0x10),
/* 0x0022 0x03 */ MSCRIPT_BEGIN_TEXT(0x00FF),
/* 0x0025 0x07 */ MSCRIPT_BRANCH_ON_CALLBACK(0x0, 0x004A - 0x002C, 0x0053 - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_CMD44(0x0864),
/* 0x002F 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0033 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_PAUSE(),
/* 0x0035 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0038 0x03 */ MSCRIPT_BEGIN_TEXT(0x0857),
/* 0x003B 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_PAUSE(),
/* 0x003D 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0040 0x03 */ MSCRIPT_BEGIN_TEXT(0x0858),
/* 0x0043 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0044 0x01 */ MSCRIPT_PAUSE(),
/* 0x0045 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0048 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_DONE(),
/* 0x004A 0x03 */ MSCRIPT_CMD44(0x0855),
/* 0x004D 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x004E 0x03 */ MSCRIPT_JUMP_3(0x0),
/* 0x0051 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0052 0x01 */ MSCRIPT_DONE(),
/* 0x0053 0x03 */ MSCRIPT_BEGIN_TEXT(0x0855),
/* 0x0056 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0057 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80A88984[] = {
0x2CFFFF09, 0x00000E08, 0x640C1509, 0x00000E08, 0x570C1509, 0x00000E08, 0x580C1509, 0x00001210,
static MsgScript D_80A88984[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0006 0x03 */ MSCRIPT_BEGIN_TEXT(0x0864),
/* 0x0009 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_PAUSE(),
/* 0x000B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x000E 0x03 */ MSCRIPT_BEGIN_TEXT(0x0857),
/* 0x0011 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x0012 0x01 */ MSCRIPT_PAUSE(),
/* 0x0013 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0016 0x03 */ MSCRIPT_BEGIN_TEXT(0x0858),
/* 0x0019 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_PAUSE(),
/* 0x001B 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x001E 0x01 */ MSCRIPT_CLOSE_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_DONE(),
};
static UNK_TYPE D_80A889A4[] = {
0x2CFFFF09,
0x00000E08,
0x550C1000,
static MsgScript D_80A889A4[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD44(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL(0x0),
/* 0x0006 0x03 */ MSCRIPT_BEGIN_TEXT(0x0855),
/* 0x0009 0x01 */ MSCRIPT_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_DONE(),
};
ActorInit En_Tru_InitVars = {
@ -652,7 +715,7 @@ s32 func_80A86DB8(EnTru* this) {
return false;
}
UNK_TYPE* func_80A871E0(EnTru* this, PlayState* play) {
MsgScript* func_80A871E0(EnTru* this, PlayState* play) {
if (this->unk_34E & 0x2000) {
if (this->unk_38C == 35) {
this->unk_390 = 1;
@ -1096,7 +1159,7 @@ void func_80A87FD0(EnTru* this, PlayState* play) {
void func_80A881E0(EnTru* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (func_8010BF58(&this->actor, play, this->unk_354, this->unk_378, &this->unk_1E8)) {
if (MsgEvent_RunScript(&this->actor, play, this->unk_354, this->unk_378, &this->unk_1E8)) {
if (player->transformation != PLAYER_FORM_HUMAN) {
this->unk_34E |= 0x80;
}

View File

@ -7,7 +7,6 @@
struct EnTru;
typedef void (*EnTruActionFunc)(struct EnTru*, PlayState*);
typedef s32 (*EnTruUnkFunc)(Actor*, PlayState*);
#define ENTRU_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF)
@ -38,7 +37,7 @@ typedef struct EnTru {
/* 0x2AC */ Vec3s morphTable[KOUME_LIMB_MAX];
/* 0x34E */ u16 unk_34E;
/* 0x350 */ UNK_TYPE1 unk350[0x4];
/* 0x354 */ s32* unk_354;
/* 0x354 */ MsgScript* unk_354;
/* 0x358 */ f32 playSpeed;
/* 0x35C */ f32 unk_35C;
/* 0x360 */ s16 unk_360;
@ -52,7 +51,7 @@ typedef struct EnTru {
/* 0x370 */ s16 unk_370;
/* 0x372 */ s16 unk_372;
/* 0x374 */ s16 csId;
/* 0x378 */ EnTruUnkFunc unk_378;
/* 0x378 */ MsgEventCallback unk_378;
/* 0x37C */ s32 animIndex;
/* 0x380 */ UNK_TYPE1 unk380[0x4];
/* 0x384 */ s32 unk_384;

View File

@ -2009,58 +2009,58 @@
0x8010A430:("Map_Init",),
0x8010A54C:("Map_DrawMinimap",),
0x8010A580:("Map_Update",),
0x8010A760:("func_8010A760",),
0x8010A7CC:("func_8010A7CC",),
0x8010A814:("func_8010A814",),
0x8010A85C:("func_8010A85C",),
0x8010A8A4:("func_8010A8A4",),
0x8010A8EC:("func_8010A8EC",),
0x8010A990:("func_8010A990",),
0x8010AA54:("func_8010AA54",),
0x8010AB30:("func_8010AB30",),
0x8010AB94:("func_8010AB94",),
0x8010AC00:("func_8010AC00",),
0x8010AD24:("func_8010AD24",),
0x8010ADD4:("func_8010ADD4",),
0x8010AE48:("func_8010AE48",),
0x8010AECC:("func_8010AECC",),
0x8010AF20:("func_8010AF20",),
0x8010AF6C:("func_8010AF6C",),
0x8010AF94:("func_8010AF94",),
0x8010AFE0:("func_8010AFE0",),
0x8010B010:("func_8010B010",),
0x8010B06C:("func_8010B06C",),
0x8010B0B4:("func_8010B0B4",),
0x8010B0DC:("func_8010B0DC",),
0x8010B108:("func_8010B108",),
0x8010B140:("func_8010B140",),
0x8010B180:("func_8010B180",),
0x8010B1BC:("func_8010B1BC",),
0x8010B22C:("func_8010B22C",),
0x8010B284:("func_8010B284",),
0x8010B2C0:("func_8010B2C0",),
0x8010B300:("func_8010B300",),
0x8010B434:("func_8010B434",),
0x8010B4A4:("func_8010B4A4",),
0x8010B520:("func_8010B520",),
0x8010B664:("func_8010B664",),
0x8010B7A8:("func_8010B7A8",),
0x8010B828:("func_8010B828",),
0x8010B878:("func_8010B878",),
0x8010B8E4:("func_8010B8E4",),
0x8010BB0C:("func_8010BB0C",),
0x8010BB6C:("func_8010BB6C",),
0x8010BBCC:("func_8010BBCC",),
0x8010BC28:("func_8010BC28",),
0x8010BC7C:("func_8010BC7C",),
0x8010BD48:("func_8010BD48",),
0x8010BD90:("func_8010BD90",),
0x8010BDDC:("func_8010BDDC",),
0x8010BE78:("func_8010BE78",),
0x8010BEBC:("func_8010BEBC",),
0x8010BEF0:("func_8010BEF0",),
0x8010BF24:("func_8010BF24",),
0x8010BF58:("func_8010BF58",),
0x8010A760:("MsgEvent_Cmd00",),
0x8010A7CC:("MsgEvent_Cmd01",),
0x8010A814:("MsgEvent_Cmd02",),
0x8010A85C:("MsgEvent_Cmd03",),
0x8010A8A4:("MsgEvent_Cmd04",),
0x8010A8EC:("MsgEvent_Cmd05",),
0x8010A990:("MsgEvent_Cmd06",),
0x8010AA54:("MsgEvent_Cmd07",),
0x8010AB30:("MsgEvent_Cmd08",),
0x8010AB94:("MsgEvent_Cmd09",),
0x8010AC00:("MsgEvent_Cmd10",),
0x8010AD24:("MsgEvent_Cmd11",),
0x8010ADD4:("MsgEvent_Cmd12",),
0x8010AE48:("MsgEvent_Cmd13",),
0x8010AECC:("MsgEvent_Cmd14",),
0x8010AF20:("MsgEvent_Cmd15",),
0x8010AF6C:("MsgEvent_Cmd16",),
0x8010AF94:("MsgEvent_Cmd17",),
0x8010AFE0:("MsgEvent_Cmd18",),
0x8010B010:("MsgEvent_Cmd19",),
0x8010B06C:("MsgEvent_Cmd20",),
0x8010B0B4:("MsgEvent_Cmd21",),
0x8010B0DC:("MsgEvent_Cmd22",),
0x8010B108:("MsgEvent_Cmd23",),
0x8010B140:("MsgEvent_Cmd24",),
0x8010B180:("MsgEvent_Cmd25",),
0x8010B1BC:("MsgEvent_Cmd26",),
0x8010B22C:("MsgEvent_Cmd27",),
0x8010B284:("MsgEvent_Cmd28",),
0x8010B2C0:("MsgEvent_Cmd29",),
0x8010B300:("MsgEvent_Cmd30",),
0x8010B434:("MsgEvent_Cmd31",),
0x8010B4A4:("MsgEvent_Cmd32",),
0x8010B520:("MsgEvent_Cmd33",),
0x8010B664:("MsgEvent_Cmd34",),
0x8010B7A8:("MsgEvent_Cmd35",),
0x8010B828:("MsgEvent_Cmd36",),
0x8010B878:("MsgEvent_Cmd37",),
0x8010B8E4:("MsgEvent_Cmd38",),
0x8010BB0C:("MsgEvent_Cmd39",),
0x8010BB6C:("MsgEvent_Cmd40",),
0x8010BBCC:("MsgEvent_Cmd41",),
0x8010BC28:("MsgEvent_Cmd42",),
0x8010BC7C:("MsgEvent_Cmd43",),
0x8010BD48:("MsgEvent_Cmd44",),
0x8010BD90:("MsgEvent_Cmd45",),
0x8010BDDC:("MsgEvent_Cmd46",),
0x8010BE78:("MsgEvent_Cmd47",),
0x8010BEBC:("MsgEvent_Cmd48",),
0x8010BEF0:("MsgEvent_Cmd49",),
0x8010BF24:("MsgEvent_Cmd50",),
0x8010BF58:("MsgEvent_RunScript",),
0x8010C0C0:("Nmi_Init",),
0x8010C164:("Nmi_SetPrenmiStart",),
0x8010C19C:("Nmi_GetPrenmiHasStarted",),

View File

@ -0,0 +1,589 @@
#!/usr/bin/env python3
#
# Message Event Script Disassembler
#
import argparse, os, struct
from actor_symbols import resolve_symbol
cmd_info = [
('MSCRIPT_BRANCH_ON_WEEK_EVENT_REG', 0x05, '', '>BBh', (2,)),
('MSCRIPT_BRANCH_IF_GORON', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_IF_ZORA', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_IF_DEKU', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_IF_HUMAN', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_ON_TEXT_CHOICE', 0x07, '', '>hhh', (0,1,2)),
('MSCRIPT_OFFER_ITEM', 0x05, '', '>Hh', (1,)),
('MSCRIPT_CMD07', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_ON_RUPEES', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_CALLBACK_OPTIONAL', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_ON_DAY', 0x0d, '', '>hhhhhh', (0,1,2,3,4,5)),
('MSCRIPT_CMD11', 0x03, '', '>h', (0,)),
('MSCRIPT_AWAIT_TEXT', 0x01, '', '', ()),
('MSCRIPT_CMD13', 0x01, '', '', ()),
('MSCRIPT_BEGIN_TEXT', 0x03, '', '>H', ()),
('MSCRIPT_CONTINUE_TEXT', 0x03, '', '>H', ()),
('MSCRIPT_DONE', 0x01, '', '', ()),
('MSCRIPT_WEEK_EVENT_REG_SET', 0x03, '', '>BB', ()),
('MSCRIPT_CLOSE_TEXT', 0x01, '', '', ()),
('MSCRIPT_COLLECT_SET', 0x03, '', '>H', ()),
('MSCRIPT_CHANGE_RUPEES', 0x03, '', '>H', ()),
('MSCRIPT_PAUSE', 0x01, '', '', ()),
('MSCRIPT_CMD22', 0x01, '', '', ()),
('MSCRIPT_FOCUS_TO_CHILD', 0x01, '', '', ()),
('MSCRIPT_FOCUS_TO_SELF', 0x01, '', '', ()),
('MSCRIPT_JUMP', 0x03, '', '>h', (0,)),
('MSCRIPT_BRANCH_ON_QUEST_ITEM', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_EVENT_INF', 0x05, '', '>BBh', (2,)),
('MSCRIPT_SET_EVENT_INF', 0x03, '', '>BB', ()),
('MSCRIPT_UNSET_EVENT_INF', 0x03, '', '>BB', ()),
('MSCRIPT_BRANCH_ON_ITEMACTION', 0x09, '', '>Hhhh', (1,2,3)),
('MSCRIPT_BRANCH_ON_SONG_OBTAINED', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_WORN_MASK', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_TIME_GT', 0x05, '', '>BBh', (2,)),
('MSCRIPT_BRANCH_ON_TIME_LEQ', 0x05, '', '>BBh', (2,)),
('MSCRIPT_BRANCH_ON_SWITCH_FLAG', 0x05, '', '>Hh', (1,)),
('MSCRIPT_SET_SWITCH_FLAG', 0x03, '', '>H', ()),
('MSCRIPT_BRANCH_ON_ITEM', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_TIME_INTERVAL', 0x07, '', '>BBBBh', (4,)),
('MSCRIPT_BRANCH_IF_DAY', 0x05, '', '>Hh', (1,)),
('MSCRIPT_BRANCH_ON_CALLBACK_2', 0x03, '', '>h', (0,)),
('MSCRIPT_HAS_POWDER_KEG', 0x03, '', '>h', (0,)),
('MSCRIPT_DEL_ITEM', 0x03, '', '>h', ()),
('MSCRIPT_BRANCH_ON_CALLBACK', 0x07, '', '>hhh', (0,1,2)),
('MSCRIPT_CMD44', 0x03, '', '>H', ()),
('MSCRIPT_NOTEBOOK_EVENT', 0x03, '', '>H', ()),
('MSCRIPT_CMD46', 0x01, '', '', ()),
('MSCRIPT_JUMP_3', 0x03, '', '>h', (0,)),
('MSCRIPT_PLAY_DECIDE', 0x01, '', '', ()),
('MSCRIPT_PLAY_CANCEL', 0x01, '', '', ()),
('MSCRIPT_PLAY_ERROR', 0x01, '', '', ()),
]
item_names = (
"ITEM_OCARINA",
"ITEM_BOW",
"ITEM_ARROW_FIRE",
"ITEM_ARROW_ICE",
"ITEM_ARROW_LIGHT",
"ITEM_OCARINA_FAIRY",
"ITEM_BOMB",
"ITEM_BOMBCHU",
"ITEM_STICK",
"ITEM_NUT",
"ITEM_MAGIC_BEANS",
"ITEM_SLINGSHOT",
"ITEM_POWDER_KEG",
"ITEM_PICTOGRAPH_BOX",
"ITEM_LENS",
"ITEM_HOOKSHOT",
"ITEM_SWORD_GREAT_FAIRY",
"ITEM_LONGSHOT",
"ITEM_BOTTLE",
"ITEM_POTION_RED",
"ITEM_POTION_GREEN",
"ITEM_POTION_BLUE",
"ITEM_FAIRY",
"ITEM_DEKU_PRINCESS",
"ITEM_MILK_BOTTLE",
"ITEM_MILK_HALF",
"ITEM_FISH",
"ITEM_BUG",
"ITEM_BLUE_FIRE",
"ITEM_POE",
"ITEM_BIG_POE",
"ITEM_SPRING_WATER",
"ITEM_HOT_SPRING_WATER",
"ITEM_ZORA_EGG",
"ITEM_GOLD_DUST",
"ITEM_MUSHROOM",
"ITEM_SEA_HORSE",
"ITEM_CHATEAU",
"ITEM_HYLIAN_LOACH",
"ITEM_OBABA_DRINK",
"ITEM_MOON_TEAR",
"ITEM_DEED_LAND",
"ITEM_DEED_SWAMP",
"ITEM_DEED_MOUNTAIN",
"ITEM_DEED_OCEAN",
"ITEM_ROOM_KEY",
"ITEM_LETTER_MAMA",
"ITEM_LETTER_TO_KAFEI",
"ITEM_PENDANT_MEMORIES",
"ITEM_TINGLE_MAP",
"ITEM_MASK_DEKU",
"ITEM_MASK_GORON",
"ITEM_MASK_ZORA",
"ITEM_MASK_FIERCE_DEITY",
"ITEM_MASK_TRUTH",
"ITEM_MASK_KAFEIS_MASK",
"ITEM_MASK_ALL_NIGHT",
"ITEM_MASK_BUNNY",
"ITEM_MASK_KEATON",
"ITEM_MASK_GARO",
"ITEM_MASK_ROMANI",
"ITEM_MASK_CIRCUS_LEADER",
"ITEM_MASK_POSTMAN",
"ITEM_MASK_COUPLE",
"ITEM_MASK_GREAT_FAIRY",
"ITEM_MASK_GIBDO",
"ITEM_MASK_DON_GERO",
"ITEM_MASK_KAMARO",
"ITEM_MASK_CAPTAIN",
"ITEM_MASK_STONE",
"ITEM_MASK_BREMEN",
"ITEM_MASK_BLAST",
"ITEM_MASK_SCENTS",
"ITEM_MASK_GIANT",
"ITEM_BOW_ARROW_FIRE",
"ITEM_BOW_ARROW_ICE",
"ITEM_BOW_ARROW_LIGHT",
"ITEM_SWORD_KOKIRI",
"ITEM_SWORD_RAZOR",
"ITEM_SWORD_GILDED",
"ITEM_SWORD_DEITY",
"ITEM_SHIELD_HERO",
"ITEM_SHIELD_MIRROR",
"ITEM_QUIVER_30",
"ITEM_QUIVER_40",
"ITEM_QUIVER_50",
"ITEM_BOMB_BAG_20",
"ITEM_BOMB_BAG_30",
"ITEM_BOMB_BAG_40",
"ITEM_WALLET_DEFAULT",
"ITEM_WALLET_ADULT",
"ITEM_WALLET_GIANT",
"ITEM_FISHING_POLE",
"ITEM_REMAINS_ODOLWA",
"ITEM_REMAINS_GOHT",
"ITEM_REMAINS_GYORG",
"ITEM_REMAINS_TWINMOLD",
"ITEM_SONG_SONATA",
"ITEM_SONG_LULLABY",
"ITEM_SONG_NOVA",
"ITEM_SONG_ELEGY",
"ITEM_SONG_OATH",
"ITEM_SONG_SARIA",
"ITEM_SONG_TIME",
"ITEM_SONG_HEALING",
"ITEM_SONG_EPONA",
"ITEM_SONG_SOARING",
"ITEM_SONG_STORMS",
"ITEM_SONG_SUN",
"ITEM_BOMBERS_NOTEBOOK",
"ITEM_SKULL_TOKEN",
"ITEM_HEART_CONTAINER",
"ITEM_HEART_PIECE",
None,
None,
"ITEM_SONG_LULLABY_INTRO",
"ITEM_KEY_BOSS",
"ITEM_COMPASS",
"ITEM_DUNGEON_MAP",
"ITEM_STRAY_FAIRIES",
"ITEM_KEY_SMALL",
"ITEM_MAGIC_SMALL",
"ITEM_MAGIC_LARGE",
"ITEM_HEART_PIECE_2",
"ITEM_INVALID_1",
"ITEM_INVALID_2",
"ITEM_INVALID_3",
"ITEM_INVALID_4",
"ITEM_INVALID_5",
"ITEM_INVALID_6",
"ITEM_INVALID_7",
"ITEM_HEART",
"ITEM_RUPEE_GREEN",
"ITEM_RUPEE_BLUE",
"ITEM_RUPEE_10",
"ITEM_RUPEE_RED",
"ITEM_RUPEE_PURPLE",
"ITEM_RUPEE_SILVER",
"ITEM_RUPEE_HUGE",
"ITEM_STICKS_5",
"ITEM_STICKS_10",
"ITEM_NUTS_5",
"ITEM_NUTS_10",
"ITEM_BOMBS_5",
"ITEM_BOMBS_10",
"ITEM_BOMBS_20",
"ITEM_BOMBS_30",
"ITEM_ARROWS_10",
"ITEM_ARROWS_30",
"ITEM_ARROWS_40",
"ITEM_ARROWS_50",
"ITEM_BOMBCHUS_20",
"ITEM_BOMBCHUS_10",
"ITEM_BOMBCHUS_1",
"ITEM_BOMBCHUS_5",
"ITEM_STICK_UPGRADE_20",
"ITEM_STICK_UPGRADE_30",
"ITEM_NUT_UPGRADE_30",
"ITEM_NUT_UPGRADE_40",
"ITEM_CHATEAU_2",
"ITEM_MILK",
"ITEM_GOLD_DUST_2",
"ITEM_HYLIAN_LOACH_2",
"ITEM_SEA_HORSE_CAUGHT",
)
gi_names = (
"GI_NONE",
"GI_RUPEE_GREEN",
"GI_RUPEE_BLUE",
"GI_RUPEE_10",
"GI_RUPEE_RED",
"GI_RUPEE_PURPLE",
"GI_RUPEE_SILVER",
"GI_RUPEE_HUGE",
"GI_WALLET_ADULT",
"GI_WALLET_GIANT",
"GI_RECOVERY_HEART",
None,
"GI_HEART_PIECE",
"GI_HEART_CONTAINER",
"GI_MAGIC_SMALL",
"GI_MAGIC_LARGE",
None,
"GI_STRAY_FAIRY",
None,
None,
"GI_BOMBS_1",
"GI_BOMBS_5",
"GI_BOMBS_10",
"GI_BOMBS_20",
"GI_BOMBS_30",
"GI_STICKS_1",
"GI_BOMBCHUS_10",
"GI_BOMB_BAG_20",
"GI_BOMB_BAG_30",
"GI_BOMB_BAG_40",
"GI_ARROWS_10",
"GI_ARROWS_30",
"GI_ARROWS_40",
"GI_ARROWS_50",
"GI_QUIVER_30",
"GI_QUIVER_40",
"GI_QUIVER_50",
"GI_ARROW_FIRE",
"GI_ARROW_ICE",
"GI_ARROW_LIGHT",
"GI_NUTS_1",
"GI_NUTS_5",
"GI_NUTS_10",
None,
None,
None,
"GI_BOMBCHUS_20",
None,
None,
None,
"GI_SHIELD_HERO",
"GI_SHIELD_MIRROR",
"GI_POWDER_KEG",
"GI_MAGIC_BEANS",
"GI_BOMBCHUS_1",
"GI_SWORD_KOKIRI",
"GI_SWORD_RAZOR",
"GI_SWORD_GILDED",
"GI_BOMBCHUS_5",
"GI_SWORD_GREAT_FAIRY",
"GI_KEY_SMALL",
"GI_KEY_BOSS",
"GI_MAP",
"GI_COMPASS",
"GI_40",
"GI_HOOKSHOT",
"GI_LENS",
"GI_PICTOGRAPH_BOX",
None,
None,
None,
None,
None,
None,
None,
None,
"GI_OCARINA",
None,
None,
None,
"GI_BOMBERS_NOTEBOOK",
None,
"GI_SKULL_TOKEN",
None,
None,
"GI_REMAINS_ODOLWA",
"GI_REMAINS_GOHT",
"GI_REMAINS_GYORG",
"GI_REMAINS_TWINMOLD",
"GI_POTION_RED_BOTTLE",
"GI_BOTTLE",
"GI_POTION_RED",
"GI_POTION_GREEN",
"GI_POTION_BLUE",
"GI_FAIRY",
"GI_DEKU_PRINCESS",
"GI_MILK_BOTTLE",
"GI_MILK_HALF",
"GI_FISH",
"GI_BUG",
"GI_BLUE_FIRE",
"GI_POE",
"GI_BIG_POE",
"GI_SPRING_WATER",
"GI_HOT_SPRING_WATER",
"GI_ZORA_EGG",
"GI_GOLD_DUST",
"GI_MUSHROOM",
"GI_6C",
"GI_6D",
"GI_SEAHORSE",
"GI_CHATEAU_BOTTLE",
"GI_HYLIAN_LOACH",
None,
None,
None,
None,
"GI_75",
"GI_ICE_TRAP",
None,
"GI_MASK_DEKU",
"GI_MASK_GORON",
"GI_MASK_ZORA",
"GI_MASK_FIERCE_DEITY",
"GI_MASK_CAPTAIN",
"GI_MASK_GIANT",
"GI_MASK_ALL_NIGHT",
"GI_MASK_BUNNY",
"GI_MASK_KEATON",
"GI_MASK_GARO",
"GI_MASK_ROMANI",
"GI_MASK_CIRCUS_LEADER",
"GI_MASK_POSTMAN",
"GI_MASK_COUPLE",
"GI_MASK_GREAT_FAIRY",
"GI_MASK_GIBDO",
"GI_MASK_DON_GERO",
"GI_MASK_KAMARO",
"GI_MASK_TRUTH",
"GI_MASK_STONE",
"GI_MASK_BREMEN",
"GI_MASK_BLAST",
"GI_MASK_SCENTS",
"GI_MASK_KAFEIS_MASK",
"GI_CHATEAU",
"GI_MILK",
"GI_GOLD_DUST_2",
"GI_HYLIAN_LOACH_2",
"GI_SEAHORSE_CAUGHT",
"GI_MOON_TEAR",
"GI_DEED_LAND",
"GI_DEED_SWAMP",
"GI_DEED_MOUNTAIN",
"GI_DEED_OCEAN",
"GI_SWORD_GREAT_FAIRY_STOLEN",
"GI_SWORD_KOKIRI_STOLEN",
"GI_SWORD_RAZOR_STOLEN",
"GI_SWORD_GILDED_STOLEN",
"GI_SHIELD_HERO_STOLEN",
"GI_ROOM_KEY",
"GI_LETTER_TO_MAMA",
"GI_A2",
"GI_A3",
"GI_A4",
"GI_A5",
"GI_A6",
"GI_A7",
"GI_A8",
"GI_BOTTLE_STOLEN",
"GI_LETTER_TO_KAFEI",
"GI_PENDANT_OF_MEMORIES",
"GI_TINGLE_MAP_CLOCK_TOWN",
"GI_TINGLE_MAP_WOODFALL",
"GI_TINGLE_MAP_SNOWHEAD",
"GI_TINGLE_MAP_ROMANI_RANCH",
"GI_TINGLE_MAP_GREAT_BAY",
"GI_TINGLE_MAP_STONE_TOWER",
"GI_MAX",
)
notebook_event = (
"BOMBERS_NOTEBOOK_EVENT_MET_BOMBERS",
"BOMBERS_NOTEBOOK_EVENT_MET_ANJU",
"BOMBERS_NOTEBOOK_EVENT_MET_KAFEI",
"BOMBERS_NOTEBOOK_EVENT_MET_CURIOSITY_SHOP_MAN",
"BOMBERS_NOTEBOOK_EVENT_MET_BOMB_SHOP_LADY",
"BOMBERS_NOTEBOOK_EVENT_MET_ROMANI",
"BOMBERS_NOTEBOOK_EVENT_MET_CREMIA",
"BOMBERS_NOTEBOOK_EVENT_MET_MAYOR_DOTOUR",
"BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA",
"BOMBERS_NOTEBOOK_EVENT_MET_TOTO",
"BOMBERS_NOTEBOOK_EVENT_MET_GORMAN",
"BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN",
"BOMBERS_NOTEBOOK_EVENT_MET_ROSA_SISTERS",
"BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND",
"BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER",
"BOMBERS_NOTEBOOK_EVENT_MET_KAMARO",
"BOMBERS_NOTEBOOK_EVENT_MET_GROG",
"BOMBERS_NOTEBOOK_EVENT_MET_GORMAN_BROTHERS",
"BOMBERS_NOTEBOOK_EVENT_MET_SHIRO",
"BOMBERS_NOTEBOOK_EVENT_MET_GURU_GURU",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_ROOM_KEY",
"BOMBERS_NOTEBOOK_EVENT_PROMISED_MIDNIGHT_MEETING",
"BOMBERS_NOTEBOOK_EVENT_PROMISED_TO_MEET_KAFEI",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_LETTER_TO_KAFEI",
"BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_PENDANT_OF_MEMORIES",
"BOMBERS_NOTEBOOK_EVENT_DELIVERED_PENDANT_OF_MEMORIES",
"BOMBERS_NOTEBOOK_EVENT_ESCAPED_SAKONS_HIDEOUT",
"BOMBERS_NOTEBOOK_EVENT_PROMISED_TO_HELP_WITH_THEM",
"BOMBERS_NOTEBOOK_EVENT_DEFENDED_AGAINST_THEM",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_MILK_BOTTLE",
"BOMBERS_NOTEBOOK_EVENT_ESCORTED_CREMIA",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_ROMANIS_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_KEATON_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_PRIORITY_MAIL",
"BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL",
"BOMBERS_NOTEBOOK_EVENT_LEARNED_SECRET_CODE",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_BOMBERS_NOTEBOOK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_MAYOR_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_ROSA_SISTERS_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_TOILET_HAND_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_SHORT_STORY_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_LONG_STORY_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_POSTMAN_HP",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_KAFEIS_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_ALL_NIGHT_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_BUNNY_HOOD",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_GAROS_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_CIRCUS_LEADERS_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_POSTMANS_HAT",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_COUPLES_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_BLAST_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_KAMAROS_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_STONE_MASK",
"BOMBERS_NOTEBOOK_EVENT_RECEIVED_BREMEN_MASK",
)
def read_bytes(data_file, offset, len):
with open(data_file,"rb") as infile:
infile.seek(offset)
return bytearray(infile.read(len))
def disassemble_msg_script(data_file, script_start, offset, length):
out = ""
cmd = None
branch_targets = []
# Keep trying to disassemble until it hits the terminator and no commands branch past it
while any([branch >= offset for branch in branch_targets]) or cmd != 0x10:
# print(offset)
cmd = read_bytes(data_file, script_start + offset, 1)[0]
# print(cmd)
cmd_name = cmd_info[cmd][0]
cmd_len = cmd_info[cmd][1]
cmd_args = cmd_info[cmd][3]
is_branch = False
args_formatted = []
if len(cmd_args) > 1: # handle args
raw_args = read_bytes(data_file, script_start + offset + 1, cmd_len - 1)
arg_values = struct.unpack(cmd_args, raw_args)
# print(len(raw_args) + 1, f"0x{cmd:02X}", [f"0x{b:02X}" for b in raw_args])
for i,(arg_value,arg_type) in enumerate(zip(arg_values, cmd_args[1:]),0):
arg_formatted = ""
if cmd == 6 and i == 0:
arg_formatted = gi_names[arg_value]
assert arg_formatted is not None
elif cmd == 37 and i == 0:
arg_formatted = item_names[arg_value]
assert arg_formatted is not None
elif cmd == 42 and i == 0:
arg_formatted = item_names[arg_value]
assert arg_formatted is not None
elif cmd == 45 and i == 0:
arg_formatted = notebook_event[arg_value]
assert arg_formatted is not None
else:
if arg_type == "h":
arg_formatted = f"{arg_value:#x}"
elif arg_type == "H":
arg_formatted = f"0x{arg_value:04X}"
elif arg_type == "B":
arg_formatted = f"0x{arg_value:02X}"
if i in cmd_info[cmd][4]: # skip argument indices
# add skip args to branch targets, and change the output to absolute differences rather than relative offsets
arg_value += cmd_len
is_branch = True
branch_pos = offset + cmd_len
branch_target = offset + arg_value
branch_targets.append(branch_target)
if arg_value == cmd_len:
arg_formatted == "0"
else:
arg_formatted = f"0x{branch_target:04X} - 0x{branch_pos:04X}"
args_formatted.append(arg_formatted)
# else:
# print(1, f"0x{cmd:02X}")
args = ", ".join(args_formatted) if len(args_formatted) != 0 else ""
line = f" /* 0x{offset:04X} 0x{cmd_len:02X} */ {cmd_name}({args}),{f' // {cmd_info[cmd][2]}' if cmd_info[cmd][2] != '' else ''}\n"
out += line
if cmd == 0x10 or is_branch and branch_target < branch_pos: # maybe
out += "\n"
offset += cmd_len
if is_branch and branch_target < branch_pos:
# branch backwards, terminate if nothing branches past here
# TODO if the branch is conditional we should not be terminating here
if not any([branch >= offset for branch in branch_targets]):
break
length -= offset
if length > 0:
if length < 4 and all([b == 0 for b in read_bytes(data_file, script_start + offset, length)]):
# padding
pass
else:
# some data left over, try and disassemble it
out += " // Unreachable\n"
out += disassemble_msg_script(data_file, script_start, offset, length)
return out
def main():
parser = argparse.ArgumentParser(description="Disassembles MM behavior scripts")
parser.add_argument('address', help="VRAM or ROM address to disassemble at", type=lambda s : int(s.replace("D_", "0x"), 16))
parser.add_argument('length', help="Number of bytes to disassemble, by default it will disassemble all reachable commands", nargs='?', default=-1, type=int)
parser.add_argument('--name', help="Array name", default="sMsgScript", type=str)
args = parser.parse_args()
file_result = resolve_symbol(args.address)
if file_result[0] is None:
print("Invalid address")
return
print(hex(file_result[1]), "in", file_result[0].split(os.sep)[-1])
print(f"MsgScript {args.name}[] = {{")
print(disassemble_msg_script(file_result[0], file_result[1], 0, args.length).rstrip())
print("};")
if __name__ == "__main__":
main()

View File

@ -1523,58 +1523,58 @@ asm/non_matchings/code/z_map_exp/Map_Destroy.s,Map_Destroy,0x8010A410,0x8
asm/non_matchings/code/z_map_exp/Map_Init.s,Map_Init,0x8010A430,0x47
asm/non_matchings/code/z_map_exp/Map_DrawMinimap.s,Map_DrawMinimap,0x8010A54C,0xD
asm/non_matchings/code/z_map_exp/Map_Update.s,Map_Update,0x8010A580,0x78
asm/non_matchings/code/z_msgevent/func_8010A760.s,func_8010A760,0x8010A760,0x1B
asm/non_matchings/code/z_msgevent/func_8010A7CC.s,func_8010A7CC,0x8010A7CC,0x12
asm/non_matchings/code/z_msgevent/func_8010A814.s,func_8010A814,0x8010A814,0x12
asm/non_matchings/code/z_msgevent/func_8010A85C.s,func_8010A85C,0x8010A85C,0x12
asm/non_matchings/code/z_msgevent/func_8010A8A4.s,func_8010A8A4,0x8010A8A4,0x12
asm/non_matchings/code/z_msgevent/func_8010A8EC.s,func_8010A8EC,0x8010A8EC,0x29
asm/non_matchings/code/z_msgevent/func_8010A990.s,func_8010A990,0x8010A990,0x31
asm/non_matchings/code/z_msgevent/func_8010AA54.s,func_8010AA54,0x8010AA54,0x37
asm/non_matchings/code/z_msgevent/func_8010AB30.s,func_8010AB30,0x8010AB30,0x19
asm/non_matchings/code/z_msgevent/func_8010AB94.s,func_8010AB94,0x8010AB94,0x1B
asm/non_matchings/code/z_msgevent/func_8010AC00.s,func_8010AC00,0x8010AC00,0x49
asm/non_matchings/code/z_msgevent/func_8010AD24.s,func_8010AD24,0x8010AD24,0x2C
asm/non_matchings/code/z_msgevent/func_8010ADD4.s,func_8010ADD4,0x8010ADD4,0x1D
asm/non_matchings/code/z_msgevent/func_8010AE48.s,func_8010AE48,0x8010AE48,0x21
asm/non_matchings/code/z_msgevent/func_8010AECC.s,func_8010AECC,0x8010AECC,0x15
asm/non_matchings/code/z_msgevent/func_8010AF20.s,func_8010AF20,0x8010AF20,0x13
asm/non_matchings/code/z_msgevent/func_8010AF6C.s,func_8010AF6C,0x8010AF6C,0xA
asm/non_matchings/code/z_msgevent/func_8010AF94.s,func_8010AF94,0x8010AF94,0x13
asm/non_matchings/code/z_msgevent/func_8010AFE0.s,func_8010AFE0,0x8010AFE0,0xC
asm/non_matchings/code/z_msgevent/func_8010B010.s,func_8010B010,0x8010B010,0x17
asm/non_matchings/code/z_msgevent/func_8010B06C.s,func_8010B06C,0x8010B06C,0x12
asm/non_matchings/code/z_msgevent/func_8010B0B4.s,func_8010B0B4,0x8010B0B4,0xA
asm/non_matchings/code/z_msgevent/func_8010B0DC.s,func_8010B0DC,0x8010B0DC,0xB
asm/non_matchings/code/z_msgevent/func_8010B108.s,func_8010B108,0x8010B108,0xE
asm/non_matchings/code/z_msgevent/func_8010B140.s,func_8010B140,0x8010B140,0x10
asm/non_matchings/code/z_msgevent/func_8010B180.s,func_8010B180,0x8010B180,0xF
asm/non_matchings/code/z_msgevent/func_8010B1BC.s,func_8010B1BC,0x8010B1BC,0x1C
asm/non_matchings/code/z_msgevent/func_8010B22C.s,func_8010B22C,0x8010B22C,0x16
asm/non_matchings/code/z_msgevent/func_8010B284.s,func_8010B284,0x8010B284,0xF
asm/non_matchings/code/z_msgevent/func_8010B2C0.s,func_8010B2C0,0x8010B2C0,0x10
asm/non_matchings/code/z_msgevent/func_8010B300.s,func_8010B300,0x8010B300,0x4D
asm/non_matchings/code/z_msgevent/func_8010B434.s,func_8010B434,0x8010B434,0x1C
asm/non_matchings/code/z_msgevent/func_8010B4A4.s,func_8010B4A4,0x8010B4A4,0x1F
asm/non_matchings/code/z_msgevent/func_8010B520.s,func_8010B520,0x8010B520,0x51
asm/non_matchings/code/z_msgevent/func_8010B664.s,func_8010B664,0x8010B664,0x51
asm/non_matchings/code/z_msgevent/func_8010B7A8.s,func_8010B7A8,0x8010B7A8,0x20
asm/non_matchings/code/z_msgevent/func_8010B828.s,func_8010B828,0x8010B828,0x14
asm/non_matchings/code/z_msgevent/func_8010B878.s,func_8010B878,0x8010B878,0x1B
asm/non_matchings/code/z_msgevent/func_8010B8E4.s,func_8010B8E4,0x8010B8E4,0x8A
asm/non_matchings/code/z_msgevent/func_8010BB0C.s,func_8010BB0C,0x8010BB0C,0x18
asm/non_matchings/code/z_msgevent/func_8010BB6C.s,func_8010BB6C,0x8010BB6C,0x18
asm/non_matchings/code/z_msgevent/func_8010BBCC.s,func_8010BBCC,0x8010BBCC,0x17
asm/non_matchings/code/z_msgevent/func_8010BC28.s,func_8010BC28,0x8010BC28,0x15
asm/non_matchings/code/z_msgevent/func_8010BC7C.s,func_8010BC7C,0x8010BC7C,0x33
asm/non_matchings/code/z_msgevent/func_8010BD48.s,func_8010BD48,0x8010BD48,0x12
asm/non_matchings/code/z_msgevent/func_8010BD90.s,func_8010BD90,0x8010BD90,0x13
asm/non_matchings/code/z_msgevent/func_8010BDDC.s,func_8010BDDC,0x8010BDDC,0x27
asm/non_matchings/code/z_msgevent/func_8010BE78.s,func_8010BE78,0x8010BE78,0x11
asm/non_matchings/code/z_msgevent/func_8010BEBC.s,func_8010BEBC,0x8010BEBC,0xD
asm/non_matchings/code/z_msgevent/func_8010BEF0.s,func_8010BEF0,0x8010BEF0,0xD
asm/non_matchings/code/z_msgevent/func_8010BF24.s,func_8010BF24,0x8010BF24,0xD
asm/non_matchings/code/z_msgevent/func_8010BF58.s,func_8010BF58,0x8010BF58,0x5A
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd00.s,MsgEvent_Cmd00,0x8010A760,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd01.s,MsgEvent_Cmd01,0x8010A7CC,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd02.s,MsgEvent_Cmd02,0x8010A814,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd03.s,MsgEvent_Cmd03,0x8010A85C,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd04.s,MsgEvent_Cmd04,0x8010A8A4,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd05.s,MsgEvent_Cmd05,0x8010A8EC,0x29
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd06.s,MsgEvent_Cmd06,0x8010A990,0x31
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd07.s,MsgEvent_Cmd07,0x8010AA54,0x37
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd08.s,MsgEvent_Cmd08,0x8010AB30,0x19
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd09.s,MsgEvent_Cmd09,0x8010AB94,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd10.s,MsgEvent_Cmd10,0x8010AC00,0x49
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd11.s,MsgEvent_Cmd11,0x8010AD24,0x2C
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd12.s,MsgEvent_Cmd12,0x8010ADD4,0x1D
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd13.s,MsgEvent_Cmd13,0x8010AE48,0x21
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd14.s,MsgEvent_Cmd14,0x8010AECC,0x15
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd15.s,MsgEvent_Cmd15,0x8010AF20,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd16.s,MsgEvent_Cmd16,0x8010AF6C,0xA
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd17.s,MsgEvent_Cmd17,0x8010AF94,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd18.s,MsgEvent_Cmd18,0x8010AFE0,0xC
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd19.s,MsgEvent_Cmd19,0x8010B010,0x17
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd20.s,MsgEvent_Cmd20,0x8010B06C,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd21.s,MsgEvent_Cmd21,0x8010B0B4,0xA
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd22.s,MsgEvent_Cmd22,0x8010B0DC,0xB
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd23.s,MsgEvent_Cmd23,0x8010B108,0xE
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd24.s,MsgEvent_Cmd24,0x8010B140,0x10
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd25.s,MsgEvent_Cmd25,0x8010B180,0xF
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd26.s,MsgEvent_Cmd26,0x8010B1BC,0x1C
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd27.s,MsgEvent_Cmd27,0x8010B22C,0x16
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd28.s,MsgEvent_Cmd28,0x8010B284,0xF
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd29.s,MsgEvent_Cmd29,0x8010B2C0,0x10
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd30.s,MsgEvent_Cmd30,0x8010B300,0x4D
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd31.s,MsgEvent_Cmd31,0x8010B434,0x1C
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd32.s,MsgEvent_Cmd32,0x8010B4A4,0x1F
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd33.s,MsgEvent_Cmd33,0x8010B520,0x51
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd34.s,MsgEvent_Cmd34,0x8010B664,0x51
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd35.s,MsgEvent_Cmd35,0x8010B7A8,0x20
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd36.s,MsgEvent_Cmd36,0x8010B828,0x14
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd37.s,MsgEvent_Cmd37,0x8010B878,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd38.s,MsgEvent_Cmd38,0x8010B8E4,0x8A
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd39.s,MsgEvent_Cmd39,0x8010BB0C,0x18
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd40.s,MsgEvent_Cmd40,0x8010BB6C,0x18
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd41.s,MsgEvent_Cmd41,0x8010BBCC,0x17
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd42.s,MsgEvent_Cmd42,0x8010BC28,0x15
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd43.s,MsgEvent_Cmd43,0x8010BC7C,0x33
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd44.s,MsgEvent_Cmd44,0x8010BD48,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd45.s,MsgEvent_Cmd45,0x8010BD90,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd46.s,MsgEvent_Cmd46,0x8010BDDC,0x27
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd47.s,MsgEvent_Cmd47,0x8010BE78,0x11
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd48.s,MsgEvent_Cmd48,0x8010BEBC,0xD
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd49.s,MsgEvent_Cmd49,0x8010BEF0,0xD
asm/non_matchings/code/z_msgevent/MsgEvent_Cmd50.s,MsgEvent_Cmd50,0x8010BF24,0xD
asm/non_matchings/code/z_msgevent/MsgEvent_RunScript.s,MsgEvent_RunScript,0x8010BF58,0x5A
asm/non_matchings/code/z_nmi_buff/Nmi_Init.s,Nmi_Init,0x8010C0C0,0x29
asm/non_matchings/code/z_nmi_buff/Nmi_SetPrenmiStart.s,Nmi_SetPrenmiStart,0x8010C164,0xE
asm/non_matchings/code/z_nmi_buff/Nmi_GetPrenmiHasStarted.s,Nmi_GetPrenmiHasStarted,0x8010C19C,0x5

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
1523 asm/non_matchings/code/z_map_exp/Map_Init.s Map_Init 0x8010A430 0x47
1524 asm/non_matchings/code/z_map_exp/Map_DrawMinimap.s Map_DrawMinimap 0x8010A54C 0xD
1525 asm/non_matchings/code/z_map_exp/Map_Update.s Map_Update 0x8010A580 0x78
1526 asm/non_matchings/code/z_msgevent/func_8010A760.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd00.s func_8010A760 MsgEvent_Cmd00 0x8010A760 0x1B
1527 asm/non_matchings/code/z_msgevent/func_8010A7CC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd01.s func_8010A7CC MsgEvent_Cmd01 0x8010A7CC 0x12
1528 asm/non_matchings/code/z_msgevent/func_8010A814.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd02.s func_8010A814 MsgEvent_Cmd02 0x8010A814 0x12
1529 asm/non_matchings/code/z_msgevent/func_8010A85C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd03.s func_8010A85C MsgEvent_Cmd03 0x8010A85C 0x12
1530 asm/non_matchings/code/z_msgevent/func_8010A8A4.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd04.s func_8010A8A4 MsgEvent_Cmd04 0x8010A8A4 0x12
1531 asm/non_matchings/code/z_msgevent/func_8010A8EC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd05.s func_8010A8EC MsgEvent_Cmd05 0x8010A8EC 0x29
1532 asm/non_matchings/code/z_msgevent/func_8010A990.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd06.s func_8010A990 MsgEvent_Cmd06 0x8010A990 0x31
1533 asm/non_matchings/code/z_msgevent/func_8010AA54.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd07.s func_8010AA54 MsgEvent_Cmd07 0x8010AA54 0x37
1534 asm/non_matchings/code/z_msgevent/func_8010AB30.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd08.s func_8010AB30 MsgEvent_Cmd08 0x8010AB30 0x19
1535 asm/non_matchings/code/z_msgevent/func_8010AB94.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd09.s func_8010AB94 MsgEvent_Cmd09 0x8010AB94 0x1B
1536 asm/non_matchings/code/z_msgevent/func_8010AC00.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd10.s func_8010AC00 MsgEvent_Cmd10 0x8010AC00 0x49
1537 asm/non_matchings/code/z_msgevent/func_8010AD24.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd11.s func_8010AD24 MsgEvent_Cmd11 0x8010AD24 0x2C
1538 asm/non_matchings/code/z_msgevent/func_8010ADD4.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd12.s func_8010ADD4 MsgEvent_Cmd12 0x8010ADD4 0x1D
1539 asm/non_matchings/code/z_msgevent/func_8010AE48.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd13.s func_8010AE48 MsgEvent_Cmd13 0x8010AE48 0x21
1540 asm/non_matchings/code/z_msgevent/func_8010AECC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd14.s func_8010AECC MsgEvent_Cmd14 0x8010AECC 0x15
1541 asm/non_matchings/code/z_msgevent/func_8010AF20.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd15.s func_8010AF20 MsgEvent_Cmd15 0x8010AF20 0x13
1542 asm/non_matchings/code/z_msgevent/func_8010AF6C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd16.s func_8010AF6C MsgEvent_Cmd16 0x8010AF6C 0xA
1543 asm/non_matchings/code/z_msgevent/func_8010AF94.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd17.s func_8010AF94 MsgEvent_Cmd17 0x8010AF94 0x13
1544 asm/non_matchings/code/z_msgevent/func_8010AFE0.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd18.s func_8010AFE0 MsgEvent_Cmd18 0x8010AFE0 0xC
1545 asm/non_matchings/code/z_msgevent/func_8010B010.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd19.s func_8010B010 MsgEvent_Cmd19 0x8010B010 0x17
1546 asm/non_matchings/code/z_msgevent/func_8010B06C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd20.s func_8010B06C MsgEvent_Cmd20 0x8010B06C 0x12
1547 asm/non_matchings/code/z_msgevent/func_8010B0B4.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd21.s func_8010B0B4 MsgEvent_Cmd21 0x8010B0B4 0xA
1548 asm/non_matchings/code/z_msgevent/func_8010B0DC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd22.s func_8010B0DC MsgEvent_Cmd22 0x8010B0DC 0xB
1549 asm/non_matchings/code/z_msgevent/func_8010B108.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd23.s func_8010B108 MsgEvent_Cmd23 0x8010B108 0xE
1550 asm/non_matchings/code/z_msgevent/func_8010B140.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd24.s func_8010B140 MsgEvent_Cmd24 0x8010B140 0x10
1551 asm/non_matchings/code/z_msgevent/func_8010B180.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd25.s func_8010B180 MsgEvent_Cmd25 0x8010B180 0xF
1552 asm/non_matchings/code/z_msgevent/func_8010B1BC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd26.s func_8010B1BC MsgEvent_Cmd26 0x8010B1BC 0x1C
1553 asm/non_matchings/code/z_msgevent/func_8010B22C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd27.s func_8010B22C MsgEvent_Cmd27 0x8010B22C 0x16
1554 asm/non_matchings/code/z_msgevent/func_8010B284.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd28.s func_8010B284 MsgEvent_Cmd28 0x8010B284 0xF
1555 asm/non_matchings/code/z_msgevent/func_8010B2C0.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd29.s func_8010B2C0 MsgEvent_Cmd29 0x8010B2C0 0x10
1556 asm/non_matchings/code/z_msgevent/func_8010B300.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd30.s func_8010B300 MsgEvent_Cmd30 0x8010B300 0x4D
1557 asm/non_matchings/code/z_msgevent/func_8010B434.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd31.s func_8010B434 MsgEvent_Cmd31 0x8010B434 0x1C
1558 asm/non_matchings/code/z_msgevent/func_8010B4A4.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd32.s func_8010B4A4 MsgEvent_Cmd32 0x8010B4A4 0x1F
1559 asm/non_matchings/code/z_msgevent/func_8010B520.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd33.s func_8010B520 MsgEvent_Cmd33 0x8010B520 0x51
1560 asm/non_matchings/code/z_msgevent/func_8010B664.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd34.s func_8010B664 MsgEvent_Cmd34 0x8010B664 0x51
1561 asm/non_matchings/code/z_msgevent/func_8010B7A8.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd35.s func_8010B7A8 MsgEvent_Cmd35 0x8010B7A8 0x20
1562 asm/non_matchings/code/z_msgevent/func_8010B828.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd36.s func_8010B828 MsgEvent_Cmd36 0x8010B828 0x14
1563 asm/non_matchings/code/z_msgevent/func_8010B878.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd37.s func_8010B878 MsgEvent_Cmd37 0x8010B878 0x1B
1564 asm/non_matchings/code/z_msgevent/func_8010B8E4.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd38.s func_8010B8E4 MsgEvent_Cmd38 0x8010B8E4 0x8A
1565 asm/non_matchings/code/z_msgevent/func_8010BB0C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd39.s func_8010BB0C MsgEvent_Cmd39 0x8010BB0C 0x18
1566 asm/non_matchings/code/z_msgevent/func_8010BB6C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd40.s func_8010BB6C MsgEvent_Cmd40 0x8010BB6C 0x18
1567 asm/non_matchings/code/z_msgevent/func_8010BBCC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd41.s func_8010BBCC MsgEvent_Cmd41 0x8010BBCC 0x17
1568 asm/non_matchings/code/z_msgevent/func_8010BC28.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd42.s func_8010BC28 MsgEvent_Cmd42 0x8010BC28 0x15
1569 asm/non_matchings/code/z_msgevent/func_8010BC7C.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd43.s func_8010BC7C MsgEvent_Cmd43 0x8010BC7C 0x33
1570 asm/non_matchings/code/z_msgevent/func_8010BD48.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd44.s func_8010BD48 MsgEvent_Cmd44 0x8010BD48 0x12
1571 asm/non_matchings/code/z_msgevent/func_8010BD90.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd45.s func_8010BD90 MsgEvent_Cmd45 0x8010BD90 0x13
1572 asm/non_matchings/code/z_msgevent/func_8010BDDC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd46.s func_8010BDDC MsgEvent_Cmd46 0x8010BDDC 0x27
1573 asm/non_matchings/code/z_msgevent/func_8010BE78.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd47.s func_8010BE78 MsgEvent_Cmd47 0x8010BE78 0x11
1574 asm/non_matchings/code/z_msgevent/func_8010BEBC.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd48.s func_8010BEBC MsgEvent_Cmd48 0x8010BEBC 0xD
1575 asm/non_matchings/code/z_msgevent/func_8010BEF0.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd49.s func_8010BEF0 MsgEvent_Cmd49 0x8010BEF0 0xD
1576 asm/non_matchings/code/z_msgevent/func_8010BF24.s asm/non_matchings/code/z_msgevent/MsgEvent_Cmd50.s func_8010BF24 MsgEvent_Cmd50 0x8010BF24 0xD
1577 asm/non_matchings/code/z_msgevent/func_8010BF58.s asm/non_matchings/code/z_msgevent/MsgEvent_RunScript.s func_8010BF58 MsgEvent_RunScript 0x8010BF58 0x5A
1578 asm/non_matchings/code/z_nmi_buff/Nmi_Init.s Nmi_Init 0x8010C0C0 0x29
1579 asm/non_matchings/code/z_nmi_buff/Nmi_SetPrenmiStart.s Nmi_SetPrenmiStart 0x8010C164 0xE
1580 asm/non_matchings/code/z_nmi_buff/Nmi_GetPrenmiHasStarted.s Nmi_GetPrenmiHasStarted 0x8010C19C 0x5