Msgevent OK (#1637)

* Decompiled, some commands still unnamed

* Use full weekevent reg names

* Fix func_8094E69C

* Fix Player_GetMask

* Eventinf, mask worn, and item action argument formatting

* decimal rupees

* Times (day, hours, minutes) as decimal

* msgEventScriptPos

* Callbacks

* Name final commands

* Enum

* Arrays

* functions

* Small cleanups

* Clean up actors

* Remove event from some variable names to make them shorter

* Some more function renames

* newline

* Missed a few unks in commands

* Update functions.txt

* PlayerMask

* MSGMODE_PAUSED

* Script time macros

* EnSob1_GetWelcome default

* Whole bunch of renames

* Format

* Add CMD to commands

* Update code_functions

* structs for size

* z64scripts.h

* MsgEventCallback -> MsgScriptCallback

* format

* MsgEvent_RunScript stop

* Remove cmd handler comment

* cmd -> script in MsgEvent_RunScript

---------

Co-authored-by: Thar0 <17233964+Thar0@users.noreply.github.com>
This commit is contained in:
Derek Hensley 2024-06-14 21:35:22 -07:00 committed by GitHub
parent bd596f9869
commit 0b375cadb0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
78 changed files with 7267 additions and 1093 deletions

View File

@ -152,7 +152,7 @@ static ScheduleScript D_80BD3DB0[] = {
/* 0x08 */ SCHEDULE_CMD_RET_VAL_L(1),
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x20 - 0x0F),
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 23, 0, 0x1D - 0x15),
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
/* 0x15 */ SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
/* 0x19 */ SCHEDULE_CMD_RET_VAL_L(1),
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(3),
@ -261,7 +261,7 @@ static ScheduleScript D_80BD3DB0[] = {
/* 0x08 */ SCHEDULE_CMD_RET_VAL_L(1),
/* 0x0B */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(2, 0x20 - 0x0F),
/* 0x0F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 23, 0, 0x1D - 0x15),
/* 0x15 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
/* 0x15 */ SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x1C - 0x19),
/* 0x19 */ SCHEDULE_CMD_RET_VAL_L(1),
/* 0x1C */ SCHEDULE_CMD_RET_NONE(),
/* 0x1D */ SCHEDULE_CMD_RET_VAL_L(3),

View File

@ -334,59 +334,6 @@ void Map_Destroy(PlayState* play);
void Map_Init(PlayState* play);
void Minimap_Draw(PlayState* play);
void Map_Update(PlayState* play);
// 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);
f32 OLib_Vec3fDist(Vec3f* a, Vec3f* b);
f32 OLib_Vec3fDistOutDiff(Vec3f* a, Vec3f* b, Vec3f* dest);
f32 OLib_Vec3fDistXZ(Vec3f* a, Vec3f* b);

View File

@ -55,6 +55,7 @@
#include "z64map.h"
#include "z64math.h"
#include "z64message.h"
#include "z64msgevent.h"
#include "z64object.h"
#include "z64ocarina.h"
#include "z64pause_menu.h"

516
include/z64msgevent.h Normal file
View File

@ -0,0 +1,516 @@
#ifndef Z64MSGEVENT_H
#define Z64MSGEVENT_H
#include "z64scripts.h"
struct PlayState;
struct Actor;
typedef enum MsgScriptCommandId {
/* 0x00 */ MSCRIPT_CMD_ID_CHECK_WEEK_EVENT_REG,
/* 0x01 */ MSCRIPT_CMD_ID_CHECK_GORON,
/* 0x02 */ MSCRIPT_CMD_ID_CHECK_ZORA,
/* 0x03 */ MSCRIPT_CMD_ID_CHECK_DEKU,
/* 0x04 */ MSCRIPT_CMD_ID_CHECK_HUMAN,
/* 0x05 */ MSCRIPT_CMD_ID_CHECK_TEXT_CHOICE,
/* 0x06 */ MSCRIPT_CMD_ID_OFFER_ITEM,
/* 0x07 */ MSCRIPT_CMD_ID_AUTOTALK,
/* 0x08 */ MSCRIPT_CMD_ID_CHECK_RUPEES,
/* 0x09 */ MSCRIPT_CMD_ID_CHECK_CALLBACK,
/* 0x0A */ MSCRIPT_CMD_ID_CHECK_DAY,
/* 0x0B */ MSCRIPT_CMD_ID_AWAIT_TEXT_JUMP,
/* 0x0C */ MSCRIPT_CMD_ID_AWAIT_TEXT,
/* 0x0D */ MSCRIPT_CMD_ID_AWAIT_TEXT_END,
/* 0x0E */ MSCRIPT_CMD_ID_BEGIN_TEXT,
/* 0x0F */ MSCRIPT_CMD_ID_CONTINUE_TEXT,
/* 0x10 */ MSCRIPT_CMD_ID_DONE,
/* 0x11 */ MSCRIPT_CMD_ID_SET_WEEK_EVENT_REG,
/* 0x12 */ MSCRIPT_CMD_ID_CLOSE_TEXT,
/* 0x13 */ MSCRIPT_CMD_ID_SET_COLLECTIBLE,
/* 0x14 */ MSCRIPT_CMD_ID_CHANGE_RUPEES,
/* 0x15 */ MSCRIPT_CMD_ID_PAUSE,
/* 0x16 */ MSCRIPT_CMD_ID_UNSET_AUTOTALK,
/* 0x17 */ MSCRIPT_CMD_ID_FOCUS_TO_CHILD,
/* 0x18 */ MSCRIPT_CMD_ID_FOCUS_TO_SELF,
/* 0x19 */ MSCRIPT_CMD_ID_JUMP,
/* 0x1A */ MSCRIPT_CMD_ID_CHECK_QUEST_ITEM,
/* 0x1B */ MSCRIPT_CMD_ID_CHECK_EVENT_INF,
/* 0x1C */ MSCRIPT_CMD_ID_SET_EVENT_INF,
/* 0x1D */ MSCRIPT_CMD_ID_UNSET_EVENT_INF,
/* 0x1E */ MSCRIPT_CMD_ID_CHECK_ITEM_ACTION,
/* 0x1F */ MSCRIPT_CMD_ID_CHECK_HAS_SONG,
/* 0x20 */ MSCRIPT_CMD_ID_CHECK_WORN_MASK,
/* 0x21 */ MSCRIPT_CMD_ID_CHECK_AFTER_TIME,
/* 0x22 */ MSCRIPT_CMD_ID_CHECK_BEFORE_TIME,
/* 0x23 */ MSCRIPT_CMD_ID_CHECK_SWITCH_FLAG,
/* 0x24 */ MSCRIPT_CMD_ID_SET_SWITCH_FLAG,
/* 0x25 */ MSCRIPT_CMD_ID_CHECK_ITEM,
/* 0x26 */ MSCRIPT_CMD_ID_CHECK_BETWEEN_TIME,
/* 0x27 */ MSCRIPT_CMD_ID_CHECK_ON_DAY,
/* 0x28 */ MSCRIPT_CMD_ID_CHECK_CALLBACK_CONTINUE,
/* 0x29 */ MSCRIPT_CMD_ID_CHECK_HAS_POWDER_KEG,
/* 0x2A */ MSCRIPT_CMD_ID_DELETE_ITEM,
/* 0x2B */ MSCRIPT_CMD_ID_CHECK_CALLBACK_MULTI,
/* 0x2C */ MSCRIPT_CMD_ID_PLAYER_TALK,
/* 0x2D */ MSCRIPT_CMD_ID_NOTEBOOK_EVENT,
/* 0x2E */ MSCRIPT_CMD_ID_AWAIT_TEXT_DONE,
/* 0x2F */ MSCRIPT_CMD_ID_JUMP_3,
/* 0x30 */ MSCRIPT_CMD_ID_PLAY_DECIDE,
/* 0x31 */ MSCRIPT_CMD_ID_PLAY_CANCEL,
/* 0x32 */ MSCRIPT_CMD_ID_PLAY_ERROR,
/* 0x33 */ MSCRIPT_CMD_ID_MAX
} MsgScriptCommandId;
typedef struct {
/* 0x0 */ u8 cmd;
} MsgScriptCmdBase;
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckWeekEventReg; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckGoron; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckZora; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckDeku; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckHuman; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offset0H;
/* 0x2 */ u8 offset0L;
/* 0x3 */ u8 offset1H;
/* 0x4 */ u8 offset1L;
/* 0x5 */ u8 offset2H;
/* 0x6 */ u8 offset2L;
} MsgScriptCmdCheckTextChoice; // size = 0x7
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 itemIdH;
/* 0x2 */ u8 itemIdL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdOfferItem; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdAutotalk; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 rupeesH;
/* 0x2 */ u8 rupeesL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckRupees; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckCallback; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetDay1H;
/* 0x2 */ u8 offsetDay1L;
/* 0x3 */ u8 offsetNight1H;
/* 0x4 */ u8 offsetNight1L;
/* 0x5 */ u8 offsetDay2H;
/* 0x6 */ u8 offsetDay2L;
/* 0x7 */ u8 offsetNight2H;
/* 0x8 */ u8 offsetNight2L;
/* 0x9 */ u8 offsetDay3H;
/* 0xA */ u8 offsetDay3L;
/* 0xB */ u8 offsetNight3H;
/* 0xC */ u8 offsetNight3L;
} MsgScriptCmdCheckDay; // size = 0xD
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdAwaitTextJump; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 textIdH;
/* 0x2 */ u8 textIdL;
} MsgScriptCmdBeginText; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 textIdH;
/* 0x2 */ u8 textIdL;
} MsgScriptCmdContinueText; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
} MsgScriptCmdSetWeekEventReg; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagH;
/* 0x2 */ u8 flagL;
} MsgScriptCmdSetCollectible; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 rupeesH;
/* 0x2 */ u8 rupeesL;
} MsgScriptCmdChangeRupees; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdJump; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 questItemH;
/* 0x2 */ u8 questItemL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckQuestItem; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckEventInf; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
} MsgScriptCmdSetEventInf; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
} MsgScriptCmdUnsetEventInf; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 itemActionH;
/* 0x2 */ u8 itemActionL;
/* 0x3 */ u8 offsetEqualH;
/* 0x4 */ u8 offsetEqualL;
/* 0x5 */ u8 offsetDefaultH;
/* 0x6 */ u8 offsetDefaultL;
/* 0x7 */ u8 offsetContinueH;
/* 0x8 */ u8 offsetContinueL;
} MsgScriptCmdCheckItemAction; // size = 0x9
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 songH;
/* 0x2 */ u8 songL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckHasSong; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 maskH;
/* 0x2 */ u8 maskL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckWornMask; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 hr;
/* 0x2 */ u8 min;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckAfterTime; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 hr;
/* 0x2 */ u8 min;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckBeforeTime; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagH;
/* 0x2 */ u8 flagL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckSwitchFlag; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 flagH;
/* 0x2 */ u8 flagL;
} MsgScriptCmdSetSwitchFlag; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 itemH;
/* 0x2 */ u8 itemL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckItem; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 startHr;
/* 0x2 */ u8 startMin;
/* 0x3 */ u8 endHr;
/* 0x4 */ u8 endMin;
/* 0x5 */ u8 offsetH;
/* 0x6 */ u8 offsetL;
} MsgScriptCmdCheckBetweenTime; // size = 0x7
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 dayH;
/* 0x2 */ u8 dayL;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} MsgScriptCmdCheckOnDay; // size = 0x5
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckCallbackContinue; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdCheckHasPowderKeg; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 itemH;
/* 0x2 */ u8 itemL;
} MsgScriptCmdDeleteItem; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offset1H;
/* 0x2 */ u8 offset1L;
/* 0x3 */ u8 offset2H;
/* 0x4 */ u8 offset2L;
/* 0x5 */ u8 offset3H;
/* 0x6 */ u8 offset3L;
} MsgScriptCmdCheckCallbackMulti; // size = 0x7
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 textIdH;
/* 0x2 */ u8 textIdL;
} MsgScriptCmdPlayerTalk; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 eventH;
/* 0x2 */ u8 eventL;
} MsgScriptCmdBombersNotebook; // size = 0x3
typedef struct {
/* 0x0 */ MsgScriptCmdBase base;
/* 0x1 */ u8 offsetH;
/* 0x2 */ u8 offsetL;
} MsgScriptCmdJump3; // size = 0x3
#define MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(reg, skip) \
MSCRIPT_CMD_ID_CHECK_WEEK_EVENT_REG, SCRIPT_UNPACK_16(reg), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_GORON(skip) \
MSCRIPT_CMD_ID_CHECK_GORON, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_ZORA(skip) \
MSCRIPT_CMD_ID_CHECK_ZORA, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_DEKU(skip) \
MSCRIPT_CMD_ID_CHECK_DEKU, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_HUMAN(skip) \
MSCRIPT_CMD_ID_CHECK_HUMAN, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_TEXT_CHOICE(skip0, skip1, skip2) \
MSCRIPT_CMD_ID_CHECK_TEXT_CHOICE, SCRIPT_UNPACK_16(skip0), SCRIPT_UNPACK_16(skip1), SCRIPT_UNPACK_16(skip2)
#define MSCRIPT_CMD_OFFER_ITEM(item, skip) \
MSCRIPT_CMD_ID_OFFER_ITEM, SCRIPT_UNPACK_16(item), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_AUTOTALK(skip) \
MSCRIPT_CMD_ID_AUTOTALK, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_RUPEES(rupees, skip) \
MSCRIPT_CMD_ID_CHECK_RUPEES, SCRIPT_UNPACK_16(rupees), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_CALLBACK(skip) \
MSCRIPT_CMD_ID_CHECK_CALLBACK, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_DAY(skipDay1, skipNight1, skipDay2, skipNight2, skipDay3, skipNight3) \
MSCRIPT_CMD_ID_CHECK_DAY, \
SCRIPT_UNPACK_16(skipDay1), SCRIPT_UNPACK_16(skipNight1), \
SCRIPT_UNPACK_16(skipDay2), SCRIPT_UNPACK_16(skipNight2), \
SCRIPT_UNPACK_16(skipDay3), SCRIPT_UNPACK_16(skipNight3)
#define MSCRIPT_CMD_AWAIT_TEXT_JUMP(skip) \
MSCRIPT_CMD_ID_AWAIT_TEXT_JUMP, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_AWAIT_TEXT() \
MSCRIPT_CMD_ID_AWAIT_TEXT
#define MSCRIPT_CMD_AWAIT_TEXT_END() \
MSCRIPT_CMD_ID_AWAIT_TEXT_END
#define MSCRIPT_CMD_BEGIN_TEXT(arg) \
MSCRIPT_CMD_ID_BEGIN_TEXT, SCRIPT_UNPACK_16(arg)
#define MSCRIPT_CMD_CONTINUE_TEXT(arg) \
MSCRIPT_CMD_ID_CONTINUE_TEXT, SCRIPT_UNPACK_16(arg)
#define MSCRIPT_CMD_DONE() \
MSCRIPT_CMD_ID_DONE
#define MSCRIPT_CMD_SET_WEEK_EVENT_REG(reg) \
MSCRIPT_CMD_ID_SET_WEEK_EVENT_REG, SCRIPT_UNPACK_16(reg)
#define MSCRIPT_CMD_CLOSE_TEXT() \
MSCRIPT_CMD_ID_CLOSE_TEXT
#define MSCRIPT_CMD_SET_COLLECTIBLE(collectFlag) \
MSCRIPT_CMD_ID_SET_COLLECTIBLE, SCRIPT_UNPACK_16(collectFlag)
#define MSCRIPT_CMD_CHANGE_RUPEES(num) \
MSCRIPT_CMD_ID_CHANGE_RUPEES, SCRIPT_UNPACK_16(num)
#define MSCRIPT_CMD_PAUSE() \
MSCRIPT_CMD_ID_PAUSE
#define MSCRIPT_CMD_UNSET_AUTOTALK() \
MSCRIPT_CMD_ID_UNSET_AUTOTALK
#define MSCRIPT_CMD_FOCUS_TO_CHILD() \
MSCRIPT_CMD_ID_FOCUS_TO_CHILD
#define MSCRIPT_CMD_FOCUS_TO_SELF() \
MSCRIPT_CMD_ID_FOCUS_TO_SELF
#define MSCRIPT_CMD_JUMP(skip) \
MSCRIPT_CMD_ID_JUMP, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_QUEST_ITEM(questItem, skip) \
MSCRIPT_CMD_ID_CHECK_QUEST_ITEM, SCRIPT_UNPACK_16(questItem), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_EVENT_INF(flag, skip) \
MSCRIPT_CMD_ID_CHECK_EVENT_INF, SCRIPT_UNPACK_8(((flag) >> 4)), SCRIPT_UNPACK_8((1 << ((flag) & 0xF))), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_SET_EVENT_INF(flag) \
MSCRIPT_CMD_ID_SET_EVENT_INF, SCRIPT_UNPACK_8(((flag) >> 4)), SCRIPT_UNPACK_8((1 << ((flag) & 0xF)))
#define MSCRIPT_CMD_EVENT_INF(flag) \
MSCRIPT_CMD_ID_UNSET_EVENT_INF, SCRIPT_UNPACK_8(((flag) >> 4)), SCRIPT_UNPACK_8((1 << ((flag) & 0xF)))
#define MSCRIPT_CMD_CHECK_ITEM_ACTION(itemAction, skipEqual, skipDefault, skipContinue) \
MSCRIPT_CMD_ID_CHECK_ITEM_ACTION, SCRIPT_UNPACK_16(itemAction), SCRIPT_UNPACK_16(skipEqual), SCRIPT_UNPACK_16(skipDefault), SCRIPT_UNPACK_16(skipContinue)
#define MSCRIPT_CMD_CHECK_HAS_SONG(questItem, skip) \
MSCRIPT_CMD_ID_CHECK_HAS_SONG, SCRIPT_UNPACK_16(questItem), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_WORN_MASK(mask, skip) \
MSCRIPT_CMD_ID_CHECK_WORN_MASK, SCRIPT_UNPACK_16(mask), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_AFTER_TIME(hours, minutes, skip) \
MSCRIPT_CMD_ID_CHECK_AFTER_TIME, SCRIPT_UNPACK_8(hours), SCRIPT_UNPACK_8(minutes), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_BEFORE_TIME(hours, minutes, skip) \
MSCRIPT_CMD_ID_CHECK_BEFORE_TIME, SCRIPT_UNPACK_8(hours), SCRIPT_UNPACK_8(minutes), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_SWITCH_FLAG(switchFlag, skip) \
MSCRIPT_CMD_ID_CHECK_SWITCH_FLAG, SCRIPT_UNPACK_16(switchFlag), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_SET_SWITCH_FLAG(switchFlag) \
MSCRIPT_CMD_ID_SET_SWITCH_FLAG, SCRIPT_UNPACK_16(switchFlag)
#define MSCRIPT_CMD_CHECK_ITEM(item, skip) \
MSCRIPT_CMD_ID_CHECK_ITEM, SCRIPT_UNPACK_16(item), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_BETWEEN_TIME(hours1, minutes1, hours2, minutes2, skip) \
MSCRIPT_CMD_ID_CHECK_BETWEEN_TIME, SCRIPT_UNPACK_8(hours1), SCRIPT_UNPACK_8(minutes1), SCRIPT_UNPACK_8(hours2), SCRIPT_UNPACK_8(minutes2), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_IN_DAY(day, skip) \
MSCRIPT_CMD_ID_CHECK_ON_DAY, SCRIPT_UNPACK_16(day), SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(skip) \
MSCRIPT_CMD_ID_CHECK_CALLBACK_CONTINUE, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_CHECK_HAS_POWDER_KEG(skip) \
MSCRIPT_CMD_ID_CHECK_HAS_POWDER_KEG, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_DELETE_ITEM(item) \
MSCRIPT_CMD_ID_DELETE_ITEM, SCRIPT_UNPACK_16(item)
#define MSCRIPT_CMD_CHECK_CALLBACK_MULTI(skip1, skip2, skip3) \
MSCRIPT_CMD_ID_CHECK_CALLBACK_MULTI, SCRIPT_UNPACK_16(skip1), SCRIPT_UNPACK_16(skip2), SCRIPT_UNPACK_16(skip3)
#define MSCRIPT_CMD_PLAYER_TALK(textId) \
MSCRIPT_CMD_ID_PLAYER_TALK, SCRIPT_UNPACK_16(textId)
#define MSCRIPT_CMD_NOTEBOOK_EVENT(event) \
MSCRIPT_CMD_ID_NOTEBOOK_EVENT, SCRIPT_UNPACK_16(event)
#define MSCRIPT_CMD_AWAIT_TEXT_DONE() \
MSCRIPT_CMD_ID_AWAIT_TEXT_DONE
#define MSCRIPT_CMD_JUMP_3(skip) \
MSCRIPT_CMD_ID_JUMP_3, SCRIPT_UNPACK_16(skip)
#define MSCRIPT_CMD_PLAY_DECIDE() \
MSCRIPT_CMD_ID_PLAY_DECIDE
#define MSCRIPT_CMD_PLAY_CANCEL() \
MSCRIPT_CMD_ID_PLAY_CANCEL
#define MSCRIPT_CMD_PLAY_ERROR() \
MSCRIPT_CMD_ID_PLAY_ERROR
typedef u8 MsgScript;
typedef s32 (*MsgScriptCallback)(struct Actor* thisx, struct PlayState* play);
s32 MsgEvent_RunScript(Actor* actor, struct PlayState* play, MsgScript* script, MsgScriptCallback callback, s32* pos);
#endif

View File

@ -1388,7 +1388,7 @@ void func_80123E90(struct PlayState* play, Actor* actor);
s32 func_80123F2C(struct PlayState* play, s32 ammo);
bool Player_IsBurningStickInRange(struct PlayState* play, Vec3f* pos, f32 xzRange, f32 yRange);
u8 Player_GetStrength(void);
u8 Player_GetMask(struct PlayState* play);
PlayerMask Player_GetMask(struct PlayState* play);
void Player_RemoveMask(struct PlayState* play);
bool Player_HasMirrorShieldEquipped(struct PlayState* play);
bool Player_IsHoldingMirrorShield(struct PlayState* play);

View File

@ -1,7 +1,7 @@
#ifndef Z64SCHEDULE_H
#define Z64SCHEDULE_H
#include "ultra64.h"
#include "z64scripts.h"
/**
* Schedule is a subsystem that acts as a way to make decisions based on the
@ -29,33 +29,26 @@
struct PlayState;
// Macro to convert the time format used in the save struct into the format used in Schedule
#define SCHEDULE_CONVERT_TIME(time) ((s32)((time) - 0x10000 / 360 * 90))
#define SCHEDULE_TIME(hour, minute) SCHEDULE_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f))
#define SCHEDULE_TIME_NOW SCHEDULE_CONVERT_TIME(CURRENT_TIME)
typedef enum ScheduleCommandId {
/* 0x00 */ SCHEDULE_CMD_ID_CHECK_FLAG_S, // Checks if a weekEventReg flag is set and branches if so, short range branch
/* 0x01 */ SCHEDULE_CMD_ID_CHECK_FLAG_L, // Checks if a weekEventReg flag is set and branches if so, long range branch
/* 0x02 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, // Checks if the current time is within the range of the two provided times and branches if so, short range branch
/* 0x03 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, // Checks if the current time is within the range of the two provided times and branches if so, long range branch
/* 0x04 */ SCHEDULE_CMD_ID_RET_VAL_L, // Ends script and returns 2-byte value (Note: bugged as the return value size is only 1 byte in the struct)
/* 0x05 */ SCHEDULE_CMD_ID_RET_NONE, // Ends script without returning anything
/* 0x06 */ SCHEDULE_CMD_ID_RET_EMPTY, // Ends script and indicates return without changing existing value
/* 0x07 */ SCHEDULE_CMD_ID_NOP, // No-Op
/* 0x08 */ SCHEDULE_CMD_ID_CHECK_MISC_S, // Special check based on items or masks and branches if check passes, short range branch
/* 0x09 */ SCHEDULE_CMD_ID_RET_VAL_S, // Ends script and returns byte value
/* 0x0A */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, // Checks if the current scene is not SceneId and branches if so, short range branch
/* 0x0B */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, // Checks if the current scene is not SceneId and branches if so, long range branch
/* 0x0C */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, // Checks if the current day is not Day and branches if so, short range branch
/* 0x0D */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, // Checks if the current day is not Day and branches if so, long range branch
/* 0x0E */ SCHEDULE_CMD_ID_RET_TIME, // Returns 2 time values
/* 0x0F */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, // Branches if the current time is less than the command time, short range branch
/* 0x10 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, // Branches if the current time is less than the command time, long range branch
/* 0x11 */ SCHEDULE_CMD_ID_BRANCH_S, // Always branch, short range branch
/* 0x12 */ SCHEDULE_CMD_ID_BRANCH_L // Always branch, long range branch
/* 0x00 */ SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_S, // Checks if a weekEventReg flag is set and branches if so, short range branch
/* 0x01 */ SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_L, // Checks if a weekEventReg flag is set and branches if so, long range branch
/* 0x02 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, // Checks if the current time is within the range of the two provided times and branches if so, short range branch
/* 0x03 */ SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, // Checks if the current time is within the range of the two provided times and branches if so, long range branch
/* 0x04 */ SCHEDULE_CMD_ID_RET_VAL_L, // Ends script and returns 2-byte value (Note: bugged as the return value size is only 1 byte in the struct)
/* 0x05 */ SCHEDULE_CMD_ID_RET_NONE, // Ends script without returning anything
/* 0x06 */ SCHEDULE_CMD_ID_RET_EMPTY, // Ends script and indicates return without changing existing value
/* 0x07 */ SCHEDULE_CMD_ID_NOP, // No-Op
/* 0x08 */ SCHEDULE_CMD_ID_CHECK_MISC_S, // Special check based on items or masks and branches if check passes, short range branch
/* 0x09 */ SCHEDULE_CMD_ID_RET_VAL_S, // Ends script and returns byte value
/* 0x0A */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, // Checks if the current scene is not SceneId and branches if so, short range branch
/* 0x0B */ SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, // Checks if the current scene is not SceneId and branches if so, long range branch
/* 0x0C */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, // Checks if the current day is not Day and branches if so, short range branch
/* 0x0D */ SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, // Checks if the current day is not Day and branches if so, long range branch
/* 0x0E */ SCHEDULE_CMD_ID_RET_TIME, // Returns 2 time values
/* 0x0F */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, // Branches if the current time is less than the command time, short range branch
/* 0x10 */ SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, // Branches if the current time is less than the command time, long range branch
/* 0x11 */ SCHEDULE_CMD_ID_BRANCH_S, // Always branch, short range branch
/* 0x12 */ SCHEDULE_CMD_ID_BRANCH_L // Always branch, long range branch
} ScheduleCommandId;
typedef enum {
@ -80,7 +73,7 @@ typedef struct {
/* 0x1 */ u8 flagByte;
/* 0x2 */ u8 flagMask;
/* 0x3 */ s8 offset;
} ScheduleCmdCheckFlagS; // size = 0x4
} ScheduleCmdCheckWeekEventRegS; // size = 0x4
typedef struct {
/* 0x0 */ ScheduleCmdBase base;
@ -88,7 +81,7 @@ typedef struct {
/* 0x2 */ u8 flagMask;
/* 0x3 */ u8 offsetH;
/* 0x4 */ u8 offsetL;
} ScheduleCmdCheckFlagL; // size = 0x5
} ScheduleCmdCheckWeekEventRegL; // size = 0x5
typedef struct {
/* 0x0 */ ScheduleCmdBase base;
@ -198,23 +191,20 @@ typedef struct {
/* 0x2 */ u8 offsetL;
} ScheduleCmdBranchL; // size = 0x3
#define SCHEDULE_PACK_S16(val) \
((val) >> 8) & 0xFF, (val) & 0xFF
#define SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_S(flag, offset) \
SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_S, SCRIPT_UNPACK_16(flag), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_CHECK_FLAG_S(flag, offset) \
SCHEDULE_CMD_ID_CHECK_FLAG_S, SCHEDULE_PACK_S16(flag), (offset)
#define SCHEDULE_CMD_CHECK_FLAG_L(flag, offset) \
SCHEDULE_CMD_ID_CHECK_FLAG_L, SCHEDULE_PACK_S16(flag), SCHEDULE_PACK_S16(offset)
#define SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_L(flag, offset) \
SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_L, SCRIPT_UNPACK_16(flag), SCRIPT_UNPACK_16(offset)
#define SCHEDULE_CMD_CHECK_TIME_RANGE_S(startHr, startMin, endHr, endMin, offset) \
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, (startHr), (startMin), (endHr), (endMin), (offset)
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S, SCRIPT_UNPACK_8(startHr), SCRIPT_UNPACK_8(startMin), SCRIPT_UNPACK_8(endHr), SCRIPT_UNPACK_8(endMin), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_CHECK_TIME_RANGE_L(startHr, startMin, endHr, endMin, offset) \
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, (startHr), (startMin), (endHr), (endMin), SCHEDULE_PACK_S16(offset)
SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L, SCRIPT_UNPACK_8(startHr), SCRIPT_UNPACK_8(startMin), SCRIPT_UNPACK_8(endHr), SCRIPT_UNPACK_8(endMin), SCRIPT_UNPACK_16(offset)
#define SCHEDULE_CMD_RET_VAL_L(result) \
SCHEDULE_CMD_ID_RET_VAL_L, SCHEDULE_PACK_S16(result)
SCHEDULE_CMD_ID_RET_VAL_L, SCRIPT_UNPACK_16(result)
#define SCHEDULE_CMD_RET_NONE() \
SCHEDULE_CMD_ID_RET_NONE
@ -223,40 +213,40 @@ typedef struct {
SCHEDULE_CMD_ID_RET_EMPTY,
#define SCHEDULE_CMD_NOP(unk0, unk1, unk2) \
SCHEDULE_CMD_ID_NOP, (unk0), (unk1), (unk2)
SCHEDULE_CMD_ID_NOP, SCRIPT_UNPACK_8(unk0), SCRIPT_UNPACK_8(unk1), SCRIPT_UNPACK_8(unk2)
#define SCHEDULE_CMD_CHECK_MISC_S(which, offset) \
SCHEDULE_CMD_ID_CHECK_MISC_S, (which), (offset)
SCHEDULE_CMD_ID_CHECK_MISC_S, SCRIPT_UNPACK_8(which), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_RET_VAL_S(result) \
SCHEDULE_CMD_ID_RET_VAL_S, (result)
SCHEDULE_CMD_ID_RET_VAL_S, SCRIPT_UNPACK_8(result)
#define SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(scene, offset) \
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, SCHEDULE_PACK_S16(scene), (offset)
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S, SCRIPT_UNPACK_16(scene), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(scene, offset) \
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, SCHEDULE_PACK_S16(scene), SCHEDULE_PACK_S16(offset)
SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L, SCRIPT_UNPACK_16(scene), SCRIPT_UNPACK_16(offset)
#define SCHEDULE_CMD_CHECK_NOT_IN_DAY_S(day, offset) \
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, SCHEDULE_PACK_S16(day), (offset)
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S, SCRIPT_UNPACK_16(day), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(day, offset) \
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, SCHEDULE_PACK_S16(day), SCHEDULE_PACK_S16(offset)
SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L, SCRIPT_UNPACK_16(day), SCRIPT_UNPACK_16(offset)
#define SCHEDULE_CMD_RET_TIME(time0Hr, time0Min, time1Hr, time1Min, result) \
SCHEDULE_CMD_ID_RET_TIME, (time0Hr), (time0Min), (time1Hr), (time1Min), (result)
SCHEDULE_CMD_ID_RET_TIME, SCRIPT_UNPACK_8(time0Hr), SCRIPT_UNPACK_8(time0Min), SCRIPT_UNPACK_8(time1Hr), SCRIPT_UNPACK_8(time1Min), SCRIPT_UNPACK_8(result)
#define SCHEDULE_CMD_CHECK_BEFORE_TIME_S(timeHr, timeMin, offset) \
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, (timeHr), (timeMin), (offset)
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S, SCRIPT_UNPACK_8(timeHr), SCRIPT_UNPACK_8(timeMin), SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_CHECK_BEFORE_TIME_L(timeHr, timeMin, offset) \
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, (timeHr), (timeMin), SCHEDULE_PACK_S16(offset)
SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L, SCRIPT_UNPACK_8(timeHr), SCRIPT_UNPACK_8(timeMin), SCRIPT_UNPACK_16(offset)
#define SCHEDULE_CMD_BRANCH_S(offset) \
SCHEDULE_CMD_ID_BRANCH_S, (offset)
SCHEDULE_CMD_ID_BRANCH_S, SCRIPT_UNPACK_8(offset)
#define SCHEDULE_CMD_BRANCH_L(offset) \
SCHEDULE_CMD_ID_BRANCH_L, SCHEDULE_PACK_S16(offset)
SCHEDULE_CMD_ID_BRANCH_L, SCRIPT_UNPACK_16(offset)
typedef u8 ScheduleScript;

24
include/z64scripts.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef Z64SCRIPTS_H
#define Z64SCRIPTS_H
#include "PR/ultratypes.h"
// Macros to convert the time format used in the save struct into the format used in scripts (Schedule or Message)
#define SCRIPT_CONVERT_TIME(time) ((s32)((time) - 0x10000 / 360 * 90))
#define SCRIPT_CALC_TIME(hour, minute, dest, temp) \
(temp) = (hour)*60.0f; \
(temp) += (minute); \
(dest) = (temp) * (0x10000 / 60 / 24.0f); \
(dest) = SCRIPT_CONVERT_TIME(dest)
#define SCRIPT_TIME(hour, minute) SCRIPT_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f))
#define SCRIPT_TIME_NOW SCRIPT_CONVERT_TIME(CURRENT_TIME)
#define SCRIPT_PACK_16(h, l) (((h) << 8) | (l))
#define SCRIPT_UNPACK_8(v) (u8)(v)
#define SCRIPT_UNPACK_16(v) (u8)_SHIFTR(v, 8, 8), (u8)_SHIFTR(v, 0, 8)
#endif

1
spec
View File

@ -500,7 +500,6 @@ beginseg
include "$(BUILD_DIR)/src/code/z_map_data.o"
include "$(BUILD_DIR)/src/code/z_map_exp.o"
include "$(BUILD_DIR)/src/code/z_msgevent.o"
include "$(BUILD_DIR)/data/code/z_msgevent.data.o"
include "$(BUILD_DIR)/src/code/z_nmi_buff.o"
include "$(BUILD_DIR)/src/code/z_nulltask.o"
include "$(BUILD_DIR)/src/code/z_olib.o"

View File

@ -1,4 +1,3 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "string.h"

View File

@ -1,5 +1,3 @@
#include "prevent_bss_reordering.h"
#include "z64bgcheck.h"
#include "global.h"

View File

@ -1,4 +1,3 @@
#include "prevent_bss_reordering.h"
#include "z64collision_check.h"
#include "z64actor.h"

View File

@ -1674,27 +1674,27 @@ void func_800F88C4(u16 weekEventFlag) {
}
void func_800F8970(void) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_40) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(9, 31))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_40) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(9, 31))) {
SET_WEEKEVENTREG(WEEKEVENTREG_27_40);
func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_UPPER_CLOCKTOWN);
}
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_80) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 3))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_27_80) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(10, 3))) {
SET_WEEKEVENTREG(WEEKEVENTREG_27_80);
func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_NORTH_CLOCKTOWN);
}
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_01) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 35))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_01) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(10, 35))) {
SET_WEEKEVENTREG(WEEKEVENTREG_28_01);
func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_UPPER_CLOCKTOWN);
}
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_02) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(10, 53))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_02) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(10, 53))) {
SET_WEEKEVENTREG(WEEKEVENTREG_28_02);
func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_LOWER_CLOCKTOWN);
}
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_04) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(11, 25))) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_28_04) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(11, 25))) {
SET_WEEKEVENTREG(WEEKEVENTREG_28_04);
func_800F88C4(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_LOWER_CLOCKTOWN);
}
@ -1729,7 +1729,7 @@ void Environment_UpdatePostmanEvents(PlayState* play) {
CLEAR_WEEKEVENTREG(WEEKEVENTREG_28_04);
}
if ((SCHEDULE_TIME_NOW < SCHEDULE_TIME(9, 0)) || (SCHEDULE_TIME_NOW > SCHEDULE_TIME(12, 0))) {
if ((SCRIPT_TIME_NOW < SCRIPT_TIME(9, 0)) || (SCRIPT_TIME_NOW > SCRIPT_TIME(12, 0))) {
CLEAR_WEEKEVENTREG(WEEKEVENTREG_90_08);
}
@ -1738,14 +1738,14 @@ void Environment_UpdatePostmanEvents(PlayState* play) {
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_55_02)) {
if (((void)0, gSaveContext.save.day) >= 2) {
SET_WEEKEVENTREG(WEEKEVENTREG_55_02);
} else if ((((void)0, gSaveContext.save.day) == 1) && (SCHEDULE_TIME_NOW >= SCHEDULE_TIME(16, 30))) {
} else if ((((void)0, gSaveContext.save.day) == 1) && (SCRIPT_TIME_NOW >= SCRIPT_TIME(16, 30))) {
SET_WEEKEVENTREG(WEEKEVENTREG_55_02);
}
}
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_90_01)) {
temp_a2_2 = CURRENT_TIME - D_801F4E78;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_89_40) && ((u16)SCHEDULE_TIME_NOW >= (u16)SCHEDULE_TIME(5, 0))) {
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_89_40) && ((u16)SCRIPT_TIME_NOW >= (u16)SCRIPT_TIME(5, 0))) {
SET_WEEKEVENTREG(WEEKEVENTREG_90_01);
} else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_89_08) && (temp_a2_2 >= CLOCK_TIME(0, 23))) {
SET_WEEKEVENTREG(WEEKEVENTREG_89_40);

View File

@ -1,4 +1,3 @@
#include "prevent_bss_reordering.h"
#include "z64lifemeter.h"
#include "global.h"

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,14 +1,8 @@
#include "global.h"
#define SCHEDULE_CALC_TIME(hour, minute, dest, temp) \
(temp) = (hour)*60.0f; \
(temp) += (minute); \
(dest) = (temp) * (0x10000 / 60 / 24.0f); \
(dest) = SCHEDULE_CONVERT_TIME(dest)
s32 Schedule_CheckFlagS(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckFlagS* cmd = (ScheduleCmdCheckFlagS*)*script;
u16 flag = PACK_WEEKEVENTREG_FLAG(cmd->flagByte, cmd->flagMask);
s32 Schedule_CheckWeekEventRegS(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckWeekEventRegS* cmd = (ScheduleCmdCheckWeekEventRegS*)*script;
u16 flag = SCRIPT_PACK_16(cmd->flagByte, cmd->flagMask);
if (CHECK_WEEKEVENTREG(flag)) {
*script += cmd->offset;
@ -17,12 +11,12 @@ s32 Schedule_CheckFlagS(PlayState* play, u8** script, ScheduleOutput* output) {
return false;
}
s32 Schedule_CheckFlagL(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckFlagL* cmd = (ScheduleCmdCheckFlagL*)*script;
u16 flag = PACK_WEEKEVENTREG_FLAG(cmd->flagByte, cmd->flagMask);
s32 Schedule_CheckWeekEventRegL(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckWeekEventRegL* cmd = (ScheduleCmdCheckWeekEventRegL*)*script;
u16 flag = SCRIPT_PACK_16(cmd->flagByte, cmd->flagMask);
if (CHECK_WEEKEVENTREG(flag)) {
*script += (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
}
return false;
@ -36,12 +30,12 @@ s32 Schedule_CheckTimeRangeS(PlayState* play, u8** script, ScheduleOutput* outpu
u16 end;
u16 now;
SCHEDULE_CALC_TIME(cmd->startHr, cmd->startMin, start, f);
SCRIPT_CALC_TIME(cmd->startHr, cmd->startMin, start, f);
SCHEDULE_CALC_TIME(cmd->endHr, cmd->endMin, end, f);
SCRIPT_CALC_TIME(cmd->endHr, cmd->endMin, end, f);
end--;
now = SCHEDULE_TIME_NOW;
now = SCRIPT_TIME_NOW;
if ((start <= now) && (now <= end)) {
inRange = true;
@ -62,19 +56,19 @@ s32 Schedule_CheckTimeRangeL(PlayState* play, u8** script, ScheduleOutput* outpu
u16 end;
u16 now;
SCHEDULE_CALC_TIME(cmd->startHr, cmd->startMin, start, f);
SCRIPT_CALC_TIME(cmd->startHr, cmd->startMin, start, f);
SCHEDULE_CALC_TIME(cmd->endHr, cmd->endMin, end, f);
SCRIPT_CALC_TIME(cmd->endHr, cmd->endMin, end, f);
end--;
now = SCHEDULE_TIME_NOW;
now = SCRIPT_TIME_NOW;
if ((start <= now) && (now <= end)) {
inRange = true;
}
if (inRange == true) {
*script += (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
}
return false;
@ -84,7 +78,7 @@ s32 Schedule_ReturnValueL(PlayState* play, u8** script, ScheduleOutput* output)
ScheduleCmdReturnValueL* cmd = (ScheduleCmdReturnValueL*)*script;
//! @bug result is a u8, value is truncated
output->result = (cmd->retH << 8) | cmd->retL;
output->result = SCRIPT_PACK_16(cmd->retH, cmd->retL);
output->hasResult = true;
return true;
@ -130,7 +124,7 @@ s32 Schedule_ReturnValueS(PlayState* play, u8** script, ScheduleOutput* output)
s32 Schedule_CheckNotInSceneS(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckNotInSceneS* cmd = (ScheduleCmdCheckNotInSceneS*)*script;
s16 sceneId = (cmd->sceneIdH << 8) | cmd->sceneIdL;
s16 sceneId = SCRIPT_PACK_16(cmd->sceneIdH, cmd->sceneIdL);
if (sceneId != play->sceneId) {
*script += cmd->offset;
@ -141,10 +135,10 @@ s32 Schedule_CheckNotInSceneS(PlayState* play, u8** script, ScheduleOutput* outp
s32 Schedule_CheckNotInSceneL(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckNotInSceneL* cmd = (ScheduleCmdCheckNotInSceneL*)*script;
s16 sceneId = (cmd->sceneIdH << 8) | cmd->sceneIdL;
s16 sceneId = SCRIPT_PACK_16(cmd->sceneIdH, cmd->sceneIdL);
if (sceneId != play->sceneId) {
*script = *script + (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
}
return false;
@ -152,7 +146,7 @@ s32 Schedule_CheckNotInSceneL(PlayState* play, u8** script, ScheduleOutput* outp
s32 Schedule_CheckNotInDayS(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckNotInDayS* cmd = (ScheduleCmdCheckNotInDayS*)*script;
s16 day = (cmd->dayH << 8) | cmd->dayL;
s16 day = SCRIPT_PACK_16(cmd->dayH, cmd->dayL);
if (day != (s16)gSaveContext.save.day) {
*script += cmd->offset;
@ -163,10 +157,10 @@ s32 Schedule_CheckNotInDayS(PlayState* play, u8** script, ScheduleOutput* output
s32 Schedule_CheckNotInDayL(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdCheckNotInDayL* cmd = (ScheduleCmdCheckNotInDayL*)*script;
s16 day = (cmd->dayH << 8) | cmd->dayL;
s16 day = SCRIPT_PACK_16(cmd->dayH, cmd->dayL);
if (day != (s16)gSaveContext.save.day) {
*script += (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
}
return false;
@ -178,9 +172,9 @@ s32 Schedule_ReturnTime(PlayState* play, u8** script, ScheduleOutput* output) {
u16 time0;
u16 time1;
SCHEDULE_CALC_TIME(cmd->time0Hr, cmd->time0Min, time0, f);
SCRIPT_CALC_TIME(cmd->time0Hr, cmd->time0Min, time0, f);
SCHEDULE_CALC_TIME(cmd->time1Hr, cmd->time1Min, time1, f);
SCRIPT_CALC_TIME(cmd->time1Hr, cmd->time1Min, time1, f);
time1--;
output->result = cmd->result;
@ -197,9 +191,9 @@ s32 Schedule_CheckBeforeTimeS(PlayState* play, u8** script, ScheduleOutput* outp
u16 testTime;
u16 now;
SCHEDULE_CALC_TIME(cmd->timeHr, cmd->timeMin, testTime, f);
SCRIPT_CALC_TIME(cmd->timeHr, cmd->timeMin, testTime, f);
now = SCHEDULE_TIME_NOW;
now = SCRIPT_TIME_NOW;
if (now < testTime) {
*script += cmd->offset;
@ -214,12 +208,12 @@ s32 Schedule_CheckBeforeTimeL(PlayState* play, u8** script, ScheduleOutput* outp
u16 testTime;
u16 now;
SCHEDULE_CALC_TIME(cmd->timeHr, cmd->timeMin, testTime, f);
SCRIPT_CALC_TIME(cmd->timeHr, cmd->timeMin, testTime, f);
now = SCHEDULE_TIME_NOW;
now = SCRIPT_TIME_NOW;
if (now < testTime) {
*script += (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
}
return false;
@ -235,54 +229,54 @@ s32 Schedule_BranchS(PlayState* play, u8** script, ScheduleOutput* output) {
s32 Schedule_BranchL(PlayState* play, u8** script, ScheduleOutput* output) {
ScheduleCmdBranchL* cmd = (ScheduleCmdBranchL*)*script;
*script += (s16)((cmd->offsetH << 8) | cmd->offsetL);
*script += (s16)SCRIPT_PACK_16(cmd->offsetH, cmd->offsetL);
return false;
}
typedef s32 (*ScheduleCmdFunc)(PlayState*, u8**, ScheduleOutput*);
typedef s32 (*ScheduleCmdHandler)(PlayState*, u8**, ScheduleOutput*);
static ScheduleCmdFunc sScheduleCmdFuncs[] = {
Schedule_CheckFlagS, // SCHEDULE_CMD_ID_CHECK_FLAG_S
Schedule_CheckFlagL, // SCHEDULE_CMD_ID_CHECK_FLAG_L
Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L
Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE
Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY
Schedule_Nop, // SCHEDULE_CMD_ID_NOP
Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S
Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S
Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
Schedule_CheckNotInSceneL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME
Schedule_CheckBeforeTimeS, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
Schedule_CheckBeforeTimeL, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S
Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L
static ScheduleCmdHandler sScheduleCmdHandlers[] = {
Schedule_CheckWeekEventRegS, // SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_S
Schedule_CheckWeekEventRegL, // SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_L
Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L
Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE
Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY
Schedule_Nop, // SCHEDULE_CMD_ID_NOP
Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S
Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S
Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
Schedule_CheckNotInSceneL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME
Schedule_CheckBeforeTimeS, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
Schedule_CheckBeforeTimeL, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S
Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L
};
static u8 sScheduleCmdSizes[] = {
sizeof(ScheduleCmdCheckFlagS), // SCHEDULE_CMD_ID_CHECK_FLAG_S
sizeof(ScheduleCmdCheckFlagL), // SCHEDULE_CMD_ID_CHECK_FLAG_L
sizeof(ScheduleCmdCheckTimeRangeS), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
sizeof(ScheduleCmdCheckTimeRangeL), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
sizeof(ScheduleCmdReturnValueL), // SCHEDULE_CMD_ID_RET_VAL_L
sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_NONE
sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_EMPTY
sizeof(ScheduleCmdNop), // SCHEDULE_CMD_ID_NOP
sizeof(ScheduleCmdCheckMiscS), // SCHEDULE_CMD_ID_CHECK_MISC_S
sizeof(ScheduleCmdReturnValueS), // SCHEDULE_CMD_ID_RET_VAL_S
sizeof(ScheduleCmdCheckNotInSceneS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
sizeof(ScheduleCmdCheckNotInSceneL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
sizeof(ScheduleCmdCheckNotInDayS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
sizeof(ScheduleCmdCheckNotInDayL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
sizeof(ScheduleCmdReturnTime), // SCHEDULE_CMD_ID_RET_TIME
sizeof(ScheduleCmdCheckBeforeTimeS), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
sizeof(ScheduleCmdCheckBeforeTimeL), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
sizeof(ScheduleCmdBranchS), // SCHEDULE_CMD_ID_BRANCH_S
sizeof(ScheduleCmdBranchL), // SCHEDULE_CMD_ID_BRANCH_L
sizeof(ScheduleCmdCheckWeekEventRegS), // SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_S
sizeof(ScheduleCmdCheckWeekEventRegL), // SCHEDULE_CMD_ID_CHECK_WEEK_EVENT_REG_L
sizeof(ScheduleCmdCheckTimeRangeS), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S
sizeof(ScheduleCmdCheckTimeRangeL), // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L
sizeof(ScheduleCmdReturnValueL), // SCHEDULE_CMD_ID_RET_VAL_L
sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_NONE
sizeof(ScheduleCmdBase), // SCHEDULE_CMD_ID_RET_EMPTY
sizeof(ScheduleCmdNop), // SCHEDULE_CMD_ID_NOP
sizeof(ScheduleCmdCheckMiscS), // SCHEDULE_CMD_ID_CHECK_MISC_S
sizeof(ScheduleCmdReturnValueS), // SCHEDULE_CMD_ID_RET_VAL_S
sizeof(ScheduleCmdCheckNotInSceneS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S
sizeof(ScheduleCmdCheckNotInSceneL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L
sizeof(ScheduleCmdCheckNotInDayS), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S
sizeof(ScheduleCmdCheckNotInDayL), // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L
sizeof(ScheduleCmdReturnTime), // SCHEDULE_CMD_ID_RET_TIME
sizeof(ScheduleCmdCheckBeforeTimeS), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S
sizeof(ScheduleCmdCheckBeforeTimeL), // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L
sizeof(ScheduleCmdBranchS), // SCHEDULE_CMD_ID_BRANCH_S
sizeof(ScheduleCmdBranchL), // SCHEDULE_CMD_ID_BRANCH_L
};
s32 Schedule_RunScript(PlayState* play, ScheduleScript* script, ScheduleOutput* output) {
@ -291,7 +285,7 @@ s32 Schedule_RunScript(PlayState* play, ScheduleScript* script, ScheduleOutput*
do {
size = sScheduleCmdSizes[*script];
stop = sScheduleCmdFuncs[*script](play, &script, output);
stop = sScheduleCmdHandlers[*script](play, &script, output);
script += size;
} while (!stop);

View File

@ -49,6 +49,7 @@
* - Seaweed
*/
#include "prevent_bss_reordering.h"
#include "z_boss_03.h"
#include "overlays/actors/ovl_Door_Warp1/z_door_warp1.h"
#include "overlays/actors/ovl_En_Water_Effect/z_en_water_effect.h"

View File

@ -30,20 +30,43 @@ ActorInit Dm_Tag_InitVars = {
/**/ NULL,
};
s32 D_80C22BF0[] = {
0x0E28F00C,
0x15090000,
0x10000000,
MsgScript D_80C22BF0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F0),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80C22BFC[] = {
0x0900000E, 0x28F10C09, 0x00000E28, 0xF20C0900, 0x000E28F3, 0x0C090000, 0x0E28F40C,
0x0900000E, 0x28F50C09, 0x00000E28, 0xF60C1511, 0x55040900, 0x00100000,
MsgScript D_80C22BFC[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F1),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F2),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F3),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0018 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F4),
/* 0x001B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F5),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0026 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F6),
/* 0x0029 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x002B 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_85_04),
/* 0x002E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0031 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80C22C30[] = {
0x0E28EF0C,
0x10000000,
MsgScript D_80C22C30[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EF),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
Actor* DmTag_FindActor(DmTag* this, PlayState* play, u8 actorCategory, s16 actorId) {
@ -95,8 +118,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;
@ -173,7 +196,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) {
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_WAIT);
play->nextEntrance = ENTRANCE(STOCK_POT_INN, 4);
@ -186,22 +211,22 @@ s32 func_80C227E8(DmTag* this, PlayState* play) {
return false;
}
s32* func_80C22880(DmTag* this, PlayState* play) {
MsgScript* DmTag_GetMsgScript(DmTag* this, PlayState* play) {
s32 time;
switch (this->unk_18E) {
case 1:
time = SCHEDULE_TIME_NOW;
if ((time >= SCHEDULE_TIME(21, 30)) && (time < SCHEDULE_TIME(23, 0))) {
time = SCRIPT_TIME_NOW;
if ((time >= SCRIPT_TIME(21, 30)) && (time < SCRIPT_TIME(23, 0))) {
if (gSaveContext.save.day == 2) {
this->msgEventCallback = func_80C227E8;
this->msgScriptCallback = func_80C227E8;
return D_80C22BF0;
}
}
return D_80C22C30;
case 2:
this->msgEventCallback = func_80C224D8;
this->msgScriptCallback = func_80C224D8;
return D_80C22BFC;
default:
@ -218,7 +243,7 @@ s32 func_80C2291C(DmTag* this, PlayState* play) {
Actor_TalkOfferAccepted(&this->actor, &play->state)) {
this->unk_18C |= 8;
SubS_SetOfferMode(&this->unk_18C, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->msgEventScript = func_80C22880(this, play);
this->msgScript = DmTag_GetMsgScript(this, play);
this->actionFunc = func_80C229FC;
ret = true;
}
@ -234,7 +259,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->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
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;
/* 0x194 */ s32 msgEventArg4;
/* 0x190 */ MsgScript* msgScript;
/* 0x194 */ s32 msgScriptPos;
/* 0x198 */ UNK_TYPE1 pad198[0xC];
/* 0x1A4 */ s16 unk_1A4;
/* 0x1A8 */ DmTagMsgEventFunc msgEventCallback;
/* 0x1A8 */ MsgScriptCallback msgScriptCallback;
} DmTag; // size = 0x1AC
#endif // Z_DM_TAG_H

View File

@ -20,13 +20,36 @@ void func_80BD3768(EnAh* this, PlayState* play);
#include "src/overlays/actors/ovl_En_Ah/scheduleScripts.schl.inc"
s32 D_80BD3DE8[] = { 0x0E28FF0C, 0x10000000 };
MsgScript D_80BD3DE8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28FF),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BD3DF0[] = { 0x0E29000C, 0x10000000 };
MsgScript D_80BD3DF0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2900),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BD3DF8[] = { 0x00330100, 0x050E28FE, 0x0C100E28, -0x03F3F000 };
MsgScript D_80BD3DF8[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28FE),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
s32 D_80BD3E08[] = { 0x0E28FD0C, 0x0F29540C, 0x10000000 };
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28FC),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BD3E08[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28FD),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2954),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Ah_InitVars = {
/**/ ACTOR_EN_AH,
@ -346,10 +369,8 @@ s32 func_80BD3198(EnAh* this, PlayState* play) {
return false;
}
s32* func_80BD3294(EnAh* this, PlayState* play) {
s32 mask = Player_GetMask(play);
if (PLAYER_MASK_KAFEIS_MASK == mask) {
MsgScript* EnAh_GetMsgScript(EnAh* this, PlayState* play) {
if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) {
return D_80BD3E08;
}
@ -497,12 +518,12 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, EnAh_GetMsgScript(this, play), NULL, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_2D8, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_2D8 &= ~8;
this->unk_2D8 |= 0x80;
this->unk_2F4 = 20;
this->unk_1E0 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80BD36B8;
} else if (this->unk_1DC != 2) {
if (this->unk_1E4 != NULL) {

View File

@ -16,7 +16,7 @@ typedef struct EnAh {
/* 0x18C */ EnAhUnkFunc unk_18C;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ u8 unk_1DC;
/* 0x1E0 */ s32 unk_1E0;
/* 0x1E0 */ s32 msgScriptPos;
/* 0x1E4 */ Actor* unk_1E4;
/* 0x1E8 */ Vec3f unk_1E8[2];
/* 0x200 */ Vec3s unk_200[2];

View File

@ -19,52 +19,360 @@ void func_80BDF6C4(EnAl* this, PlayState* play);
#include "src/overlays/actors/ovl_En_Al/scheduleScripts.schl.inc"
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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A5),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A6),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0013 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0014 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A7),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x001C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A8),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0024 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A9),
/* 0x0027 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0028 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x002C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AA),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0033 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0034 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AB),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x003C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AC),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0043 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0044 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AD),
/* 0x0047 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x004A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_89_08),
/* 0x0051 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0054 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_86_20, 0x00A7 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA6),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0010 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA7),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0018 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA8),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0020 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0021 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA9),
/* 0x0024 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0028 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0029 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAA),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0030 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0031 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAB),
/* 0x0034 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0035 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0038 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0039 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAC),
/* 0x003C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0040 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0041 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAD),
/* 0x0044 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0045 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AAE),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004C 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x004D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAF),
/* 0x0050 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0051 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0054 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0055 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB0),
/* 0x0058 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0059 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x005D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB1),
/* 0x0060 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0061 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0064 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0065 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB2),
/* 0x0068 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0069 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x006C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x006D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB3),
/* 0x0070 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0071 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0074 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0075 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB4),
/* 0x0078 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0079 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x007C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x007D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB5),
/* 0x0080 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0081 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0084 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0085 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB6),
/* 0x0088 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0089 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x008C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x008D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB7),
/* 0x0090 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0091 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0094 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0095 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB8),
/* 0x0098 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x009B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOTO),
/* 0x009E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00A1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A2 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_20),
/* 0x00A5 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00A6 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00A7 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00AA 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x00AB 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEA),
/* 0x00AE 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00AF 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00B2 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x00B3 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEB),
/* 0x00B6 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B7 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00BA 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00BB 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BDFDD0[] = { 0x005C0800, 0x0B0E2AE5, 0x2D000811, 0x5C080C10, 0x0E2AE62D, 0x00080C10 };
MsgScript D_80BDFDD0[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_92_08, 0x0010 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AE5),
/* 0x0008 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x000B 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_92_08),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2AE6),
/* 0x0013 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B19),
/* 0x0006 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0009 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x000B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000E 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000F 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_57_04, 0x0079 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B1A),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x00FF),
/* 0x000F 0x09 */ MSCRIPT_CMD_CHECK_ITEM_ACTION(PLAYER_IA_LETTER_MAMA, 0x0030 - 0x0018, 0x0025 - 0x0018, 0x0),
/* 0x0018 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B1B),
/* 0x001B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0020 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0025 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2B1C),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CMD_JUMP(0x000C - 0x0030),
/* 0x0030 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2B1D),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1E),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1F),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_MAMA),
/* 0x0044 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_57_08, 0x005C - 0x0049),
/* 0x0049 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x004E 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x006F),
/* 0x0051 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0054 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0055 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x0058 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0059 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0068 - 0x005C),
/* 0x005C 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0061 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0005),
/* 0x0064 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0065 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0068 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B20),
/* 0x006B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x006E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006F 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0070 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_04),
/* 0x0073 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_08),
/* 0x0076 0x03 */ MSCRIPT_CMD_JUMP(0x001F - 0x0079),
/* 0x0079 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B3C),
/* 0x007C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x007F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0080 0x03 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2A9C),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BDFE84[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2A9D),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BDFE8C[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_57_02, 0x0014 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2A9E),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2A9F),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AA0),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_JUMP(0x0018 - 0x0014),
/* 0x0014 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA0),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0039 - 0x001F, 0x0039 - 0x001F),
/* 0x001F 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0020 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA2),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0025 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_MASK_KAFEIS_MASK, 0x0),
/* 0x002A 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x008F),
/* 0x002D 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0030 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0031 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_KAFEIS_MASK),
/* 0x0034 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0039 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x003A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA1),
/* 0x003D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0040 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_02),
/* 0x0044 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BDFED4[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2B1D),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x000A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1E),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1F),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_MAMA),
/* 0x0017 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_57_08, 0x002F - 0x001C),
/* 0x001C 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x0021 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x006F),
/* 0x0024 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0027 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0028 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x002B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CMD_AUTOTALK(0x003B - 0x002F),
/* 0x002F 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0034 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0005),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x003B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B20),
/* 0x003E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0041 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0042 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0043 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_04),
/* 0x0046 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_08),
/* 0x0049 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x004A 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x004E 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BDFF24[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2B1C),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x00FF),
/* 0x000A 0x09 */ MSCRIPT_CMD_CHECK_ITEM_ACTION(PLAYER_IA_LETTER_MAMA, 0x0020 - 0x0013, 0x0003 - 0x0013, 0x0),
/* 0x0013 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B1B),
/* 0x0016 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0020 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2B1D),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0027 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0028 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1E),
/* 0x002B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B1F),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_MAMA),
/* 0x0034 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_57_08, 0x004C - 0x0039),
/* 0x0039 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_CHATEAU_BOTTLE, 0x0),
/* 0x003E 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x006F),
/* 0x0041 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0044 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0045 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PRIORITY_MAIL),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0058 - 0x004C),
/* 0x004C 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x0051 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0005),
/* 0x0054 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0055 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0058 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B20),
/* 0x005B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x005E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005F 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0060 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_04),
/* 0x0063 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_57_08),
/* 0x0066 0x03 */ MSCRIPT_CMD_JUMP(0x001A - 0x0069),
// Unreachable
/* 0x0069 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B3C),
/* 0x006C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x006F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_CMD_JUMP(0x001A - 0x0073),
};
ActorInit En_Al_InitVars = {
@ -312,8 +620,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;
@ -357,8 +665,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 = EnAl_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_GM);
Actor* temp_v0 = EnAl_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_TOTO);
@ -404,8 +713,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) {
@ -431,11 +740,11 @@ s32 func_80BDEA14(EnAl* this, PlayState* play) {
return sp18;
}
s32* func_80BDEABC(EnAl* this, PlayState* play) {
MsgScript* EnAl_GetMsgScript(EnAl* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (this->unk_35C == 3) {
this->unk_4EC = func_80BDE92C;
this->msgScriptCallback = func_80BDE92C;
return D_80BDFD14;
}
@ -456,11 +765,11 @@ s32* func_80BDEABC(EnAl* this, PlayState* play) {
case 2:
if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_89_08) && CHECK_WEEKEVENTREG(WEEKEVENTREG_85_80)) {
this->unk_4EC = func_80BDE7FC;
this->msgScriptCallback = func_80BDE7FC;
return D_80BDFCBC;
}
this->unk_4EC = func_80BDEA14;
this->msgScriptCallback = func_80BDEA14;
if (Player_GetMask(play) != PLAYER_MASK_KAFEIS_MASK) {
return D_80BDFDE8;
}
@ -495,9 +804,9 @@ 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->msgScriptCallback = NULL;
this->actor.child = this->unk_368;
this->unk_360 = func_80BDEABC(this, play);
this->msgScript = EnAl_GetMsgScript(this, play);
this->unk_4C2 |= 0x20;
this->actionFunc = func_80BDF6C4;
ret = true;
@ -780,13 +1089,13 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_4C2, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_4C2 &= ~0x20;
this->unk_4C2 |= 0x200;
this->actor.child = NULL;
this->unk_4E2 = 20;
this->unk_364 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80BDF5E8;
} else {
Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 3, 0x2AA8);

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,8 +17,8 @@ typedef struct EnAl {
/* 0x190 */ MtxF unk_190[6];
/* 0x310 */ ColliderCylinder unk_310;
/* 0x35C */ u8 unk_35C;
/* 0x360 */ s32* unk_360;
/* 0x364 */ s32 unk_364;
/* 0x360 */ MsgScript* msgScript;
/* 0x364 */ s32 msgScriptPos;
/* 0x368 */ Actor* unk_368;
/* 0x36C */ Vec3f unk_36C;
/* 0x378 */ Vec3s unk_378;
@ -39,7 +38,7 @@ typedef struct EnAl {
/* 0x4E6 */ s16 unk_4E6;
/* 0x4E8 */ s16 unk_4E8;
/* 0x4EA */ s16 unk_4EA;
/* 0x4EC */ EnAlUnkFunc unk_4EC;
/* 0x4EC */ MsgScriptCallback msgScriptCallback;
/* 0x4F0 */ s32 unk_4F0;
/* 0x4F4 */ s32 unk_4F4;
/* 0x4F8 */ s32 animIndex;

View File

@ -227,103 +227,614 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = {
3, // ANJU_SCH_WALKING_63
};
s32 sAnjuMsgScript_SchReceiveLetterFromPostman[0x1B] = {
0x00560800, 0x44090000, 0x0E28BA0C, 0x09000017, 0x0E28BB0C, 0x09000018, 0x0E28BC0C, 0x09000017, 0x0E28BD0C,
0x09000018, 0x0E28BE0C, 0x09000017, 0x0E28BF0C, 0x09000018, 0x0E28C02D, 0x00012D00, 0x0B0C0900, 0x00115608,
0x10090000, 0x0E295C0C, 0x09000017, 0x0E295D0C, 0x09000018, 0x0E295E2D, 0x00012D00, 0x0B0C0900, 0x00100000,
MsgScript sAnjuMsgScript_SchReceiveLetterFromPostman[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION,
0x0049 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BA),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BB),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0017 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0018 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BC),
/* 0x001B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0020 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BD),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0027 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0028 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BE),
/* 0x002B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0030 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BF),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0037 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0038 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C0),
/* 0x003B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0041 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0042 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0045 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION),
/* 0x0048 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0049 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295C),
/* 0x004F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0050 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0053 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0054 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295D),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0058 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x005C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295E),
/* 0x005F 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0062 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0065 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0066 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0069 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_SchAttendGoron[0x21] = {
0x09000000, 0x4B10001E, 0x0E28B10C, 0x09000017, 0x0E28B20C, 0x09000018, 0x0E28B32D, 0x00011137, 0x020C0900,
0x00100056, 0x10002E0E, 0x28B10C09, 0x0000170E, 0x28B50C09, 0x0000180E, 0x28B60C09, 0x0000170E, 0x28B70C09,
0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000,
0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000,
MsgScript sAnjuMsgScript_SchAttendGoron[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_RECEIVED_ROOM_KEY, 0x0026 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B1),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B2),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0017 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0018 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B3),
/* 0x001B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x001E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_02),
/* 0x0021 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0025 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0026 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_86_10, 0x0059 - 0x002B),
/* 0x002B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B1),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0032 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0033 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B5),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003A 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x003B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B6),
/* 0x003E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0042 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0043 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B7),
/* 0x0046 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0047 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004A 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x004B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B8),
/* 0x004E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0051 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0052 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0055 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_10),
/* 0x0058 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0059 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x005D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2956),
/* 0x0060 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0061 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0064 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0065 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2957),
/* 0x0068 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0069 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x006C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x006D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2958),
/* 0x0070 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0071 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0074 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0075 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2959),
/* 0x0078 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x007B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x007F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0080 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_SchGiveLunchToGranny[0x15] = {
0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018,
0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C,
0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000,
MsgScript sAnjuMsgScript_SchGiveLunchToGranny[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C7),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C8),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0013 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0014 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C9),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x001C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CA),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0024 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CB),
/* 0x0027 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0028 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x002C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CC),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0033 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0034 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CD),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x003C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CE),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0043 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0044 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CF),
/* 0x0047 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x004A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0051 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_ReceptionistDay1[0x37] = {
0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000,
0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300,
0xA02F0000, 0x2E2D0014, 0x0C114B10, 0x0700000E, 0x28AD2D00, 0x010C2400, 0x41161031, 0x0E28A30C,
0x0900000F, 0x28A52D00, 0x010C1137, 0x01100020, 0x2000340E, 0x28A00C09, 0xF28, 0xA10C0500,
0xF00, 0x300E28, 0xA20C0900, 0xF28A3, 0x0C190008, 0x310E28A4, 0x0C090000, 0x0F28A52D,
0x10C11, 0x20201023, 0x400012, 0x0E28A00C, 0x0900000F, 0x28A62D00, 0x010C2400, 0x40100E28,
0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000,
MsgScript sAnjuMsgScript_ReceptionistDay1[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_BEFORE_TIME(11, 0, 0x006E - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_32_20, 0x006E - 0x000A),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_RECEIVED_ROOM_KEY, 0x00C6 - 0x000F),
/* 0x000F 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_55_01, 0x00BE - 0x0014),
/* 0x0014 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_55_02, 0x006E - 0x0019),
/* 0x0019 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A0),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0020 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A8),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x005B - 0x002B, 0x0),
/* 0x002B 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x002C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A9),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28AA),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28AB),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0039 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_ROOM_KEY, 0x0),
/* 0x003E 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x00A0),
/* 0x0041 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0044 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0045 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_ROOM_KEY),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_RECEIVED_ROOM_KEY),
/* 0x004C 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x004F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28AD),
/* 0x0052 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0055 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0056 0x03 */ MSCRIPT_CMD_SET_SWITCH_FLAG(0x0041),
/* 0x0059 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x005A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005B 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x005C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A3),
/* 0x005F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0060 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0063 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A5),
/* 0x0066 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0069 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006A 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_01),
/* 0x006D 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x006E 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_32_20, 0x00A7 - 0x0073),
/* 0x0073 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A0),
/* 0x0076 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0077 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x007A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A1),
/* 0x007D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007E 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0094 - 0x0085, 0x0),
/* 0x0085 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0086 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A2),
/* 0x0089 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x008A 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x008D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A3),
/* 0x0090 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0091 0x03 */ MSCRIPT_CMD_JUMP(0x009C - 0x0094),
/* 0x0094 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0095 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A4),
/* 0x0098 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0099 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x009C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A5),
/* 0x009F 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x00A2 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A3 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_32_20),
/* 0x00A6 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00A7 0x05 */ MSCRIPT_CMD_CHECK_SWITCH_FLAG(0x0040, 0x00BE - 0x00AC),
/* 0x00AC 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A0),
/* 0x00AF 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B0 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00B3 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28A6),
/* 0x00B6 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x00B9 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00BA 0x03 */ MSCRIPT_CMD_SET_SWITCH_FLAG(0x0040),
/* 0x00BD 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00BE 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28A7),
/* 0x00C1 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x00C4 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00C5 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00C6 0x05 */ MSCRIPT_CMD_CHECK_SWITCH_FLAG(0x0041, 0x00D6 - 0x00CB),
/* 0x00CB 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28AC),
/* 0x00CE 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x00D1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00D2 0x03 */ MSCRIPT_CMD_SET_SWITCH_FLAG(0x0041),
/* 0x00D5 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00D6 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28AD),
/* 0x00D9 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00DA 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_InnCloseTime[3] = { 0x0E18852D, 0x10C12, 0x10000000 };
s32 sAnjuMsgScript_80B58944[2] = { 0x0E28AF2D, 0x10C10 };
s32 sAnjuMsgScript_80B5894C[2] = { 0x0E28C12D, 0x10C10 };
s32 sAnjuMsgScript_SchCooking[0xB] = {
0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C,
0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000,
MsgScript sAnjuMsgScript_InnCloseTime[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x1885),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_80B58980[2] = { 0x0E28C62D, 0x10C10 };
s32 sAnjuMsgScript_SchSweeping[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 };
s32 sAnjuMsgScript_80B58994[2] = { 0x0E28F82D, 0x10C10 };
s32 sAnjuMsgScript_SchRanch[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 };
s32 sAnjuMsgScript_SchMidnightMeeting[0x14] = {
0x0E28D70C, 0x0F28D80C, 0x0F28D90C, 0x0F28DA0C, 0x0F28DB0C, 0x05000700, 0x731,
0x0E28D919, -0x16CFF2, 0x28DC0C11, 0x32201132, 0x10120600, 0xAA000013, 0xAA2F00,
0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010,
MsgScript sAnjuMsgScript_80B58944[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28AF),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
// Surprised: nevermind
s32 sAnjuMsgScript_80B589FC[2] = { 0x0E28D62D, 0x10C10 };
s32 sAnjuMsgScript_DekuDefault[8] = {
0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000,
MsgScript sAnjuMsgScript_80B5894C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C1),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_SchLaundryPoolDeku[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 };
MsgScript sAnjuMsgScript_SchCooking[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_53_01, 0x0021 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C3),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28C4),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C5),
/* 0x0014 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0019 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_53_01),
/* 0x001F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0020 0x01 */ MSCRIPT_CMD_DONE(),
s32 sAnjuMsgScript_Receptionist[2] = { 0x0E28E02D, 0x10C10 };
s32 sAnjuMsgScript_80B58A44[0x1E] = {
0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25,
0x30001D, 0x27000300, 0x080E28E3, 0x2D00010C, 0x100E28E2, 0x2D00010C, 0x100E28E1, 0x2D00010C,
0x100E28E4, 0x0C0E00FF, 0x1E003600, 0x0E000000, 0x0C2C28E7, 0x0C2F0000, 0x2D00010C, 0x1012102C,
0x28E50C2F, 0xC2A, 0x300F28, -0x19D2FFFF, 0x2D001A0C, 0x11330110,
/* 0x0021 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C2),
/* 0x0024 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0027 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0028 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_80B58ABC[2] = { 0x0E28D02D, 0x10C10 };
s32 sAnjuMsgScript_80B58AC4[9] = {
0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000,
MsgScript sAnjuMsgScript_80B58980[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C6),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_SchWaitingForKafei[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 };
s32 sAnjuMsgScript_SchLaundryPoolDefault[0x12] = {
0x372000, 0x29003208, 0x2A0E28, -0x17F3EAF7, 0xE28, -0x16F3F0D8, -0x15F3EAF7, 0xE28, -0x14F3F0D8,
-0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010,
MsgScript sAnjuMsgScript_SchSweeping[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F7),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28F8),
/* 0x0007 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x000A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000B 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 sAnjuMsgScript_SchLaundryPoolKafeiMask[0x10] = {
0x372000, 0x21003208, 0x220E28, -0x17F3F0D8, -0x12F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF,
0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010,
MsgScript sAnjuMsgScript_80B58994[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F8),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
// Anju says the Inn is full and tell the player to tell that to his mother
s32 sAnjuMsgScript_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 };
MsgScript sAnjuMsgScript_SchRanch[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28F9),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28FA),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28FB),
/* 0x000B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x01 */ MSCRIPT_CMD_DONE(),
};
// Tells player that they should talk in the kitchen instead
s32 sAnjuMsgScript_80B58B88[2] = { 0x0E29612D, 0x10C10 };
MsgScript sAnjuMsgScript_SchMidnightMeeting[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D7),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28D8),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28D9),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28DA),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28DB),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0022 - 0x001B, 0x0, 0x0022 - 0x001B),
/* 0x001B 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x001C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D9),
/* 0x001F 0x03 */ MSCRIPT_CMD_JUMP(0x000B - 0x0022),
s32 sAnjuMsgScript_SchWithKafei[3] = { 0x0E291B2D, 0x10C12, 0x10000000 };
/* 0x0022 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0023 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28DC),
/* 0x0026 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING),
/* 0x002A 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_50_10),
/* 0x002D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x002E 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_LETTER_TO_KAFEI, 0x0),
/* 0x0033 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x00AA),
/* 0x0036 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0039 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_LETTER_TO_KAFEI),
/* 0x0040 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_PROMISED_TO_MEET_KAFEI),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28DE),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x004C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004F 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B589FC[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D6),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_DekuDefault[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_82_20, 0x0015 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x294F),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2950),
/* 0x000C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_20),
/* 0x0014 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0015 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2951),
/* 0x0018 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x001B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001D 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_SchLaundryPoolDeku[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_82_40, 0x0010 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2952),
/* 0x0008 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_40),
/* 0x000F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2953),
/* 0x0013 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_Receptionist[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E0),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B58A44[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D5),
/* 0x0008 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x001A - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D4),
/* 0x0015 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x0039 - 0x001F),
/* 0x001F 0x05 */ MSCRIPT_CMD_CHECK_ITEM(ITEM_PENDANT_OF_MEMORIES, 0x0041 - 0x0024),
/* 0x0024 0x05 */ MSCRIPT_CMD_CHECK_IN_DAY(3, 0x0031 - 0x0029),
/* 0x0029 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E3),
/* 0x002C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0031 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E2),
/* 0x0034 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0039 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E1),
/* 0x003C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0041 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E4),
/* 0x0044 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0045 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0048 0x09 */
MSCRIPT_CMD_CHECK_ITEM_ACTION(PLAYER_IA_PENDANT_OF_MEMORIES, 0x005F - 0x0051, 0x0, 0x005D - 0x0051),
/* 0x0051 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x28E7),
/* 0x0054 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0055 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0058 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x005B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x005E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005F 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x28E5),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0066 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0067 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_PENDANT_OF_MEMORIES),
/* 0x006A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28E6),
/* 0x006D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0070 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DELIVERED_PENDANT_OF_MEMORIES),
/* 0x0073 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0074 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES),
/* 0x0077 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B58ABC[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D0),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B58AC4[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x001B - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D1),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28D2),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28D3),
/* 0x0010 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_PROMISED_MIDNIGHT_MEETING),
/* 0x0013 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28D3),
/* 0x001E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0021 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0022 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_SchWaitingForKafei[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28DF),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_SchLaundryPoolDefault[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL, 0x002E - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0034 - 0x000A),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E8),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x000F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0012 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E9),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EA),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EB),
/* 0x0021 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EC),
/* 0x0025 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x002A 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL),
/* 0x002D 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x002E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EC),
/* 0x0031 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0032 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0034 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EE),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EB),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EC),
/* 0x003F 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0042 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0043 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL),
/* 0x0047 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_SchLaundryPoolKafeiMask[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL, 0x0026 - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x002C - 0x000A),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28E8),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28ED),
/* 0x0011 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0012 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EB),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EC),
/* 0x001D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0020 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0021 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL),
/* 0x0025 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0026 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EC),
/* 0x0029 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x002B 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x002C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28EE),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EB),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x28EC),
/* 0x0037 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL),
/* 0x003F 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B58B7C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2951),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_80B58B88[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2961),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript sAnjuMsgScript_SchWithKafei[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x291B),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_An_InitVars = {
/**/ ACTOR_EN_AN,
@ -1158,24 +1669,24 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) {
return ret;
}
s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) {
MsgScript* EnAn_GetMsgScript(EnAn* this, PlayState* play) {
Player* player = GET_PLAYER(play);
switch (this->scheduleResult) {
case ANJU_SCH_GIVE_LUNCH_TO_GRANNY:
this->msgEventFunc = EnAn_MsgEvent_GiveLunchToGranny;
this->msgScriptCallback = EnAn_MsgEvent_GiveLunchToGranny;
return sAnjuMsgScript_SchGiveLunchToGranny;
case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN:
this->msgEventFunc = EnAn_MsgEvent_ReceiveLetterFromPostman;
this->msgScriptCallback = EnAn_MsgEvent_ReceiveLetterFromPostman;
return sAnjuMsgScript_SchReceiveLetterFromPostman;
case ANJU_SCH_ATTEND_GORON:
this->msgEventFunc = EnAn_MsgEvent_AttendGoron;
this->msgScriptCallback = EnAn_MsgEvent_AttendGoron;
return sAnjuMsgScript_SchAttendGoron;
case ANJU_SCH_COOKING:
this->msgEventFunc = EnAn_MsgEvent_Cooking;
this->msgScriptCallback = EnAn_MsgEvent_Cooking;
return sAnjuMsgScript_SchCooking;
case ANJU_SCH_RANCH:
@ -1218,12 +1729,12 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) {
}
if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) {
this->msgEventFunc = EnAn_MsgEvent_MidnightMeeting;
this->msgScriptCallback = EnAn_MsgEvent_MidnightMeeting;
return sAnjuMsgScript_SchMidnightMeeting;
}
if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) {
this->msgEventFunc = EnAn_MsgEvent_LaundryPool;
this->msgScriptCallback = EnAn_MsgEvent_LaundryPool;
return sAnjuMsgScript_SchLaundryPoolKafeiMask;
}
@ -1231,7 +1742,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) {
return sAnjuMsgScript_80B58A44;
}
if (SCHEDULE_TIME_NOW < SCHEDULE_TIME(14, 18)) {
if (SCRIPT_TIME_NOW < SCRIPT_TIME(14, 18)) {
return sAnjuMsgScript_80B58ABC;
}
@ -1240,12 +1751,12 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) {
if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) {
if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) {
this->msgEventFunc = EnAn_MsgEvent_MidnightMeeting;
this->msgScriptCallback = EnAn_MsgEvent_MidnightMeeting;
return sAnjuMsgScript_SchMidnightMeeting;
}
if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) {
this->msgEventFunc = EnAn_MsgEvent_LaundryPool;
this->msgScriptCallback = EnAn_MsgEvent_LaundryPool;
return sAnjuMsgScript_SchLaundryPoolDefault;
}
@ -1268,7 +1779,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) {
return sAnjuMsgScript_80B58980;
case ANJU_SCH_LAUNDRY_POOL_SIT:
this->msgEventFunc = EnAn_MsgEvent_LaundryPool;
this->msgScriptCallback = EnAn_MsgEvent_LaundryPool;
return sAnjuMsgScript_SchLaundryPoolDefault;
case ANJU_SCH_RECEPTIONIST_IDLE:
@ -1316,9 +1827,9 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) {
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_3C4 = 0;
this->msgEventState = 0;
this->msgEventFunc = NULL;
this->msgScriptCallback = NULL;
this->actor.child = this->lookAtActor;
this->msgEventScript = EnAn_GetMsgEventScript(this, play);
this->msgScript = EnAn_GetMsgScript(this, play);
if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) ||
(this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) ||
@ -1923,7 +2434,7 @@ s32 EnAn_ProcessSchedule_GiveLunchToGranny(EnAn* this, PlayState* play, Schedule
}
s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 now = SCHEDULE_TIME_NOW;
u16 now = SCRIPT_TIME_NOW;
u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor);
EnDoor* door;
Vec3s* points;
@ -2009,7 +2520,7 @@ s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* sched
}
s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 now = SCHEDULE_TIME_NOW;
u16 now = SCRIPT_TIME_NOW;
u16 startTime;
u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor);
s32 pad;
@ -2786,7 +3297,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->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
// Message event script is done
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
@ -2794,7 +3305,7 @@ void EnAn_Talk(EnAn* this, PlayState* play) {
this->stateFlags &= ~ENAN_STATE_ENGAGED;
this->stateFlags |= ENAN_STATE_LOST_ATTENTION;
this->loseAttentionTimer = 20;
this->msgScriptResumePos = 0;
this->msgScriptPos = 0;
this->actionFunc = EnAn_FollowSchedule;
return;

View File

@ -43,13 +43,13 @@ typedef struct EnAn {
/* 0x1F8 */ s32 timePathWaypoint;
/* 0x1FC */ s32 timePathElapsedTime;
/* 0x200 */ u8 scheduleResult;
/* 0x204 */ s32* msgEventScript;
/* 0x204 */ MsgScript* msgScript;
/* 0x208 */ s8 an2ObjectSlot;
/* 0x209 */ s8 an3ObjectSlot;
/* 0x20A */ s8 maskKerfayObjectSlot;
/* 0x20B */ s8 an4ObjectSlot;
/* 0x20C */ s8 msmoObjectSlot;
/* 0x210 */ s32 msgScriptResumePos;
/* 0x210 */ s32 msgScriptPos;
/* 0x214 */ s8 roomNum;
/* 0x215 */ s8 doorOpenTimer;
/* 0x218 */ Actor* lookAtActor; // interactActor
@ -87,7 +87,7 @@ typedef struct EnAn {
/* 0x392 */ s16 mouthTexIndex;
/* 0x394 */ s16 msgEventState;
/* 0x396 */ s16 dialogueFuncState;
/* 0x398 */ MsgEventFunc msgEventFunc;
/* 0x398 */ MsgEventFunc msgScriptCallback;
/* 0x39C */ s32 animIndex; // EnAnAnimation enum
/* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8];
/* 0x3A8 */ u32 trayTexScrollTimer1; // TwoTexScroll

View File

@ -361,7 +361,7 @@ void EnBaba_UpdateModel(EnBaba* this, PlayState* play) {
}
s32 EnBaba_InitTimePath(EnBaba* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 now = SCHEDULE_TIME_NOW;
u16 now = SCRIPT_TIME_NOW;
u16 startTime;
u8 pathIndex = BOMB_SHOP_LADY_GET_PATH_INDEX(&this->actor);
u16 numWaypoints;

View File

@ -31,13 +31,58 @@ typedef enum {
#include "src/overlays/actors/ovl_En_Bjt/scheduleScripts.schl.inc"
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 sMsgScript[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2948),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x0060 - 0x000E, 0x006D - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x294A),
/* 0x0011 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x294B),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x001F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0022 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x294C),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0027 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_73_08, 0x0049 - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002F 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0034 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x0037 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x003A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x003B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_TOILET_HAND_HP),
/* 0x003E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x0041 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0042 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_73_08),
/* 0x0045 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_90_80),
/* 0x0048 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0049 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004C 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x0051 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0002),
/* 0x0054 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x0058 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x005B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_90_80),
/* 0x005F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0060 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2949),
/* 0x0063 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0064 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x006B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x006C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x006D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND),
/* 0x0070 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0071 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Bjt_InitVars = {
@ -318,7 +363,7 @@ s32 EnBjt_CheckTalk(EnBjt* this, PlayState* play) {
Actor_TalkOfferAccepted(&this->actor, &play->state)) {
this->stateFlags |= TOILET_HAND_STATE_TALKING;
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->msgEventCallback = EnBjt_ChooseBehaviour;
this->msgScriptCallback = EnBjt_ChooseBehaviour;
this->behaviour = 0;
this->actionFunc = EnBjt_Talk;
ret = true;
@ -358,11 +403,11 @@ 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, sMsgScript, this->msgScriptCallback, &this->msgScriptPos)) {
this->actor.flags &= ~ACTOR_FLAG_TALK;
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->stateFlags &= ~TOILET_HAND_STATE_TALKING;
this->msgEventArg4 = 0;
this->msgScriptPos = 0;
this->actionFunc = EnBjt_FollowSchedule;
} else {
Math_ApproachS(&this->actor.shape.rot.y, yaw, 4, 0x2AA8);
@ -405,7 +450,7 @@ void EnBjt_FollowSchedule(EnBjt* this, PlayState* play) {
this->actor.flags |= ACTOR_FLAG_CANT_LOCK_ON;
Actor_SetScale(&this->actor, 0.0f);
this->stateFlags = 0;
this->msgEventCallback = NULL;
this->msgScriptCallback = NULL;
this->scheduleResult = TOILET_HAND_SCH_NONE;
}
}

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;
@ -15,7 +14,7 @@ typedef struct EnBjt {
/* 0x188 */ EnBjtActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ u8 scheduleResult;
/* 0x1DC */ s32 msgEventArg4;
/* 0x1DC */ s32 msgScriptPos;
/* 0x1E0 */ Vec3s jointTable[TOILET_HAND_LIMB_MAX];
/* 0x20A */ Vec3s morphTable[TOILET_HAND_LIMB_MAX];
/* 0x234 */ u16 stateFlags;
@ -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 */ MsgScriptCallback msgScriptCallback;
/* 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 sMsgScript[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C90),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_85_20, 0x001F - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C91),
/* 0x0011 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0C92),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0C93),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_85_20),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C94),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0024 0x01 */ MSCRIPT_CMD_DONE(),
};
static f32 D_80B3FCB4[] = {
@ -443,9 +461,9 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, sMsgScript, NULL, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_1CE, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_1D0 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80B3F00C;
} else {
Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 4, 0x2AA8);

View File

@ -30,7 +30,7 @@ typedef struct EnDai {
/* 0x1CC */ u8 cueId;
/* 0x1CD */ u8 unk_1CD;
/* 0x1CE */ u16 unk_1CE;
/* 0x1D0 */ s32 unk_1D0;
/* 0x1D0 */ s32 msgScriptPos;
/* 0x1D4 */ s16 unk_1D4;
/* 0x1D6 */ s16 unk_1D6;
/* 0x1D8 */ s16 unk_1D8;

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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_SAVED_KOUME, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0862),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_KOUME_KIOSK_EMPTY),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CHECK_HUMAN(0x0015 - 0x0010),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0867),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0015 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_CLEARED_WOODFALL_TEMPLE, 0x0094 - 0x001A),
/* 0x001A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_25_10, 0x004F - 0x001F),
/* 0x001F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0859),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x05 */ MSCRIPT_CMD_CHECK_ITEM(ITEM_PICTOGRAPH_BOX, 0x0040 - 0x0028),
/* 0x0028 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0863),
/* 0x002B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x002D 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_PICTOGRAPH_BOX, 0x0),
/* 0x0032 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0043),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0039 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x088D),
/* 0x003C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CMD_JUMP(0x0047 - 0x0040),
/* 0x0040 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x088D),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP(0x0),
/* 0x0047 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_25_10),
/* 0x004B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x004F 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_26_10, 0x006A - 0x0054),
/* 0x0054 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x085A),
/* 0x0057 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_26_10),
/* 0x005A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x085B),
/* 0x005E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x085C),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0070 - 0x006A, 0x008E - 0x006A, 0x0070 - 0x006A),
/* 0x006A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x085B),
/* 0x006D 0x03 */ MSCRIPT_CMD_JUMP(0x005E - 0x0070),
/* 0x0070 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0071 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x085E),
/* 0x0074 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0075 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(10, 0x007F - 0x007A),
/* 0x007A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0875),
/* 0x007D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x007F 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-10),
/* 0x0082 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0860),
/* 0x0085 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0086 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0087 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_25_10),
/* 0x008A 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x008D 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x008E 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x008F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x085F),
/* 0x0092 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0093 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0094 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_25_20, 0x00E2 - 0x0099),
/* 0x0099 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_26_10, 0x00DB - 0x009E),
/* 0x009E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0868),
/* 0x00A1 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_26_10),
/* 0x00A4 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A5 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0869),
/* 0x00A8 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A9 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x086A),
/* 0x00AC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x086B),
/* 0x00B0 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B1 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x086C),
/* 0x00B4 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B5 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x00D5 - 0x00BC, 0x0),
/* 0x00BC 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x00BD 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x086E),
/* 0x00C0 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_25_20),
/* 0x00C3 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_35),
/* 0x00C6 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_36),
/* 0x00C9 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_37),
/* 0x00CC 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_40),
/* 0x00CF 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00D0 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00D1 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00D4 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00D5 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x00D6 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x086D),
/* 0x00D9 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00DA 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00DB 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0870),
/* 0x00DE 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00DF 0x03 */ MSCRIPT_CMD_JUMP(0x00AD - 0x00E2),
/* 0x00E2 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_25_20, 0x00EE - 0x00E7),
/* 0x00E7 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0871),
/* 0x00EA 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00EB 0x03 */ MSCRIPT_CMD_JUMP(0x00A9 - 0x00EE),
/* 0x00EE 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0872),
/* 0x00F1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00F2 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0873),
/* 0x00F5 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00F6 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0114 - 0x00FD, 0x0),
/* 0x00FD 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(10, 0x0108 - 0x0102),
/* 0x0102 0x01 */ MSCRIPT_CMD_PLAY_ERROR(),
/* 0x0103 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0875),
/* 0x0106 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0107 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0108 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0109 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-10),
/* 0x010C 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_26_40, 0x011A - 0x0111),
/* 0x0111 0x03 */ MSCRIPT_CMD_JUMP(0x00BC - 0x0114),
/* 0x0114 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0115 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0874),
/* 0x0118 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0119 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x011A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0876),
/* 0x011D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_25_20),
/* 0x0120 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_35),
/* 0x0123 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_36),
/* 0x0126 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_37),
/* 0x0129 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_40),
/* 0x012C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x012D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x012E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0131 0x01 */ MSCRIPT_CMD_DONE(),
};
UNK_TYPE D_80A51384[] = {
0x0E08610C,
0x16100000,
MsgScript D_80A51384[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0861),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0005 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_EVENT_INF(EVENTINF_36, 0x006C - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_26_40, 0x0044 - 0x000A),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_EVENT_INF(EVENTINF_37, 0x0029 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x087C),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_91_20, 0x0022 - 0x0018),
/* 0x0018 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x087E),
/* 0x001B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_91_20),
/* 0x001F 0x03 */ MSCRIPT_CMD_JUMP(0x0070 - 0x0022),
/* 0x0022 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x087B),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_JUMP(0x0070 - 0x0029),
/* 0x0029 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x087D),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x002E 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0033 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x003A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x087E),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_26_40),
/* 0x0041 0x03 */ MSCRIPT_CMD_JUMP(0x0070 - 0x0044),
/* 0x0044 0x05 */ MSCRIPT_CMD_CHECK_EVENT_INF(EVENTINF_37, 0x0054 - 0x0049),
/* 0x0049 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x087A),
/* 0x004C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x087B),
/* 0x0050 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0051 0x03 */ MSCRIPT_CMD_JUMP(0x0070 - 0x0054),
/* 0x0054 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0878),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0059 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_PURPLE, 0x0),
/* 0x005E 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0005),
/* 0x0061 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0062 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0065 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0879),
/* 0x0068 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0069 0x03 */ MSCRIPT_CMD_JUMP(0x0070 - 0x006C),
/* 0x006C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0877),
/* 0x006F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_35),
/* 0x0073 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_36),
/* 0x0076 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_37),
/* 0x0079 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_40),
/* 0x007C 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x007D 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Dnh_InitVars = {
@ -86,7 +261,7 @@ s32 func_80A50D40(Actor* actor, PlayState* play) {
return 1;
}
void* func_80A50DF8(EnDnh* this, PlayState* play) {
MsgScript* EnDnh_GetMsgScript(EnDnh* this, PlayState* play) {
switch (this->unk198) {
case 1:
return D_80A51384;
@ -105,7 +280,7 @@ s32 func_80A50E40(EnDnh* this, PlayState* play) {
return 0;
}
SubS_SetOfferMode(&this->unk18C, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->msgEventScript = func_80A50DF8(this, play);
this->msgScript = EnDnh_GetMsgScript(this, play);
this->actionFunc = func_80A50F38;
return 1;
}
@ -121,9 +296,9 @@ void func_80A50EC0(EnDnh* this) {
}
void func_80A50F38(EnDnh* this, PlayState* play) {
if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventCallback, &this->unk194)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk18C, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk194 = 0;
this->msgScriptPos = 0;
this->unk198 = 0;
this->actionFunc = EnDnh_DoNothing;
}
@ -153,8 +328,8 @@ void EnDnh_Init(Actor* thisx, PlayState* play) {
this->actor.draw = NULL;
}
this->msgEventCallback = func_80A50D40;
this->unk194 = 0;
this->msgScriptCallback = func_80A50D40;
this->msgScriptPos = 0;
this->actionFunc = EnDnh_DoNothing;
}

View File

@ -7,20 +7,19 @@
struct EnDnh;
typedef void (*EnDnhActionFunc)(struct EnDnh*, PlayState*);
typedef s32 (*MsgEventFunc)(Actor*, PlayState*);
typedef struct EnDnh {
/* 0x000 */ Actor actor;
/* 0x144 */ EnDnhActionFunc actionFunc;
/* 0x148 */ SkelAnime skelAnime;
/* 0x18C */ u16 unk18C;
/* 0x190 */ s32* msgEventScript;
/* 0x194 */ s32 unk194;
/* 0x190 */ MsgScript* msgScript;
/* 0x194 */ s32 msgScriptPos;
/* 0x198 */ s16 unk198;
/* 0x19A */ UNK_TYPE1 pad19A[0x2];
/* 0x19C */ s16 blinkTimer;
/* 0x19E */ s16 eyeTexIndex;
/* 0x1A0 */ MsgEventFunc msgEventCallback;
/* 0x1A0 */ MsgScriptCallback msgScriptCallback;
/* 0x1A4 */ Vec3s jointTable[KOUME_KIOSK_LIMB_MAX];
/* 0x1B0 */ Vec3s morphTable[KOUME_KIOSK_LIMB_MAX];
} EnDnh; // size = 0x1BC

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 sMsgScript[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_20, 0x0012 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_HUMAN(0x000D - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0967),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0968),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0012 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x096F),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0970),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 func_80B3CA20(EnDnp* this) {
@ -367,7 +381,7 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, sMsgScript, NULL, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_322, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_322 &= ~8;
this->actionFunc = func_80B3D2D4;

View File

@ -29,7 +29,7 @@ typedef struct EnDnp {
/* 0x286 */ Vec3s morphTable[DEKU_PRINCESS_LIMB_MAX];
/* 0x322 */ u16 unk_322;
/* 0x324 */ u8 cueId;
/* 0x328 */ s32 unk_328;
/* 0x328 */ s32 msgScriptPos;
/* 0x32C */ UNK_TYPE1 unk_32C[0x2];
/* 0x32E */ s16 unk_32E;
/* 0x330 */ s16 unk_330;

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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_18_01, 0x001A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0899),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x089A),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x089B),
/* 0x0011 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x089C),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_18_01),
/* 0x0019 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0898),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_80A53420[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_18_02, 0x0011 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x089D),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x089E),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_18_02),
/* 0x0010 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x089F),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_80A53438[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x08A1),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x08A2),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_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* EnDnq_GetMsgScript(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) {
@ -358,7 +394,7 @@ s32 func_80A52D44(EnDnq* this, PlayState* play) {
if (((this->unk_37C & SUBS_OFFER_MODE_MASK) != SUBS_OFFER_MODE_NONE) &&
Actor_TalkOfferAccepted(&this->picto.actor, &play->state)) {
SubS_SetOfferMode(&this->unk_37C, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_380 = func_80A52CF8(this, play);
this->msgScript = EnDnq_GetMsgScript(this, play);
this->actionFunc = func_80A52FB8;
ret = true;
}
@ -411,7 +447,7 @@ 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)) {
if (MsgEvent_RunScript(&this->picto.actor, play, this->msgScript, NULL, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_37C, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_386 = 0;
this->actionFunc = func_80A52DC8;

View File

@ -15,13 +15,13 @@ typedef struct EnDnq {
/* 0x18C */ EnDnqActionFunc actionFunc;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ u8 cueId;
/* 0x1E0 */ s32 unk_1E0;
/* 0x1E0 */ s32 msgScriptPos;
/* 0x1E4 */ Vec3s jointTable[DEKU_KING_LIMB_MAX];
/* 0x2AA */ Vec3s morphTable[DEKU_KING_LIMB_MAX];
/* 0x370 */ Vec3f unk_370;
/* 0x37C */ u16 unk_37C;
/* 0x37E */ s16 unk_37E;
/* 0x380 */ s32* unk_380;
/* 0x380 */ MsgScript* msgScript;
/* 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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x082F),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0820),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_8092DCC0[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0830),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0821),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_8092DCD0[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0831),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0822),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_8092DCE0[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_20, 0x000A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0832),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0823),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_8092DCF0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0833),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0007 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0008 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_16),
/* 0x000B 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_8092DD00[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x082E),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Dns_InitVars = {
@ -178,29 +232,29 @@ void func_8092C934(EnDns* this) {
}
}
s32* func_8092C9BC(EnDns* this, PlayState* play) {
MsgScript* EnDns_GetMsgScript(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;
@ -241,7 +295,7 @@ s32 func_8092CAD0(EnDns* this, PlayState* play) {
}
this->unk_2DA = this->actor.world.rot.y;
}
this->unk_1E0 = func_8092C9BC(this, play);
this->msgScript = EnDns_GetMsgScript(this, play);
this->actionFunc = func_8092D4D8;
ret = true;
}
@ -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;
@ -406,11 +460,11 @@ void func_8092D1B8(EnDns* this, PlayState* play) {
SubS_SetOfferMode(&this->unk_2C6, SUBS_OFFER_MODE_AUTO, SUBS_OFFER_MODE_MASK);
Audio_PlaySfx(NA_SE_SY_FOUND);
SET_EVENTINF(EVENTINF_15);
this->unk_2F4 = func_8092CCEC;
this->msgScriptCallback = func_8092CCEC;
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,9 +509,9 @@ 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)) {
} else if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_2C6, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_2F4 = NULL;
this->msgScriptCallback = NULL;
if (ENDNS_GET_4000(&this->actor)) {
if (!CHECK_EVENTINF(EVENTINF_15)) {
this->skelAnime.curFrame = this->animCurFrame;

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)
@ -26,8 +25,8 @@ typedef struct EnDns {
/* 0x188 */ EnDnsActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ u8 cueId;
/* 0x1DC */ s32 unk_1DC;
/* 0x1E0 */ s32* unk_1E0;
/* 0x1DC */ s32 msgScriptPos;
/* 0x1E0 */ MsgScript* msgScript;
/* 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 */ MsgScriptCallback msgScriptCallback;
/* 0x2F8 */ s32 animIndex;
/* 0x2FC */ s32 unk_2FC;
} EnDns; // size = 0x300

View File

@ -4,7 +4,6 @@
* Description: Fishing Pond Elements (Owner, Fish, Props, Effects...)
*/
#include "prevent_bss_reordering.h"
#include "z_en_fishing.h"
#include "z64rumble.h"
#include "z64shrink_window.h"

View File

@ -697,9 +697,7 @@ void func_80B10A48(EnGb2* this, PlayState* play) {
}
void func_80B10B5C(EnGb2* this, PlayState* play) {
s32 mask = Player_GetMask(play);
if (this->unk_28C != mask) {
if (Player_GetMask(play) != this->unk_28C) {
this->unk_28C = Player_GetMask(play);
this->unk_26C &= ~0x80;
this->unk_26C &= ~0x20;

View File

@ -25,38 +25,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_CMD_BEGIN_TEXT(0x2AB9),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2ABA),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_86_40, 0x001F - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA4),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA5),
/* 0x0013 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_40),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0022 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEC),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0029 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x002A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AED),
/* 0x002D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0031 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0032 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEE),
/* 0x0035 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0038 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0039 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x003D 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_86_20, 0x00A6 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA6),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA7),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0017 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0018 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA8),
/* 0x001B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0020 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AA9),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0027 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0028 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAA),
/* 0x002B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0030 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAB),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0037 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0038 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAC),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003F 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0040 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAD),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AAE),
/* 0x0047 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004B 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x004C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AAF),
/* 0x004F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0050 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0053 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0054 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB0),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0058 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x005C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB1),
/* 0x005F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0060 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0063 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0064 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB2),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x006B 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x006C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB3),
/* 0x006F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0070 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0073 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0074 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB4),
/* 0x0077 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0078 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x007B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x007C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB5),
/* 0x007F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0080 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0083 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0084 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB6),
/* 0x0087 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0088 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x008B 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x008C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB7),
/* 0x008F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0090 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0093 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0094 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AB8),
/* 0x0097 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x009A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_TOTO),
/* 0x009D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00A0 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A1 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_20),
/* 0x00A4 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00A5 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00A6 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00A9 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEA),
/* 0x00AC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00B0 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x00B1 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AEB),
/* 0x00B4 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x00B7 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x00BA 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00BB 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x00BE 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00BF 0x01 */ MSCRIPT_CMD_DONE(),
};
static s32 D_80951C2C[] = { 0x0E295A2D, 0x000A0C10 };
static MsgScript D_80951B98[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_75_01, 0x0047 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B01),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0012 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0013 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B02),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001A 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x001B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B03),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0022 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0023 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B04),
/* 0x0026 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B05),
/* 0x002A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002E 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x002F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B06),
/* 0x0032 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0036 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0037 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B07),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_75_01),
/* 0x0041 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0042 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0045 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_CMD_DONE(),
static s32 D_80951C34[] = { 0x0E29622D, 0x000A0C10 };
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B08),
/* 0x004A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x004F 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_80951BE8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_50_01, 0x0039 - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_51_80, 0x0039 - 0x000D),
/* 0x000D 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_75_02, 0x001F - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B13),
/* 0x0015 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_75_02),
/* 0x001C 0x03 */ MSCRIPT_CMD_JUMP(0x0034 - 0x001F),
/* 0x001F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B14),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B15),
/* 0x0026 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B16),
/* 0x002A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B17),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2B18),
/* 0x0032 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0034 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0037 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0038 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0039 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B12),
/* 0x003C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_80951C2C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295A),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static MsgScript D_80951C34[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2962),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_GORMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Gm_InitVars = {
/**/ ACTOR_EN_GM,
@ -372,8 +568,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;
@ -415,8 +611,8 @@ s32 func_8094E52C(EnGm* this, PlayState* play) {
return ret;
}
s32 func_8094E69C(EnGm* this, PlayState* play) {
Camera* subCam;
s32 func_8094E69C(Actor* thisx, PlayState* play) {
EnGm* this = (EnGm*)thisx;
s16 csId = func_8094E4D0(this, 0);
s16 sp48;
Vec3f sp3C;
@ -458,8 +654,8 @@ s32 func_8094E69C(EnGm* this, PlayState* play) {
if (func_8094E454(this, csId)) {
case 4:
case 6:
subCam = Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId));
Camera_SetTargetActor(subCam, &this->actor);
sp48 = CutsceneManager_GetCurrentSubCamId(csId);
Camera_SetTargetActor(Play_GetCamera(play, sp48), &this->actor);
this->unk_3E0++;
ret = true;
}
@ -469,8 +665,8 @@ s32 func_8094E69C(EnGm* this, PlayState* play) {
case 5:
case 7:
if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) {
subCam = Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId));
Camera_SetTargetActor(subCam, this->actor.child);
sp48 = CutsceneManager_GetCurrentSubCamId(csId);
Camera_SetTargetActor(Play_GetCamera(play, sp48), this->actor.child);
}
this->unk_3E0++;
ret = true;
@ -504,8 +700,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;
@ -554,8 +751,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;
@ -608,22 +806,22 @@ s32 func_8094EB1C(EnGm* this, PlayState* play) {
return ret;
}
s32* func_8094EDBC(EnGm* this, PlayState* play) {
MsgScript* EnGm_GetMsgScript(EnGm* this, PlayState* play) {
switch (this->unk_258) {
case 1:
this->unk_3E4 = func_8094E52C;
this->msgScriptCallback = func_8094E52C;
return D_80951A98;
case 2:
this->unk_3E4 = func_8094EA34;
this->msgScriptCallback = func_8094EA34;
return D_80951AD8;
case 3:
this->unk_3E4 = func_8094E69C;
this->msgScriptCallback = func_8094E69C;
return D_80951B98;
case 5:
this->unk_3E4 = func_8094EB1C;
this->msgScriptCallback = func_8094EB1C;
return D_80951BE8;
case 7:
@ -664,9 +862,9 @@ s32 func_8094EE84(EnGm* this, PlayState* play) {
Actor_TalkOfferAccepted(&this->actor, &play->state)) {
SubS_SetOfferMode(&this->unk_3A4, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_3E0 = 0;
this->unk_3E4 = NULL;
this->msgScriptCallback = NULL;
this->actor.child = this->unk_268;
this->unk_264 = func_8094EDBC(this, play);
this->msgScript = EnGm_GetMsgScript(this, play);
if ((this->unk_258 == 5) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_50_01) &&
!CHECK_WEEKEVENTREG(WEEKEVENTREG_51_80) && !CHECK_WEEKEVENTREG(WEEKEVENTREG_75_02)) {
@ -933,7 +1131,7 @@ s32 func_8094F7D0(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput, u
}
s32 func_8094F904(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp56 = SCHEDULE_TIME_NOW;
u16 sp56 = SCRIPT_TIME_NOW;
u8 pathIndex = ENGM_GET_PATH_INDEX(&this->actor);
EnDoor* door;
Vec3s* sp4C;
@ -979,7 +1177,7 @@ s32 func_8094F904(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
}
s32 func_8094FAC4(EnGm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp2E = SCHEDULE_TIME_NOW;
u16 sp2E = SCRIPT_TIME_NOW;
u16 phi_v1;
u8 pathIndex = ENGM_GET_PATH_INDEX(&this->actor);
u16 tmp;
@ -1540,7 +1738,7 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_3A4, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
al = EnGm_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_AL);
if ((this->unk_258 == 2) && (al != NULL) && (al->update != NULL)) {
@ -1551,7 +1749,7 @@ void func_80950DB8(EnGm* this, PlayState* play) {
}
this->unk_3A4 |= 0x200;
this->unk_3C6 = 20;
this->unk_25C = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80950CDC;
} else if ((this->unk_258 != 1) && (this->unk_258 != 2) && (this->unk_258 != 3) && (this->unk_258 != 5) &&
(this->unk_258 != 7)) {

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)
@ -30,11 +29,11 @@ typedef struct EnGm {
/* 0x254 */ s32 timePathElapsedTime;
/* 0x258 */ u8 unk_258;
/* 0x259 */ u8 cueId;
/* 0x25C */ s32 unk_25C;
/* 0x25C */ s32 msgScriptPos;
/* 0x260 */ s8 unk_260;
/* 0x261 */ s8 unk_261;
/* 0x262 */ s8 objectSlot;
/* 0x264 */ s32* unk_264;
/* 0x264 */ MsgScript* msgScript;
/* 0x268 */ Actor* unk_268;
/* 0x26C */ UNK_TYPE1 unk_26C[0xC];
/* 0x278 */ Vec3f unk_278;
@ -69,7 +68,7 @@ typedef struct EnGm {
/* 0x3DE */ s16 unk_3DE;
/* 0x3E0 */ s16 unk_3E0;
/* 0x3E2 */ s16 unk_3E2;
/* 0x3E4 */ EnGmUnkFunc unk_3E4;
/* 0x3E4 */ MsgScriptCallback msgScriptCallback;
/* 0x3E8 */ s32 animIndex;
/* 0x3EC */ UNK_TYPE1 unk3EC[0x4];
/* 0x3F0 */ s32 prevTalkState;

View File

@ -124,70 +124,455 @@ 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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON, 0x0045 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x002A - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_21_02, 0x0025 - 0x000D),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E10),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E11),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E12),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E13),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E14),
/* 0x0020 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0021 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_21_02),
/* 0x0024 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0025 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E15),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON, 0x0040 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E16),
/* 0x0032 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E17),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E18),
/* 0x003A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003B 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON),
/* 0x003E 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x003F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0040 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E19),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0045 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON, 0x0057 - 0x004A),
/* 0x004A 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0052 - 0x004D),
/* 0x004D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E31),
/* 0x0050 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0051 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0052 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E2F),
/* 0x0055 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0056 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0057 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x005F - 0x005A),
/* 0x005A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E2D),
/* 0x005D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E2B),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON, 0x0083 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0055 - 0x0008),
/* 0x0008 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON, 0x0025 - 0x000D),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E1A),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0012 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E23),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E24),
/* 0x001A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E25),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0020 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0021 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON),
/* 0x0024 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0025 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E1A),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x002A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E23),
/* 0x002D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002E 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E24),
/* 0x0032 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0033 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E25),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E26),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x003D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E27),
/* 0x0040 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0041 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0042 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E28),
/* 0x0045 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0047 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E29),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x004C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E2A),
/* 0x004F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0050 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0051 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON),
/* 0x0054 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0055 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E1A),
/* 0x0058 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0059 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x005A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E1B),
/* 0x005D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005E 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x005F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E1C),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E1D),
/* 0x0066 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0067 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E1E),
/* 0x006A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006B 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x006C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E1F),
/* 0x006F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0070 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0071 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E20),
/* 0x0074 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0075 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0076 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E21),
/* 0x0079 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E22),
/* 0x007D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007E 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x007F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_THAWED_GRAVEYARD_GORON),
/* 0x0082 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0083 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_GORON_GRAVEMAKER_AS_GORON, 0x0095 - 0x0088),
/* 0x0088 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0090 - 0x008B),
/* 0x008B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E32),
/* 0x008E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x008F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0090 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E30),
/* 0x0093 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0094 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0095 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x009D - 0x0098),
/* 0x0098 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E2E),
/* 0x009B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x009C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x009D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E2C),
/* 0x00A0 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A1 0x01 */ MSCRIPT_CMD_DONE(),
};
// MsgEvent script for the shrine Goron standing aside the store.
static s32 sMsgScriptGoronAsideStore[] = { 0xE0E520C, 0x10000000 };
static MsgScript sMsgScriptGoronAsideStore[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E52),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON, 0x003D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0018 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E43),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E44),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E45),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_24_80),
/* 0x0017 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0018 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_22_08, 0x0038 - 0x001D),
/* 0x001D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E46),
/* 0x0020 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0021 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E47),
/* 0x0024 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E48),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E49),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E4A),
/* 0x0030 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_22_08),
/* 0x0034 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_24_80),
/* 0x0037 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0038 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E4B),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E42),
/* 0x0040 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0041 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_CALMED_GORON_ELDERS_SON, 0x0027 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0011 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E4D),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E4E),
/* 0x000F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0010 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0011 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_01, 0x0022 - 0x0016),
/* 0x0016 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E4F),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0E50),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_23_01),
/* 0x0021 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0022 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E51),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0027 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E4C),
/* 0x002A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002B 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0015 - 0x0003),
/* 0x0003 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_18_20, 0x0010 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C8E),
/* 0x000B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_18_20),
/* 0x000F 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C8F),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0015 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_18_40, 0x0037 - 0x001A),
/* 0x001A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C80),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_18_40),
/* 0x0021 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_HAS_POWDERKEG_PRIVILEGES, 0x009A - 0x0026),
/* 0x0026 0x05 */ MSCRIPT_CMD_CHECK_ITEM(ITEM_POWDER_KEG, 0x009A - 0x002B),
/* 0x002B 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_19_01, 0x0075 - 0x0030),
/* 0x0030 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0C81),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x03 */ MSCRIPT_CMD_JUMP(0x004A - 0x0037),
/* 0x0037 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_HAS_POWDERKEG_PRIVILEGES, 0x009A - 0x003C),
/* 0x003C 0x05 */ MSCRIPT_CMD_CHECK_ITEM(ITEM_POWDER_KEG, 0x009A - 0x0041),
/* 0x0041 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_19_01, 0x0075 - 0x0046),
/* 0x0046 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C81),
/* 0x0049 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0C82),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x006F - 0x0055, 0x006F - 0x0055),
/* 0x0055 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0056 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C83),
/* 0x0059 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x005B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005E 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0061 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C84),
/* 0x0064 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0065 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0066 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_19_01),
/* 0x0069 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x006A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C84),
/* 0x006D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x006F 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0070 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C85),
/* 0x0073 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0074 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0075 0x03 */ MSCRIPT_CMD_CHECK_HAS_POWDER_KEG(0x006A - 0x0078),
/* 0x0078 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_19_02, 0x008C - 0x007D),
/* 0x007D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C88),
/* 0x0080 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0081 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0C89),
/* 0x0084 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0085 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0096 - 0x008C, 0x006F - 0x008C, 0x006F - 0x008C),
/* 0x008C 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C86),
/* 0x008F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0090 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_HAS_POWDERKEG_PRIVILEGES),
/* 0x0093 0x03 */ MSCRIPT_CMD_JUMP(0x00B7 - 0x0096),
/* 0x0096 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0097 0x03 */ MSCRIPT_CMD_JUMP(0x005A - 0x009A),
/* 0x009A 0x03 */ MSCRIPT_CMD_CHECK_HAS_POWDER_KEG(0x00C9 - 0x009D),
/* 0x009D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C8C),
/* 0x00A0 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A1 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x00AD - 0x00A8, 0x0),
/* 0x00A8 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(100, 0x00B3 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_CMD_PLAY_ERROR(),
/* 0x00AE 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C8D),
/* 0x00B1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B2 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00B3 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x00B4 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-100),
/* 0x00B7 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00B8 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_POWDER_KEG, 0x0),
/* 0x00BD 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0034),
/* 0x00C0 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00C3 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C87),
/* 0x00C6 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00C7 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00C8 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00C9 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C8B),
/* 0x00CC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00CD 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE, 0x002E - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_DEKU(0x0016 - 0x0008),
/* 0x0008 0x03 */ MSCRIPT_CMD_CHECK_ZORA(0x001E - 0x000B),
/* 0x000B 0x03 */ MSCRIPT_CMD_CHECK_GORON(0x0026 - 0x000E),
/* 0x000E 0x05 */
MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_HUMAN, 0x0064 - 0x0013),
/* 0x0013 0x03 */ MSCRIPT_CMD_JUMP(0x0034 - 0x0016),
/* 0x0016 0x05 */
MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_DEKU, 0x0064 - 0x001B),
/* 0x001B 0x03 */ MSCRIPT_CMD_JUMP(0x0034 - 0x001E),
/* 0x001E 0x05 */
MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_ZORA, 0x0064 - 0x0023),
/* 0x0023 0x03 */ MSCRIPT_CMD_JUMP(0x0034 - 0x0026),
/* 0x0026 0x05 */
MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_GATEKEEPER_OPENED_GORON_SHRINE_FOR_GORON, 0x0064 - 0x002B),
/* 0x002B 0x03 */ MSCRIPT_CMD_JUMP(0x005D - 0x002E),
/* 0x002E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4D),
/* 0x0031 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0032 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0034 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D48),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0D49),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0D4A),
/* 0x003F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0040 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0056 - 0x0047, 0x0056 - 0x0047),
/* 0x0047 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0048 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4B),
/* 0x004B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004C 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x004D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0050 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4D),
/* 0x0053 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0054 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0055 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0056 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0057 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4C),
/* 0x005A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x005C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4E),
/* 0x0060 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0061 0x03 */ MSCRIPT_CMD_JUMP(0x003C - 0x0064),
/* 0x0064 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0D4F),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0DFE),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0DFF),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E00),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E01),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E02),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E03),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E04),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E05),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_GORON(0x0009 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E06),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0E07),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_DONE(),
};
// MsgEvent script for any sleeping Goron.
static s32 sMsgScriptGoronSleeping[] = { 0xE023A0C, 0x12100000 };
static MsgScript sMsgScriptGoronSleeping[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x023A),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0005 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Go_InitVars = {
/**/ ACTOR_EN_GO,
@ -1822,11 +2207,11 @@ void EnGo_SetupGatekeeper(EnGo* this, PlayState* play) {
}
EnGo_ChangeToSnowballAnimation(this, play);
this->actionFunc = EnGo_Snowball;
this->msgEventFunc = EnGo_HandleOpenShrineCutscene;
this->msgScriptCallback = EnGo_HandleOpenShrineCutscene;
} else {
EnGo_ChangeToShiveringAnimation(this, play);
this->actionFunc = EnGo_Idle;
this->msgEventFunc = EnGo_HandleOpenShrineCutscene;
this->msgScriptCallback = EnGo_HandleOpenShrineCutscene;
}
}
@ -1883,7 +2268,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->msgScriptCallback = EnGo_HandleGivePowderKegCutscene;
this->actionFunc = EnGo_Idle;
}
@ -1910,7 +2295,7 @@ void EnGo_SetupInitialAction(EnGo* this, PlayState* play) {
this->actor.targetMode = TARGET_MODE_1;
this->scaleFactor = ENGO_NORMAL_SCALE;
this->msgEventFunc = NULL;
this->msgScriptCallback = NULL;
switch (ENGO_GET_TYPE(&this->actor)) {
case ENGO_ATHLETIC:
@ -2317,8 +2702,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_GetMsgScript(EnGo* this, PlayState* play) {
static MsgScript* sMsgScriptGraveyard[] = {
sMsgScriptGoronGravemaker,
sMsgScriptGoronFrozen,
};
@ -2384,8 +2769,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_GetMsgScript(this, play), this->msgScriptCallback,
&this->msgScriptPos)) {
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);
@ -2404,7 +2789,7 @@ void EnGo_Talk(EnGo* this, PlayState* play) {
this->actionFlags &= ~ENGO_FLAG_ENGAGED;
SubS_SetOfferMode(&this->actionFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->msgScriptResumePos = 0;
this->msgScriptPos = 0;
this->actionFlags |= ENGO_FLAG_LOST_ATTENTION;
this->actionFunc = this->interruptedActionFunc;
}

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)
@ -95,7 +94,7 @@ typedef struct EnGo {
/* 0x284 */ Path* gatekeeperPath;
/* 0x288 */ s8 taisouObjectSlot;
/* 0x289 */ s8 hakuginDemoObjectSlot;
/* 0x28C */ s32 msgScriptResumePos;
/* 0x28C */ s32 msgScriptPos;
/* 0x290 */ Vec3f headPos;
/* 0x29C */ Vec3f bodyPos;
/* 0x2A8 */ Vec3s headRot;
@ -131,7 +130,7 @@ typedef struct EnGo {
/* 0x3C8 */ s16 fidgetTableZ[ENGO_FIDGET_TABLE_LEN];
/* 0x3CE */ s16 fidgetTableY[ENGO_FIDGET_TABLE_LEN];
/* 0x3D4 */ s16 surprisePhase;
/* 0x3D8 */ MsgEventFunc msgEventFunc;
/* 0x3D8 */ MsgScriptCallback msgScriptCallback;
/* 0x3DC */ s32 animIndex;
/* 0x3E0 */ UNK_TYPE1 unk3E0[0x4];
/* 0x3E4 */ s32 indexPathPoint;

View File

@ -23,31 +23,94 @@ void func_80BF2BD4(EnIg* this, PlayState* play);
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_CMD_BEGIN_TEXT(0x28B0),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_RECEIVED_ROOM_KEY, 0x0027 - 0x0008),
/* 0x0008 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B1),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0010 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B2),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0018 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B3),
/* 0x001C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x001F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_02),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0026 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0027 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_86_10, 0x005B - 0x002C),
/* 0x002C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x002D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B1),
/* 0x0030 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0031 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0034 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0035 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B5),
/* 0x0038 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0039 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x003D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B6),
/* 0x0040 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0041 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0044 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0045 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B7),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004C 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x004D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B8),
/* 0x0050 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0053 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0054 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0057 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_10),
/* 0x005A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x005B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005E 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x005F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2956),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0066 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0067 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2957),
/* 0x006A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x006E 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x006F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2958),
/* 0x0072 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0073 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0076 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0077 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2959),
/* 0x007A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x007D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0081 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0082 0x01 */ MSCRIPT_CMD_DONE(),
};
static s32 D_80BF33E0[] = {
0x0E28B90C,
0x10000000,
static MsgScript D_80BF33E0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B9),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
static s32 D_80BF33E8[] = {
0x0E28B40C,
0x10000000,
static MsgScript D_80BF33E8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28B4),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
static s32 D_80BF33F0[] = {
0x0E295B0C,
0x10000000,
static MsgScript D_80BF33F0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295B),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Ig_InitVars = {
@ -323,8 +386,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;
@ -371,10 +434,10 @@ s32 func_80BF17BC(EnIg* this, PlayState* play) {
return ret;
}
s32* func_80BF1920(EnIg* this, PlayState* play) {
MsgScript* EnIg_GetMsgScript(EnIg* this, PlayState* play) {
switch (this->scheduleResult) {
case 3:
this->unk_3F8 = func_80BF17BC;
this->msgScriptCallback = func_80BF17BC;
return D_80BF335C;
case 4:
@ -404,9 +467,9 @@ s32 func_80BF19A0(EnIg* this, PlayState* play) {
Actor_TalkOfferAccepted(&this->actor, &play->state)) {
SubS_SetOfferMode(&this->unk_3D0, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_3F6 = 0;
this->unk_3F8 = NULL;
this->msgScriptCallback = NULL;
this->actor.child = this->unk_2A8;
this->unk_29C = func_80BF1920(this, play);
this->msgScript = EnIg_GetMsgScript(this, play);
if ((this->scheduleResult != 2) && (this->scheduleResult != 3) && (this->scheduleResult != 4)) {
this->unk_3D0 |= 0x20;
}
@ -525,7 +588,7 @@ s32 func_80BF1D78(EnIg* this, PlayState* play, ScheduleOutput* scheduleOutput) {
}
s32 func_80BF1DF4(EnIg* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp56 = SCHEDULE_TIME_NOW;
u16 sp56 = SCRIPT_TIME_NOW;
u8 pathIndex = ENIG_GET_PATH_INDEX(&this->actor);
EnDoor* door;
Vec3s* sp4C;
@ -570,7 +633,7 @@ s32 func_80BF1DF4(EnIg* this, PlayState* play, ScheduleOutput* scheduleOutput) {
}
s32 func_80BF1FA8(EnIg* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp2E = SCHEDULE_TIME_NOW;
u16 sp2E = SCRIPT_TIME_NOW;
u16 phi_v1;
u8 pathIndex = ENIG_GET_PATH_INDEX(&this->actor);
u16 tmp;
@ -892,12 +955,12 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_3D0, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_3D0 &= ~0x20;
this->unk_3D0 |= 0x200;
this->unk_3EE = 20;
this->unk_2A0 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80BF2AF8;
} else if (((this->scheduleResult != 2) && (this->scheduleResult != 4)) &&
((this->unk_2A8 != NULL) && (this->unk_2A8->update != NULL))) {

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,8 +27,8 @@ typedef struct EnIg {
/* 0x290 */ s32 timePathWaypoint;
/* 0x294 */ s32 timePathElapsedTime;
/* 0x298 */ u8 scheduleResult;
/* 0x29C */ s32* unk_29C;
/* 0x2A0 */ s32 unk_2A0;
/* 0x29C */ MsgScript* msgScript;
/* 0x2A0 */ s32 msgScriptPos;
/* 0x2A4 */ s8 unk_2A4;
/* 0x2A8 */ Actor* unk_2A8;
/* 0x2AC */ UNK_TYPE1 unk2AC[0x4];
@ -57,7 +56,7 @@ typedef struct EnIg {
/* 0x3F2 */ s16 unk_3F2;
/* 0x3F4 */ s16 unk_3F4;
/* 0x3F6 */ s16 unk_3F6;
/* 0x3F8 */ EnIgUnkFunc unk_3F8;
/* 0x3F8 */ MsgScriptCallback msgScriptCallback;
/* 0x3FC */ s32 animIndex;
/* 0x400 */ UNK_TYPE1 unk400[0x8];
/* 0x408 */ s32 unk_408;

View File

@ -23,20 +23,84 @@ void func_80BC3594(EnJa* this, PlayState* play);
#include "src/overlays/actors/ovl_En_Ja/scheduleScripts.schl.inc"
s32 D_80BC360C[] = {
0x0E29370C, 0x170E2938, 0x0C180E29, 0x390C170E, 0x293A0C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC360C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2937),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2938),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2939),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293A),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BC362C[] = {
0x0E29400C, 0x170E2941, 0x0C180E29, 0x420C170E, 0x29430C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC362C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2940),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2941),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2942),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2943),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BC364C[] = {
0x0E293C0C, 0x170E293D, 0x0C180E29, 0x3E0C170E, 0x293F0C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC364C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293C),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293D),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293E),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293F),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BC366C[] = {
0x0E29440C, 0x170E2945, 0x0C180E29, 0x460C170E, 0x29470C09, 0x0000180E, 0x293B0C09, 0x00001000,
MsgScript D_80BC366C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2944),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2945),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2946),
/* 0x000D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000E 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2947),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0017 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x293B),
/* 0x001A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Ja_InitVars = {
@ -161,8 +225,8 @@ Actor* func_80BC1AE0(EnJa* this, PlayState* play) {
return this->actor.child;
}
Player* func_80BC1B50(EnJa* this, PlayState* play) {
return GET_PLAYER(play);
Actor* func_80BC1B50(EnJa* this, PlayState* play) {
return &GET_PLAYER(play)->actor;
}
s32 func_80BC1B60(EnJa* this, PlayState* play) {
@ -171,7 +235,7 @@ s32 func_80BC1B60(EnJa* this, PlayState* play) {
Vec3f sp34;
s16 sp32;
Math_Vec3f_Copy(&sp40, &this->unk_1D8.player->actor.world.pos);
Math_Vec3f_Copy(&sp40, &this->unk_1E0->world.pos);
Math_Vec3f_Copy(&sp34, &this->actor.world.pos);
sp32 = Math_Vec3f_Yaw(&sp34, &sp40);
Math_ApproachS(&this->unk_356, (sp32 - this->unk_35A) - this->actor.shape.rot.y, 4, 0x2AA8);
@ -180,10 +244,10 @@ s32 func_80BC1B60(EnJa* this, PlayState* play) {
Math_ApproachS(&this->unk_35A, (sp32 - this->unk_356) - this->actor.shape.rot.y, 4, 0x2AA8);
this->unk_35A = CLAMP(this->unk_35A, -0x1C70, 0x1C70);
if (this->unk_1D8.player->actor.id == ACTOR_PLAYER) {
sp40.y = this->unk_1D8.player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f;
if (this->unk_1E0->id == ACTOR_PLAYER) {
sp40.y = ((Player*)this->unk_1E0)->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f;
} else {
Math_Vec3f_Copy(&sp40, &this->unk_1D8.player->actor.focus.pos);
Math_Vec3f_Copy(&sp40, &this->unk_1E0->focus.pos);
}
Math_Vec3f_Copy(&sp34, &this->actor.focus.pos);
@ -198,8 +262,8 @@ s32 func_80BC1B60(EnJa* this, PlayState* play) {
s32 func_80BC1D70(EnJa* this, PlayState* play) {
if (this->unk_340 & 8) {
this->unk_1D8.player = func_80BC1B50(this, play);
if (this->unk_1D8.player != NULL) {
this->unk_1E0 = func_80BC1B50(this, play);
if (this->unk_1E0 != NULL) {
func_80BC1B60(this, play);
}
this->unk_340 &= ~0x10;
@ -300,7 +364,7 @@ s32 func_80BC213C(EnJa* this, PlayState* play) {
}
void func_80BC2150(EnJa* this, PlayState* play) {
if ((this->unk_1D8.unk_00 == 1) || (this->unk_1D8.unk_00 == 2)) {
if ((this->unk_1D8 == 1) || (this->unk_1D8 == 2)) {
func_80BC213C(this, play);
}
Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 4, 0x1554);
@ -311,7 +375,7 @@ void func_80BC21A8(EnJa* this, PlayState* play) {
this->unk_35C = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset);
if (!Schedule_RunScript(play, D_80BC35F0, &sp18) ||
((this->unk_1D8.unk_00 != sp18.result) && !func_80BC20D0(this, play, &sp18))) {
((this->unk_1D8 != sp18.result) && !func_80BC20D0(this, play, &sp18))) {
this->actor.shape.shadowDraw = NULL;
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
sp18.result = 0;
@ -319,12 +383,12 @@ void func_80BC21A8(EnJa* this, PlayState* play) {
this->actor.shape.shadowDraw = ActorShadow_DrawCircle;
this->actor.flags |= ACTOR_FLAG_TARGETABLE;
}
this->unk_1D8.unk_00 = sp18.result;
this->unk_1D8 = sp18.result;
func_80BC2150(this, play);
}
s32* func_80BC2274(EnJa* this, PlayState* play) {
switch (this->unk_1D8.unk_00) {
MsgScript* EnJa_GetMsgScript(EnJa* this, PlayState* play) {
switch (this->unk_1D8) {
case 1:
if (ENJA_GET_3(&this->actor) == 0) {
return D_80BC360C;
@ -343,10 +407,11 @@ 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, EnJa_GetMsgScript(this, play), this->msgScriptCallback,
&this->msgScriptPos)) {
this->unk_340 &= ~8;
SubS_SetOfferMode(&this->unk_340, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_1D8.unk_04 = 0;
this->msgScriptPos = 0;
this->unk_340 |= 0x10;
this->actor.shape.rot.y = this->actor.world.rot.y;
this->actionFunc = func_80BC21A8;
@ -369,8 +434,8 @@ void EnJa_Init(Actor* thisx, PlayState* play) {
this->actor.gravity = 0.0f;
SubS_SetOfferMode(&this->unk_340, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_340 |= 0x10;
this->unk_1D8.unk_00 = 0;
this->unk_368 = NULL;
this->unk_1D8 = 0;
this->msgScriptCallback = NULL;
this->actionFunc = func_80BC21A8;
}
@ -389,7 +454,7 @@ void EnJa_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
if (this->unk_1D8.unk_00 != 0) {
if (this->unk_1D8 != 0) {
EnJa_UpdateSkelAnime(this);
func_80BC1A68(this);
func_80BC1D70(this, play);
@ -398,14 +463,14 @@ void EnJa_Update(Actor* thisx, PlayState* play) {
height = this->collider.dim.height + 10;
SubS_Offer(&this->actor, play, radius, height, PLAYER_IA_NONE, this->unk_340 & SUBS_OFFER_MODE_MASK);
if (this->unk_1D8.unk_00 != 2) {
if (this->unk_1D8 != 2) {
Actor_MoveWithGravity(&this->actor);
Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_4);
}
func_80BC1984(this, play);
}
if (this->unk_1D8.unk_00 == 1) {
if (this->unk_1D8 == 1) {
func_80BC32D8(this, play);
}
}
@ -446,7 +511,7 @@ void EnJa_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
CLOSE_DISPS(play->state.gfxCtx);
}
if (this->unk_1D8.unk_00 == 1) {
if (this->unk_1D8 == 1) {
if ((limbIndex == OBJECT_BOJ_LIMB_0B) &&
(((this->skelAnime.curFrame >= 0.0f) && (this->skelAnime.curFrame <= 6.0f)) ||
((this->skelAnime.curFrame >= 35.0f) && (this->skelAnime.curFrame <= 47.0f)))) {
@ -608,7 +673,7 @@ void EnJa_Draw(Actor* thisx, PlayState* play) {
phi_t2 = 1;
}
if (this->unk_1D8.unk_00 != 0) {
if (this->unk_1D8 != 0) {
OPEN_DISPS(play->state.gfxCtx);
Gfx_SetupDL25_Opa(play->state.gfxCtx);
@ -629,7 +694,7 @@ void EnJa_Draw(Actor* thisx, PlayState* play) {
CLOSE_DISPS(play->state.gfxCtx);
}
if (this->unk_1D8.unk_00 == 1) {
if (this->unk_1D8 == 1) {
func_80BC3594(this, play);
}
}

View File

@ -16,18 +16,14 @@ typedef struct {
/* 0x0E */ s16 unk_0E;
} EnJaStruct; // size = 0x10
typedef struct {
/* 0x00 */ u8 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Player* player;
} EnJaStruct2; // size = 0x10
typedef struct EnJa {
/* 0x000 */ Actor actor;
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnJaActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ EnJaStruct2 unk_1D8;
/* 0x1D8 */ u8 unk_1D8;
/* 0x1DC */ s32 msgScriptPos;
/* 0x1E0 */ Actor* unk_1E0;
/* 0x1E4 */ Vec3s unk_1E4;
/* 0x1EC */ Vec3f unk_1EC;
/* 0x1F8 */ Vec3f unk_1F8;
@ -55,7 +51,7 @@ typedef struct EnJa {
/* 0x362 */ s16 unk_362;
/* 0x364 */ s16 unk_364;
/* 0x366 */ s16 unk_366;
/* 0x368 */ void* unk_368;
/* 0x368 */ MsgScriptCallback msgScriptCallback;
/* 0x36C */ s32 animIndex;
/* 0x370 */ UNK_TYPE1 unk_370[4];
/* 0x374 */ s32 prevTalkState;

View File

@ -38,34 +38,177 @@ typedef enum EnNbScheduleResult {
#include "src/overlays/actors/ovl_En_Nb/scheduleScripts.schl.inc"
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_CMD_CHECK_EVENT_INF(EVENTINF_43, 0x006F - 0x0005),
/* 0x0005 0x0D */
MSCRIPT_CMD_CHECK_DAY(0x0022 - 0x0012, 0x001A - 0x0012, 0x0022 - 0x0012, 0x001A - 0x0012, 0x0, 0x001A - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2912),
/* 0x0015 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2901),
/* 0x001D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0020 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0021 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0022 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2902),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2903),
/* 0x0029 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002A 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0037 - 0x0031, 0x0053 - 0x0031),
/* 0x0031 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0035 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0038 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_42),
/* 0x003B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2904),
/* 0x003E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003F 0x05 */ MSCRIPT_CMD_CHECK_WORN_MASK(PLAYER_MASK_ALL_NIGHT, 0x0048 - 0x0044),
/* 0x0044 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0045 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x010C - 0x0048),
/* 0x0048 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2905),
/* 0x004E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004F 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0050 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x010C - 0x0053),
/* 0x0053 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x0054 0x03 */ MSCRIPT_CMD_EVENT_INF(EVENTINF_42),
/* 0x0057 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x290B),
/* 0x005A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005B 0x05 */ MSCRIPT_CMD_CHECK_WORN_MASK(PLAYER_MASK_ALL_NIGHT, 0x0064 - 0x0060),
/* 0x0060 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0061 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x010C - 0x0064),
/* 0x0064 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0067 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x290C),
/* 0x006A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006B 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x006C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x010C - 0x006F),
/* 0x006F 0x05 */ MSCRIPT_CMD_CHECK_WORN_MASK(PLAYER_MASK_ALL_NIGHT, 0x008B - 0x0074),
/* 0x0074 0x05 */ MSCRIPT_CMD_CHECK_EVENT_INF(EVENTINF_42, 0x0082 - 0x0079),
/* 0x0079 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2911),
/* 0x007C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x007F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0080 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0081 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0082 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x290A),
/* 0x0085 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0088 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0089 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x008A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x008B 0x05 */ MSCRIPT_CMD_CHECK_EVENT_INF(EVENTINF_42, 0x00CB - 0x0090),
/* 0x0090 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x290D),
/* 0x0093 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0094 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x00A5 - 0x009B, 0x0),
/* 0x009B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2910),
/* 0x009E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00A1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A2 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00A3 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00A4 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00A5 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x290E),
/* 0x00A8 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_50_04, 0x0106 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00AE 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x290F),
/* 0x00B1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B2 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00B3 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00B8 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x00BB 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x00BE 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x00BF 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_LONG_STORY_HP),
/* 0x00C2 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00C5 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_50_04),
/* 0x00C8 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00C9 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00CA 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00CB 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2906),
/* 0x00CE 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00CF 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x00E0 - 0x00D6, 0x0, 0x0),
/* 0x00D6 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2907),
/* 0x00D9 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x00DC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00DD 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00DE 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00DF 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00E0 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2908),
/* 0x00E3 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_50_02, 0x0106 - 0x00E8),
/* 0x00E8 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00E9 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2909),
/* 0x00EC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00ED 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00EE 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00F3 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x00F6 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x00F9 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x00FA 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_GRANDMA_SHORT_STORY_HP),
/* 0x00FD 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0100 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_50_02),
/* 0x0103 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0104 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0105 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0106 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0109 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x010A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x010B 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x010C 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C7),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C8),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0012 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0013 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C9),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x001B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CA),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0022 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0023 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CB),
/* 0x0026 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x002B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CC),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0032 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0033 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CD),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x003B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CE),
/* 0x003E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0042 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0043 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28CF),
/* 0x0046 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0049 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x004C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0050 0x01 */ MSCRIPT_CMD_DONE(),
};
u8 D_80BC15C8[] = {
0x0E, 0x23, 0x62, 0x2D, 0x00, 0x0E, 0x0C, 0x10,
MsgScript D_80BC15C8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2362),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Nb_InitVars = {
@ -343,17 +486,17 @@ s32 func_80BC01DC(Actor* thisx, PlayState* play) {
return ret;
}
u8* func_80BC045C(EnNb* this, PlayState* play) {
MsgScript* EnNb_GetMsgScript(EnNb* this, PlayState* play) {
if (CHECK_EVENTINF(EVENTINF_43)) {
this->msgEventCallback = func_80BC01DC;
this->msgScriptCallback = func_80BC01DC;
return D_80BC1464;
} else if (this->scheduleResult == EN_NB_SCH_2) {
this->msgEventCallback = func_80BC00AC;
this->msgScriptCallback = func_80BC00AC;
return D_80BC1574;
} else if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) {
return D_80BC15C8;
} else {
this->msgEventCallback = func_80BC01DC;
this->msgScriptCallback = func_80BC01DC;
return D_80BC1464;
}
}
@ -366,9 +509,9 @@ s32 func_80BC04FC(EnNb* this, PlayState* play) {
this->stateFlags |= EN_NB_FLAG_20;
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->behaviour = ENNB_BEHAVIOUR_0;
this->msgEventCallback = NULL;
this->msgScriptCallback = NULL;
this->actor.child = this->unk_1E8;
this->msgEventScript = func_80BC045C(this, play);
this->msgScript = EnNb_GetMsgScript(this, play);
this->stateFlags |= EN_NB_FLAG_20;
this->actionFunc = func_80BC0EAC;
ret = true;
@ -622,7 +765,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->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
if (CHECK_EVENTINF(EVENTINF_43)) {
CLEAR_EVENTINF(EVENTINF_42);
CLEAR_EVENTINF(EVENTINF_43);
@ -636,7 +779,7 @@ void func_80BC0EAC(EnNb* this, PlayState* play) {
this->actor.child = NULL;
this->stateFlags |= EN_NB_FLAG_400;
this->unk_282 = 20;
this->msgEventArg4 = 0;
this->msgScriptPos = 0;
this->actionFunc = EnNb_FollowSchedule;
}
}

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 {
@ -28,8 +27,8 @@ typedef struct EnNb {
/* 0x18C */ EnNbUnkFunc2 unk_18C;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ u8 scheduleResult;
/* 0x1E0 */ u8* msgEventScript;
/* 0x1E4 */ s32 msgEventArg4;
/* 0x1E0 */ MsgScript* msgScript;
/* 0x1E4 */ s32 msgScriptPos;
/* 0x1E8 */ Actor* unk_1E8;
/* 0x1EC */ UNK_TYPE1 unk_1EC[4];
/* 0x1F0 */ Vec3f headComputedPos;
@ -50,7 +49,7 @@ typedef struct EnNb {
/* 0x284 */ s16 unk_284; // storyState?
/* 0x286 */ s16 storyTimer;
/* 0x288 */ s16 behaviour;
/* 0x28C */ EnNbUnkFunc msgEventCallback;
/* 0x28C */ MsgScriptCallback msgScriptCallback;
/* 0x290 */ EnNbAnimation animIndex;
/* 0x294 */ UNK_TYPE1 unk_294[4];
/* 0x294 */ TextState prevTalkState;

View File

@ -28,89 +28,269 @@ 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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION,
0x004A - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0008 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0009 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BA),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0010 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0011 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BB),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0018 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0019 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BC),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0020 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0021 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BD),
/* 0x0024 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0028 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0029 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BE),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0030 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0031 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28BF),
/* 0x0034 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0035 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0038 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x0039 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x28C0),
/* 0x003C 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x003F 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0042 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0043 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0046 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION),
/* 0x0049 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x004A 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x004D 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x004E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295C),
/* 0x0051 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0052 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0055 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0056 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295D),
/* 0x0059 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005A 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x005D 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x005E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x295E),
/* 0x0061 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_ANJU),
/* 0x0064 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x006B 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB60C[] = {
0x0E27742D,
0x000B0C10,
static MsgScript D_80AFB60C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2774),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB614[] = {
0x0E27752D,
0x000B0C10,
static MsgScript D_80AFB614[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2775),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB61C[] = {
0x0E27772D,
0x000B0C10,
static MsgScript D_80AFB61C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2777),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB624[] = {
0x0E27782D,
0x000B0C10,
static MsgScript D_80AFB624[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2778),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB62C[] = {
0x0E27792D,
0x000B0C10,
static MsgScript D_80AFB62C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2779),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB634[] = {
0x0E27812D,
0x000B0C10,
static MsgScript D_80AFB634[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2781),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB63C[] = {
0x0E277A2D,
0x000B0C10,
static MsgScript D_80AFB63C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277A),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB644[] = {
0x0E27822D,
0x000B0C11,
0x58021000,
static MsgScript D_80AFB644[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2782),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_88_02),
/* 0x000A 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB650[] = {
0x0E27832D,
0x000B0C10,
static MsgScript D_80AFB650[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2783),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_ITEM(ITEM_LETTER_MAMA, 0x001F - 0x0005),
/* 0x0005 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_82_80, 0x0016 - 0x000A),
/* 0x000A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277C),
/* 0x000D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x0014 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0016 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277D),
/* 0x0019 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277C),
/* 0x0022 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0023 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0026 0x09 */ MSCRIPT_CMD_CHECK_ITEM_ACTION(PLAYER_IA_LETTER_MAMA, 0x0, 0x0047 - 0x002F, 0x0057 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0xFFFF),
/* 0x0032 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0035 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277E),
/* 0x0038 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x003F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_01),
/* 0x0042 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_MAMA),
/* 0x0045 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0046 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0047 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x277D),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x004E 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0051 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0052 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x0055 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0056 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0057 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277D),
/* 0x005A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x005D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x0061 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0062 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A5),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x000B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A6),
/* 0x000E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0012 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0013 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A7),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x001B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A8),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0022 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0023 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A9),
/* 0x0026 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0027 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x002A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x002B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AA),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0032 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0033 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AB),
/* 0x0036 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x003A 0x01 */ MSCRIPT_CMD_FOCUS_TO_CHILD(),
/* 0x003B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AC),
/* 0x003E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0042 0x01 */ MSCRIPT_CMD_FOCUS_TO_SELF(),
/* 0x0043 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27AD),
/* 0x0046 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0049 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA),
/* 0x004C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_89_08),
/* 0x0050 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0053 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_ITEM(ITEM_MASK_POSTMAN, 0x0028 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2780),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x27AE),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000E 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_MASK_POSTMAN, 0x0),
/* 0x0013 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0084),
/* 0x0016 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_90_04),
/* 0x0019 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT_DONE(),
/* 0x001D 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0020 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_RECEIVED_POSTMANS_HAT),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_90_01),
/* 0x0027 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0028 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2780),
/* 0x002B 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_90_01),
/* 0x0032 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0033 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB744[] = {
0x0E23692D,
0x000B0C10,
static MsgScript D_80AFB744[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2369),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB74C[] = {
0x2CFFFF09, 0x00000E27, 0x7E2D000B, 0x0C115280, 0x1156012A, 0x002E1210,
static MsgScript D_80AFB74C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0006 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x277E),
/* 0x0009 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x0010 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_86_01),
/* 0x0013 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_MAMA),
/* 0x0016 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0017 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80AFB764[] = {
0x2C277D2D,
0x000B0C11,
0x52801210,
static MsgScript D_80AFB764[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x277D),
/* 0x0003 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_82_80),
/* 0x000A 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x000B 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Pm_InitVars = {
@ -453,8 +633,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;
@ -496,8 +676,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;
@ -538,8 +718,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) {
@ -563,17 +743,17 @@ s32 func_80AF8478(EnPm* this, PlayState* play) {
return ret;
}
UNK_TYPE* func_80AF8540(EnPm* this, PlayState* play) {
MsgScript* EnPm_GetMsgScript(EnPm* this, PlayState* play) {
switch (this->unk_258) {
case 28:
this->unk_37C = func_80AF8348;
this->msgScriptCallback = func_80AF8348;
return D_80AFB6BC;
case 29:
return D_80AFB710;
case 16:
this->unk_37C = func_80AF81E8;
this->msgScriptCallback = func_80AF81E8;
return D_80AFB5A0;
case 17:
@ -581,12 +761,12 @@ UNK_TYPE* func_80AF8540(EnPm* this, PlayState* play) {
case 24:
if (this->unk_356 & 0x2000) {
this->unk_37C = func_80AF8478;
this->msgScriptCallback = func_80AF8478;
return D_80AFB74C;
} else if (this->unk_356 & 0x4000) {
return D_80AFB764;
} else {
this->unk_37C = func_80AF8478;
this->msgScriptCallback = func_80AF8478;
return D_80AFB658;
}
break;
@ -639,9 +819,9 @@ s32 func_80AF86F0(EnPm* this, PlayState* play) {
SubS_SetOfferMode(&this->unk_356, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_398 = 0;
this->unk_378 = 0;
this->unk_37C = NULL;
this->msgScriptCallback = NULL;
this->actor.child = this->unk_268;
this->unk_25C = func_80AF8540(this, play);
this->msgScript = EnPm_GetMsgScript(this, play);
if ((this->unk_258 != 24) && (this->unk_258 != 9) && (this->unk_258 != 20) && (this->unk_258 != 21) &&
(this->unk_258 != 22)) {
this->unk_356 |= 0x20;
@ -867,7 +1047,7 @@ s32 func_80AF8ED4(EnPm* this, PlayState* play, ScheduleOutput* scheduleOutput, u
}
s32 func_80AF9008(EnPm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp56 = SCHEDULE_TIME_NOW;
u16 sp56 = SCRIPT_TIME_NOW;
u8 pathIndex = ENPM_GET_PATH_INDEX(&this->actor);
EnDoor* door;
Vec3s* sp4C;
@ -915,7 +1095,7 @@ s32 func_80AF9008(EnPm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
}
s32 func_80AF91E8(EnPm* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp2E = SCHEDULE_TIME_NOW;
u16 sp2E = SCRIPT_TIME_NOW;
u16 phi_v1;
u8 pathIndex = ENPM_GET_PATH_INDEX(&this->actor);
u16 tmp;
@ -1659,13 +1839,13 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_356, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_356 &= ~0x20;
this->unk_356 |= 0x200;
this->actor.child = NULL;
this->unk_376 = 20;
this->unk_264 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80AFA4D0;
return;
}

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,9 +25,9 @@ typedef struct EnPm {
/* 0x250 */ s32 timePathWaypoint;
/* 0x254 */ s32 timePathElapsedTime;
/* 0x258 */ u8 unk_258;
/* 0x25C */ UNK_TYPE* unk_25C;
/* 0x25C */ MsgScript* msgScript;
/* 0x260 */ s8 unk_260;
/* 0x264 */ s32 unk_264;
/* 0x264 */ s32 msgScriptPos;
/* 0x268 */ Actor* unk_268;
/* 0x26C */ Vec3f unk_26C;
/* 0x278 */ Vec3f unk_278;
@ -49,7 +48,7 @@ typedef struct EnPm {
/* 0x374 */ s16 timePathTimeSpeed;
/* 0x376 */ s16 unk_376;
/* 0x378 */ s16 unk_378;
/* 0x37C */ EnPmFunc unk_37C;
/* 0x37C */ MsgScriptCallback msgScriptCallback;
/* 0x380 */ s32 unk_380;
/* 0x384 */ s32 unk_384;
/* 0x388 */ s32 prevTalkState;

View File

@ -30,64 +30,329 @@ typedef enum {
#include "src/overlays/actors/ovl_En_Pst/scheduleScripts.schl.inc"
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_CMD_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_UPPER_CLOCKTOWN),
/* 0x0027 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_27_40, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_NORTH_CLOCKTOWN),
/* 0x0027 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_27_80, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_UPPER_CLOCKTOWN),
/* 0x0027 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_01, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_LOWER_CLOCKTOWN),
/* 0x0027 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_02, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2784),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0007 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x003F - 0x000E, 0x0047 - 0x000E),
/* 0x000E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0011),
/* 0x0011 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0012 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x001F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0020 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0023 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0024 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_LOWER_CLOCKTOWN),
/* 0x0027 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x002A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_04, 0x0037 - 0x002F),
/* 0x002F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0032 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0035 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0036 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0037 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x003A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003F 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0040 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x03 */ MSCRIPT_CMD_JUMP_3(0x0019 - 0x0047),
/* 0x0047 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2786),
/* 0x004A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004B 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C3B8[] = {
0x0E27A10C, 0x0F27A20C, 0x12005108, 0x000F0600, 0x0C000013, 0x000C0C11,
0x51080700, 0x0C060001, 0x00001300, 0x010C0700, 0x000E27A3, 0x0C161000,
MsgScript D_80B2C3B8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A1),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x27A2),
/* 0x0007 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0009 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_81_08, 0x001D - 0x000E),
/* 0x000E 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x0013 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x0016 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0017 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_81_08),
/* 0x001A 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0029 - 0x001D),
/* 0x001D 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_GREEN, 0x0),
/* 0x0022 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0001),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0029 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x27A3),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x002E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C3E8[] = {
0x2C27870C, 0x111B022A, 0x002F001B, 0x4000080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C3E8[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_UPPER_CLOCKTOWN),
/* 0x0007 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_27_40, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C408[] = {
0x2C27870C, 0x111B042A, 0x002F001B, 0x8000080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C408[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_NORTH_CLOCKTOWN),
/* 0x0007 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_27_80, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C428[] = {
0x2C27870C, 0x111B082A, 0x002F001C, 0x0100080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C428[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_UPPER_CLOCKTOWN),
/* 0x0007 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_01, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C448[] = {
0x2C27870C, 0x111B102A, 0x002F001C, 0x0200080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C448[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_EAST_LOWER_CLOCKTOWN),
/* 0x0007 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_02, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C468[] = {
0x2C27870C, 0x111B202A, 0x002F001C, 0x0400080F, 0x27882D00, 0x180C100F, 0x27892D00, 0x180C1000,
MsgScript D_80B2C468[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2787),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_DEPOSITED_LETTER_TO_KAFEI_SOUTH_LOWER_CLOCKTOWN),
/* 0x0007 0x03 */ MSCRIPT_CMD_DELETE_ITEM(ITEM_LETTER_TO_KAFEI),
/* 0x000A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_28_04, 0x0017 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2788),
/* 0x0012 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x0015 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0016 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0017 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2789),
/* 0x001A 0x03 */ MSCRIPT_CMD_NOTEBOOK_EVENT(BOMBERS_NOTEBOOK_EVENT_DEPOSITED_LETTER_TO_KAFEI),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C488[] = { 0x2C27A40C, 0x10000000 };
MsgScript D_80B2C488[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x27A4),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80B2C490[] = { 0x2C27850C, 0x10000000 };
MsgScript D_80B2C490[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x2785),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Pst_InitVars = {
/**/ ACTOR_EN_PST,
@ -226,7 +491,7 @@ s32 EnPst_ChooseBehaviour(Actor* thisx, PlayState* play) {
return scriptBranch;
}
s32* EnPst_GetMsgEventScript(EnPst* this, PlayState* play) {
MsgScript* EnPst_GetMsgScript(EnPst* this, PlayState* play) {
if (Player_GetMask(play) == PLAYER_MASK_POSTMAN) {
return D_80B2C3B8;
}
@ -261,7 +526,7 @@ s32* EnPst_GetMsgEventScript(EnPst* this, PlayState* play) {
}
}
this->msgEventCallback = EnPst_ChooseBehaviour;
this->msgScriptCallback = EnPst_ChooseBehaviour;
switch (this->actor.params) {
case POSTBOX_SOUTH_UPPER_CLOCKTOWN:
@ -302,9 +567,9 @@ s32 EnPst_CheckTalk(EnPst* this, PlayState* play) {
this->isLetterToKafeiDeposited = EnPst_HandleLetterDay1(this);
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->behaviour = 0;
this->msgEventCallback = NULL;
this->msgScriptCallback = NULL;
this->stateFlags |= 0x40;
this->msgEventScript = EnPst_GetMsgEventScript(this, play);
this->msgScript = EnPst_GetMsgScript(this, play);
this->actionFunc = EnPst_Talk;
ret = true;
}
@ -364,7 +629,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->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
if (EnPst_HandleLetterDay1(this) != this->isLetterToKafeiDeposited) {
switch (gSaveContext.save.day) {
case 1:
@ -385,7 +650,7 @@ void EnPst_Talk(EnPst* this, PlayState* play) {
}
}
SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->msgEventArg4 = 0;
this->msgScriptPos = 0;
this->actionFunc = EnPst_FollowSchedule;
}
}

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;
/* 0x1E0 */ s32 msgEventArg4;
/* 0x1DC */ MsgScript* msgScript;
/* 0x1E0 */ s32 msgScriptPos;
/* 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 */ MsgScriptCallback msgScriptCallback;
/* 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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_23_08, 0x0010 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09C4),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09C5),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_23_08),
/* 0x0010 0x03 */ MSCRIPT_CMD_CHECK_DEKU(0x019F - 0x0013),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_HUMAN(0x01A4 - 0x0016),
/* 0x0016 0x03 */ MSCRIPT_CMD_JUMP(0x019F - 0x0019),
/* 0x0019 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x00FF),
/* 0x001C 0x09 */ MSCRIPT_CMD_CHECK_ITEM_ACTION(PLAYER_IA_PICTOGRAPH_BOX, 0x0, 0x013A - 0x0025, 0x016C - 0x0025),
/* 0x0025 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x003A - 0x0028),
/* 0x0028 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0044 - 0x002B),
/* 0x002B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x005B - 0x002E),
/* 0x002E 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x008E - 0x0031),
/* 0x0031 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x00C7 - 0x0034),
/* 0x0034 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x006A - 0x0037),
/* 0x0037 0x03 */ MSCRIPT_CMD_JUMP(0x0081 - 0x003A),
/* 0x003A 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E7),
/* 0x003D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003E 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0041 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0042 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0043 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0044 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09CB),
/* 0x0047 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0048 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x004B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CC),
/* 0x004F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0050 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CD),
/* 0x0053 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0054 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0100 - 0x005B, 0x0126 - 0x005B, 0x0126 - 0x005B),
/* 0x005B 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D1),
/* 0x005E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005F 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D2),
/* 0x0066 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0067 0x03 */ MSCRIPT_CMD_JUMP(0x0050 - 0x006A),
/* 0x006A 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D3),
/* 0x006D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006E 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0071 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0072 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D4),
/* 0x0075 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0076 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D5),
/* 0x0079 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007A 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0113 - 0x0081, 0x0133 - 0x0081, 0x0133 - 0x0081),
/* 0x0081 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D9),
/* 0x0084 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0085 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0088 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0089 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DA),
/* 0x008C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x008D 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x008E 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E8),
/* 0x0091 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0092 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0095 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0096 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E9),
/* 0x0099 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x009A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09EA),
/* 0x009D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x009E 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_87_04, 0x00BA - 0x00A3),
/* 0x00A3 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00A4 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00A9 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x00AC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00AD 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_87_04),
/* 0x00B0 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00B3 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09EB),
/* 0x00B6 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B7 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00B8 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00B9 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00BA 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00BB 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00C0 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0006),
/* 0x00C3 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00C4 0x03 */ MSCRIPT_CMD_AUTOTALK(0x00B3 - 0x00C7),
/* 0x00C7 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09EC),
/* 0x00CA 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00CB 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x00CE 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00CF 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09ED),
/* 0x00D2 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00D3 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09EE),
/* 0x00D6 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00D7 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_87_04, 0x00F3 - 0x00DC),
/* 0x00DC 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00DD 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00E2 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x00E5 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00E6 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_87_04),
/* 0x00E9 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00EC 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09EF),
/* 0x00EF 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00F0 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00F1 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00F2 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00F3 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00F4 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00F9 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0006),
/* 0x00FC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00FD 0x03 */ MSCRIPT_CMD_AUTOTALK(0x00EC - 0x0100),
/* 0x0100 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0101 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_RED, 0x0),
/* 0x0106 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0004),
/* 0x0109 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x010A 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x010D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09CE),
/* 0x0110 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0111 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0112 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0113 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0114 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x0119 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0002),
/* 0x011C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x011D 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0120 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09D8),
/* 0x0123 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0124 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0125 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0126 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0127 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CF),
/* 0x012A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x012B 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_50),
/* 0x012E 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x012F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0132 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0133 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09D6),
/* 0x0136 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0137 0x03 */ MSCRIPT_CMD_JUMP(0x012B - 0x013A),
/* 0x013A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_55_40, 0x015B - 0x013F),
/* 0x013F 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09DB),
/* 0x0142 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0143 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0146 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0147 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DC),
/* 0x014A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x014B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DD),
/* 0x014E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x014F 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DE),
/* 0x0152 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0153 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DF),
/* 0x0156 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0157 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_40),
/* 0x015A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x015B 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E0),
/* 0x015E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x015F 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0162 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0163 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E1),
/* 0x0166 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0167 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E2),
/* 0x016A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x016B 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x016C 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_55_40, 0x0189 - 0x0171),
/* 0x0171 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09DB),
/* 0x0174 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0175 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DC),
/* 0x0178 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0179 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DD),
/* 0x017C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x017D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DE),
/* 0x0180 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0181 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DF),
/* 0x0184 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0185 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_40),
/* 0x0188 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0189 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09E0),
/* 0x018C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x018D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E1),
/* 0x0190 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0191 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E2),
/* 0x0194 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0195 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0196 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09C9),
/* 0x0199 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x019A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CA),
/* 0x019D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x019E 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x019F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09C6),
/* 0x01A2 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x01A3 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x01A4 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_CLEARED_WOODFALL_TEMPLE, 0x0196 - 0x01A9),
/* 0x01A9 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09C8),
/* 0x01AC 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x01AD 0x03 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x09D0),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0005 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK_CONTINUE(0x0015 - 0x0003),
/* 0x0003 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x001B - 0x0006),
/* 0x0006 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0031 - 0x0009),
/* 0x0009 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0061 - 0x000C),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0099 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x003F - 0x0012),
/* 0x0012 0x03 */ MSCRIPT_CMD_JUMP(0x0055 - 0x0015),
/* 0x0015 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E7),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x001B 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09CB),
/* 0x001E 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0021 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CC),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CD),
/* 0x0029 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002A 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x00D1 - 0x0031, 0x00F7 - 0x0031, 0x00F7 - 0x0031),
/* 0x0031 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D1),
/* 0x0034 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0037 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0038 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D2),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x03 */ MSCRIPT_CMD_JUMP(0x0026 - 0x003F),
/* 0x003F 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D3),
/* 0x0042 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0045 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0046 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D4),
/* 0x0049 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004A 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09D5),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x00E4 - 0x0055, 0x0104 - 0x0055, 0x0104 - 0x0055),
/* 0x0055 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09D9),
/* 0x0058 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x005B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x005C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DA),
/* 0x005F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0060 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0061 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E8),
/* 0x0064 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E9),
/* 0x006B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x006C 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09EA),
/* 0x006F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0070 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_87_04, 0x008C - 0x0075),
/* 0x0075 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0076 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x007B 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x007E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x007F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_87_04),
/* 0x0082 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x0085 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09EB),
/* 0x0088 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0089 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x008A 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x008B 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x008C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x008D 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x0092 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0006),
/* 0x0095 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0096 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0085 - 0x0099),
/* 0x0099 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09EC),
/* 0x009C 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x009F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A0 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09ED),
/* 0x00A3 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A4 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09EE),
/* 0x00A7 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00A8 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_87_08, 0x00C4 - 0x00AD),
/* 0x00AD 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00AE 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_HEART_PIECE, 0x0),
/* 0x00B3 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x000C),
/* 0x00B6 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00B7 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_87_08),
/* 0x00BA 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00BD 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09EF),
/* 0x00C0 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00C1 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00C2 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00C3 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00C4 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00C5 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_SILVER, 0x0),
/* 0x00CA 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0006),
/* 0x00CD 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00CE 0x03 */ MSCRIPT_CMD_AUTOTALK(0x00BD - 0x00D1),
/* 0x00D1 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00D2 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_RED, 0x0),
/* 0x00D7 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0004),
/* 0x00DA 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00DB 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00DE 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09CE),
/* 0x00E1 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00E2 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00E3 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00E4 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x00E5 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_RUPEE_BLUE, 0x0),
/* 0x00EA 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0002),
/* 0x00ED 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00EE 0x03 */ MSCRIPT_CMD_AUTOTALK(0x0),
/* 0x00F1 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09D8),
/* 0x00F4 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00F5 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x00F6 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x00F7 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00F8 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09CF),
/* 0x00FB 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x00FC 0x03 */ MSCRIPT_CMD_SET_EVENT_INF(EVENTINF_50),
/* 0x00FF 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0100 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0103 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0104 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x09D6),
/* 0x0107 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0108 0x03 */ MSCRIPT_CMD_JUMP(0x00FC - 0x010B),
};
static MsgScript D_80AE71C4[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_55_40, 0x0021 - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09DB),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x000C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DC),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DD),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DE),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09DF),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_55_40),
/* 0x0020 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0021 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x09E0),
/* 0x0024 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0025 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0028 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0029 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E1),
/* 0x002C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002D 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x09E2),
/* 0x0030 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0031 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Shn_InitVars = {
/**/ ACTOR_EN_SHN,
@ -287,18 +628,18 @@ s32 func_80AE6704(Actor* thisx, PlayState* play) {
return ret;
}
UNK_TYPE* func_80AE6880(EnShn* this, PlayState* play) {
MsgScript* EnShn_GetMsgScript(EnShn* this, PlayState* play) {
if (this->unk_2BE != 0) {
return D_80AE70B0;
}
if (this->unk_1D8 & 0x80) {
this->unk_2D8 = func_80AE6704;
this->msgScriptCallback = func_80AE6704;
return D_80AE70B8;
}
if (this->unk_1D8 & 0x100) {
return D_80AE71C4;
}
this->unk_2D8 = func_80AE6704;
this->msgScriptCallback = func_80AE6704;
return D_80AE6F00;
}
@ -317,7 +658,7 @@ s32 func_80AE68F0(EnShn* this, PlayState* play) {
this->unk_2E4 = player->exchangeItemAction;
}
SubS_SetOfferMode(&this->unk_1D8, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->unk_1DC = func_80AE6880(this, play);
this->msgScript = EnShn_GetMsgScript(this, play);
this->unk_2C6 = 0;
if (CHECK_WEEKEVENTREG(WEEKEVENTREG_23_08)) {
this->unk_1D8 |= 8;
@ -342,12 +683,12 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, this->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_1D8, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_1D8 &= ~8;
this->unk_1D8 |= 0x20;
this->unk_2CA = 20;
this->unk_1E0 = 0;
this->msgScriptPos = 0;
this->unk_2BE = 0;
this->actionFunc = func_80AE69E8;
} else if (this->shnPlayerRef != 0) {
@ -375,7 +716,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->msgScriptCallback = 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,8 +15,8 @@ typedef struct EnShn {
/* 0x18C */ UNK_TYPE1 pad_18C[0x4C];
/* 0x1D8 */ u16 unk_1D8;
/* 0x1DA */ u16 unk_1DA;
/* 0x1DC */ UNK_TYPE* unk_1DC;
/* 0x1E0 */ s32 unk_1E0;
/* 0x1DC */ MsgScript* msgScript;
/* 0x1E0 */ s32 msgScriptPos;
/* 0x1E4 */ Player* shnPlayerRef;
/* 0x1E8 */ Vec3f unk_1E8;
/* 0x1F4 */ Vec3s unk_1F4;
@ -35,7 +34,7 @@ typedef struct EnShn {
/* 0x2CC */ f32 animPlaySpeed;
/* 0x2D0 */ f32 unk_2D0;
/* 0x2D4 */ f32 unk_2D4;
/* 0x2D8 */ MsgEventFunc unk_2D8;
/* 0x2D8 */ MsgScriptCallback msgScriptCallback;
/* 0x2DC */ s32 prevTalkState;
/* 0x2E0 */ s32 unk_2E0;
/* 0x2E4 */ s32 unk_2E4;

View File

@ -267,6 +267,9 @@ u16 EnSob1_GetWelcome(EnSob1* this, PlayState* play) {
case PLAYER_MASK_KAFEIS_MASK:
return 0x68A;
default:
break;
}
} else if (this->shopType == ZORA_SHOP) {
switch (player->transformation) {

View File

@ -685,7 +685,7 @@ void func_80BABB90(EnSuttari* this, s32 arg1) {
}
s32 func_80BABC48(EnSuttari* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp26 = SCHEDULE_TIME_NOW;
u16 sp26 = SCRIPT_TIME_NOW;
u16 phi_a0;
u8 pathIndex = ENSUTTARI_GET_PATH_INDEX(&this->actor);
u16 tmp;
@ -719,7 +719,7 @@ s32 func_80BABDD8(EnSuttari* this, PlayState* play, ScheduleOutput* scheduleOutp
s32 pad;
EnDoor* door;
u8 pathIndex = ENSUTTARI_GET_PATH_INDEX(&this->actor);
u16 sp44 = SCHEDULE_TIME_NOW;
u16 sp44 = SCRIPT_TIME_NOW;
Vec3f sp38;
Vec3f sp2C;
Vec3s* sp28;

View File

@ -22,32 +22,194 @@ void func_80BE1348(EnTab* this, PlayState* play);
#include "src/overlays/actors/ovl_En_Tab/scheduleScripts.schl.inc"
s32 D_80BE1914[] = {
0x003A0200, 0x080E2AF9, 0x0C113A02, 0x100E2AFA, 0x0C150900, 0x000E2AFB,
0x0C003401, 0x00090F2A, 0xFD0C0F2A, 0xFE0C100F, 0x2AFC0C10,
MsgScript D_80BE1914[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_58_02, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AF9),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_58_02),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AFA),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0012 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0015 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AFB),
/* 0x0018 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0019 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_ESCORTED_CREMIA, 0x0027 - 0x001E),
/* 0x001E 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFD),
/* 0x0021 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0022 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFE),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0027 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFC),
/* 0x002A 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002B 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BE1940[] = {
0x003F0400, 0x080E2B3D, 0x0C113F04, 0x100E2B3E, 0x0C0F2AFA, 0x0C150900,
0x000E2AFB, 0x0C003401, 0x00090F2A, 0xFD0C0F2A, 0xFE0C100F, 0x2AFC0C10,
MsgScript D_80BE1940[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_63_04, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B3D),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_63_04),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B3E),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFA),
/* 0x0014 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0015 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0016 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0019 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AFB),
/* 0x001C 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001D 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_ESCORTED_CREMIA, 0x002B - 0x0022),
/* 0x0022 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFD),
/* 0x0025 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0026 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFE),
/* 0x0029 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x002B 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x2AFC),
/* 0x002E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x002F 0x01 */ MSCRIPT_CMD_DONE(),
};
s32 D_80BE1970[] = { 0x003A0100, 0x080E2AFF, 0x0C113A01, 0x100E2B00, 0x0C100000 };
MsgScript D_80BE1970[] = {
/* 0x0000 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_58_01, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2AFF),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_58_01),
/* 0x000C 0x01 */ MSCRIPT_CMD_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_CMD_BEGIN_TEXT(0x2B00),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_80_01, 0x000D - 0x0005),
/* 0x0005 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B3F),
/* 0x0008 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0009 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_80_01),
/* 0x000C 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000D 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B40),
/* 0x0010 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0011 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BE1998[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B09),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BE19A0[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0A),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0059 - 0x000B, 0x0, 0x0059 - 0x000B),
/* 0x000B 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0014 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0E),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0014 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0B),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0027 - 0x001F, 0x002F - 0x001F),
/* 0x001F 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(20, 0x004A - 0x0024),
/* 0x0024 0x03 */ MSCRIPT_CMD_JUMP(0x0035 - 0x0027),
/* 0x0027 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(200, 0x003B - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_CMD_JUMP(0x0035 - 0x002F),
/* 0x002F 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0030 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0D),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0035 0x01 */ MSCRIPT_CMD_PLAY_ERROR(),
/* 0x0036 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0C),
/* 0x0039 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003B 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x003C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-200),
/* 0x0040 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_CHATEAU, 0x0),
/* 0x0045 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0091),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x004A 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x004B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-20),
/* 0x004F 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_MILK, 0x0),
/* 0x0054 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0092),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0059 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x005A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_ESCORTED_CREMIA, 0x0064 - 0x005F),
/* 0x005F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0F),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0064 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B11),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x01 */ MSCRIPT_CMD_DONE(),
};
MsgScript D_80BE1A0C[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0A),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0059 - 0x000B, 0x0, 0x0059 - 0x000B),
/* 0x000B 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x000C 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK_CONTINUE(0x0014 - 0x000F),
/* 0x000F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0E),
/* 0x0012 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0013 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0014 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0B),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x07 */ MSCRIPT_CMD_CHECK_TEXT_CHOICE(0x0, 0x0027 - 0x001F, 0x002F - 0x001F),
/* 0x001F 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(20, 0x004A - 0x0024),
/* 0x0024 0x03 */ MSCRIPT_CMD_JUMP(0x0035 - 0x0027),
/* 0x0027 0x05 */ MSCRIPT_CMD_CHECK_RUPEES(200, 0x003B - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_CMD_JUMP(0x0035 - 0x002F),
/* 0x002F 0x01 */ MSCRIPT_CMD_PLAY_CANCEL(),
/* 0x0030 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0D),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0035 0x01 */ MSCRIPT_CMD_PLAY_ERROR(),
/* 0x0036 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B0C),
/* 0x0039 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x003B 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x003C 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x003D 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-200),
/* 0x0040 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_CHATEAU, 0x0),
/* 0x0045 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0091),
/* 0x0048 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x004A 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x004B 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x004C 0x03 */ MSCRIPT_CMD_CHANGE_RUPEES(-20),
/* 0x004F 0x05 */ MSCRIPT_CMD_OFFER_ITEM(GI_MILK, 0x0),
/* 0x0054 0x03 */ MSCRIPT_CMD_SET_COLLECTIBLE(0x0092),
/* 0x0057 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0058 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0059 0x01 */ MSCRIPT_CMD_PLAY_DECIDE(),
/* 0x005A 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_ESCORTED_CREMIA, 0x0064 - 0x005F),
/* 0x005F 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B10),
/* 0x0062 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0063 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0064 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x2B11),
/* 0x0067 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0068 0x01 */ MSCRIPT_CMD_DONE(),
};
ActorInit En_Tab_InitVars = {
@ -176,7 +338,7 @@ s32 func_80BE06DC(EnTab* this, PlayState* play) {
SubS_SetOfferMode(&this->unk_2FC, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
ret = true;
this->unk_320 = 0;
this->unk_328 = NULL;
this->msgScriptCallback = NULL;
this->actor.child = &GET_PLAYER(play)->actor;
this->unk_2FC |= 8;
this->actionFunc = func_80BE1348;
@ -299,12 +461,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++;
@ -318,7 +480,7 @@ s32 func_80BE0D60(EnTab* this, PlayState* play) {
return ret;
}
s32* func_80BE0E04(EnTab* this, PlayState* play) {
MsgScript* EnTab_GetMsgScript(EnTab* this, PlayState* play) {
Player* player = GET_PLAYER(play);
if (player->transformation == PLAYER_FORM_DEKU) {
@ -327,7 +489,7 @@ s32* func_80BE0E04(EnTab* this, PlayState* play) {
switch (this->unk_1D8) {
case 2:
this->unk_328 = func_80BE0D38;
this->msgScriptCallback = func_80BE0D38;
if (Player_GetMask(play) != PLAYER_MASK_ROMANI) {
return D_80BE1998;
}
@ -338,7 +500,7 @@ s32* func_80BE0E04(EnTab* this, PlayState* play) {
return D_80BE19A0;
case 1:
this->unk_328 = func_80BE0D60;
this->msgScriptCallback = func_80BE0D60;
if (Player_GetMask(play) == PLAYER_MASK_ROMANI) {
return D_80BE1940;
}
@ -479,12 +641,13 @@ 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)) {
if (MsgEvent_RunScript(&this->actor, play, EnTab_GetMsgScript(this, play), this->msgScriptCallback,
&this->msgScriptPos)) {
SubS_SetOfferMode(&this->unk_2FC, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK);
this->unk_2FC &= ~8;
this->unk_2FC |= 0x40;
this->unk_324 = 20;
this->unk_1DC = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80BE127C;
} else if (this->unk_1E0 != 0) {
Math_Vec3f_Copy(&sp40, &this->unk_1E0->world.pos);
@ -505,7 +668,7 @@ void EnTab_Init(Actor* thisx, PlayState* play) {
Actor_SetScale(&this->actor, 0.01f);
this->unk_1D8 = 0;
this->unk_328 = NULL;
this->msgScriptCallback = NULL;
this->unk_2FC = 0;
this->unk_2FC |= 0x40;
this->actor.gravity = -1.0f;

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;
@ -15,7 +14,7 @@ typedef struct EnTab {
/* 0x188 */ EnTabActionFunc actionFunc;
/* 0x18C */ ColliderCylinder collider;
/* 0x1D8 */ u8 unk_1D8;
/* 0x1DC */ s32 unk_1DC;
/* 0x1DC */ s32 msgScriptPos;
/* 0x1E0 */ Actor* unk_1E0;
/* 0x1E4 */ EnGm* unk_1E4;
/* 0x1E8 */ Vec3f unk_1E8[2];
@ -38,7 +37,7 @@ typedef struct EnTab {
/* 0x320 */ s16 unk_320;
/* 0x322 */ s16 unk_322;
/* 0x324 */ s16 unk_324;
/* 0x328 */ EnTabUnkFunc unk_328;
/* 0x328 */ MsgScriptCallback msgScriptCallback;
/* 0x32C */ s32 unk_32C;
/* 0x330 */ UNK_TYPE1 unk330[4];
/* 0x334 */ s32 prevTalkState;

View File

@ -629,7 +629,7 @@ s32 func_80A3F9A4(EnTest3* this, PlayState* play) {
}
s32 func_80A3F9E4(EnTest3* this, PlayState* play, struct_80A41828* arg2, ScheduleOutput* scheduleOutput) {
scheduleOutput->time0 = (u16)SCHEDULE_TIME_NOW;
scheduleOutput->time0 = (u16)SCRIPT_TIME_NOW;
scheduleOutput->time1 = (u16)(scheduleOutput->time0 + 70);
func_80A40098(this, play, arg2, scheduleOutput);
if (this->player.actor.xzDistToPlayer < 300.0f) {
@ -657,7 +657,7 @@ s32 func_80A3FA58(EnTest3* this, PlayState* play) {
if (cond || this->unk_D8A <= 0) {
func_80A3F114(this, play);
sp40.unk_1_0 = 5;
scheduleOutput.time0 = (u16)SCHEDULE_TIME_NOW;
scheduleOutput.time0 = (u16)SCRIPT_TIME_NOW;
scheduleOutput.time1 = (u16)(scheduleOutput.time0 + (cond ? 80 : 140));
func_80A40098(this, play, &sp40, &scheduleOutput);
@ -733,7 +733,7 @@ s32 func_80A3FE20(EnTest3* this, PlayState* play) {
if (D_80A41D64 == 0) {
if (func_80A3E9DC(this, play)) {
sp2C.unk_1_0 = 2;
scheduleOutput.time0 = (u16)SCHEDULE_TIME_NOW;
scheduleOutput.time0 = (u16)SCRIPT_TIME_NOW;
scheduleOutput.time1 = (u16)(scheduleOutput.time0 + 1000);
func_80A40098(this, play, &sp2C, &scheduleOutput);
D_80A41D64 = 1;
@ -792,7 +792,7 @@ s32 func_80A3FFD0(EnTest3* this, PlayState* play2) {
}
s32 func_80A40098(EnTest3* this, PlayState* play, struct_80A41828* arg2, ScheduleOutput* scheduleOutput) {
u16 now = SCHEDULE_TIME_NOW;
u16 now = SCRIPT_TIME_NOW;
u16 startTime;
u16 numWaypoints;

View File

@ -498,7 +498,7 @@ s32 func_80AED354(EnTk* this, PlayState* play, ScheduleOutput* scheduleOutput) {
}
s32 func_80AED38C(EnTk* this, PlayState* play, ScheduleOutput* scheduleOutput) {
u16 sp1E = SCHEDULE_TIME_NOW;
u16 sp1E = SCRIPT_TIME_NOW;
u8 pathIndex = ENTK_GET_PATH_INDEX(&this->actor);
u16 phi_a1;
s32 index = scheduleOutput->result - 1;

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_CMD_BEGIN_TEXT(0x0852),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0005 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80A88918[] = {
0x0900000E,
0x08630C12,
0x16100000,
static MsgScript D_80A88918[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0863),
/* 0x0006 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0007 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0008 0x01 */ MSCRIPT_CMD_UNSET_AUTOTALK(),
/* 0x0009 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80A88924[] = {
0x0E08660C,
0x10000000,
static MsgScript D_80A88924[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0866),
/* 0x0003 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0004 0x01 */ MSCRIPT_CMD_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_CMD_CHECK_CALLBACK(0x0),
/* 0x0003 0x03 */ MSCRIPT_CMD_CHECK_HUMAN(0x000B - 0x0006),
/* 0x0006 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0865),
/* 0x0009 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x000B 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_KOUME_INJURED, 0x001B - 0x0010),
/* 0x0010 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0853),
/* 0x0013 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0014 0x03 */ MSCRIPT_CMD_CONTINUE_TEXT(0x0854),
/* 0x0017 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0018 0x03 */ MSCRIPT_CMD_JUMP(0x001F - 0x001B),
/* 0x001B 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0856),
/* 0x001E 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001F 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_TALKED_KOUME_INJURED),
/* 0x0022 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x00FF),
/* 0x0025 0x07 */ MSCRIPT_CMD_CHECK_CALLBACK_MULTI(0x0, 0x004A - 0x002C, 0x0053 - 0x002C),
/* 0x002C 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x0864),
/* 0x002F 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0030 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0033 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0034 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0035 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0038 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0857),
/* 0x003B 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x003C 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x003D 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0040 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0858),
/* 0x0043 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0044 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0045 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0048 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x0049 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x004A 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0x0855),
/* 0x004D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x004E 0x03 */ MSCRIPT_CMD_JUMP_3(0x0),
/* 0x0051 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0052 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0053 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0855),
/* 0x0056 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0057 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80A88984[] = {
0x2CFFFF09, 0x00000E08, 0x640C1509, 0x00000E08, 0x570C1509, 0x00000E08, 0x580C1509, 0x00001210,
static MsgScript D_80A88984[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0006 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0864),
/* 0x0009 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x000B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x000E 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0857),
/* 0x0011 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x0012 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x0013 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0016 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0858),
/* 0x0019 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001A 0x01 */ MSCRIPT_CMD_PAUSE(),
/* 0x001B 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x001E 0x01 */ MSCRIPT_CMD_CLOSE_TEXT(),
/* 0x001F 0x01 */ MSCRIPT_CMD_DONE(),
};
static UNK_TYPE D_80A889A4[] = {
0x2CFFFF09,
0x00000E08,
0x550C1000,
static MsgScript D_80A889A4[] = {
/* 0x0000 0x03 */ MSCRIPT_CMD_PLAYER_TALK(0xFFFF),
/* 0x0003 0x03 */ MSCRIPT_CMD_CHECK_CALLBACK(0x0),
/* 0x0006 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0855),
/* 0x0009 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x000A 0x01 */ MSCRIPT_CMD_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* EnTru_GetMsgScript(EnTru* this, PlayState* play) {
if (this->unk_34E & 0x2000) {
if (this->unk_38C == 35) {
this->unk_390 = 1;
@ -700,10 +763,10 @@ s32 func_80A872AC(EnTru* this, PlayState* play) {
this->unk_34E |= 0x4000;
}
this->unk_378 = func_80A875AC;
this->msgScriptCallback = func_80A875AC;
this->unk_390 = 0;
this->unk_364 = 0;
this->unk_354 = func_80A871E0(this, play);
this->msgScript = EnTru_GetMsgScript(this, play);
SubS_SetOfferMode(&this->unk_34E, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK);
this->actionFunc = func_80A881E0;
ret = true;
@ -813,9 +876,9 @@ s32 func_80A875AC(Actor* thisx, PlayState* play) {
if (ret == true) {
if (this->unk_390 != 0) {
this->unk_34E |= 8;
this->unk_378 = func_80A87880;
this->msgScriptCallback = func_80A87880;
} else {
this->unk_378 = func_80A8777C;
this->msgScriptCallback = func_80A8777C;
}
this->unk_364 = 0;
}
@ -845,7 +908,7 @@ s32 func_80A8777C(Actor* thisx, PlayState* play) {
} else {
this->unk_390 = 2;
}
this->unk_378 = func_80A87880;
this->msgScriptCallback = func_80A87880;
this->unk_364 = 0;
ret = 1;
} else if (itemAction <= PLAYER_IA_MINUS1) {
@ -926,7 +989,7 @@ s32 func_80A87880(Actor* thisx, PlayState* play) {
}
if (ret == true) {
this->unk_378 = func_80A87B48;
this->msgScriptCallback = func_80A87B48;
this->unk_364 = 0;
}
@ -985,7 +1048,7 @@ s32 func_80A87B48(Actor* thisx, PlayState* play) {
}
if (ret == true) {
this->unk_378 = func_80A87DC0;
this->msgScriptCallback = func_80A87DC0;
this->unk_364 = 0;
}
@ -1048,7 +1111,7 @@ s32 func_80A87DC0(Actor* thisx, PlayState* play) {
if (ret == true) {
this->actor.flags &= ~ACTOR_FLAG_TARGETABLE;
this->actor.draw = NULL;
this->unk_378 = NULL;
this->msgScriptCallback = NULL;
this->unk_34E = 0;
this->unk_364 = 0;
}
@ -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->msgScript, this->msgScriptCallback, &this->msgScriptPos)) {
if (player->transformation != PLAYER_FORM_HUMAN) {
this->unk_34E |= 0x80;
}
@ -1119,7 +1182,7 @@ void func_80A881E0(EnTru* this, PlayState* play) {
this->unk_34E |= 0x10;
this->actor.shape.rot.y = this->actor.world.rot.y;
this->actor.flags &= ~ACTOR_FLAG_TALK;
this->unk_1E8 = 0;
this->msgScriptPos = 0;
this->actionFunc = func_80A87FD0;
}
}

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)
@ -30,7 +29,7 @@ typedef struct EnTru {
/* 0x188 */ EnTruActionFunc actionFunc;
/* 0x18C */ ColliderSphere collider;
/* 0x1E4 */ Path* path;
/* 0x1E8 */ s32 unk_1E8;
/* 0x1E8 */ s32 msgScriptPos;
/* 0x1EC */ Vec3f unk_1EC;
/* 0x1F8 */ Vec3f unk_1F8;
/* 0x204 */ Vec3s unk_204;
@ -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* msgScript;
/* 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 */ MsgScriptCallback msgScriptCallback;
/* 0x37C */ s32 animIndex;
/* 0x380 */ UNK_TYPE1 unk380[0x4];
/* 0x384 */ s32 unk_384;

View File

@ -3,7 +3,7 @@
* Overlay: ovl_Obj_Flowerpot
* Description: Breakable Pot With Grass
*/
#include "prevent_bss_reordering.h"
#include "z_obj_flowerpot.h"
#include "objects/object_flowerpot/object_flowerpot.h"

View File

@ -4,6 +4,7 @@
* Description: Switch-Activated Geyser
*/
#include "prevent_bss_reordering.h"
#include "z_obj_hunsui.h"
#include "objects/object_hunsui/object_hunsui.h"

View File

@ -23,7 +23,7 @@
* Front
*
*/
#include "prevent_bss_reordering.h"
#include "z_obj_takaraya_wall.h"
#include "objects/object_takaraya_objects/object_takaraya_objects.h"

View File

@ -298,14 +298,12 @@ s32 func_80B781DC(ObjUm* this, EnHorse* bandit1, EnHorse* bandit2, PlayState* pl
s32 phi_s2 = 0;
f32 phi_f20 = 0.0f;
s32 i;
s32 mask;
for (i = 0; i < ARRAY_COUNT(D_80B7C164); i++) {
if (bandit1->unk_550 == D_80B7C164[i].unk_00) {
if (bandit2->unk_550 != D_80B7C164[i].unk_04) {
if (D_80B7C164[i].unk_00 != 3) {
if ((D_80B7C164[i].unk_04 != 3) ||
((mask = Player_GetMask(play)), PLAYER_MASK_CIRCUS_LEADER != mask)) {
if ((D_80B7C164[i].unk_04 != 3) || (Player_GetMask(play) != PLAYER_MASK_CIRCUS_LEADER)) {
phi_s3 = D_80B7C164[i].unk_04;
phi_s4 = D_80B7C164[i].unk_08;
phi_f20 = D_80B7C164[i].unk_0C;

View File

@ -4,7 +4,6 @@
* Description: Player
*/
#include "prevent_bss_reordering.h"
#include "global.h"
#include "z64horse.h"
#include "z64lifemeter.h"

View File

@ -4,7 +4,6 @@
* Description: Entering name on a new file, selecting options from the options menu
*/
#include "prevent_bss_reordering.h"
#include "z_file_select.h"
#include "z64rumble.h"
#include "misc/title_static/title_static.h"

View File

@ -4,7 +4,6 @@
* Description: Pause Menu
*/
#include "prevent_bss_reordering.h"
#include "z_kaleido_scope.h"
#include "sys_cmpdma.h"

View File

@ -147,8 +147,8 @@ class TokenProperties:
tokenPropertiesDict: dict[TokenType, TokenProperties] = {
# Schedule commands
TokenType.IF_WEEKEVENTREG_S: TokenProperties(macro="SCHEDULE_CMD_CHECK_FLAG_S", cmdLength=0x04, isConditionalBranch=True, hasArguments=True, needsToInvert=True, isShort=True, shortVersion=TokenType.IF_WEEKEVENTREG_S, longVersion=TokenType.IF_WEEKEVENTREG_L),
TokenType.IF_WEEKEVENTREG_L: TokenProperties(macro="SCHEDULE_CMD_CHECK_FLAG_L", cmdLength=0x05, isConditionalBranch=True, hasArguments=True, needsToInvert=True, shortVersion=TokenType.IF_WEEKEVENTREG_S, longVersion=TokenType.IF_WEEKEVENTREG_L),
TokenType.IF_WEEKEVENTREG_S: TokenProperties(macro="SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_S", cmdLength=0x04, isConditionalBranch=True, hasArguments=True, needsToInvert=True, isShort=True, shortVersion=TokenType.IF_WEEKEVENTREG_S, longVersion=TokenType.IF_WEEKEVENTREG_L),
TokenType.IF_WEEKEVENTREG_L: TokenProperties(macro="SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_L", cmdLength=0x05, isConditionalBranch=True, hasArguments=True, needsToInvert=True, shortVersion=TokenType.IF_WEEKEVENTREG_S, longVersion=TokenType.IF_WEEKEVENTREG_L),
TokenType.IF_TIMERANGE_S: TokenProperties(macro="SCHEDULE_CMD_CHECK_TIME_RANGE_S", cmdLength=0x06, isConditionalBranch=True, hasArguments=True, needsToInvert=True, isShort=True, shortVersion=TokenType.IF_TIMERANGE_S, longVersion=TokenType.IF_TIMERANGE_L),
TokenType.IF_TIMERANGE_L: TokenProperties(macro="SCHEDULE_CMD_CHECK_TIME_RANGE_L", cmdLength=0x07, isConditionalBranch=True, hasArguments=True, needsToInvert=True, shortVersion=TokenType.IF_TIMERANGE_S, longVersion=TokenType.IF_TIMERANGE_L),
TokenType.RETURN_S: TokenProperties(macro="SCHEDULE_CMD_RET_VAL_S", cmdLength=0x02, hasArguments=True, isShort=True),

View File

@ -2009,58 +2009,58 @@
0x8010A430:("Map_Init",),
0x8010A54C:("Minimap_Draw",),
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_CheckWeekEventReg",),
0x8010A7CC:("MsgEvent_CheckGoron",),
0x8010A814:("MsgEvent_CheckZora",),
0x8010A85C:("MsgEvent_CheckDeku",),
0x8010A8A4:("MsgEvent_CheckHuman",),
0x8010A8EC:("MsgEvent_CheckTextChoice",),
0x8010A990:("MsgEvent_OfferItem",),
0x8010AA54:("MsgEvent_Autotalk",),
0x8010AB30:("MsgEvent_CheckRupees",),
0x8010AB94:("MsgEvent_CheckCallback",),
0x8010AC00:("MsgEvent_CheckDay",),
0x8010AD24:("MsgEvent_AwaitTextJump",),
0x8010ADD4:("MsgEvent_AwaitText",),
0x8010AE48:("MsgEvent_AwaitTextEnd",),
0x8010AECC:("MsgEvent_BeginText",),
0x8010AF20:("MsgEvent_ContinueText",),
0x8010AF6C:("MsgEvent_Done",),
0x8010AF94:("MsgEvent_SetWeekEventReg",),
0x8010AFE0:("MsgEvent_CloseText",),
0x8010B010:("MsgEvent_SetCollectible",),
0x8010B06C:("MsgEvent_ChangeRupees",),
0x8010B0B4:("MsgEvent_Pause",),
0x8010B0DC:("MsgEvent_UnsetAutotalk",),
0x8010B108:("MsgEvent_FocusToChild",),
0x8010B140:("MsgEvent_FocusToSelf",),
0x8010B180:("MsgEvent_Jump",),
0x8010B1BC:("MsgEvent_CheckQuestItem",),
0x8010B22C:("MsgEvent_CheckEventInf",),
0x8010B284:("MsgEvent_SetEventInf",),
0x8010B2C0:("MsgEvent_UnsetEventInf",),
0x8010B300:("MsgEvent_CheckItemAction",),
0x8010B434:("MsgEvent_CheckHasSong",),
0x8010B4A4:("MsgEvent_CheckWornMask",),
0x8010B520:("MsgEvent_CheckAfterTime",),
0x8010B664:("MsgEvent_CheckBeforeTime",),
0x8010B7A8:("MsgEvent_CheckSwitchFlag",),
0x8010B828:("MsgEvent_SetSwitchFlag",),
0x8010B878:("MsgEvent_CheckItem",),
0x8010B8E4:("MsgEvent_CheckBetweenTime",),
0x8010BB0C:("MsgEvent_CheckOnDay",),
0x8010BB6C:("MsgEvent_CheckCallbackContinue",),
0x8010BBCC:("MsgEvent_CheckHasPowderKeg",),
0x8010BC28:("MsgEvent_DeleteItem",),
0x8010BC7C:("MsgEvent_CheckCallbackMulti",),
0x8010BD48:("MsgEvent_PlayerTalk",),
0x8010BD90:("MsgEvent_NotebookEvent",),
0x8010BDDC:("MsgEvent_AwaitTextDone",),
0x8010BE78:("MsgEvent_Jump3",),
0x8010BEBC:("MsgEvent_PlayDecide",),
0x8010BEF0:("MsgEvent_PlayCancel",),
0x8010BF24:("MsgEvent_PlayError",),
0x8010BF58:("MsgEvent_RunScript",),
0x8010C0C0:("Nmi_Init",),
0x8010C164:("Nmi_SetPrenmiStart",),
0x8010C19C:("Nmi_GetPrenmiHasStarted",),
@ -2499,8 +2499,8 @@
0x80132338:("Entrance_GetSceneIdAbsolute",),
0x80132374:("Entrance_GetSpawnNum",),
0x801323A0:("Entrance_GetTransitionFlags",),
0x801323D0:("Schedule_CheckFlagS",),
0x80132428:("Schedule_CheckFlagL",),
0x801323D0:("Schedule_CheckWeekEventRegS",),
0x80132428:("Schedule_CheckWeekEventRegL",),
0x80132494:("Schedule_CheckTimeRangeS",),
0x801326B8:("Schedule_CheckTimeRangeL",),
0x801328F0:("Schedule_ReturnValueL",),
@ -7123,7 +7123,7 @@
0x8092C740:("func_8092C740",),
0x8092C86C:("func_8092C86C",),
0x8092C934:("func_8092C934",),
0x8092C9BC:("func_8092C9BC",),
0x8092C9BC:("EnDns_GetMsgScript",),
0x8092CA74:("EnDns_GetCueType",),
0x8092CAD0:("func_8092CAD0",),
0x8092CB98:("func_8092CB98",),
@ -7592,7 +7592,7 @@
0x8094E69C:("func_8094E69C",),
0x8094EA34:("func_8094EA34",),
0x8094EB1C:("func_8094EB1C",),
0x8094EDBC:("func_8094EDBC",),
0x8094EDBC:("EnGm_GetMsgScript",),
0x8094EE84:("func_8094EE84",),
0x8094EFC4:("func_8094EFC4",),
0x8094F074:("func_8094F074",),
@ -9736,7 +9736,7 @@
0x80A14EB0:("EnGo_Thaw",),
0x80A14FC8:("EnGo_HandleSpringArrivalCutscene",),
0x80A153FC:("EnGo_Snowball",),
0x80A15684:("EnGo_GetMsgEventScript",),
0x80A15684:("EnGo_GetMsgScript",),
0x80A157C4:("EnGo_Talk",),
0x80A1590C:("EnGo_Init",),
0x80A15960:("EnGo_Destroy",),
@ -10564,7 +10564,7 @@
0x80A5086C:("func_80A5086C",),
0x80A50950:("func_80A50950",),
0x80A50D40:("func_80A50D40",),
0x80A50DF8:("func_80A50DF8",),
0x80A50DF8:("EnDnh_GetMsgScript",),
0x80A50E40:("func_80A50E40",),
0x80A50EC0:("func_80A50EC0",),
0x80A50F38:("func_80A50F38",),
@ -10600,7 +10600,7 @@
0x80A52A78:("func_80A52A78",),
0x80A52B68:("func_80A52B68",),
0x80A52C6C:("func_80A52C6C",),
0x80A52CF8:("func_80A52CF8",),
0x80A52CF8:("EnDnq_GetMsgScript",),
0x80A52D44:("func_80A52D44",),
0x80A52DC8:("func_80A52DC8",),
0x80A52FB8:("func_80A52FB8",),
@ -11233,7 +11233,7 @@
0x80A86B0C:("func_80A86B0C",),
0x80A86BAC:("func_80A86BAC",),
0x80A86DB8:("func_80A86DB8",),
0x80A871E0:("func_80A871E0",),
0x80A871E0:("EnTru_GetMsgScript",),
0x80A872AC:("func_80A872AC",),
0x80A873B8:("func_80A873B8",),
0x80A87400:("func_80A87400",),
@ -12468,7 +12468,7 @@
0x80AE6488:("func_80AE6488",),
0x80AE65F4:("func_80AE65F4",),
0x80AE6704:("func_80AE6704",),
0x80AE6880:("func_80AE6880",),
0x80AE6880:("EnShn_GetMsgScript",),
0x80AE68F0:("func_80AE68F0",),
0x80AE69E8:("func_80AE69E8",),
0x80AE6A64:("func_80AE6A64",),
@ -12740,7 +12740,7 @@
0x80AF81E8:("func_80AF81E8",),
0x80AF8348:("func_80AF8348",),
0x80AF8478:("func_80AF8478",),
0x80AF8540:("func_80AF8540",),
0x80AF8540:("EnPm_GetMsgScript",),
0x80AF86F0:("func_80AF86F0",),
0x80AF87C4:("func_80AF87C4",),
0x80AF8890:("func_80AF8890",),
@ -13376,7 +13376,7 @@
0x80B2B874:("EnPst_HandleLetterDay1",),
0x80B2B8F4:("EnPst_HandleLetterDay2",),
0x80B2B974:("EnPst_ChooseBehaviour",),
0x80B2BAA4:("EnPst_GetMsgEventScript",),
0x80B2BAA4:("EnPst_GetMsgScript",),
0x80B2BBFC:("EnPst_CheckTalk",),
0x80B2BCF8:("EnPst_SetOfferItemModeOnScreen",),
0x80B2BD30:("EnPst_ProcessScheduleOutput",),
@ -14025,7 +14025,7 @@
0x80B54BC4:("EnAn_MsgEvent_MidnightMeeting",),
0x80B54C5C:("EnAn_MsgEvent_Cooking",),
0x80B54D18:("EnAn_MsgEvent_LaundryPool",),
0x80B54DF4:("EnAn_GetMsgEventScript",),
0x80B54DF4:("EnAn_GetMsgScript",),
0x80B55180:("EnAn_CheckTalk",),
0x80B552E4:("EnAn_IsCouplesMaskCsPlaying",),
0x80B553AC:("EnAn_UpdateHeadRot",),
@ -15460,7 +15460,7 @@
0x80BC0050:("func_80BC0050",),
0x80BC00AC:("func_80BC00AC",),
0x80BC01DC:("func_80BC01DC",),
0x80BC045C:("func_80BC045C",),
0x80BC045C:("EnNb_GetMsgScript",),
0x80BC04FC:("func_80BC04FC",),
0x80BC05A8:("func_80BC05A8",),
0x80BC06C4:("func_80BC06C4",),
@ -15498,7 +15498,7 @@
0x80BC213C:("func_80BC213C",),
0x80BC2150:("func_80BC2150",),
0x80BC21A8:("func_80BC21A8",),
0x80BC2274:("func_80BC2274",),
0x80BC2274:("EnJa_GetMsgScript",),
0x80BC22F4:("func_80BC22F4",),
0x80BC2388:("EnJa_Init",),
0x80BC2498:("EnJa_Destroy",),
@ -15745,7 +15745,7 @@
0x80BD30C0:("func_80BD30C0",),
0x80BD3118:("func_80BD3118",),
0x80BD3198:("func_80BD3198",),
0x80BD3294:("func_80BD3294",),
0x80BD3294:("EnAh_GetMsgScript",),
0x80BD3320:("func_80BD3320",),
0x80BD3374:("func_80BD3374",),
0x80BD33FC:("func_80BD33FC",),
@ -16011,7 +16011,7 @@
0x80BDE7FC:("func_80BDE7FC",),
0x80BDE92C:("func_80BDE92C",),
0x80BDEA14:("func_80BDEA14",),
0x80BDEABC:("func_80BDEABC",),
0x80BDEABC:("EnAl_GetMsgScript",),
0x80BDEC2C:("func_80BDEC2C",),
0x80BDED20:("func_80BDED20",),
0x80BDEE5C:("func_80BDEE5C",),
@ -16046,7 +16046,7 @@
0x80BE0C04:("func_80BE0C04",),
0x80BE0D38:("func_80BE0D38",),
0x80BE0D60:("func_80BE0D60",),
0x80BE0E04:("func_80BE0E04",),
0x80BE0E04:("EnTab_GetMsgScript",),
0x80BE0F04:("func_80BE0F04",),
0x80BE0FC4:("func_80BE0FC4",),
0x80BE1060:("func_80BE1060",),
@ -16293,7 +16293,7 @@
0x80BF16C8:("func_80BF16C8",),
0x80BF1744:("func_80BF1744",),
0x80BF17BC:("func_80BF17BC",),
0x80BF1920:("func_80BF1920",),
0x80BF1920:("EnIg_GetMsgScript",),
0x80BF19A0:("func_80BF19A0",),
0x80BF1A60:("func_80BF1A60",),
0x80BF1AE0:("func_80BF1AE0",),
@ -17054,7 +17054,7 @@
0x80C2247C:("func_80C2247C",),
0x80C224D8:("func_80C224D8",),
0x80C227E8:("func_80C227E8",),
0x80C22880:("func_80C22880",),
0x80C22880:("DmTag_GetMsgScript",),
0x80C2291C:("func_80C2291C",),
0x80C229AC:("func_80C229AC",),
0x80C229EC:("DmTag_DoNothing",),

View File

@ -710,7 +710,7 @@ def null_or_ptr(w):
# (name, vrom_st, vrom_end, vram_st, vram_end)
def read_actor_ovl_tbl():
actortbl = []
with open(repo + "baseroms/n64-us/code","rb") as codefile:
with open(repo + "extracted/n64-us/baserom/code","rb") as codefile:
codefile.seek(0x109510) # actor overlay table offset into code
entry = as_word_list(codefile.read(0x20))
i = 0
@ -731,10 +731,10 @@ def resolve_symbol(address):
for entry in actor_tbl:
if address >= 0x80000000:
if entry[3] <= address < entry[4]:
return repo + "baserom" + os.sep + entry[0], address - entry[3]
return repo + "extracted/n64-us/baserom" + os.sep + entry[0], address - entry[3]
else:
if entry[1] <= address < entry[2]:
return repo + "baserom" + os.sep + entry[0], address - entry[1]
return repo + "extracted/n64-us/baserom" + os.sep + entry[0], address - entry[1]
else:
raise RuntimeError('Symbol not found in actor overlay table file ranges. Are you sure the file is an actor overlay?')

File diff suppressed because it is too large Load Diff

View File

@ -7,8 +7,8 @@ import argparse, os, struct, math
from actor_symbols import resolve_symbol
cmd_info = [
('SCHEDULE_CMD_CHECK_FLAG_S', 0x04, '>Hb', (1, )),
('SCHEDULE_CMD_CHECK_FLAG_L', 0x05, '>Hh', (1, )),
('SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_S', 0x04, '>Hb', (1, )),
('SCHEDULE_CMD_CHECK_WEEK_EVENT_REG_L', 0x05, '>Hh', (1, )),
('SCHEDULE_CMD_CHECK_TIME_RANGE_S', 0x06, '>BBBBb', (4, )),
('SCHEDULE_CMD_CHECK_TIME_RANGE_L', 0x07, '>BBBBh', (4, )),
('SCHEDULE_CMD_RET_VAL_L', 0x03, '>H', ( )),

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/Minimap_Draw.s,Minimap_Draw,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_CheckWeekEventReg.s,MsgEvent_CheckWeekEventReg,0x8010A760,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_CheckGoron.s,MsgEvent_CheckGoron,0x8010A7CC,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_CheckZora.s,MsgEvent_CheckZora,0x8010A814,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_CheckDeku.s,MsgEvent_CheckDeku,0x8010A85C,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_CheckHuman.s,MsgEvent_CheckHuman,0x8010A8A4,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_CheckTextChoice.s,MsgEvent_CheckTextChoice,0x8010A8EC,0x29
asm/non_matchings/code/z_msgevent/MsgEvent_OfferItem.s,MsgEvent_OfferItem,0x8010A990,0x31
asm/non_matchings/code/z_msgevent/MsgEvent_Autotalk.s,MsgEvent_Autotalk,0x8010AA54,0x37
asm/non_matchings/code/z_msgevent/MsgEvent_CheckRupees.s,MsgEvent_CheckRupees,0x8010AB30,0x19
asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallback.s,MsgEvent_CheckCallback,0x8010AB94,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_CheckDay.s,MsgEvent_CheckDay,0x8010AC00,0x49
asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextJump.s,MsgEvent_AwaitTextJump,0x8010AD24,0x2C
asm/non_matchings/code/z_msgevent/MsgEvent_AwaitText.s,MsgEvent_AwaitText,0x8010ADD4,0x1D
asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextEnd.s,MsgEvent_AwaitTextEnd,0x8010AE48,0x21
asm/non_matchings/code/z_msgevent/MsgEvent_BeginText.s,MsgEvent_BeginText,0x8010AECC,0x15
asm/non_matchings/code/z_msgevent/MsgEvent_ContinueText.s,MsgEvent_ContinueText,0x8010AF20,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_Done.s,MsgEvent_Done,0x8010AF6C,0xA
asm/non_matchings/code/z_msgevent/MsgEvent_SetWeekEventReg.s,MsgEvent_SetWeekEventReg,0x8010AF94,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_CloseText.s,MsgEvent_CloseText,0x8010AFE0,0xC
asm/non_matchings/code/z_msgevent/MsgEvent_SetCollectible.s,MsgEvent_SetCollectible,0x8010B010,0x17
asm/non_matchings/code/z_msgevent/MsgEvent_ChangeRupees.s,MsgEvent_ChangeRupees,0x8010B06C,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_Pause.s,MsgEvent_Pause,0x8010B0B4,0xA
asm/non_matchings/code/z_msgevent/MsgEvent_UnsetAutotalk.s,MsgEvent_UnsetAutotalk,0x8010B0DC,0xB
asm/non_matchings/code/z_msgevent/MsgEvent_FocusToChild.s,MsgEvent_FocusToChild,0x8010B108,0xE
asm/non_matchings/code/z_msgevent/MsgEvent_FocusToSelf.s,MsgEvent_FocusToSelf,0x8010B140,0x10
asm/non_matchings/code/z_msgevent/MsgEvent_Jump.s,MsgEvent_Jump,0x8010B180,0xF
asm/non_matchings/code/z_msgevent/MsgEvent_CheckQuestItem.s,MsgEvent_CheckQuestItem,0x8010B1BC,0x1C
asm/non_matchings/code/z_msgevent/MsgEvent_CheckEventInf.s,MsgEvent_CheckEventInf,0x8010B22C,0x16
asm/non_matchings/code/z_msgevent/MsgEvent_SetEventInf.s,MsgEvent_SetEventInf,0x8010B284,0xF
asm/non_matchings/code/z_msgevent/MsgEvent_UnsetEventInf.s,MsgEvent_UnsetEventInf,0x8010B2C0,0x10
asm/non_matchings/code/z_msgevent/MsgEvent_CheckItemAction.s,MsgEvent_CheckItemAction,0x8010B300,0x4D
asm/non_matchings/code/z_msgevent/MsgEvent_CheckHasSong.s,MsgEvent_CheckHasSong,0x8010B434,0x1C
asm/non_matchings/code/z_msgevent/MsgEvent_CheckWornMask.s,MsgEvent_CheckWornMask,0x8010B4A4,0x1F
asm/non_matchings/code/z_msgevent/MsgEvent_CheckAfterTime.s,MsgEvent_CheckAfterTime,0x8010B520,0x51
asm/non_matchings/code/z_msgevent/MsgEvent_CheckBeforeTime.s,MsgEvent_CheckBeforeTime,0x8010B664,0x51
asm/non_matchings/code/z_msgevent/MsgEvent_CheckSwitchFlag.s,MsgEvent_CheckSwitchFlag,0x8010B7A8,0x20
asm/non_matchings/code/z_msgevent/MsgEvent_SetSwitchFlag.s,MsgEvent_SetSwitchFlag,0x8010B828,0x14
asm/non_matchings/code/z_msgevent/MsgEvent_CheckItem.s,MsgEvent_CheckItem,0x8010B878,0x1B
asm/non_matchings/code/z_msgevent/MsgEvent_CheckBetweenTime.s,MsgEvent_CheckBetweenTime,0x8010B8E4,0x8A
asm/non_matchings/code/z_msgevent/MsgEvent_CheckOnDay.s,MsgEvent_CheckOnDay,0x8010BB0C,0x18
asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallbackContinue.s,MsgEvent_CheckCallbackContinue,0x8010BB6C,0x18
asm/non_matchings/code/z_msgevent/MsgEvent_CheckHasPowderKeg.s,MsgEvent_CheckHasPowderKeg,0x8010BBCC,0x17
asm/non_matchings/code/z_msgevent/MsgEvent_DeleteItem.s,MsgEvent_DeleteItem,0x8010BC28,0x15
asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallbackMulti.s,MsgEvent_CheckCallbackMulti,0x8010BC7C,0x33
asm/non_matchings/code/z_msgevent/MsgEvent_PlayerTalk.s,MsgEvent_PlayerTalk,0x8010BD48,0x12
asm/non_matchings/code/z_msgevent/MsgEvent_NotebookEvent.s,MsgEvent_NotebookEvent,0x8010BD90,0x13
asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextDone.s,MsgEvent_AwaitTextDone,0x8010BDDC,0x27
asm/non_matchings/code/z_msgevent/MsgEvent_Jump3.s,MsgEvent_Jump3,0x8010BE78,0x11
asm/non_matchings/code/z_msgevent/MsgEvent_PlayDecide.s,MsgEvent_PlayDecide,0x8010BEBC,0xD
asm/non_matchings/code/z_msgevent/MsgEvent_PlayCancel.s,MsgEvent_PlayCancel,0x8010BEF0,0xD
asm/non_matchings/code/z_msgevent/MsgEvent_PlayError.s,MsgEvent_PlayError,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/Minimap_Draw.s Minimap_Draw 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_CheckWeekEventReg.s func_8010A760 MsgEvent_CheckWeekEventReg 0x8010A760 0x1B
1527 asm/non_matchings/code/z_msgevent/func_8010A7CC.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckGoron.s func_8010A7CC MsgEvent_CheckGoron 0x8010A7CC 0x12
1528 asm/non_matchings/code/z_msgevent/func_8010A814.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckZora.s func_8010A814 MsgEvent_CheckZora 0x8010A814 0x12
1529 asm/non_matchings/code/z_msgevent/func_8010A85C.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckDeku.s func_8010A85C MsgEvent_CheckDeku 0x8010A85C 0x12
1530 asm/non_matchings/code/z_msgevent/func_8010A8A4.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckHuman.s func_8010A8A4 MsgEvent_CheckHuman 0x8010A8A4 0x12
1531 asm/non_matchings/code/z_msgevent/func_8010A8EC.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckTextChoice.s func_8010A8EC MsgEvent_CheckTextChoice 0x8010A8EC 0x29
1532 asm/non_matchings/code/z_msgevent/func_8010A990.s asm/non_matchings/code/z_msgevent/MsgEvent_OfferItem.s func_8010A990 MsgEvent_OfferItem 0x8010A990 0x31
1533 asm/non_matchings/code/z_msgevent/func_8010AA54.s asm/non_matchings/code/z_msgevent/MsgEvent_Autotalk.s func_8010AA54 MsgEvent_Autotalk 0x8010AA54 0x37
1534 asm/non_matchings/code/z_msgevent/func_8010AB30.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckRupees.s func_8010AB30 MsgEvent_CheckRupees 0x8010AB30 0x19
1535 asm/non_matchings/code/z_msgevent/func_8010AB94.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallback.s func_8010AB94 MsgEvent_CheckCallback 0x8010AB94 0x1B
1536 asm/non_matchings/code/z_msgevent/func_8010AC00.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckDay.s func_8010AC00 MsgEvent_CheckDay 0x8010AC00 0x49
1537 asm/non_matchings/code/z_msgevent/func_8010AD24.s asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextJump.s func_8010AD24 MsgEvent_AwaitTextJump 0x8010AD24 0x2C
1538 asm/non_matchings/code/z_msgevent/func_8010ADD4.s asm/non_matchings/code/z_msgevent/MsgEvent_AwaitText.s func_8010ADD4 MsgEvent_AwaitText 0x8010ADD4 0x1D
1539 asm/non_matchings/code/z_msgevent/func_8010AE48.s asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextEnd.s func_8010AE48 MsgEvent_AwaitTextEnd 0x8010AE48 0x21
1540 asm/non_matchings/code/z_msgevent/func_8010AECC.s asm/non_matchings/code/z_msgevent/MsgEvent_BeginText.s func_8010AECC MsgEvent_BeginText 0x8010AECC 0x15
1541 asm/non_matchings/code/z_msgevent/func_8010AF20.s asm/non_matchings/code/z_msgevent/MsgEvent_ContinueText.s func_8010AF20 MsgEvent_ContinueText 0x8010AF20 0x13
1542 asm/non_matchings/code/z_msgevent/func_8010AF6C.s asm/non_matchings/code/z_msgevent/MsgEvent_Done.s func_8010AF6C MsgEvent_Done 0x8010AF6C 0xA
1543 asm/non_matchings/code/z_msgevent/func_8010AF94.s asm/non_matchings/code/z_msgevent/MsgEvent_SetWeekEventReg.s func_8010AF94 MsgEvent_SetWeekEventReg 0x8010AF94 0x13
1544 asm/non_matchings/code/z_msgevent/func_8010AFE0.s asm/non_matchings/code/z_msgevent/MsgEvent_CloseText.s func_8010AFE0 MsgEvent_CloseText 0x8010AFE0 0xC
1545 asm/non_matchings/code/z_msgevent/func_8010B010.s asm/non_matchings/code/z_msgevent/MsgEvent_SetCollectible.s func_8010B010 MsgEvent_SetCollectible 0x8010B010 0x17
1546 asm/non_matchings/code/z_msgevent/func_8010B06C.s asm/non_matchings/code/z_msgevent/MsgEvent_ChangeRupees.s func_8010B06C MsgEvent_ChangeRupees 0x8010B06C 0x12
1547 asm/non_matchings/code/z_msgevent/func_8010B0B4.s asm/non_matchings/code/z_msgevent/MsgEvent_Pause.s func_8010B0B4 MsgEvent_Pause 0x8010B0B4 0xA
1548 asm/non_matchings/code/z_msgevent/func_8010B0DC.s asm/non_matchings/code/z_msgevent/MsgEvent_UnsetAutotalk.s func_8010B0DC MsgEvent_UnsetAutotalk 0x8010B0DC 0xB
1549 asm/non_matchings/code/z_msgevent/func_8010B108.s asm/non_matchings/code/z_msgevent/MsgEvent_FocusToChild.s func_8010B108 MsgEvent_FocusToChild 0x8010B108 0xE
1550 asm/non_matchings/code/z_msgevent/func_8010B140.s asm/non_matchings/code/z_msgevent/MsgEvent_FocusToSelf.s func_8010B140 MsgEvent_FocusToSelf 0x8010B140 0x10
1551 asm/non_matchings/code/z_msgevent/func_8010B180.s asm/non_matchings/code/z_msgevent/MsgEvent_Jump.s func_8010B180 MsgEvent_Jump 0x8010B180 0xF
1552 asm/non_matchings/code/z_msgevent/func_8010B1BC.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckQuestItem.s func_8010B1BC MsgEvent_CheckQuestItem 0x8010B1BC 0x1C
1553 asm/non_matchings/code/z_msgevent/func_8010B22C.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckEventInf.s func_8010B22C MsgEvent_CheckEventInf 0x8010B22C 0x16
1554 asm/non_matchings/code/z_msgevent/func_8010B284.s asm/non_matchings/code/z_msgevent/MsgEvent_SetEventInf.s func_8010B284 MsgEvent_SetEventInf 0x8010B284 0xF
1555 asm/non_matchings/code/z_msgevent/func_8010B2C0.s asm/non_matchings/code/z_msgevent/MsgEvent_UnsetEventInf.s func_8010B2C0 MsgEvent_UnsetEventInf 0x8010B2C0 0x10
1556 asm/non_matchings/code/z_msgevent/func_8010B300.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckItemAction.s func_8010B300 MsgEvent_CheckItemAction 0x8010B300 0x4D
1557 asm/non_matchings/code/z_msgevent/func_8010B434.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckHasSong.s func_8010B434 MsgEvent_CheckHasSong 0x8010B434 0x1C
1558 asm/non_matchings/code/z_msgevent/func_8010B4A4.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckWornMask.s func_8010B4A4 MsgEvent_CheckWornMask 0x8010B4A4 0x1F
1559 asm/non_matchings/code/z_msgevent/func_8010B520.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckAfterTime.s func_8010B520 MsgEvent_CheckAfterTime 0x8010B520 0x51
1560 asm/non_matchings/code/z_msgevent/func_8010B664.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckBeforeTime.s func_8010B664 MsgEvent_CheckBeforeTime 0x8010B664 0x51
1561 asm/non_matchings/code/z_msgevent/func_8010B7A8.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckSwitchFlag.s func_8010B7A8 MsgEvent_CheckSwitchFlag 0x8010B7A8 0x20
1562 asm/non_matchings/code/z_msgevent/func_8010B828.s asm/non_matchings/code/z_msgevent/MsgEvent_SetSwitchFlag.s func_8010B828 MsgEvent_SetSwitchFlag 0x8010B828 0x14
1563 asm/non_matchings/code/z_msgevent/func_8010B878.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckItem.s func_8010B878 MsgEvent_CheckItem 0x8010B878 0x1B
1564 asm/non_matchings/code/z_msgevent/func_8010B8E4.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckBetweenTime.s func_8010B8E4 MsgEvent_CheckBetweenTime 0x8010B8E4 0x8A
1565 asm/non_matchings/code/z_msgevent/func_8010BB0C.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckOnDay.s func_8010BB0C MsgEvent_CheckOnDay 0x8010BB0C 0x18
1566 asm/non_matchings/code/z_msgevent/func_8010BB6C.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallbackContinue.s func_8010BB6C MsgEvent_CheckCallbackContinue 0x8010BB6C 0x18
1567 asm/non_matchings/code/z_msgevent/func_8010BBCC.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckHasPowderKeg.s func_8010BBCC MsgEvent_CheckHasPowderKeg 0x8010BBCC 0x17
1568 asm/non_matchings/code/z_msgevent/func_8010BC28.s asm/non_matchings/code/z_msgevent/MsgEvent_DeleteItem.s func_8010BC28 MsgEvent_DeleteItem 0x8010BC28 0x15
1569 asm/non_matchings/code/z_msgevent/func_8010BC7C.s asm/non_matchings/code/z_msgevent/MsgEvent_CheckCallbackMulti.s func_8010BC7C MsgEvent_CheckCallbackMulti 0x8010BC7C 0x33
1570 asm/non_matchings/code/z_msgevent/func_8010BD48.s asm/non_matchings/code/z_msgevent/MsgEvent_PlayerTalk.s func_8010BD48 MsgEvent_PlayerTalk 0x8010BD48 0x12
1571 asm/non_matchings/code/z_msgevent/func_8010BD90.s asm/non_matchings/code/z_msgevent/MsgEvent_NotebookEvent.s func_8010BD90 MsgEvent_NotebookEvent 0x8010BD90 0x13
1572 asm/non_matchings/code/z_msgevent/func_8010BDDC.s asm/non_matchings/code/z_msgevent/MsgEvent_AwaitTextDone.s func_8010BDDC MsgEvent_AwaitTextDone 0x8010BDDC 0x27
1573 asm/non_matchings/code/z_msgevent/func_8010BE78.s asm/non_matchings/code/z_msgevent/MsgEvent_Jump3.s func_8010BE78 MsgEvent_Jump3 0x8010BE78 0x11
1574 asm/non_matchings/code/z_msgevent/func_8010BEBC.s asm/non_matchings/code/z_msgevent/MsgEvent_PlayDecide.s func_8010BEBC MsgEvent_PlayDecide 0x8010BEBC 0xD
1575 asm/non_matchings/code/z_msgevent/func_8010BEF0.s asm/non_matchings/code/z_msgevent/MsgEvent_PlayCancel.s func_8010BEF0 MsgEvent_PlayCancel 0x8010BEF0 0xD
1576 asm/non_matchings/code/z_msgevent/func_8010BF24.s asm/non_matchings/code/z_msgevent/MsgEvent_PlayError.s func_8010BF24 MsgEvent_PlayError 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

View File

@ -140,7 +140,7 @@ weekEventReg = {
(16 << 8) | 0x20: "WEEKEVENTREG_16_20",
(16 << 8) | 0x40: "WEEKEVENTREG_16_40",
(16 << 8) | 0x80: "WEEKEVENTREG_16_80",
(17 << 8) | 0x01: "WEEKEVENTREG_TALKED_EMPTY_BOAT_CRUISE",
(17 << 8) | 0x01: "WEEKEVENTREG_TALKED_KOUME_KIOSK_EMPTY",
(17 << 8) | 0x02: "WEEKEVENTREG_17_02",
(17 << 8) | 0x04: "WEEKEVENTREG_17_04",
(17 << 8) | 0x08: "WEEKEVENTREG_17_08",