diff --git a/include/JSystem/JMessage/control.h b/include/JSystem/JMessage/control.h index 17c271167cc..e1a49e2fa43 100644 --- a/include/JSystem/JMessage/control.h +++ b/include/JSystem/JMessage/control.h @@ -3,4 +3,21 @@ #include "dolphin/types.h" +namespace JMessage { + struct TProcessor; + + struct TControl { + /* 802A7548 */ TControl(); + /* 802A758C */ ~TControl(); + /* 802A75D4 */ void reset(); + /* 802A7634 */ void update(); + /* 802A76BC */ void render(); + /* 802A77E8 */ void setMessageCode(u16, u16); + /* 802A78F4 */ void setMessageID(u32, u32, bool*); + /* 802A7A20 */ void setMessageCode_inSequence_(JMessage::TProcessor const*, u16, u16); + }; +}; + +struct jmessage_tControl {}; + #endif /* CONTROL_H */ diff --git a/include/JSystem/JMessage/data.h b/include/JSystem/JMessage/data.h index 078c133eecf..1281f2419b8 100644 --- a/include/JSystem/JMessage/data.h +++ b/include/JSystem/JMessage/data.h @@ -3,4 +3,10 @@ #include "dolphin/types.h" +namespace JMessage { + struct data { + static f32 ga4cSignature[1 + 1 /* padding */]; + }; +}; + #endif /* DATA_H */ diff --git a/include/JSystem/JMessage/locale.h b/include/JSystem/JMessage/locale.h index ba4cad85ce0..321a3bda582 100644 --- a/include/JSystem/JMessage/locale.h +++ b/include/JSystem/JMessage/locale.h @@ -3,4 +3,13 @@ #include "dolphin/types.h" +namespace JMessage { + struct locale { + /* 802A9490 */ void parseCharacter_1Byte(char const**); + /* 802A94A8 */ void parseCharacter_2Byte(char const**); + /* 802A9528 */ void parseCharacter_ShiftJIS(char const**); + /* 802A958C */ void parseCharacter_UTF8(char const**); + }; +}; + #endif /* LOCALE_H */ diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h index ee4ddd2ba64..90e8aee8af4 100644 --- a/include/JSystem/JMessage/processor.h +++ b/include/JSystem/JMessage/processor.h @@ -2,5 +2,111 @@ #define PROCESSOR_H #include "dolphin/types.h" +#include "SSystem/SComponent/c_xyz.h" + +namespace JMessage { + struct TProcessor { + /* 802A7B48 */ ~TProcessor(); + /* 802A7B90 */ void reset(); + /* 802A7BF8 */ void stack_pushCurrent(char const*); + /* 802A7C30 */ void stack_popCurrent(); + /* 802A7C54 */ void getResource_groupID(u16) const; + /* 802A7CD4 */ void toMessageCode_messageID(u32, u32, bool*) const; + /* 802A7E38 */ void on_select_begin(char const* (*)(JMessage::TProcessor*), void const*, + char const*, u32); + /* 802A7EDC */ void on_select_end(); + /* 802A7F34 */ void on_select_separate(); + /* 802A7FC0 */ void do_reset(); + /* 802A7FC4 */ void do_begin(void const*, char const*); + /* 802A7FC8 */ void do_end(); + /* 802A7FCC */ void do_character(int); + /* 802A7FD0 */ bool do_tag(u32, void const*, u32); + /* 802A7FD8 */ void do_select_begin(u32); + /* 802A7FDC */ void do_select_end(); + /* 802A7FE0 */ void do_select_separate(); + /* 802A7FE4 */ void on_tag_(); + /* 802A8084 */ void do_resetStatus_(char const*); + /* 802A8088 */ bool do_setBegin_isReady_() const; + /* 802A8090 */ void do_tag_(u32, void const*, u32); + /* 802A81EC */ void process_character_(); + /* 802A828C */ void process_onCharacterEnd_normal_(JMessage::TProcessor*); + /* 802A82F4 */ void process_onCharacterEnd_select_(JMessage::TProcessor*); + /* 802A833C */ void process_onSelect_limited_(JMessage::TProcessor*); + /* 802A8358 */ void process_onSelect_(JMessage::TProcessor*); + /* 802A8C24 */ void on_message(u32) const; + /* 802A8C44 */ void getMessageText_messageCode(u32) const; + }; + + struct TReference { + /* 802A7AF8 */ ~TReference(); + /* 802A7B40 */ bool do_word(u32) const; + }; + + struct TControl; + + struct TSequenceProcessor { + /* 802A8374 */ TSequenceProcessor(JMessage::TReference const*, JMessage::TControl*); + /* 802A83B8 */ ~TSequenceProcessor(); + /* 802A8418 */ void process(char const*); + /* 802A85A4 */ void on_isReady(); + /* 802A85D0 */ void on_jump_register(void const* (*)(JMessage::TSequenceProcessor const*), + u32); + /* 802A85E4 */ void on_jump_isReady(); + /* 802A8610 */ void on_jump(void const*, char const*); + /* 802A8690 */ void on_branch_register(void const* (*)(JMessage::TSequenceProcessor const*, + u32), + void const*, u32); + /* 802A86A0 */ void on_branch_query(u32); + /* 802A86D4 */ void on_branch_queryResult(); + /* 802A8700 */ void on_branch(void const*, char const*); + /* 802A8780 */ bool do_isReady(); + /* 802A8788 */ bool do_jump_isReady(); + /* 802A8790 */ void do_jump(void const*, char const*); + /* 802A8794 */ void do_branch_query(u32); + /* 802A8798 */ s32 do_branch_queryResult(); + /* 802A87A0 */ void do_branch(void const*, char const*); + /* 802A87A4 */ void do_resetStatus_(char const*); + /* 802A87C0 */ void do_setBegin_isReady_() const; + /* 802A87D0 */ void do_begin_(void const*, char const*); + /* 802A87D4 */ void do_end_(); + /* 802A87E0 */ void do_tag_(u32, void const*, u32); + /* 802A892C */ void process_setMessageIndex_reserved_(u16); + /* 802A8944 */ void process_setMessageCode_(JMessage::TSequenceProcessor const*, u16, u16); + /* 802A89B8 */ void process_onJump_limited_(JMessage::TSequenceProcessor const*); + /* 802A89EC */ void process_onJump_(JMessage::TSequenceProcessor const*); + /* 802A8A18 */ void process_onBranch_limited_(JMessage::TSequenceProcessor const*, u32); + /* 802A8A50 */ void process_onBranch_(JMessage::TSequenceProcessor const*, u32); + }; + + struct TRenderingProcessor { + /* 802A8A84 */ TRenderingProcessor(JMessage::TReference const*); + /* 802A8AC0 */ ~TRenderingProcessor(); + /* 802A8B20 */ void process(char const*); + /* 802A8BA4 */ void do_begin_(void const*, char const*); + /* 802A8BA8 */ void do_end_(); + /* 802A8BAC */ void do_tag_(u32, void const*, u32); + }; +}; + +struct jmessage_tReference { + /* 80228B04 */ jmessage_tReference(); + /* 80229034 */ void pageSend(); + /* 80229168 */ void selectMessage(); + /* 802294A8 */ void inputNumber(); + /* 802297E4 */ void shiftCharCountBuffer(); + /* 80229810 */ void resetCharCountBuffer(); + /* 8022994C */ void isLightEnd(); + /* 80238C78 */ void setActorPos(cXyz); +}; + +struct jmessage_tControl; +struct jmessage_tSequenceProcessor { + /* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*); +}; + +struct jmessage_tRenderingProcessor { + /* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*); + /* 8022E12C */ void resetRendering(); +}; #endif /* PROCESSOR_H */ diff --git a/include/JSystem/JMessage/resource.h b/include/JSystem/JMessage/resource.h index 9af4326e35b..820b824194c 100644 --- a/include/JSystem/JMessage/resource.h +++ b/include/JSystem/JMessage/resource.h @@ -3,4 +3,33 @@ #include "dolphin/types.h" +namespace JMessage { + struct TResource { + /* 802A8CDC */ void toMessageIndex_messageID(u32, u32, bool*) const; + }; + + struct TResourceContainer { + struct TCResource { + /* 802A8EC0 */ TCResource(); + /* 802A8EF8 */ ~TCResource(); + /* 802A8F6C */ void Get_groupID(u16); + /* 802A8FFC */ void Do_create(); + /* 802A9048 */ void Do_destroy(JMessage::TResource*); + }; + + /* 802A906C */ TResourceContainer(); + /* 802A90B8 */ void setEncoding(u8); + /* 802A90F0 */ void setEncoding_(u8); + + static void* sapfnParseCharacter_[5]; + }; + + struct TParse { + /* 802A9130 */ TParse(JMessage::TResourceContainer*); + /* 802A9158 */ ~TParse(); + /* 802A91B8 */ void parseHeader_next(void const**, u32*, u32); + /* 802A92F4 */ void parseBlock_next(void const**, u32*, u32); + }; +}; + #endif /* RESOURCE_H */ diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 00f1a7861b4..4a7927419a7 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -1815,7 +1815,7 @@ public: /* 8011F0F4 */ void procDungeonWarp(); /* 8011F360 */ void procDungeonWarpSceneStartInit(); /* 8011F460 */ void procDungeonWarpSceneStart(); - /* 8011F658 */ void checkAcceptWarp(); + /* 8011F658 */ bool checkAcceptWarp(); /* 8011F7D8 */ void dungeonReturnWarp(); /* 8011F9EC */ void checkWarpStart(); /* 8011FBC0 */ void warpModelTexScroll(); @@ -2213,9 +2213,9 @@ public: virtual bool checkIronBallGroundStop() const; virtual BOOL checkSingleBoarBattleSecondBowReady() const; virtual void setClothesChange(int); - virtual void setPlayerPosAndAngle(float (*)[4]); - virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); virtual void setPlayerPosAndAngle(cXyz const*, short, int); + virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); + virtual void setPlayerPosAndAngle(float (*)[4]); virtual bool setThrowDamage(short, float, float, int, int, int); virtual bool checkSetNpcTks(cXyz*, int, int); virtual bool setRollJump(float, float, short); @@ -2259,7 +2259,7 @@ public: virtual void skipPortalObjWarp(); virtual bool checkTreasureRupeeReturn(int) const; virtual void setSumouReady(fopAc_ac_c*); - virtual void checkAcceptDungeonWarpAlink(int); + virtual bool checkAcceptDungeonWarpAlink(int); virtual s16 getSumouCounter() const; virtual s16 checkSumouWithstand() const; virtual void cancelGoronThrowEvent(); @@ -2338,6 +2338,7 @@ public: field_0x2844.clearData(); } s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); } + u16 getMidnaMsgNum() const { return mMidnaMsgNum; } BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } @@ -4372,6 +4373,8 @@ public: FORCE_PANIC = 8, }; + enum daMidna_FLG0 { NPC_NEAR = 0x100000, NPC_FAR = 0x40000 }; + enum daMidna_FLG1 { FORCE_NORMAL_COLOR = 8, FORCE_TIRED_COLOR = 4 }; enum daMidna_ANM {}; @@ -4427,12 +4430,15 @@ public: /* 804C61A4 */ ~daMidna_c(); void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } - u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; } + u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; } + u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; } void setFaceNum(int num) { mFaceNum = num; } void setMotionNum(int num) { mMotionNum = num; } bool checkDemoTypeNone() const { return mDemoType == 0; } void changeOriginalDemo() { mDemoType = 3; } void changeDemoMode(u32 mode) { mDemoMode = mode; } + BOOL checkNpcNear() { return checkStateFlg0(NPC_NEAR); } + BOOL checkNpcFar() { return checkStateFlg0(NPC_FAR); } inline bool checkMidnaRealBody(); diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 4aa5cfc1e07..e731cd5086d 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -419,9 +419,9 @@ public: virtual BOOL checkSingleBoarBattleSecondBowReady() const; virtual bool checkPointSubWindowMode() const; virtual void setClothesChange(int); - virtual void setPlayerPosAndAngle(float (*)[4]); - virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); virtual void setPlayerPosAndAngle(cXyz const*, short, int); + virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); + virtual void setPlayerPosAndAngle(float (*)[4]); virtual bool setThrowDamage(short, float, float, int, int, int); virtual bool checkSetNpcTks(cXyz*, int, int); virtual bool setRollJump(float, float, short); @@ -523,6 +523,7 @@ public: bool checkCanoeSlider() const { return mSpecialMode == 0x2D; } u8 getCutType() const { return mCutType; } u16 getSwordAtUpTime() const { return mSwordUpTimer; } + bool checkWaterInMove() const { return i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); } // some functions use these function as an inline // is there a better way to handle this? diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index d8dc4a74785..63c4cba8923 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -262,7 +262,7 @@ public: mASetFlagForce = flag; } - void setItemRupeeCount(int rupees) { mItemRupeeCount += rupees; } + void setItemRupeeCount(s32 rupees) { mItemRupeeCount += rupees; } void setItemMagicCount(s16 magic) { mItemMagicCount += magic; } void setItemMaxMagicCount(s16 max) { mItemMaxMagicCount += max; } void setItemArrowNumCount(s16 arrows) { mItemArrowNumCount += arrows; } @@ -277,6 +277,7 @@ public: void setItemNowLife(u16 life) { mItemNowLife = life; } void setItemNowMagic(s16 magic) { mItemNowMagicCount = magic; } void setItemNowOil(s32 oil) { mItemNowOil = oil; } + void setItemOilCount(s32 oil) { mItemOilCount += oil; } s16 getItemMaxLifeCount() { return mItemMaxLifeCount; } f32 getItemLifeCount() { return mItemLifeCount; } void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; } @@ -352,6 +353,7 @@ public: void show2dOn() { mShow2D = 1; } s8 getLayerOld() { return mLayerOld; } void setMesgCancelButton(u8 button) { mMesgCancelButton = button; } + int getMessageCountNumber() { return mMessageCountNum; } public: /* 0x00000 */ dBgS mBgs; @@ -403,15 +405,15 @@ public: /* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong /* 0x04E84 */ dMsgObject_c* mMsgObjectClass; /* 0x04E88 */ f32 mItemLifeCount; - /* 0x04E8C */ int mItemRupeeCount; + /* 0x04E8C */ s32 mItemRupeeCount; /* 0x04E90 */ s16 mItemKeyNumCount; /* 0x04E92 */ s16 mItemMaxLifeCount; /* 0x04E94 */ s16 mItemMagicCount; /* 0x04E96 */ s16 mItemNowMagicCount; /* 0x04E98 */ s16 mItemMaxMagicCount; /* 0x04E9A */ s16 field_0x4e9a; - /* 0x04E9C */ int mItemOilCount; - /* 0x04EA0 */ int mItemNowOil; + /* 0x04E9C */ s32 mItemOilCount; + /* 0x04EA0 */ s32 mItemNowOil; /* 0x04EA4 */ int mItemMaxOilCount; /* 0x04EA8 */ int mOxygen; /* 0x04EAC */ int mNowOxygen; @@ -425,8 +427,8 @@ public: /* 0x04EC8 */ u8 field_0x4ec8[4]; /* 0x04ECC */ s16 mItemMaxBombNumCount1; /* 0x04ECE */ s16 mItemMaxBombNumCount2; - /* 0x04ED0 */ u8 field_0x4ed0[6]; - /* 0x04ED6 */ s16 mItemMaxBombNumCount3; + /* 0x04ED0 */ u8 field_0x4ed0[4]; + /* 0x04ED4 */ int mMessageCountNum; /* 0x04ED8 */ u8 field_0x4ed8[6]; /* 0x04EDE */ u16 mItemNowLife; /* 0x04EE0 */ u8 field_0x4ee0[2]; @@ -712,6 +714,11 @@ void dComIfGs_setSelectEquipShield(u8 i_itemNo); int dComIfGs_isItemFirstBit(u8 i_itemNo); u16 dComIfGs_getRupee(); BOOL dComIfGs_isVisitedRoom(int i_roomNo); +void dComIfGs_onZoneSwitch(int swBit, int roomNo); +void dComIfGs_onOneZoneSwitch(int param_0, int param_1); +void dComIfGs_offZoneSwitch(int param_0, int param_1); +void dComIfGs_offOneZoneSwitch(int param_0, int param_1); +s8 dComIfGp_getReverb(int roomNo); inline void dComIfGs_onDungeonItemMap() { g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemMap(); @@ -962,6 +969,10 @@ inline BOOL dComIfGs_isSaveTbox(int i_stageNo, int i_no) { return g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().isTbox(i_no); } +inline BOOL dComIfGs_isSaveDunSwitch(int i_no) { + return g_dComIfG_gameInfo.info.getDan().isSwitch(i_no); +} + inline void dComIfGs_onSaveSwitch(int i_stageNo, int i_no) { g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().onSwitch(i_no); } @@ -970,6 +981,10 @@ inline void dComIfGs_onSaveSwitch(int i_no) { g_dComIfG_gameInfo.info.getMemory().getBit().onSwitch(i_no); } +inline void dComIfGs_offSaveSwitch(int i_no) { + g_dComIfG_gameInfo.info.getMemory().getBit().offSwitch(i_no); +} + inline void dComIfGs_offSaveSwitch(int i_stageNo, int i_no) { g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().offSwitch(i_no); } @@ -1034,6 +1049,10 @@ inline BOOL dComIfGs_isTmpBit(u16 flag) { return g_dComIfG_gameInfo.info.getTmp().isEventBit(flag); } +inline void dComIfGs_onTmpBit(u16 flag) { + g_dComIfG_gameInfo.info.getTmp().onEventBit(flag); +} + inline BOOL dComIfGs_isTransformLV(int i_no) { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusB().isTransformLV(i_no); } @@ -1166,6 +1185,10 @@ inline void dComIfGs_onSaveDunSwitch(int flag) { g_dComIfG_gameInfo.info.getDan().onSwitch(flag); } +inline void dComIfGs_offSaveDunSwitch(int flag) { + g_dComIfG_gameInfo.info.getDan().offSwitch(flag); +} + inline u8 dComIfGs_getDataNum() { return g_dComIfG_gameInfo.info.getDataNum(); } @@ -1244,6 +1267,38 @@ inline void dComIfGs_initDan(s8 i_stageNo) { g_dComIfG_gameInfo.info.initDan(i_stageNo); } +inline u16 dComIfGs_getRupeeMax() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getRupeeMax(); +} + +inline void dComIfGs_onLightDropGetFlag(u8 level) { + g_dComIfG_gameInfo.info.getPlayer().getLightDrop().onLightDropGetFlag(level); +} + +inline void dComIfGs_setTmpReg(u16 reg, u8 flag) { + g_dComIfG_gameInfo.info.getTmp().setEventReg(reg, flag); +} + +inline u8 dComIfGs_getTmpReg(u16 reg) { + return g_dComIfG_gameInfo.info.getTmp().getEventReg(reg); +} + +inline void dComIfGs_setWarashibeItem(u8 itemNo) { + g_dComIfG_gameInfo.info.getPlayer().getItem().setWarashibeItem(itemNo); +} + +inline void dComIfGs_setBottleItemIn(u8 curItem, u8 newItem) { + g_dComIfG_gameInfo.info.getPlayer().getItem().setBottleItemIn(curItem, newItem); +} + +inline u8 dComIfGs_checkInsectBottle() { + return g_dComIfG_gameInfo.info.getPlayer().getItem().checkInsectBottle(); +} + +inline u8 dComIfGs_checkBombBag(u8 i_itemNo) { + return g_dComIfG_gameInfo.info.getPlayer().getItem().checkBombBag(i_itemNo); +} + void dComIfGp_setItemLifeCount(f32 amount, u8 type); void dComIfGp_setItemRupeeCount(long amount); void dComIfGp_setSelectItem(int index); @@ -1667,6 +1722,10 @@ inline void dComIfGp_setItemNowOil(s32 oil) { g_dComIfG_gameInfo.play.setItemNowOil(oil); } +inline void dComIfGp_setItemOilCount(s32 oil) { + g_dComIfG_gameInfo.play.setItemOilCount(oil); +} + inline bool dComIfGp_isDoSetFlag(u8 flag) { return g_dComIfG_gameInfo.play.isDoSetFlag(flag); } @@ -1739,6 +1798,10 @@ inline u8 dComIfGp_getItemLifeCountType() { return g_dComIfG_gameInfo.play.getItemLifeCountType(); } +inline int dComIfGp_getMessageCountNumber() { + return g_dComIfG_gameInfo.play.getMessageCountNumber(); +} + inline void dComIfGp_setCameraParamFileName(int i, char* name) { g_dComIfG_gameInfo.play.setCameraParamFileName(i, name); } diff --git a/include/d/com/d_com_static.h b/include/d/com/d_com_static.h index 62fa73bf14e..80bf69ee89e 100644 --- a/include/d/com/d_com_static.h +++ b/include/d/com/d_com_static.h @@ -4,6 +4,8 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" +int daNpcKakashi_getSwdTutorialStep(); + class daSus_c { public: class data_c { diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 8fef2d38f77..ae0e3dc679f 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -204,7 +204,7 @@ public: /* 0x04 */ f32 mSeaLevel; /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 field_0xc; - /* 0x10 */ u8 field_0x10[9]; + /* 0x10 */ u8 field_0x10[10]; /* 0x1A */ u8 mDefaultCamera; /* 0x1C */ u16 mMsg; }; // Size: 0x20 @@ -827,7 +827,7 @@ static int dStage_fieldMapTresureInit(dStage_dt_c*, void*, int, void*); static int dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*); static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); -u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); +s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); int dStage_changeScene(int, f32, u32, s8, s16, int); void dStage_infoCreate(); u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer); diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 3615280b07e..58d9bdff40f 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -149,6 +149,9 @@ public: u8 getLifeGaugeSE() { return mLifeGaugeSE; } const char* getSaveStageName() { return mSaveStageName; } void onShopTalkFlag() { mShopTalkFlag = true; } + void setLightDropGetFlag(int index, u8 flag) { mLightDropGetFlag[index] = flag; } + u8 getRentalBombBag() { return mRentalBombBag; } + void setTableMapRegionNo(u8 regionNo) { mTableMapRegionNo = regionNo; } public: /* 0x04 */ u8 unk4[4]; @@ -435,6 +438,25 @@ inline void dMeter2Info_onShopTalkFlag() { g_meter2_info.onShopTalkFlag(); } +inline void dMeter2Info_setLightDropGetFlag(int index, u8 flag) { + g_meter2_info.setLightDropGetFlag(index, flag); +} + +inline u8 dMeter2Info_getRentalBombBag() { + return g_meter2_info.getRentalBombBag(); +} + +inline void dMeter2Info_resetMiniGameItem(bool param_0) { + g_meter2_info.resetMiniGameItem(param_0); +} + +inline void dMeter2Info_setTableMapRegionNo(u8 regionNo) { + g_meter2_info.setTableMapRegionNo(regionNo); +} + char* dMeter2Info_getNumberTextureName(int pIndex); +void dMeter2Info_recieveLetter(); +u8 dMeter2Info_getNewLetterNum(); +int dMeter2Info_setNewLetterSender(); #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h index 68a1fa3881a..9c76a8a165e 100644 --- a/include/d/msg/d_msg_class.h +++ b/include/d/msg/d_msg_class.h @@ -2,10 +2,23 @@ #define D_MSG_D_MSG_CLASS_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" class msg_class { public: - /* 0x0 */ u8 field_0x0[0x100]; -}; + /* 0x00 */ base_process_class field_0x0; + /* 0xB8 */ u8 field_0xb8[8]; + /* 0xC0 */ int field_0xc0; + /* 0xC4 */ create_tag_class field_0xc4; + /* 0xD8 */ leafdraw_method_class* field_0xd8; + /* 0xDC */ fopAc_ac_c* field_0xdc; + /* 0xE0 */ cXyz field_0xe0; + /* 0xEC */ u32 field_0xec; + /* 0xF0 */ u32 field_0xf0; + /* 0xF4 */ u32 field_0xf4; + /* 0xF8 */ u16 field_0xf8; + /* 0xFA */ u8 field_0xfa; + /* 0xFC */ int field_0xfc; +}; // Size: 0x100 #endif /* D_MSG_D_MSG_CLASS_H */ diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h index 7682cafab4a..e518446ba28 100644 --- a/include/d/msg/d_msg_flow.h +++ b/include/d/msg/d_msg_flow.h @@ -3,162 +3,177 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" +#include "d/msg/d_msg_class.h" + +// all mesg_flow_node structs members might be wrong +struct mesg_flow_node { + /* 0x00 */ u8 type; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ u16 msg_index; + /* 0x04 */ u8 params[4]; +}; // Size: 0x8 struct mesg_flow_node_branch { - /* 0x00 */ int field_0x0; - /* 0x04 */ u16 param; + /* 0x00 */ u8 type; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ u16 msg_index; + /* 0x04 */ u16 params[2]; }; struct mesg_flow_node_event { - /* 0x00 */ int field_0x0; - /* 0x04 */ u8 param; -}; + /* 0x00 */ u8 type; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ u16 msg_index; + /* 0x04 */ u8 params[4]; +}; // Size: 0x8 -struct mesg_flow_node {}; +class dMsgFlow_c; +typedef int (dMsgFlow_c::*queryFunc)(mesg_flow_node_branch*, fopAc_ac_c*, int); +typedef int (dMsgFlow_c::*eventFunc)(mesg_flow_node_event*, fopAc_ac_c*); class dMsgFlow_c { public: /* 80249F00 */ dMsgFlow_c(); - /* 80249F48 */ ~dMsgFlow_c(); + /* 80249F48 */ virtual ~dMsgFlow_c(); + /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); /* 8024A13C */ void checkOpenDoor(fopAc_ac_c*, int*); /* 8024A2D8 */ int doFlow(fopAc_ac_c*, fopAc_ac_c**, int); - /* 8024A424 */ void checkEventRender(int*, int*, int*, int*); + /* 8024A424 */ int checkEventRender(int*, int*, int*, int*); /* 8024A4C4 */ void remove(); /* 8024A528 */ u16 getEventId(int*); - /* 8024A538 */ void getMsgNo(); - /* 8024A540 */ void getNowMsgNo(); - /* 8024A548 */ void getMsg(); + /* 8024A538 */ int getMsgNo(); + /* 8024A540 */ int getNowMsgNo(); + /* 8024A548 */ msg_class* getMsg(); /* 8024A580 */ void setInitValue(int); /* 8024A618 */ void setInitValueGroupChange(int, fopAc_ac_c**); - /* 8024A6EC */ void getMsgDataBlock(char const*); - /* 8024A784 */ void getInitNodeIndex(u16); + /* 8024A6EC */ u8* getMsgDataBlock(char const*); + /* 8024A784 */ u16 getInitNodeIndex(u16); /* 8024A7CC */ void setNodeIndex(u16, fopAc_ac_c**); /* 8024A95C */ void setSelectMsg(mesg_flow_node*, mesg_flow_node*, fopAc_ac_c*); /* 8024AA50 */ void setNormalMsg(mesg_flow_node*, fopAc_ac_c*); - /* 8024AB30 */ void messageNodeProc(fopAc_ac_c*, fopAc_ac_c**); - /* 8024AD54 */ void branchNodeProc(fopAc_ac_c*, fopAc_ac_c**); - /* 8024ADEC */ void eventNodeProc(fopAc_ac_c*, fopAc_ac_c**); - /* 8024AFF8 */ void nodeProc(fopAc_ac_c*, fopAc_ac_c**); + /* 8024AB30 */ int messageNodeProc(fopAc_ac_c*, fopAc_ac_c**); + /* 8024AD54 */ int branchNodeProc(fopAc_ac_c*, fopAc_ac_c**); + /* 8024ADEC */ int eventNodeProc(fopAc_ac_c*, fopAc_ac_c**); + /* 8024AFF8 */ int nodeProc(fopAc_ac_c*, fopAc_ac_c**); /* 8024B0F0 */ int getParam(u16*, u16*, u8*); - /* 8024B108 */ void getParam(u8*, u8*); + /* 8024B108 */ int getParam(u8*, u8*); /* 8024B130 */ int getParam(u8*); - /* 8024B138 */ void query001(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B180 */ void query002(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B208 */ void query003(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B250 */ void query004(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B2C0 */ u16 query005(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B2F8 */ void query006(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B32C */ void query007(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B45C */ void query008(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B4A4 */ void query009(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B4D0 */ void query010(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B504 */ void query011(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B54C */ void query012(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B584 */ void query013(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B5BC */ void query014(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B5F4 */ void query015(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B62C */ void query016(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B664 */ void query017(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B6A8 */ void query018(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B6EC */ void query019(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B730 */ void query020(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B774 */ void query021(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B8E4 */ void query022(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B918 */ void query023(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B954 */ void query024(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B974 */ void query025(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B9BC */ void query026(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024B9E8 */ void query027(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BA4C */ void query028(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BAA0 */ void query029(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BAE0 */ void query030(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BB18 */ void query031(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BB74 */ void query032(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BB9C */ void query033(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BBE4 */ void query034(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BC14 */ void query035(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BC3C */ void query036(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BC80 */ void query037(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BCC4 */ void query038(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BDB0 */ void query039(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BE4C */ void query040(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BF50 */ void query041(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024BFEC */ void query042(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C0A8 */ void query043(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C144 */ void query044(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C18C */ void query045(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C218 */ void query046(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C248 */ bool query047(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C250 */ void query048(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C2A0 */ void query049(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C2FC */ void query050(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C340 */ void query051(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C3A0 */ void query052(mesg_flow_node_branch*, fopAc_ac_c*, int); - /* 8024C3D4 */ void query053(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B138 */ int query001(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B180 */ int query002(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B208 */ int query003(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B250 */ int query004(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B2C0 */ int query005(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B2F8 */ int query006(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B32C */ int query007(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B45C */ int query008(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B4A4 */ int query009(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B4D0 */ int query010(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B504 */ int query011(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B54C */ int query012(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B584 */ int query013(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B5BC */ int query014(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B5F4 */ int query015(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B62C */ int query016(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B664 */ int query017(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B6A8 */ int query018(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B6EC */ int query019(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B730 */ int query020(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B774 */ int query021(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B8E4 */ int query022(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B918 */ int query023(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B954 */ int query024(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B974 */ int query025(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B9BC */ int query026(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024B9E8 */ int query027(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BA4C */ int query028(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BAA0 */ int query029(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BAE0 */ int query030(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BB18 */ int query031(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BB74 */ int query032(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BB9C */ int query033(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BBE4 */ int query034(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BC14 */ int query035(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BC3C */ int query036(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BC80 */ int query037(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BCC4 */ int query038(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BDB0 */ int query039(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BE4C */ int query040(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BF50 */ int query041(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024BFEC */ int query042(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C0A8 */ int query043(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C144 */ int query044(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C18C */ int query045(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C218 */ int query046(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C248 */ int query047(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C250 */ int query048(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C2A0 */ int query049(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C2FC */ int query050(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C340 */ int query051(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C3A0 */ int query052(mesg_flow_node_branch*, fopAc_ac_c*, int); + /* 8024C3D4 */ int query053(mesg_flow_node_branch*, fopAc_ac_c*, int); /* 8024C3FC */ int event000(mesg_flow_node_event*, fopAc_ac_c*); /* 8024C488 */ int event001(mesg_flow_node_event*, fopAc_ac_c*); /* 8024C514 */ int event002(mesg_flow_node_event*, fopAc_ac_c*); /* 8024C550 */ int event003(mesg_flow_node_event*, fopAc_ac_c*); /* 8024C590 */ int event004(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C5F0 */ void event005(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C654 */ void event006(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C694 */ void event007(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C6D8 */ void event008(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C744 */ void event009(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C76C */ void event010(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C7F8 */ void event011(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C884 */ bool event012(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C88C */ void event013(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C8CC */ void event014(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024C994 */ void event015(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CA5C */ void event016(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CA94 */ void event017(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CBB0 */ void event018(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CCA4 */ bool event019(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CCAC */ void event020(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CD84 */ void event021(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CDAC */ void event022(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CE40 */ void event023(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CF2C */ void event024(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CF54 */ void event025(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024CF9C */ void event026(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D004 */ void event027(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D3C4 */ void event028(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D500 */ void event029(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D544 */ void event030(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D5BC */ void event031(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D5EC */ void event032(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D6BC */ void event033(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D788 */ void event034(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D7C8 */ void event035(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D870 */ void event036(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D8C4 */ void event037(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D918 */ void event038(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D93C */ void event039(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024D970 */ void event040(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024DA78 */ void event041(mesg_flow_node_event*, fopAc_ac_c*); - /* 8024DAA8 */ bool event042(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C5F0 */ int event005(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C654 */ int event006(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C694 */ int event007(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C6D8 */ int event008(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C744 */ int event009(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C76C */ int event010(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C7F8 */ int event011(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C884 */ int event012(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C88C */ int event013(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C8CC */ int event014(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024C994 */ int event015(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CA5C */ int event016(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CA94 */ int event017(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CBB0 */ int event018(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CCA4 */ int event019(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CCAC */ int event020(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CD84 */ int event021(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CDAC */ int event022(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CE40 */ int event023(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CF2C */ int event024(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CF54 */ int event025(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024CF9C */ int event026(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D004 */ int event027(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D3C4 */ int event028(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D500 */ int event029(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D544 */ int event030(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D5BC */ int event031(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D5EC */ int event032(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D6BC */ int event033(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D788 */ int event034(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D7C8 */ int event035(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D870 */ int event036(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D8C4 */ int event037(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D918 */ int event038(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D93C */ int event039(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024D970 */ int event040(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024DA78 */ int event041(mesg_flow_node_event*, fopAc_ac_c*); + /* 8024DAA8 */ int event042(mesg_flow_node_event*, fopAc_ac_c*); u8 isSelectMessage() { return mSelectMessage; } void onNonStopJunpFlowFlag() { mNonStopJunpFlowFlag = 1; } - u16 getSelectNum() { return query005(NULL, NULL, 0); } + int getSelectNum() { return query005(NULL, NULL, 0); } - static u8 mQueryList[636]; - static u8 mEventList[516]; + static queryFunc mQueryList[53]; + static eventFunc mEventList[43]; private: - /* 0x00 */ void* vtable; - /* 0x04 */ void* mFlow_p; - /* 0x08 */ void* mLabelInfo_p; - /* 0x0C */ void* mFlowNodeTBL; + /* 0x04 */ u8* mFlow_p; + /* 0x08 */ u8* mLabelInfo_p; + /* 0x0C */ mesg_flow_node* mFlowNodeTBL; /* 0x10 */ u16 field_0x10; /* 0x12 */ u16 field_0x12; - /* 0x14 */ fopAc_ac_c* field_0x14; + /* 0x14 */ u16* field_0x14; /* 0x18 */ int field_0x18; /* 0x1C */ u16 mFlow; /* 0x1E */ u8 field_0x1e[2]; - /* 0x20 */ int mMsg; + /* 0x20 */ u32 mMsg; /* 0x24 */ u8 mSelectMessage; /* 0x25 */ u8 field_0x25; /* 0x26 */ u8 field_0x26; @@ -169,14 +184,14 @@ private: /* 0x32 */ u16 mEventId; /* 0x34 */ int field_0x34; /* 0x38 */ u16 field_0x38; - /* 0x3A */ s16 mChoiceNo; + /* 0x3A */ u16 mChoiceNo; /* 0x3C */ int field_0x3c; /* 0x40 */ u8 field_0x40; /* 0x41 */ u8 field_0x41; - /* 0x42 */ s8 field_0x42; - /* 0x43 */ s8 field_0x43; - /* 0x44 */ s8 field_0x44; - /* 0x45 */ s8 field_0x45; + /* 0x42 */ u8 field_0x42; + /* 0x43 */ u8 field_0x43; + /* 0x44 */ u8 field_0x44; + /* 0x45 */ u8 field_0x45; /* 0x46 */ u8 field_0x46; /* 0x47 */ u8 field_0x47; /* 0x48 */ u8 mNonStopJunpFlowFlag; diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index df2380affc0..bef45d23744 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -4,6 +4,9 @@ #include "JSystem/J2DGraph/J2DTextbox.h" #include "d/com/d_com_inf_game.h" #include "d/msg/d_msg_class.h" +#include "JSystem/JMessage/control.h" +#include "JSystem/JMessage/resource.h" +#include "JSystem/JMessage/processor.h" #include "dolphin/types.h" class COutFont_c; @@ -50,7 +53,7 @@ public: /* 802370A8 */ void isGetItemMessage(); /* 802370BC */ void isKanbanMessage(); /* 802370E8 */ void isHowlMessage(); - /* 802370FC */ void isMidonaMessage(); + /* 802370FC */ bool isMidonaMessage(); /* 80237138 */ void isMidonaNormalTalkWait(); /* 802371B0 */ void isMidonaTalkWait(); /* 802371E4 */ void isPlaceMessage(); @@ -85,8 +88,8 @@ public: /* 80237934 */ void isCameraCancelFlag(); /* 80237950 */ void onCameraCancelFlag(); /* 80237968 */ void offCameraCancelFlag(); - /* 80237980 */ void isKillMessageFlag(); - /* 80237994 */ void onKillMessageFlag(); + /* 80237980 */ static bool isKillMessageFlag(); + /* 80237994 */ static void onKillMessageFlag(); /* 802379AC */ void setKillMessageFlag(); /* 802379D8 */ void setKillMessageFlagLocal(); /* 80237A74 */ void setTalkPartner(fopAc_ac_c*); @@ -105,13 +108,13 @@ public: /* 80237E68 */ void setSelectCursorPosLocal(u8); /* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*); /* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**); - /* 8023803C */ void changeFlowGroup(s32); + /* 8023803C */ static void changeFlowGroup(s32); /* 8023806C */ void demoMessageGroup(); /* 80238098 */ void endFlowGroup(); /* 802380C4 */ void changeGroup(s16); /* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, char*, char*, s16*); - /* 80238174 */ void getMsgDtPtr(); + /* 80238174 */ static u8* getMsgDtPtr(); /* 80238188 */ void setProcessID(unsigned int); /* 8023819C */ static fopAc_ac_c* getActor(); /* 802381C0 */ void getpTalkActor(); @@ -132,11 +135,11 @@ public: /* 802383E4 */ void getSmellTypeMessageID(); /* 80238410 */ void setSmellType(u8); /* 80238440 */ void getSelectCursorPos(); - /* 8023846C */ void setSelectCursorPos(u8); + /* 8023846C */ static void setSelectCursorPos(u8); /* 8023849C */ void setPortalMessageID(u16); /* 802384B0 */ void setInsectItemNo(u8); /* 802384C4 */ static void setLetterNameID(u16); - /* 802384D8 */ void setArrowNum(u8); + /* 802384D8 */ static void setArrowNum(u8); /* 802384EC */ void setMsgOutputType(u8); /* 80238500 */ void getMsgOutputType(); /* 80238514 */ void getWord(); @@ -144,25 +147,103 @@ public: /* 80238544 */ void setSelectWordFlag(u8); /* 80238574 */ void getSelectWordFlag(); /* 80238588 */ void isHowlHearingMode(); - /* 802385B4 */ void getSelectBombBagID(); - /* 802385E0 */ void getSelectBombPrice(); + /* 802385B4 */ static u8 getSelectBombBagID(); + /* 802385E0 */ static s16 getSelectBombPrice(); /* 8023860C */ void setEquipBombInfo(); /* 80238638 */ void getItemEquipButton(); - /* 8023864C */ void setSelectCancelPos(u8); + /* 8023864C */ static void setSelectCancelPos(u8); - void setShopWaitTimerLocal(u8 timer) { field_0x4c9 = timer; } + void setShopWaitTimerLocal(u8 timer) { mShopWaitTimer = timer; } u8 getSelectPushFlag() { return mSelectPushFlag; } u8 getSelectCancelPos() { return mSelectCancelPos; } - /* 0x100 */ fopAc_ac_c* field_0x100; - /* 0x104 */ u8 field_0x104[0x9D]; + /* 0x100 */ msg_class* field_0x100; + /* 0x104 */ int mpScrnDraw; + /* 0x108 */ dMsgString_c* mpMsgString; + /* 0x10C */ COutFont_c* mpOutFont; + /* 0x110 */ JMessage::TResourceContainer* mpResCont; + /* 0x114 */ JMessage::TControl* mpCtrl; + /* 0x118 */ jmessage_tReference* mpRefer; + /* 0x11C */ jmessage_tSequenceProcessor* mpSeqProc; + /* 0x120 */ jmessage_tRenderingProcessor* mpRenProc; + /* 0x124 */ JMessage::TParse* field_0x124; + /* 0x128 */ void* mpMsgRes; + /* 0x12C */ u8 field_0x12c[4]; + /* 0x130 */ void* mpMsgDt; + /* 0x134 */ u8 field_0x134[4]; + /* 0x138 */ fopAc_ac_c* mpTalkActor; + /* 0x13C */ int field_0x13c; + /* 0x140 */ fopAc_ac_c* mpTalkPartner; + /* 0x144 */ void* mpTalkHeap; + /* 0x148 */ int field_0x148; + /* 0x14C */ int mProcessID; + /* 0x150 */ f32 field_0x150; + /* 0x154 */ int mMessageID; + /* 0x158 */ int field_0x158; + /* 0x15C */ int field_0x15c; + /* 0x160 */ int mIdx; + /* 0x164 */ int mNodeIdx; + /* 0x168 */ u16 field_0x168; + /* 0x16A */ u8 field_0x16a[2]; + /* 0x16C */ u16 field_0x16c; + /* 0x16E */ u16 field_0x16e; + /* 0x170 */ u16 mNowTalkFlowNo; + /* 0x172 */ u16 field_0x172; + /* 0x174 */ u16 mInputValue; + /* 0x176 */ u16 mFundRaisingValue; + /* 0x178 */ u16 field_0x178; + /* 0x17A */ u16 mNowTotalPrice; + /* 0x17C */ u16 mNowTotalPayment; + /* 0x17E */ u16 field_0x17e; + /* 0x180 */ u16 mPortalMessageID; + /* 0x182 */ u16 mBombMessageID[3]; + /* 0x188 */ u16 mLetterNameID; + /* 0x18A */ u8 mBombNum[3]; + /* 0x18D */ u8 mBombBagID[3]; + /* 0x190 */ u8 mSelectBombBag[3]; + /* 0x193 */ u8 field_0x193; + /* 0x194 */ u8 mInsectItemNo; + /* 0x195 */ u8 mMsgSendControl; + /* 0x196 */ u8 field_0x196; + /* 0x197 */ u8 field_0x197; + /* 0x198 */ u8 field_0x198; + /* 0x199 */ u8 field_0x199; + /* 0x19A */ u8 mFukiKind; + /* 0x19B */ u8 field_0x19b; + /* 0x19C */ u8 mFlowChk; + /* 0x19D */ u8 field_0x19d; + /* 0x19E */ u8 mCameraCancelFlag; + /* 0x19F */ u8 mInputFlag; + /* 0x1A0 */ u8 mSmellType; /* 0x1A1 */ u8 mSelectCancelPos; /* 0x1A2 */ u8 mSelectPushFlag; - /* 0x1A3 */ u8 field_0x1a3[0x326]; - /* 0x4C9 */ u8 field_0x4c9; + /* 0x1A3 */ u8 field_0x1a3; + /* 0x1A4 */ u8 mItemEquipButton; + /* 0x1A5 */ u8 mArrowNum; + /* 0x1A6 */ char mWord[200]; + /* 0x26E */ char mSelectWord[3][200]; + /* 0x4C6 */ u8 mSelectWordFlag; + /* 0x4C7 */ u8 field_0x4c7; + /* 0x4C8 */ u8 mMsgOutputType; + /* 0x4C9 */ u8 mShopWaitTimer; + /* 0x4CA */ u8 field_0x4ca; + /* 0x4CB */ u8 mNoDemoFlag; + /* 0x4CC */ u8 field_0x4cc; + /* 0x4CD */ u8 field_0x4cd; + /* 0x4CE */ u8 field_0x4ce; + /* 0x4CF */ u8 mAutoMessageFlag; + /* 0x4D0 */ u8 mPaymentFlag; + /* 0x4D1 */ u8 field_0x4d1; + /* 0x4D2 */ u8 mKillMessageFlag; + /* 0x4D3 */ u8 mEquipBombInfo; + /* 0x4D4 */ u8 field_0x4d4; }; s16 dMsgObject_getGroupID(); +void dMsgObject_setFundRaising(u16 param_0); +u16 dMsgObject_getFundRaising(); +void dMsgObject_addOffering(s16 param_0); +u16 dMsgObject_getOffering(); inline dMsgObject_c* dMsgObject_getMsgObjectClass() { return dComIfGp_getMsgObjectClass(); @@ -172,6 +253,10 @@ inline bool dMsgObject_isTalkNowCheck() { return dMsgObject_getMsgObjectClass()->getStatus() != 1 ? true : false; } +inline bool dMsgObject_isKillMessageFlag() { + return dMsgObject_c::isKillMessageFlag(); +} + inline u32 dMsgObject_getMessageID() { return dMsgObject_c::getMessageID(); } @@ -184,4 +269,8 @@ inline void dMsgObject_setShopWaitTimer(u8 timer) { dMsgObject_c::setShopWaitTimer(timer); } +inline void dMsgObject_changeFlowGroup(long flow) { + dMsgObject_c::changeFlowGroup(flow); +} + #endif /* D_MSG_D_MSG_OBJECT_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 5cfe163cf4a..5079ab86ccd 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -385,9 +385,9 @@ public: u16 getMaxLife() { return mMaxLife; } u16 getLife() { return mLife; } - u16& getRupee() { return mRupee; } + u16 getRupee() { return mRupee; } u16 getOil() { return mOil; } - u16 getMaxOil() { return mMaxOil; } + u16 getMaxOil() const { return mMaxOil; } u8& getMagic() { return mMagic; } u8& getMaxMagic() { return mMaxMagic; } u8 getSelectEquip(int item) const { return mSelectEquip[item]; } diff --git a/include/d/shop/d_shop_system.h b/include/d/shop/d_shop_system.h index 7408358232a..41ebb33d550 100644 --- a/include/d/shop/d_shop_system.h +++ b/include/d/shop/d_shop_system.h @@ -133,6 +133,7 @@ public: bool chkSpMode() { return mSpMode == 1; } void offSpMode() { mSpMode = 0; } u8 getEventParamU8(int param_0) { return (mEventParam >> (3 - param_0) * 8) & 0xFF; } + void setEventParam(u32 param) { mEventParam = param; } private: /* 0xE40 */ STControl* mpStick; diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h index d5d50f90746..6818b77d6b3 100644 --- a/include/f_op/f_op_msg_mng.h +++ b/include/f_op/f_op_msg_mng.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" +#include "d/msg/d_msg_class.h" typedef int (*fopMsgCreateFunc)(void*); @@ -12,5 +13,6 @@ void fopMsgM_setMessageID(unsigned int); void fopMsgM_destroyExpHeap(JKRExpHeap*); void fopMsgM_setStageLayer(void*); void fopMsgM_messageSetDemo(u32 param_0); +msg_class* fopMsgM_SearchByID(unsigned int param_0); #endif \ No newline at end of file diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index fee6b49fb34..8416fc3703f 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -64,6 +64,10 @@ inline void mDoAud_seStart(u32 sfx_id, const Vec* param_1, u32 param_2, s8 param -1.0f, 0); } +inline void mDoAud_messageSePlay(u16 param_0, Vec* position, s8 param_2) { + Z2AudioMgr::getInterface()->mSeMgr.messageSePlay(param_0, position, param_2); +} + inline void mDoAud_sceneBgmStart() { Z2AudioMgr::getInterface()->mSceneMgr.sceneBgmStart(); } diff --git a/libs/JSystem/JMessage/control.cpp b/libs/JSystem/JMessage/control.cpp index eff3b98a2b9..c632e78327a 100644 --- a/libs/JSystem/JMessage/control.cpp +++ b/libs/JSystem/JMessage/control.cpp @@ -4,41 +4,10 @@ // #include "JSystem/JMessage/control.h" +#include "JSystem/JMessage/processor.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JMessage { - struct TProcessor { - /* 802A7B90 */ void reset(); - /* 802A7C54 */ void getResource_groupID(u16) const; - /* 802A7CD4 */ void toMessageCode_messageID(u32, u32, bool*) const; - /* 802A828C */ void process_onCharacterEnd_normal_(JMessage::TProcessor*); - }; - - struct TControl { - /* 802A7548 */ TControl(); - /* 802A758C */ ~TControl(); - /* 802A75D4 */ void reset(); - /* 802A7634 */ void update(); - /* 802A76BC */ void render(); - /* 802A77E8 */ void setMessageCode(u16, u16); - /* 802A78F4 */ void setMessageID(u32, u32, bool*); - /* 802A7A20 */ void setMessageCode_inSequence_(JMessage::TProcessor const*, u16, u16); - }; - - struct TSequenceProcessor { - /* 802A8418 */ void process(char const*); - }; - - struct TRenderingProcessor { - /* 802A8B20 */ void process(char const*); - }; -}; - // // Forward References: // diff --git a/libs/JSystem/JMessage/data.cpp b/libs/JSystem/JMessage/data.cpp index be0c56c8fe2..1290c285c2e 100644 --- a/libs/JSystem/JMessage/data.cpp +++ b/libs/JSystem/JMessage/data.cpp @@ -7,16 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JMessage { - struct data { - static f32 ga4cSignature[1 + 1 /* padding */]; - }; -}; - // // Forward References: // diff --git a/libs/JSystem/JMessage/locale.cpp b/libs/JSystem/JMessage/locale.cpp index 9fa2ac8380a..131518b91f8 100644 --- a/libs/JSystem/JMessage/locale.cpp +++ b/libs/JSystem/JMessage/locale.cpp @@ -7,17 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JMessage { - struct locale { - /* 802A9528 */ void parseCharacter_ShiftJIS(char const**); - /* 802A958C */ void parseCharacter_UTF8(char const**); - }; -}; - // // Forward References: // diff --git a/libs/JSystem/JMessage/processor.cpp b/libs/JSystem/JMessage/processor.cpp index 2d3615db088..029f9585aa4 100644 --- a/libs/JSystem/JMessage/processor.cpp +++ b/libs/JSystem/JMessage/processor.cpp @@ -4,109 +4,11 @@ // #include "JSystem/JMessage/processor.h" +#include "JSystem/JMessage/control.h" +#include "JSystem/JMessage/resource.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct JMessage { - struct TReference { - /* 802A7AF8 */ ~TReference(); - /* 802A7B40 */ bool do_word(u32) const; - }; - - struct TProcessor { - /* 802A7B48 */ ~TProcessor(); - /* 802A7B90 */ void reset(); - /* 802A7BF8 */ void stack_pushCurrent(char const*); - /* 802A7C30 */ void stack_popCurrent(); - /* 802A7C54 */ void getResource_groupID(u16) const; - /* 802A7CD4 */ void toMessageCode_messageID(u32, u32, bool*) const; - /* 802A7E38 */ void on_select_begin(char const* (*)(JMessage::TProcessor*), void const*, - char const*, u32); - /* 802A7EDC */ void on_select_end(); - /* 802A7F34 */ void on_select_separate(); - /* 802A7FC0 */ void do_reset(); - /* 802A7FC4 */ void do_begin(void const*, char const*); - /* 802A7FC8 */ void do_end(); - /* 802A7FCC */ void do_character(int); - /* 802A7FD0 */ bool do_tag(u32, void const*, u32); - /* 802A7FD8 */ void do_select_begin(u32); - /* 802A7FDC */ void do_select_end(); - /* 802A7FE0 */ void do_select_separate(); - /* 802A7FE4 */ void on_tag_(); - /* 802A8084 */ void do_resetStatus_(char const*); - /* 802A8088 */ bool do_setBegin_isReady_() const; - /* 802A8090 */ void do_tag_(u32, void const*, u32); - /* 802A81EC */ void process_character_(); - /* 802A828C */ void process_onCharacterEnd_normal_(JMessage::TProcessor*); - /* 802A82F4 */ void process_onCharacterEnd_select_(JMessage::TProcessor*); - /* 802A833C */ void process_onSelect_limited_(JMessage::TProcessor*); - /* 802A8358 */ void process_onSelect_(JMessage::TProcessor*); - /* 802A8C24 */ void on_message(u32) const; - /* 802A8C44 */ void getMessageText_messageCode(u32) const; - }; - - struct TControl { - /* 802A7A20 */ void setMessageCode_inSequence_(JMessage::TProcessor const*, u16, u16); - }; - - struct TSequenceProcessor { - /* 802A8374 */ TSequenceProcessor(JMessage::TReference const*, JMessage::TControl*); - /* 802A83B8 */ ~TSequenceProcessor(); - /* 802A8418 */ void process(char const*); - /* 802A85A4 */ void on_isReady(); - /* 802A85D0 */ void on_jump_register(void const* (*)(JMessage::TSequenceProcessor const*), - u32); - /* 802A85E4 */ void on_jump_isReady(); - /* 802A8610 */ void on_jump(void const*, char const*); - /* 802A8690 */ void on_branch_register(void const* (*)(JMessage::TSequenceProcessor const*, - u32), - void const*, u32); - /* 802A86A0 */ void on_branch_query(u32); - /* 802A86D4 */ void on_branch_queryResult(); - /* 802A8700 */ void on_branch(void const*, char const*); - /* 802A8780 */ bool do_isReady(); - /* 802A8788 */ bool do_jump_isReady(); - /* 802A8790 */ void do_jump(void const*, char const*); - /* 802A8794 */ void do_branch_query(u32); - /* 802A8798 */ s32 do_branch_queryResult(); - /* 802A87A0 */ void do_branch(void const*, char const*); - /* 802A87A4 */ void do_resetStatus_(char const*); - /* 802A87C0 */ void do_setBegin_isReady_() const; - /* 802A87D0 */ void do_begin_(void const*, char const*); - /* 802A87D4 */ void do_end_(); - /* 802A87E0 */ void do_tag_(u32, void const*, u32); - /* 802A892C */ void process_setMessageIndex_reserved_(u16); - /* 802A8944 */ void process_setMessageCode_(JMessage::TSequenceProcessor const*, u16, u16); - /* 802A89B8 */ void process_onJump_limited_(JMessage::TSequenceProcessor const*); - /* 802A89EC */ void process_onJump_(JMessage::TSequenceProcessor const*); - /* 802A8A18 */ void process_onBranch_limited_(JMessage::TSequenceProcessor const*, u32); - /* 802A8A50 */ void process_onBranch_(JMessage::TSequenceProcessor const*, u32); - }; - - struct TRenderingProcessor { - /* 802A8A84 */ TRenderingProcessor(JMessage::TReference const*); - /* 802A8AC0 */ ~TRenderingProcessor(); - /* 802A8B20 */ void process(char const*); - /* 802A8BA4 */ void do_begin_(void const*, char const*); - /* 802A8BA8 */ void do_end_(); - /* 802A8BAC */ void do_tag_(u32, void const*, u32); - }; - - struct TResource { - /* 802A8CDC */ void toMessageIndex_messageID(u32, u32, bool*) const; - }; - - struct TResourceContainer { - struct TCResource { - /* 802A8F6C */ void Get_groupID(u16); - }; - }; -}; - // // Forward References: // diff --git a/libs/JSystem/JMessage/resource.cpp b/libs/JSystem/JMessage/resource.cpp index 375362ff306..7a485f0a503 100644 --- a/libs/JSystem/JMessage/resource.cpp +++ b/libs/JSystem/JMessage/resource.cpp @@ -4,6 +4,8 @@ // #include "JSystem/JMessage/resource.h" +#include "JSystem/JMessage/locale.h" +#include "JSystem/JMessage/data.h" #include "JSystem/JGadget/binary.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -19,46 +21,6 @@ void lower_bound(/* ... */); void func_802A94D4(void* _this, u32 const*, u32 const*, u32 const&); }; // namespace std -struct JMessage { - struct TResource { - /* 802A8CDC */ void toMessageIndex_messageID(u32, u32, bool*) const; - }; - - struct TResourceContainer { - struct TCResource { - /* 802A8EC0 */ TCResource(); - /* 802A8EF8 */ ~TCResource(); - /* 802A8F6C */ void Get_groupID(u16); - /* 802A8FFC */ void Do_create(); - /* 802A9048 */ void Do_destroy(JMessage::TResource*); - }; - - /* 802A906C */ TResourceContainer(); - /* 802A90B8 */ void setEncoding(u8); - /* 802A90F0 */ void setEncoding_(u8); - - static void* sapfnParseCharacter_[5]; - }; - - struct TParse { - /* 802A9130 */ TParse(JMessage::TResourceContainer*); - /* 802A9158 */ ~TParse(); - /* 802A91B8 */ void parseHeader_next(void const**, u32*, u32); - /* 802A92F4 */ void parseBlock_next(void const**, u32*, u32); - }; - - struct locale { - /* 802A9490 */ void parseCharacter_1Byte(char const**); - /* 802A94A8 */ void parseCharacter_2Byte(char const**); - /* 802A9528 */ void parseCharacter_ShiftJIS(char const**); - /* 802A958C */ void parseCharacter_UTF8(char const**); - }; - - struct data { - static f32 ga4cSignature[1 + 1 /* padding */]; - }; -}; - // // Forward References: // diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index f2a6a563acf..1625dd21409 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -19464,8 +19464,8 @@ BOOL daAlink_c::checkCutTurnCharge() const { } /* 800D0208-800D0228 0CAB48 0020+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daAlink_cFi */ -void daAlink_c::checkAcceptDungeonWarpAlink(int param_0) { - checkAcceptWarp(); +bool daAlink_c::checkAcceptDungeonWarpAlink(int param_0) { + return checkAcceptWarp(); } /* 800D0228-800D0274 0CAB68 004C+00 1/0 0/0 0/0 .text getSpinnerActor__9daAlink_cFv */ @@ -30958,7 +30958,7 @@ static asm void daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkAcceptWarp() { +asm bool daAlink_c::checkAcceptWarp() { nofralloc #include "asm/d/a/d_a_alink/checkAcceptWarp__9daAlink_cFv.s" } diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index 9a783342b56..a559d27c229 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -1412,7 +1412,7 @@ int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resNa return 1; } -u8 dComIfGp_getReverb(int roomNo) { +s8 dComIfGp_getReverb(int roomNo) { return dStage_roomRead_dt_c_GetReverbStage(*dComIfGp_getStageRoom(), roomNo); } diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index 2a29c0b36c7..6c93bfcb78d 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -449,7 +449,7 @@ asm void daNpcKakashi_setSwdTutorialStep(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcKakashi_getSwdTutorialStep() { +asm int daNpcKakashi_getSwdTutorialStep() { nofralloc #include "asm/d/com/d_com_static/daNpcKakashi_getSwdTutorialStep__Fv.s" } diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index cdcd6314fe8..51d18a23b72 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -2476,7 +2476,7 @@ static asm int dStage_roomReadInit(dStage_dt_c* param_0, void* param_1, int para /* 80025E40-80025E70 020780 0030+00 0/0 1/1 0/0 .text * dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */ -u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { +s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { if (index < 0 || index >= room.field_0x0) { index = 0; } diff --git a/src/d/meter/d_meter2_info.cpp b/src/d/meter/d_meter2_info.cpp index 2b4848736cc..2cd09a7966d 100644 --- a/src/d/meter/d_meter2_info.cpp +++ b/src/d/meter/d_meter2_info.cpp @@ -1418,7 +1418,7 @@ int dMeter2Info_setNewLetterSender() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMeter2Info_setNewLetterSender() { +asm int dMeter2Info_setNewLetterSender() { nofralloc #include "asm/d/meter/d_meter2_info/dMeter2Info_setNewLetterSender__Fv.s" } diff --git a/src/d/msg/d_msg_class.cpp b/src/d/msg/d_msg_class.cpp index b13f1100c0e..fa67684d0c3 100644 --- a/src/d/msg/d_msg_class.cpp +++ b/src/d/msg/d_msg_class.cpp @@ -15,12 +15,6 @@ struct mDoCPd_c { static u8 m_cpadInfo[256]; }; -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; -}; - struct jmessage_tControl { /* 802299EC */ jmessage_tControl(); }; @@ -549,7 +543,6 @@ extern "C" void __dl__FPv(); extern "C" void getBounds__7J2DPaneFv(); extern "C" void getParentPane__7J2DPaneFv(); extern "C" void getStringPtr__10J2DTextBoxCFv(); -extern "C" void PSVECSquareMag(); extern "C" void _savefpr_27(); extern "C" void _restfpr_27(); extern "C" void _savegpr_24(); diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index 6ce3e03a51f..fca73dc7103 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -7,23 +7,13 @@ #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct dShopSystem_c { - /* 801975F8 */ void isFlag(int); - /* 8019A354 */ void setSoldOutFlag(); -}; - -struct Z2SeMgr { - /* 802ADB14 */ void messageSePlay(u16, Vec*, s8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; +#include "f_op/f_op_msg_mng.h" +#include "d/msg/d_msg_object.h" +#include "SSystem/SComponent/c_math.h" +#include "d/com/d_com_static.h" +#include "d/shop/d_shop_system.h" +#include "d/d_item.h" +#include "m_Do/m_Do_audio.h" // // Forward References: @@ -266,7 +256,7 @@ extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_env_light[4880]; +extern "C" extern dScnKy_env_light_c g_env_light; extern "C" extern u8 g_MsgObject_HIO_c[1040]; extern "C" extern u32 g_saftyWhiteColor; extern "C" u8 m_midnaActor__9daPy_py_c[4]; @@ -276,7 +266,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // -inline void dComIfGp_setItemRupeeCount(int amount) { +inline void dComIfGp_setItemRupeeCount(s32 amount) { g_dComIfG_gameInfo.play.setItemRupeeCount(amount); } @@ -369,1045 +359,108 @@ SECTION_DATA static void* lit_4936[19] = { (void*)(((char*)messageNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c) + 0x1BC), }; -/* 803C15D0-803C15DC -00001 000C+00 0/1 0/0 0/0 .data @5023 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5023[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query005__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C15DC-803C15E8 -00001 000C+00 0/1 0/0 0/0 .data @5024 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5024[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query001__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C15E8-803C15F4 -00001 000C+00 0/1 0/0 0/0 .data @5025 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5025[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query002__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C15F4-803C1600 -00001 000C+00 0/1 0/0 0/0 .data @5026 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5026[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query003__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1600-803C160C -00001 000C+00 0/1 0/0 0/0 .data @5027 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5027[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query006__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C160C-803C1618 -00001 000C+00 0/1 0/0 0/0 .data @5028 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5028[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query007__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1618-803C1624 -00001 000C+00 0/1 0/0 0/0 .data @5029 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5029[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query004__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1624-803C1630 -00001 000C+00 0/1 0/0 0/0 .data @5030 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5030[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1630-803C163C -00001 000C+00 0/1 0/0 0/0 .data @5031 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5031[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query009__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C163C-803C1648 -00001 000C+00 0/1 0/0 0/0 .data @5032 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5032[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query010__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1648-803C1654 -00001 000C+00 0/1 0/0 0/0 .data @5033 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5033[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query011__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1654-803C1660 -00001 000C+00 0/1 0/0 0/0 .data @5034 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5034[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query012__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1660-803C166C -00001 000C+00 0/1 0/0 0/0 .data @5035 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5035[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query013__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C166C-803C1678 -00001 000C+00 0/1 0/0 0/0 .data @5036 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5036[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query014__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1678-803C1684 -00001 000C+00 0/1 0/0 0/0 .data @5037 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5037[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query015__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1684-803C1690 -00001 000C+00 0/1 0/0 0/0 .data @5038 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5038[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query016__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1690-803C169C -00001 000C+00 0/1 0/0 0/0 .data @5039 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5039[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query017__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C169C-803C16A8 -00001 000C+00 0/1 0/0 0/0 .data @5040 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5040[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query018__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16A8-803C16B4 -00001 000C+00 0/1 0/0 0/0 .data @5041 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5041[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query019__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16B4-803C16C0 -00001 000C+00 0/1 0/0 0/0 .data @5042 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5042[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query020__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16C0-803C16CC -00001 000C+00 0/1 0/0 0/0 .data @5043 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5043[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query021__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16CC-803C16D8 -00001 000C+00 0/1 0/0 0/0 .data @5044 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5044[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query022__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16D8-803C16E4 -00001 000C+00 0/1 0/0 0/0 .data @5045 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5045[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query023__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16E4-803C16F0 -00001 000C+00 0/1 0/0 0/0 .data @5046 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5046[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query024__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16F0-803C16FC -00001 000C+00 0/1 0/0 0/0 .data @5047 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5047[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query025__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C16FC-803C1708 -00001 000C+00 0/1 0/0 0/0 .data @5048 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5048[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query026__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1708-803C1714 -00001 000C+00 0/1 0/0 0/0 .data @5049 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5049[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query027__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1714-803C1720 -00001 000C+00 0/1 0/0 0/0 .data @5050 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5050[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query028__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1720-803C172C -00001 000C+00 0/1 0/0 0/0 .data @5051 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5051[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query029__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C172C-803C1738 -00001 000C+00 0/1 0/0 0/0 .data @5052 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5052[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query030__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1738-803C1744 -00001 000C+00 0/1 0/0 0/0 .data @5053 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5053[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query031__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1744-803C1750 -00001 000C+00 0/1 0/0 0/0 .data @5054 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5054[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query032__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1750-803C175C -00001 000C+00 0/1 0/0 0/0 .data @5055 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5055[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query033__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C175C-803C1768 -00001 000C+00 0/1 0/0 0/0 .data @5056 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5056[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query034__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1768-803C1774 -00001 000C+00 0/1 0/0 0/0 .data @5057 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5057[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query035__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1774-803C1780 -00001 000C+00 0/1 0/0 0/0 .data @5058 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5058[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query036__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1780-803C178C -00001 000C+00 0/1 0/0 0/0 .data @5059 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5059[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query037__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C178C-803C1798 -00001 000C+00 0/1 0/0 0/0 .data @5060 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5060[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query038__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1798-803C17A4 -00001 000C+00 0/1 0/0 0/0 .data @5061 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5061[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17A4-803C17B0 -00001 000C+00 0/1 0/0 0/0 .data @5062 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5062[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17B0-803C17BC -00001 000C+00 0/1 0/0 0/0 .data @5063 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5063[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17BC-803C17C8 -00001 000C+00 0/1 0/0 0/0 .data @5064 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5064[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17C8-803C17D4 -00001 000C+00 0/1 0/0 0/0 .data @5065 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5065[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query043__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17D4-803C17E0 -00001 000C+00 0/1 0/0 0/0 .data @5066 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5066[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query044__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17E0-803C17EC -00001 000C+00 0/1 0/0 0/0 .data @5067 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5067[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17EC-803C17F8 -00001 000C+00 0/1 0/0 0/0 .data @5068 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5068[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C17F8-803C1804 -00001 000C+00 0/1 0/0 0/0 .data @5069 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5069[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query047__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1804-803C1810 -00001 000C+00 0/1 0/0 0/0 .data @5070 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5070[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query048__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1810-803C181C -00001 000C+00 0/1 0/0 0/0 .data @5071 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5071[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query049__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C181C-803C1828 -00001 000C+00 0/1 0/0 0/0 .data @5072 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5072[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query050__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1828-803C1834 -00001 000C+00 0/1 0/0 0/0 .data @5073 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5073[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query051__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1834-803C1840 -00001 000C+00 0/1 0/0 0/0 .data @5074 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5074[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query052__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - -/* 803C1840-803C184C -00001 000C+00 0/1 0/0 0/0 .data @5075 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5075[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)query053__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci, -}; -#pragma pop - /* 803C184C-803C1AC8 01E96C 027C+00 2/3 0/0 0/0 .data mQueryList__10dMsgFlow_c */ -SECTION_DATA u8 dMsgFlow_c::mQueryList[636] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_DATA queryFunc dMsgFlow_c::mQueryList[53] = { + &dMsgFlow_c::query005, + &dMsgFlow_c::query001, + &dMsgFlow_c::query002, + &dMsgFlow_c::query003, + &dMsgFlow_c::query006, + &dMsgFlow_c::query007, + &dMsgFlow_c::query004, + &dMsgFlow_c::query008, + &dMsgFlow_c::query009, + &dMsgFlow_c::query010, + &dMsgFlow_c::query011, + &dMsgFlow_c::query012, + &dMsgFlow_c::query013, + &dMsgFlow_c::query014, + &dMsgFlow_c::query015, + &dMsgFlow_c::query016, + &dMsgFlow_c::query017, + &dMsgFlow_c::query018, + &dMsgFlow_c::query019, + &dMsgFlow_c::query020, + &dMsgFlow_c::query021, + &dMsgFlow_c::query022, + &dMsgFlow_c::query023, + &dMsgFlow_c::query024, + &dMsgFlow_c::query025, + &dMsgFlow_c::query026, + &dMsgFlow_c::query027, + &dMsgFlow_c::query028, + &dMsgFlow_c::query029, + &dMsgFlow_c::query030, + &dMsgFlow_c::query031, + &dMsgFlow_c::query032, + &dMsgFlow_c::query033, + &dMsgFlow_c::query034, + &dMsgFlow_c::query035, + &dMsgFlow_c::query036, + &dMsgFlow_c::query037, + &dMsgFlow_c::query038, + &dMsgFlow_c::query039, + &dMsgFlow_c::query040, + &dMsgFlow_c::query041, + &dMsgFlow_c::query042, + &dMsgFlow_c::query043, + &dMsgFlow_c::query044, + &dMsgFlow_c::query045, + &dMsgFlow_c::query046, + &dMsgFlow_c::query047, + &dMsgFlow_c::query048, + &dMsgFlow_c::query049, + &dMsgFlow_c::query050, + &dMsgFlow_c::query051, + &dMsgFlow_c::query052, + &dMsgFlow_c::query053, }; -/* 803C1AC8-803C1AD4 -00001 000C+00 0/1 0/0 0/0 .data @5944 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5944[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event000__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1AD4-803C1AE0 -00001 000C+00 0/1 0/0 0/0 .data @5945 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5945[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event001__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1AE0-803C1AEC -00001 000C+00 0/1 0/0 0/0 .data @5946 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5946[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event002__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1AEC-803C1AF8 -00001 000C+00 0/1 0/0 0/0 .data @5947 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5947[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1AF8-803C1B04 -00001 000C+00 0/1 0/0 0/0 .data @5948 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5948[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event004__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B04-803C1B10 -00001 000C+00 0/1 0/0 0/0 .data @5949 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5949[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B10-803C1B1C -00001 000C+00 0/1 0/0 0/0 .data @5950 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5950[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event006__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B1C-803C1B28 -00001 000C+00 0/1 0/0 0/0 .data @5951 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5951[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event007__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B28-803C1B34 -00001 000C+00 0/1 0/0 0/0 .data @5952 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5952[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event008__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B34-803C1B40 -00001 000C+00 0/1 0/0 0/0 .data @5953 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5953[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event009__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B40-803C1B4C -00001 000C+00 0/1 0/0 0/0 .data @5954 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5954[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event010__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B4C-803C1B58 -00001 000C+00 0/1 0/0 0/0 .data @5955 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5955[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event011__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B58-803C1B64 -00001 000C+00 0/1 0/0 0/0 .data @5956 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5956[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event012__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B64-803C1B70 -00001 000C+00 0/1 0/0 0/0 .data @5957 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5957[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event013__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B70-803C1B7C -00001 000C+00 0/1 0/0 0/0 .data @5958 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5958[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event014__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B7C-803C1B88 -00001 000C+00 0/1 0/0 0/0 .data @5959 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5959[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event015__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B88-803C1B94 -00001 000C+00 0/1 0/0 0/0 .data @5960 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5960[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event016__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1B94-803C1BA0 -00001 000C+00 0/1 0/0 0/0 .data @5961 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5961[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event017__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BA0-803C1BAC -00001 000C+00 0/1 0/0 0/0 .data @5962 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5962[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event018__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BAC-803C1BB8 -00001 000C+00 0/1 0/0 0/0 .data @5963 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5963[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event019__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BB8-803C1BC4 -00001 000C+00 0/1 0/0 0/0 .data @5964 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5964[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event020__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BC4-803C1BD0 -00001 000C+00 0/1 0/0 0/0 .data @5965 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5965[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BD0-803C1BDC -00001 000C+00 0/1 0/0 0/0 .data @5966 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5966[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event022__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BDC-803C1BE8 -00001 000C+00 0/1 0/0 0/0 .data @5967 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5967[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event023__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BE8-803C1BF4 -00001 000C+00 0/1 0/0 0/0 .data @5968 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5968[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event024__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1BF4-803C1C00 -00001 000C+00 0/1 0/0 0/0 .data @5969 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5969[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event025__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C00-803C1C0C -00001 000C+00 0/1 0/0 0/0 .data @5970 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5970[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event026__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C0C-803C1C18 -00001 000C+00 0/1 0/0 0/0 .data @5971 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5971[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event027__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C18-803C1C24 -00001 000C+00 0/1 0/0 0/0 .data @5972 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5972[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event028__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C24-803C1C30 -00001 000C+00 0/1 0/0 0/0 .data @5973 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5973[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event029__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C30-803C1C3C -00001 000C+00 0/1 0/0 0/0 .data @5974 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5974[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event030__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C3C-803C1C48 -00001 000C+00 0/1 0/0 0/0 .data @5975 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5975[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event031__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C48-803C1C54 -00001 000C+00 0/1 0/0 0/0 .data @5976 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5976[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event032__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C54-803C1C60 -00001 000C+00 0/1 0/0 0/0 .data @5977 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5977[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C60-803C1C6C -00001 000C+00 0/1 0/0 0/0 .data @5978 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5978[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C6C-803C1C78 -00001 000C+00 0/1 0/0 0/0 .data @5979 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5979[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event035__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C78-803C1C84 -00001 000C+00 0/1 0/0 0/0 .data @5980 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5980[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event036__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C84-803C1C90 -00001 000C+00 0/1 0/0 0/0 .data @5981 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5981[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event037__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C90-803C1C9C -00001 000C+00 0/1 0/0 0/0 .data @5982 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5982[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event038__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1C9C-803C1CA8 -00001 000C+00 0/1 0/0 0/0 .data @5983 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5983[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event039__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1CA8-803C1CB4 -00001 000C+00 0/1 0/0 0/0 .data @5984 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5984[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event040__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1CB4-803C1CC0 -00001 000C+00 0/1 0/0 0/0 .data @5985 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5985[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event041__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - -/* 803C1CC0-803C1CCC -00001 000C+00 0/1 0/0 0/0 .data @5986 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5986[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)event042__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c, -}; -#pragma pop - /* 803C1CCC-803C1ED0 01EDEC 0204+00 1/2 0/0 0/0 .data mEventList__10dMsgFlow_c */ -SECTION_DATA u8 dMsgFlow_c::mEventList[516] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, +SECTION_DATA eventFunc dMsgFlow_c::mEventList[43] = { + &dMsgFlow_c::event000, + &dMsgFlow_c::event001, + &dMsgFlow_c::event002, + &dMsgFlow_c::event003, + &dMsgFlow_c::event004, + &dMsgFlow_c::event005, + &dMsgFlow_c::event006, + &dMsgFlow_c::event007, + &dMsgFlow_c::event008, + &dMsgFlow_c::event009, + &dMsgFlow_c::event010, + &dMsgFlow_c::event011, + &dMsgFlow_c::event012, + &dMsgFlow_c::event013, + &dMsgFlow_c::event014, + &dMsgFlow_c::event015, + &dMsgFlow_c::event016, + &dMsgFlow_c::event017, + &dMsgFlow_c::event018, + &dMsgFlow_c::event019, + &dMsgFlow_c::event020, + &dMsgFlow_c::event021, + &dMsgFlow_c::event022, + &dMsgFlow_c::event023, + &dMsgFlow_c::event024, + &dMsgFlow_c::event025, + &dMsgFlow_c::event026, + &dMsgFlow_c::event027, + &dMsgFlow_c::event028, + &dMsgFlow_c::event029, + &dMsgFlow_c::event030, + &dMsgFlow_c::event031, + &dMsgFlow_c::event032, + &dMsgFlow_c::event033, + &dMsgFlow_c::event034, + &dMsgFlow_c::event035, + &dMsgFlow_c::event036, + &dMsgFlow_c::event037, + &dMsgFlow_c::event038, + &dMsgFlow_c::event039, + &dMsgFlow_c::event040, + &dMsgFlow_c::event041, + &dMsgFlow_c::event042, }; /* 803C1ED0-803C1EF0 -00001 0020+00 1/1 0/0 0/0 .data @6324 */ @@ -1450,34 +503,14 @@ SECTION_DATA static void* lit_6752[8] = { (void*)(((char*)event040__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c) + 0xDC), }; -/* 803C1F40-803C1F50 01F060 000C+04 2/2 0/0 0/0 .data __vt__10dMsgFlow_c */ -SECTION_DATA extern void* __vt__10dMsgFlow_c[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dMsgFlow_cFv, - /* padding */ - NULL, -}; - /* 80249F00-80249F48 244840 0048+00 0/0 5/5 154/154 .text __ct__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgFlow_c::dMsgFlow_c() { - nofralloc -#include "asm/d/msg/d_msg_flow/__ct__10dMsgFlow_cFv.s" +dMsgFlow_c::dMsgFlow_c() { + mNonStopJunpFlowFlag = 0; + setInitValue(1); } -#pragma pop /* 80249F48-80249F90 244888 0048+00 1/0 7/7 111/111 .text __dt__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgFlow_c::~dMsgFlow_c() { - nofralloc -#include "asm/d/msg/d_msg_flow/__dt__10dMsgFlow_cFv.s" -} -#pragma pop +dMsgFlow_c::~dMsgFlow_c() {} /* ############################################################################################## */ /* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -1511,84 +544,167 @@ asm void dMsgFlow_c::checkOpenDoor(fopAc_ac_c* param_0, int* param_1) { /* 8024A2D8-8024A424 244C18 014C+00 0/0 21/21 78/78 .text * doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci.s" +int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int flow) { + int check = false; + u16 set_flow = flow; + dMsgObject_changeFlowGroup(mFlow); + + if (dMsgObject_isKillMessageFlag()) { + field_0x27 = 1; + field_0x26 = 1; + set_flow = 0; + } + + if (field_0x26 != 0 && set_flow != 0) { + setInitValue(0); + mFlow = set_flow; + setNodeIndex(getInitNodeIndex(mFlow), param_1); + check = true; + } + + if (field_0x26 != 0 || field_0x27 != 0) { + msg_class* msg = fopMsgM_SearchByID(mMsg); + if (msg != NULL) { + if (msg->field_0xf8 != 0x12) { + return 0; + } + + msg->field_0xf8 = 0x13; + mMsg = -1; + } + field_0x27 = 0; + } + + if (field_0x26 != 0) { + daPy_py_c::setMidnaMotionNum(0); + daPy_py_c::setMidnaFaceNum(0); + return 1; + } + + int proc_status = nodeProc(param_0, param_1); + return proc_status != 0 || check; } -#pragma pop /* 8024A424-8024A4C4 244D64 00A0+00 0/0 2/2 1/1 .text checkEventRender__10dMsgFlow_cFPiPiPiPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::checkEventRender(int* param_0, int* param_1, int* param_2, int* param_3) { - nofralloc -#include "asm/d/msg/d_msg_flow/checkEventRender__10dMsgFlow_cFPiPiPiPi.s" +int dMsgFlow_c::checkEventRender(int* param_0, int* param_1, int* param_2, int* param_3) { + if (field_0x47) { + if (param_0 != NULL) { + int tmp0; + if (field_0x42 == 0xFF) { + tmp0 = -1; + } else { + tmp0 = field_0x42; + } + *param_0 = tmp0; + } + + if (param_1 != NULL) { + int tmp1; + if (field_0x43 == 0xFF) { + tmp1 = -1; + } else { + tmp1 = field_0x43; + } + *param_1 = tmp1; + } + + if (param_2 != NULL) { + int tmp2; + if (field_0x44 == 0xFF) { + tmp2 = -1; + } else { + tmp2 = field_0x44; + } + *param_2 = tmp2; + } + + if (param_3 != NULL) { + int tmp3; + if (field_0x45 == 0xFF) { + tmp3 = -1; + } else { + tmp3 = field_0x45; + } + *param_3 = tmp3; + } + } + + return field_0x47 == 1; } -#pragma pop /* 8024A4C4-8024A528 244E04 0064+00 0/0 0/0 10/10 .text remove__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::remove() { - nofralloc -#include "asm/d/msg/d_msg_flow/remove__10dMsgFlow_cFv.s" +void dMsgFlow_c::remove() { + field_0x27 = 0; + field_0x26 = 1; + + if (fopMsgM_SearchByID(mMsg) != NULL) { + dMsgObject_c::onKillMessageFlag(); + mMsg = -1; + } + + daPy_py_c::setMidnaMotionNum(0); + daPy_py_c::setMidnaFaceNum(0); } -#pragma pop /* 8024A528-8024A538 244E68 0010+00 0/0 2/2 66/66 .text getEventId__10dMsgFlow_cFPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 dMsgFlow_c::getEventId(int* param_0) { - nofralloc -#include "asm/d/msg/d_msg_flow/getEventId__10dMsgFlow_cFPi.s" +u16 dMsgFlow_c::getEventId(int* oItemId_p) { + *oItemId_p = field_0x30; + return mEventId; } -#pragma pop /* 8024A538-8024A540 244E78 0008+00 0/0 3/3 4/4 .text getMsgNo__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getMsgNo() { - nofralloc -#include "asm/d/msg/d_msg_flow/getMsgNo__10dMsgFlow_cFv.s" +int dMsgFlow_c::getMsgNo() { + return mMsgNo; } -#pragma pop /* 8024A540-8024A548 244E80 0008+00 0/0 0/0 12/12 .text getNowMsgNo__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getNowMsgNo() { - nofralloc -#include "asm/d/msg/d_msg_flow/getNowMsgNo__10dMsgFlow_cFv.s" +int dMsgFlow_c::getNowMsgNo() { + return mNowMsgNo; } -#pragma pop /* 8024A548-8024A580 244E88 0038+00 0/0 2/2 4/4 .text getMsg__10dMsgFlow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getMsg() { - nofralloc -#include "asm/d/msg/d_msg_flow/getMsg__10dMsgFlow_cFv.s" +msg_class* dMsgFlow_c::getMsg() { + if (mMsg != -1) { + return fopMsgM_SearchByID(mMsg); + } + + return NULL; } -#pragma pop /* 8024A580-8024A618 244EC0 0098+00 5/5 0/0 0/0 .text setInitValue__10dMsgFlow_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::setInitValue(int param_0) { - nofralloc -#include "asm/d/msg/d_msg_flow/setInitValue__10dMsgFlow_cFi.s" +void dMsgFlow_c::setInitValue(int param_0) { + if (param_0 != 0) { + mFlow_p = NULL; + mLabelInfo_p = NULL; + mFlowNodeTBL = NULL; + field_0x14 = NULL; + field_0x18 = 0; + mMsg = -1; + mMsgNo = 0; + mNowMsgNo = 0; + } + + field_0x10 = -1; + mFlow = 0; + field_0x46 = 0; + mSelectMessage = 0; + field_0x25 = 0; + field_0x26 = 0; + field_0x27 = 0; + field_0x30 = 0; + mEventId = 0; + field_0x34 = 91; + field_0x38 = 0; + mChoiceNo = -1; + field_0x3c = 0; + field_0x40 = 0; + field_0x41 = 0; + field_0x42 = -1; + field_0x43 = -1; + field_0x44 = -1; + field_0x45 = -1; + field_0x47 = 0; } -#pragma pop /* 8024A618-8024A6EC 244F58 00D4+00 1/1 0/0 0/0 .text * setInitValueGroupChange__10dMsgFlow_cFiPP10fopAc_ac_c */ @@ -1610,21 +726,43 @@ SECTION_SBSS2 static u8 data_80456BA4[4]; /* 8024A6EC-8024A784 24502C 0098+00 4/4 0/0 0/0 .text getMsgDataBlock__10dMsgFlow_cFPCc */ +#ifdef NONMATCHING +u8* dMsgFlow_c::getMsgDataBlock(char const* block_tag) { + char tag[4]; + u8* dt_p = dMsgObject_c::getMsgDtPtr(); + u32 num = *(dt_p + 0xC); + + u32 i = 0; + u8* block = dt_p + 0x20; + + for (; i < num; i++) { + memcpy(tag, block, 4); + + if (!strcmp(tag, block_tag)) { + return block; + } + block = block + *(int*)(block + 4); + } + + return NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::getMsgDataBlock(char const* param_0) { +asm u8* dMsgFlow_c::getMsgDataBlock(char const* param_0) { nofralloc #include "asm/d/msg/d_msg_flow/getMsgDataBlock__10dMsgFlow_cFPCc.s" } #pragma pop +#endif /* 8024A784-8024A7CC 2450C4 0048+00 5/5 0/0 0/0 .text getInitNodeIndex__10dMsgFlow_cFUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::getInitNodeIndex(u16 param_0) { +asm u16 dMsgFlow_c::getInitNodeIndex(u16 param_0) { nofralloc #include "asm/d/msg/d_msg_flow/getInitNodeIndex__10dMsgFlow_cFUs.s" } @@ -1677,7 +815,7 @@ asm void dMsgFlow_c::setNormalMsg(mesg_flow_node* param_0, fopAc_ac_c* param_1) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::messageNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { +asm int dMsgFlow_c::messageNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { nofralloc #include "asm/d/msg/d_msg_flow/messageNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c.s" } @@ -1685,86 +823,168 @@ asm void dMsgFlow_c::messageNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) /* 8024AD54-8024ADEC 245694 0098+00 1/1 0/0 0/0 .text * branchNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::branchNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/branchNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c.s" +int dMsgFlow_c::branchNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { + mesg_flow_node_branch* node = (mesg_flow_node_branch*)&mFlowNodeTBL[field_0x10]; + int proc_status = (this->*mQueryList[node->msg_index])(node, param_0, 1); + + setNodeIndex(field_0x14[(node->params[1] + proc_status) & 0xFFFF], param_1); + return 1; } -#pragma pop /* 8024ADEC-8024AFF8 24572C 020C+00 1/1 0/0 0/0 .text * eventNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */ +#ifdef NONMATCHING +int dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { + mesg_flow_node_event* node = (mesg_flow_node_event*)&mFlowNodeTBL[field_0x10]; + int proc_status = (this->*mEventList[node->field_0x1])(node, param_0); + + switch (node->field_0x1) { + case 8: + getParam(&mEventId, &field_0x30, node->params); + setNodeIndex(field_0x14[node->msg_index], param_1); + + if (field_0x26 != 0) { + break; + } + + u16 tmp = field_0x10; + setNodeIndex(-1, param_1); + field_0x10 = tmp; + + break; + + + case 9: + if (getParam(node->params) == 0) { + int msgNum = daAlink_getAlinkActorClass()->getMidnaMsgNum(); + if (msgNum == 0xFFFF) { + int stayNo = dComIfGp_roomControl_getStayNo(); + msgNum = dComIfGp_roomControl_getStatusRoomDt(stayNo)->mRoomDt.getFileListInfo()->mMsg; + } else { + daAlink_getAlinkActorClass()->setMidnaMsg(); + } + + setInitValueGroupChange(msgNum, param_1); + break; + } + + setInitValue(0); + mFlow = getParam(node->params); + setNodeIndex(getInitNodeIndex(mFlow), param_1); + + if (mNonStopJunpFlowFlag) { + break; + } + + if (dMsgObject_getMsgObjectClass()->isMidonaMessage()) { + break; + } + + return 0; + + case 21: + if (field_0x3c != 0) { + return 0; + } + setNodeIndex(field_0x14[node->msg_index], param_1); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { +asm int dMsgFlow_c::eventNodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { nofralloc #include "asm/d/msg/d_msg_flow/eventNodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024AFF8-8024B0F0 245938 00F8+00 1/1 0/0 0/0 .text * nodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::nodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/nodeProc__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_c.s" +int dMsgFlow_c::nodeProc(fopAc_ac_c* param_0, fopAc_ac_c** param_1) { + fopAc_ac_c* tmp = param_0; + int proc_status = 1; + field_0x47 = 0; + field_0x42 = -1; + field_0x43 = -1; + field_0x44 = -1; + field_0x45 = -1; + + while (proc_status != 0 && field_0x26 == 0) { + if (param_1 != NULL) { + tmp = param_1[field_0x38]; + } + + switch (mFlowNodeTBL[field_0x10].type) { + case 0: + break; + case 1: + proc_status = messageNodeProc(tmp, param_1); + break; + case 2: + proc_status = branchNodeProc(tmp, param_1); + break; + case 3: + proc_status = eventNodeProc(tmp, param_1); + break; + } + } + + return 0; } -#pragma pop /* 8024B0F0-8024B108 245A30 0018+00 16/16 0/0 0/0 .text getParam__10dMsgFlow_cFPUsPUsPUc */ -// might be fake match -int dMsgFlow_c::getParam(u16* param_0, u16* param_1, u8* param_2) { - u16* tmp = (u16*)param_2; - *param_0 = *tmp; - *param_1 = *(tmp + 1); +int dMsgFlow_c::getParam(u16* prm0, u16* prm1, u8* params) { + *prm0 = *(u16*)params; + *prm1 = *(u16*)(params + 2); - int* tmp2 = (int*)param_2; - return *tmp2; + return *(int*)params; } /* 8024B108-8024B130 245A48 0028+00 3/3 0/0 0/0 .text getParam__10dMsgFlow_cFPUcPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::getParam(u8* param_0, u8* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/getParam__10dMsgFlow_cFPUcPUc.s" +int dMsgFlow_c::getParam(u8* prm0, u8* params) { + for (int i = 0; i < 4; i++) { + prm0[i] = params[i]; + } + + return *(int*)params; } -#pragma pop /* 8024B130-8024B138 245A70 0008+00 20/20 0/0 0/0 .text getParam__10dMsgFlow_cFPUc */ -int dMsgFlow_c::getParam(u8* param_0) { - int* tmp2 = (int*)param_0; - return *tmp2; +int dMsgFlow_c::getParam(u8* params) { + return *(int*)params; +} + +inline BOOL dComIfGs_isEventBit(u16 id) { + return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id); } /* 8024B138-8024B180 245A78 0048+00 1/0 0/0 0/0 .text * query001__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query001(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query001__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query001(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + u16 prm0 = *(u16*)flow_node->params & 0xFFFF; + return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[prm0]) == false; +} + +BOOL daPy_py_c::checkNowWolf() { + return dComIfGp_getLinkPlayer()->i_checkWolf(); } -#pragma pop /* 8024B180-8024B208 245AC0 0088+00 1/0 0/0 0/0 .text * query002__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query002(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query002__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query002(mesg_flow_node_branch*, fopAc_ac_c*, int) { + if (daPy_py_c::checkNowWolf()) { + return 1; + } else if (daPy_getPlayerActorClass()->checkHorseRide() || daPy_getPlayerActorClass()->checkBoarRide()) { + return 2; + } + + return 0; } -#pragma pop /* ############################################################################################## */ /* 80454D90-80454D98 003390 0008+00 5/5 0/0 0/0 .sdata2 @5116 */ @@ -1772,21 +992,32 @@ SECTION_SDATA2 static f64 lit_5116 = 4503599627370496.0 /* cast u32 to float */; /* 8024B208-8024B250 245B48 0048+00 1/0 0/0 0/0 .text * query003__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ +// matches with literals +#ifdef NONMATCHING +int dMsgFlow_c::query003(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + return cM_rndF(flow_node->params[0]); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query003(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query003(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query003__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop +#endif + +inline u16 dComIfGs_getRupee() { + return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getRupee(); +} /* 8024B250-8024B2C0 245B90 0070+00 1/0 0/0 0/0 .text * query004__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query004(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query004(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query004__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1794,32 +1025,22 @@ asm void dMsgFlow_c::query004(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024B2C0-8024B2F8 245C00 0038+00 2/1 1/1 1/1 .text * query005__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 dMsgFlow_c::query005(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query005__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query005(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return mChoiceNo = fopMsgM_SearchByID(mMsg)->field_0xfa; } -#pragma pop /* 8024B2F8-8024B32C 245C38 0034+00 1/0 0/0 0/0 .text * query006__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query006(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query006__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query006(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int) { + mChoiceNo = query005(flow_node, param_1, 0); } -#pragma pop /* 8024B32C-8024B45C 245C6C 0130+00 1/0 0/0 0/0 .text * query007__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query007(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query007(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query007__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1827,21 +1048,28 @@ asm void dMsgFlow_c::query007(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024B45C-8024B4A4 245D9C 0048+00 1/0 0/0 0/0 .text * query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ +#ifdef NONMATCHING +int dMsgFlow_c::query008(mesg_flow_node_branch* flow_node, fopAc_ac_c* param_1, int param_2) { + u16 prm0 = flow_node->params[0]; + return (u8)daNpcKakashi_getSwdTutorialStep() != (u16)(prm0 - 1); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query008(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query008(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query008__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8024B4A4-8024B4D0 245DE4 002C+00 1/0 0/0 0/0 .text * query009__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query009(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query009(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query009__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1852,7 +1080,7 @@ asm void dMsgFlow_c::query009(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query010(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query010(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query010__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1863,7 +1091,7 @@ asm void dMsgFlow_c::query010(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query011(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query011(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query011__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1874,7 +1102,7 @@ asm void dMsgFlow_c::query011(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query012(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query012(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query012__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1885,7 +1113,7 @@ asm void dMsgFlow_c::query012(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query013(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query013(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query013__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1896,7 +1124,7 @@ asm void dMsgFlow_c::query013(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query014(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query014(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query014__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1907,7 +1135,7 @@ asm void dMsgFlow_c::query014(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query015(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query015(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query015__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1918,7 +1146,7 @@ asm void dMsgFlow_c::query015(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query016(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query016(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query016__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1929,7 +1157,7 @@ asm void dMsgFlow_c::query016(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query017(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query017(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query017__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1940,7 +1168,7 @@ asm void dMsgFlow_c::query017(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query018(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query018(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query018__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1951,7 +1179,7 @@ asm void dMsgFlow_c::query018(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query019(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query019(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query019__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1962,7 +1190,7 @@ asm void dMsgFlow_c::query019(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query020(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query020(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query020__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1973,7 +1201,7 @@ asm void dMsgFlow_c::query020(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query021(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query021(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query021__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -1981,32 +1209,33 @@ asm void dMsgFlow_c::query021(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024B8E4-8024B918 246224 0034+00 1/0 0/0 0/0 .text * query022__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ +#ifdef NONMATCHING +int dMsgFlow_c::query022(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + return checkItemGet(flow_node->params[0], 1) == false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query022(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query022(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query022__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8024B918-8024B954 246258 003C+00 1/0 0/0 0/0 .text * query023__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query023(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query023__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query023(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { + return (u16)(3 - dComIfGs_checkBombBag(NO_ITEM)); } -#pragma pop /* 8024B954-8024B974 246294 0020+00 1/0 0/0 0/0 .text * query024__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query024(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query024(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query024__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2017,7 +1246,7 @@ asm void dMsgFlow_c::query024(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query025(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query025(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query025__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2025,21 +1254,17 @@ asm void dMsgFlow_c::query025(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024B9BC-8024B9E8 2462FC 002C+00 1/0 0/0 0/0 .text * query026__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query026(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query026__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query026(mesg_flow_node_branch*, fopAc_ac_c* actor, int) { + dShopSystem_c* shop_ac = static_cast(actor); + return (u16)shop_ac->isFlag(7); } -#pragma pop /* 8024B9E8-8024BA4C 246328 0064+00 1/0 0/0 0/0 .text * query027__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query027(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query027(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query027__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2050,7 +1275,7 @@ asm void dMsgFlow_c::query027(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query028(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query028(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query028__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2061,7 +1286,7 @@ asm void dMsgFlow_c::query028(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query029(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query029(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query029__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2069,21 +1294,16 @@ asm void dMsgFlow_c::query029(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024BAE0-8024BB18 246420 0038+00 1/0 0/0 0/0 .text * query030__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query030(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query030__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query030(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return dComIfGs_getTmpReg(0xFBFF); } -#pragma pop /* 8024BB18-8024BB74 246458 005C+00 1/0 0/0 0/0 .text * query031__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query031(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query031(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query031__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2094,7 +1314,7 @@ asm void dMsgFlow_c::query031(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query032(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query032(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query032__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2102,73 +1322,58 @@ asm void dMsgFlow_c::query032(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024BB9C-8024BBE4 2464DC 0048+00 1/0 0/0 0/0 .text * query033__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query033(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query033__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query033(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return daPy_getPlayerActorClass()->checkUseKandelaar(1) == false; } -#pragma pop - -/* ############################################################################################## */ -/* 80454D98-80454DA0 003398 0004+04 1/1 0/0 0/0 .sdata2 @5608 */ -SECTION_SDATA2 static f32 lit_5608[1 + 1 /* padding */] = { - 1.0f / 15.0f, - /* padding */ - 0.0f, -}; /* 8024BBE4-8024BC14 246524 0030+00 1/0 0/0 0/0 .text * query034__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query034(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query034__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query034(mesg_flow_node_branch*, fopAc_ac_c*, int) { + u8 time = dComIfGs_getTime() * (1.0f / 15.0f); + return time; } -#pragma pop /* 8024BC14-8024BC3C 246554 0028+00 1/0 0/0 0/0 .text * query035__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query035(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query035__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query035(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + bool check = false; + if (dComIfGs_getMagic() < flow_node->params[0]) { + check = true; + } + + return check; } -#pragma pop /* 8024BC3C-8024BC80 24657C 0044+00 1/0 0/0 0/0 .text * query036__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query036(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query036__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query036(mesg_flow_node_branch*, fopAc_ac_c*, int) { + int tmp = fopMsgM_SearchByID(mMsg)->field_0xfa; + + if (dMsgObject_getMsgObjectClass()->getSelectPushFlag() == 2) { + tmp = 2; + } + + return tmp; } -#pragma pop /* 8024BC80-8024BCC4 2465C0 0044+00 1/0 0/0 0/0 .text * query037__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query037(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query037__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query037(mesg_flow_node_branch*, fopAc_ac_c*, int) { + int tmp = fopMsgM_SearchByID(mMsg)->field_0xfa; + + if (dMsgObject_getMsgObjectClass()->getSelectPushFlag() == 2) { + tmp = 3; + } + + return tmp; } -#pragma pop /* 8024BCC4-8024BDB0 246604 00EC+00 1/0 0/0 0/0 .text * query038__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query038__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2179,7 +1384,7 @@ asm void dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2190,7 +1395,7 @@ asm void dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2201,58 +1406,64 @@ asm void dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop -/* ############################################################################################## */ -/* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399CC0 = "F_SP116"; -#pragma pop - /* 8024BFEC-8024C0A8 24692C 00BC+00 1/0 0/0 0/0 .text * query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query042(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query042(mesg_flow_node_branch*, fopAc_ac_c*, int) { + daMidna_c* midna = daPy_py_c::getMidnaActor(); + + u8 ret = 0; + if (!strcmp("F_SP116", dComIfGp_getStartStageName()) && dComIfGs_isSaveDunSwitch(0x3C)) { + ret = 4; + } else if (midna->checkNpcNear()) { + ret = 1; + } else if (midna->checkNpcFar()) { + ret = 2; + } else if (g_env_light.mEvilPacketEnabled & 0x80) { + ret = 3; + } + + return ret; } -#pragma pop /* 8024C0A8-8024C144 2469E8 009C+00 1/0 0/0 0/0 .text * query043__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ +#ifdef NONMATCHING +int dMsgFlow_c::query043(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + u16 prm0 = flow_node->params[0]; + u8 bomb_num = dComIfGs_getBombNum(dComIfGs_getTmpReg(0xFBFF) - 1); + u8 bomb_max = dComIfGs_getBombMax(POKE_BOMB); + + return bomb_num + (u8)prm0 >= bomb_max; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query043(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query043(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query043__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8024C144-8024C18C 246A84 0048+00 1/0 0/0 0/0 .text * query044__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query044(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query044__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query044(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return daAlink_getAlinkActorClass()->checkAcceptDungeonWarpAlink(0) == false; } -#pragma pop /* 8024C18C-8024C218 246ACC 008C+00 1/0 0/0 0/0 .text * query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } @@ -2260,94 +1471,123 @@ asm void dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_ /* 8024C218-8024C248 246B58 0030+00 1/0 0/0 0/0 .text * query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query046(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query046(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return dComIfGs_checkInsectBottle(); } -#pragma pop /* 8024C248-8024C250 246B88 0008+00 1/0 0/0 0/0 .text * query047__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -bool dMsgFlow_c::query047(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - return false; +int dMsgFlow_c::query047(mesg_flow_node_branch*, fopAc_ac_c*, int) { + return 0; } /* 8024C250-8024C2A0 246B90 0050+00 1/0 0/0 0/0 .text * query048__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query048(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query048__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query048(mesg_flow_node_branch*, fopAc_ac_c*, int) { + u8 new_num = dMeter2Info_getNewLetterNum(); + + if (new_num > 2) { + new_num = 2; + } + + if (new_num == 1) { + dMeter2Info_setNewLetterSender(); + } + + return new_num; } -#pragma pop /* 8024C2A0-8024C2FC 246BE0 005C+00 1/0 0/0 0/0 .text * query049__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ +// missing clrlwi +#ifdef NONMATCHING +int dMsgFlow_c::query049(mesg_flow_node_branch*, fopAc_ac_c*, int) { + u8 ret; + if (dComIfGs_getPohSpiritNum() == 0) { + ret = 0; + } else if (dComIfGs_getPohSpiritNum() <= 19) { + ret = 1; + } else if (dComIfGs_getPohSpiritNum() <= 39) { + ret = 2; + } else if (dComIfGs_getPohSpiritNum() <= 59) { + ret = 3; + } else { + ret = 4; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::query049(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { +asm int dMsgFlow_c::query049(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/msg/d_msg_flow/query049__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8024C2FC-8024C340 246C3C 0044+00 1/0 0/0 0/0 .text * query050__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query050(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query050__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query050(mesg_flow_node_branch* flow_node, fopAc_ac_c*, int) { + u16 prm0 = flow_node->params[0]; + int offering = dMsgObject_getOffering(); + return offering < prm0; } -#pragma pop /* 8024C340-8024C3A0 246C80 0060+00 1/0 0/0 0/0 .text * query051__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query051(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query051__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query051(mesg_flow_node_branch*, fopAc_ac_c*, int) { + u8 ret; + if (dComIfGp_getMessageCountNumber() == 0) { + ret = 0; + } else if (dComIfGp_getMessageCountNumber() < 1000) { + ret = 1; + } else if (dComIfGp_getMessageCountNumber() < 10000) { + ret = 2; + } else if (dComIfGp_getMessageCountNumber() < 0xF00E) { + ret = 3; + } else { + ret = 4; + } + + return ret; +} + +inline bool dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) { + return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, param_1); } -#pragma pop /* 8024C3A0-8024C3D4 246CE0 0034+00 1/0 0/0 0/0 .text * query052__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query052(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query052__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query052(mesg_flow_node_branch*, fopAc_ac_c*, int) { + bool phi_r4 = false; + if (daPy_getPlayerActorClass()->checkWaterInMove() || dComIfGp_checkPlayerStatus0(0, 0x100000)) { + phi_r4 = true; + } + + return phi_r4; } -#pragma pop /* 8024C3D4-8024C3FC 246D14 0028+00 1/0 0/0 0/0 .text * query053__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::query053(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query053__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query053(mesg_flow_node_branch*, fopAc_ac_c*, int) { + bool phi_r4 = false; + if (daPy_getPlayerActorClass()->i_checkEquipHeavyBoots()) { + phi_r4 = true; + } + + return phi_r4; } -#pragma pop /* 8024C3FC-8024C488 246D3C 008C+00 1/0 0/0 0/0 .text * event000__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -int dMsgFlow_c::event000(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +int dMsgFlow_c::event000(mesg_flow_node_event* flow_node, fopAc_ac_c*) { u16 prm1; u16 prm0; - int tmp = getParam(&prm0, &prm1, ¶m_0->param); + int tmp = getParam(&prm0, &prm1, flow_node->params); if (prm0 != 0) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } @@ -2359,11 +1599,11 @@ int dMsgFlow_c::event000(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { /* 8024C488-8024C514 246DC8 008C+00 1/0 0/0 0/0 .text * event001__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -int dMsgFlow_c::event001(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +int dMsgFlow_c::event001(mesg_flow_node_event* flow_node, fopAc_ac_c*) { u16 prm1; u16 prm0; - int tmp = getParam(&prm0, &prm1, ¶m_0->param); + int tmp = getParam(&prm0, &prm1, flow_node->params); if (prm0 != 0) { dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } @@ -2375,8 +1615,8 @@ int dMsgFlow_c::event001(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { /* 8024C514-8024C550 246E54 003C+00 1/0 0/0 0/0 .text * event002__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -int dMsgFlow_c::event002(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - int prm0 = getParam(¶m_0->param); +int dMsgFlow_c::event002(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); dComIfGp_setItemRupeeCount(prm0); return 1; @@ -2384,24 +1624,12 @@ int dMsgFlow_c::event002(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { /* 8024C550-8024C590 246E90 0040+00 1/0 0/0 0/0 .text * event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -// wrong instruction -#ifdef NONMATCHING -int dMsgFlow_c::event003(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - int prm0 = getParam(¶m_0->param); +int dMsgFlow_c::event003(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); dComIfGp_setItemRupeeCount(-prm0); return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::event003(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event003__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 80454DA0-80454DA8 0033A0 0008+00 3/3 0/0 0/0 .sdata2 @6040 */ @@ -2409,9 +1637,10 @@ SECTION_SDATA2 static f64 lit_6040 = 4503601774854144.0 /* cast s32 to float */; /* 8024C590-8024C5F0 246ED0 0060+00 1/0 0/0 0/0 .text * event004__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// matches with literals #ifdef NONMATCHING -int dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - f32 prm0 = getParam(¶m_0->param); +int dMsgFlow_c::event004(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + f32 prm0 = getParam(flow_node->params); dComIfGp_setItemLifeCount(prm0, 0); return 1; @@ -2430,8 +1659,8 @@ asm int dMsgFlow_c::event004(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) /* 8024C5F0-8024C654 246F30 0064+00 1/0 0/0 0/0 .text * event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ #ifdef NONMATCHING -int dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - f32 prm0 = getParam(¶m_0->param); +int dMsgFlow_c::event005(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + f32 prm0 = getParam(flow_node->params); dComIfGp_setItemLifeCount(-prm0, 0); return 1; @@ -2440,7 +1669,7 @@ int dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event005__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } @@ -2449,165 +1678,269 @@ asm void dMsgFlow_c::event005(mesg_flow_node_event* param_0, fopAc_ac_c* param_1 /* 8024C654-8024C694 246F94 0040+00 1/0 0/0 0/0 .text * event006__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event006(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event006__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event006(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + dComIfGp_setItemMagicCount(prm0); + return 1; } -#pragma pop /* 8024C694-8024C6D8 246FD4 0044+00 1/0 0/0 0/0 .text * event007__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event007(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event007__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event007(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + dComIfGp_setItemMagicCount(-prm0); + return 1; } -#pragma pop /* 8024C6D8-8024C744 247018 006C+00 1/0 0/0 0/0 .text * event008__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event008(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event008__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event008(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + if (prm0 == 27) { + int fund_raising = dMsgObject_getFundRaising(); + int tmp = 2000 - (fund_raising & 0xFFFF); + + if (tmp >= 200) { + dMsgObject_setFundRaising(0); + } else { + dMsgObject_setFundRaising(200 - tmp); + } + } + + return 1; } -#pragma pop /* 8024C744-8024C76C 247084 0028+00 1/0 0/0 0/0 .text * event009__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event009(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event009__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event009(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + getParam(flow_node->params); + return 1; } -#pragma pop /* 8024C76C-8024C7F8 2470AC 008C+00 1/0 0/0 0/0 .text * event010__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event010(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event010__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event010(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + if (prm0 != 0) { + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm0]); + } + + if (prm1 != 0) { + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm1]); + } + + return 1; } -#pragma pop /* 8024C7F8-8024C884 247138 008C+00 1/0 0/0 0/0 .text * event011__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event011(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event011__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event011(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + if (prm0 != 0) { + dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm0]); + } + + if (prm1 != 0) { + dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[prm1]); + } + + return 1; } -#pragma pop /* 8024C884-8024C88C 2471C4 0008+00 1/0 0/0 0/0 .text * event012__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -bool dMsgFlow_c::event012(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - return true; +int dMsgFlow_c::event012(mesg_flow_node_event*, fopAc_ac_c*) { + return 1; } /* 8024C88C-8024C8CC 2471CC 0040+00 1/0 0/0 0/0 .text * event013__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event013(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event013__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event013(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + field_0x46 = 1; + mSelectMessage = 1; + field_0x25 = 1; + + int prm0 = getParam(flow_node->params); + dMsgObject_c::setSelectCancelPos(prm0); + + return 1; } -#pragma pop /* 8024C8CC-8024C994 24720C 00C8+00 1/0 0/0 0/0 .text * event014__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event014(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event014__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event014(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + int roomNo = -1; + if (actor != NULL) { + roomNo = fopAcM_GetRoomNo(actor); + } + + switch (prm0) { + case 0: + dComIfGs_onSaveSwitch(prm1); + break; + case 1: + dComIfGs_onSaveDunSwitch(prm1); + break; + case 2: + dComIfGs_onZoneSwitch(prm1, roomNo); + break; + case 3: + dComIfGs_onOneZoneSwitch(prm1, roomNo); + break; + } + + return 1; } -#pragma pop /* 8024C994-8024CA5C 2472D4 00C8+00 1/0 0/0 0/0 .text * event015__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event015(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event015__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event015(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + int roomNo = -1; + if (actor != NULL) { + roomNo = fopAcM_GetRoomNo(actor); + } + + switch (prm0) { + case 0: + dComIfGs_offSaveSwitch(prm1); + break; + case 1: + dComIfGs_offSaveDunSwitch(prm1); + break; + case 2: + dComIfGs_offZoneSwitch(prm1, roomNo); + break; + case 3: + dComIfGs_offOneZoneSwitch(prm1, roomNo); + break; + } + + return 1; } -#pragma pop /* 8024CA5C-8024CA94 24739C 0038+00 1/0 0/0 0/0 .text * event016__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event016(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event016__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event016(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { + static_cast(actor)->setEventParam(*(u32*)flow_node->params); + + u8 prm0; + getParam(&prm0, flow_node->params); + return 1; } -#pragma pop /* 8024CA94-8024CBB0 2473D4 011C+00 1/0 0/0 0/0 .text * event017__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event017(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event017__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event017(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + if (prm1 <= 1) { + switch (prm0) { + case DROP_CONTAINER: + dMeter2Info_setLightDropGetFlag(0, 1); + dComIfGs_onLightDropGetFlag(0); + break; + case DROP_CONTAINER02: + dMeter2Info_setLightDropGetFlag(1, 1); + dComIfGs_onLightDropGetFlag(1); + break; + case DROP_CONTAINER03: + dMeter2Info_setLightDropGetFlag(2, 1); + dComIfGs_onLightDropGetFlag(2); + break; + default: + execItemGet(prm0); + } + + return 1; + } + + for (int i = 0; i < prm1; i++) { + execItemGet(prm0); + } + + return 1; } -#pragma pop /* 8024CBB0-8024CCA4 2474F0 00F4+00 1/0 0/0 0/0 .text * event018__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event018(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event018__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event018(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { + u8 prm0[4]; + getParam(prm0, flow_node->params); + + field_0x47 = 1; + field_0x42 = prm0[0]; + field_0x43 = prm0[1]; + field_0x44 = prm0[2]; + field_0x45 = prm0[3]; + + if (actor != NULL) { + int stayNo = dComIfGp_roomControl_getStayNo(); + if (stayNo != 0) { + mDoAud_messageSePlay(field_0x45, &actor->mCurrent.mPosition, dComIfGp_getReverb(stayNo)); + } else { + mDoAud_messageSePlay(field_0x45, &actor->mCurrent.mPosition, 0); + } + } else { + int stayNo = dComIfGp_roomControl_getStayNo(); + if (stayNo != 0) { + mDoAud_messageSePlay(field_0x45, NULL, dComIfGp_getReverb(stayNo)); + } else { + mDoAud_messageSePlay(field_0x45, NULL, 0); + } + } + + return 1; } -#pragma pop /* 8024CCA4-8024CCAC 2475E4 0008+00 1/0 0/0 0/0 .text * event019__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -bool dMsgFlow_c::event019(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - return true; +int dMsgFlow_c::event019(mesg_flow_node_event*, fopAc_ac_c*) { + return 1; } /* 8024CCAC-8024CD84 2475EC 00D8+00 1/0 0/0 0/0 .text * event020__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event020(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event020__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { + int prm0 = getParam(flow_node->params); + daPy_py_c* player = daPy_getPlayerActorClass(); + dStage_roomStatus_c* room = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(actor)); + stage_actor_data_class* actor_data = room->mRoomDt.getPlayer()->mEntries; + + for (int i = 0; i < room->mRoomDt.getPlayerNum(); i++, actor_data++) { + if ((u8)actor_data->mAngle.z == prm0) { + player->setPlayerPosAndAngle(&actor_data->mSpawnPos, player->mCurrent.mAngle.y, 0); + break; + } + } + + return 1; } -#pragma pop /* 8024CD84-8024CDAC 2476C4 0028+00 1/0 0/0 0/0 .text * event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } @@ -2619,113 +1952,291 @@ SECTION_SDATA2 static f32 lit_6273 = 100.0f; /* 8024CDAC-8024CE40 2476EC 0094+00 1/0 0/0 0/0 .text * event022__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int dMsgFlow_c::event022(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + if (prm0 == 0) { + prm0 = 100; + } + + dComIfGp_setItemOilCount(dComIfGs_getMaxOil() * (prm0 / 100.0f)); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event022(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event022(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event022__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024CE40-8024CF2C 247780 00EC+00 2/0 0/0 0/0 .text * event023__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int dMsgFlow_c::event023(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + + switch (prm0) { + case 1: + dComIfGs_setEmptyBottleItemIn(RED_BOTTLE); + break; + case 2: + dComIfGs_setEmptyBottleItemIn(GREEN_BOTTLE); + break; + case 3: + dComIfGs_setEmptyBottleItemIn(BLUE_BOTTLE); + break; + case 4: + dComIfGs_setEmptyBottleItemIn(MILK_BOTTLE); + break; + case 5: + dComIfGs_setEmptyBottleItemIn(HALF_MILK_BOTTLE); + break; + case 6: + dComIfGs_setEmptyBottleItemIn(OIL_BOTTLE); + break; + case 7: + dComIfGs_setEmptyBottleItemIn(HOT_SPRING); + break; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event023(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event023(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event023__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024CF2C-8024CF54 24786C 0028+00 1/0 0/0 0/0 .text * event024__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event024(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event024__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event024(mesg_flow_node_event*, fopAc_ac_c* actor) { + static_cast(actor)->setSoldOutFlag(); + return 1; } -#pragma pop /* 8024CF54-8024CF9C 247894 0048+00 1/0 0/0 0/0 .text * event025__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event025(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event025__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event025(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + dComIfGs_setTmpReg(0xFBFF, prm0); + + return 1; } -#pragma pop /* 8024CF9C-8024D004 2478DC 0068+00 1/0 0/0 0/0 .text * event026__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// todo: setup required classes +#ifdef NONMATCHING +int dMsgFlow_c::event026(mesg_flow_node_event*, fopAc_ac_c* actor) { + if (fopAcM_GetName(actor) == PROC_MYNA) { + actor = static_cast(actor)->getSpeakActorPtr(); + } + + if (actor != NULL) { + if (fopAcM_GetName(actor) == PROC_OBJ_SSITEM || fopAcM_GetName(actor) == PROC_OBJ_SSDRINK || + fopAcM_GetName(actor) == PROC_TAG_SSDRINK) { + + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event026(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event026(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event026__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024D004-8024D3C4 247944 03C0+00 2/0 0/0 0/0 .text * event027__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int dMsgFlow_c::event027(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + u8 aParam8[2]; + getParam(aParam8, flow_node->params); + + u8 slot; + if (aParam8[0] >= 1 && aParam8[0] < 4) { + slot = aParam8[0] - 1; + } else if (aParam8[0] == 4) { + if (dMeter2Info_getRentalBombBag() != 0xFF) { + slot = dMeter2Info_getRentalBombBag(); + } + } else { + slot = dComIfGs_getTmpReg(0xFBFF) - 1; + } + + switch (aParam8[1]) { + case 0: + if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == BOMB_BAG_LV1) { + dComIfGs_setItem((u8)(SLOT_15 + slot), NORMAL_BOMB); + } + + if (prm1 != 0) { + dComIfGp_setItemBombNumCount(slot, (u8)prm1); + } else { + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(NORMAL_BOMB)); + } + break; + case 1: + if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == BOMB_BAG_LV1) { + dComIfGs_setItem((u8)(SLOT_15 + slot), WATER_BOMB); + } + + if (prm1 != 0) { + dComIfGp_setItemBombNumCount(slot, (u8)prm1); + } else { + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(WATER_BOMB)); + } + break; + case 2: + if (dComIfGs_getItem((u8)(SLOT_15 + slot), false) == BOMB_BAG_LV1) { + dComIfGs_setItem((u8)(SLOT_15 + slot), POKE_BOMB); + } + + if (prm1 != 0) { + dComIfGp_setItemBombNumCount(slot, (u8)prm1); + } else { + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(POKE_BOMB)); + } + break; + case 3: + break; + case 4: + case 5: + dComIfGp_setItemBombNumCount(slot, (u8)prm1); + break; + case 6: + dComIfGs_setItem((u8)(SLOT_15 + slot), NORMAL_BOMB); + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(NORMAL_BOMB)); + break; + case 7: + dComIfGs_setItem((u8)(SLOT_15 + slot), WATER_BOMB); + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(WATER_BOMB)); + break; + case 8: + dComIfGs_setItem((u8)(SLOT_15 + slot), POKE_BOMB); + dComIfGp_setItemBombNumCount(slot, dComIfGs_getBombMax(POKE_BOMB)); + break; + case 9: + case 10: + case 11: + break; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event027(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event027(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event027__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024D3C4-8024D500 247D04 013C+00 1/0 0/0 0/0 .text * event028__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// regalloc +#ifdef NONMATCHING +int dMsgFlow_c::event028(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + dMsgObject_c::setSelectCursorPos(dComIfGs_getTmpReg(0xFBFF) - 1); + u8 bagID = dMsgObject_c::getSelectBombBagID(); + s16 bombPrice = dMsgObject_c::getSelectBombPrice(); + + dComIfGp_setItemRupeeCount(bombPrice); + dComIfGs_setBombNum(bagID, 0); + + if (dComIfGs_getItem((u8)(SLOT_15 + bagID), true) != BOMB_ARROW) { + dComIfGs_setItem((u8)(SLOT_15 + bagID), BOMB_BAG_LV1); + } else { + for (int i = 0; i < 3; i++) { + u8 select_item = dComIfGs_getSelectItemIndex(i); + + if (SLOT_15 + bagID == select_item) { + u8 mix_item = dComIfGs_getMixItemIndex(i); + + dComIfGs_setMixItemIndex(i, NO_ITEM); + dComIfGs_setSelectItemIndex(i, mix_item); + dComIfGp_setSelectItem(i); + } + } + dComIfGs_setItem((u8)(SLOT_15 + bagID), BOMB_BAG_LV1); + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event028(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event028(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event028__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024D500-8024D544 247E40 0044+00 1/0 0/0 0/0 .text * event029__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event029(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event029__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event029(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + field_0x46 = 2; + mSelectMessage = 1; + field_0x25 = 1; + dMsgObject_c::setSelectCancelPos(getParam(flow_node->params)); + + return 1; } -#pragma pop /* 8024D544-8024D5BC 247E84 0078+00 1/0 0/0 0/0 .text * event030__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event030(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event030__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event030(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + s16 arrowNum = prm1; + if (arrowNum == 0) { + arrowNum = dComIfGs_getArrowMax(); + } + + if (prm0 == 0) { + dComIfGp_setItemArrowNumCount(arrowNum); + } else { + dMsgObject_c::setArrowNum(arrowNum); + } + + return 1; } -#pragma pop /* 8024D5BC-8024D5EC 247EFC 0030+00 1/0 0/0 0/0 .text * event031__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event031(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event031__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event031(mesg_flow_node_event*, fopAc_ac_c*) { + dMeter2Info_resetMiniGameItem(false); + return 1; } -#pragma pop /* ############################################################################################## */ /* 80454DAC-80454DB0 0033AC 0004+00 2/2 0/0 0/0 .sdata2 @6613 */ @@ -2736,7 +2247,7 @@ SECTION_SDATA2 static f32 lit_6613 = 1.0f; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event032__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } @@ -2747,7 +2258,7 @@ asm void dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1 #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } @@ -2755,96 +2266,123 @@ asm void dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1 /* 8024D788-8024D7C8 2480C8 0040+00 1/0 0/0 0/0 .text * event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event034(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event034(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + dComIfGs_setWarashibeItem(prm0); + return 1; } -#pragma pop /* 8024D7C8-8024D870 248108 00A8+00 1/0 0/0 0/0 .text * event035__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event035(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event035__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event035(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + + if (prm0 == TOMATO_PUREE || prm0 == TASTE) { + dComIfGs_offItemFirstBit(prm0); + } else if (prm0 == RAFRELS_MEMO || prm0 == ASHS_SCRIBBLING) { + dComIfGs_setItem(SLOT_19, NO_ITEM); + } else if (prm0 == LETTER || prm0 == BILL || prm0 == WOOD_STATUE || prm0 == IRIAS_PENDANT) { + dComIfGs_setWarashibeItem(NO_ITEM); + } + + return 1; } -#pragma pop /* 8024D870-8024D8C4 2481B0 0054+00 1/0 0/0 0/0 .text * event036__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event036(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event036__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event036(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + dComIfGs_onSaveSwitch(prm0, prm1); + return 1; } -#pragma pop /* 8024D8C4-8024D918 248204 0054+00 1/0 0/0 0/0 .text * event037__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event037(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event037__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event037(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + u16 prm1; + u16 prm0; + getParam(&prm0, &prm1, flow_node->params); + + dComIfGs_offSaveSwitch(prm0, prm1); + return 1; } -#pragma pop /* 8024D918-8024D93C 248258 0024+00 1/0 0/0 0/0 .text * event038__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event038(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event038__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event038(mesg_flow_node_event*, fopAc_ac_c*) { + dMeter2Info_recieveLetter(); + return 1; } -#pragma pop /* 8024D93C-8024D970 24827C 0034+00 1/0 0/0 0/0 .text * event039__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event039(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event039__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event039(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + dMeter2Info_setTableMapRegionNo(getParam(flow_node->params)); + return 1; } -#pragma pop /* 8024D970-8024DA78 2482B0 0108+00 2/0 0/0 0/0 .text * event040__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +int dMsgFlow_c::event040(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + + switch (prm0) { + case 0: + break; + case 1: + dComIfGs_setBottleItemIn(RED_BOTTLE, EMPTY_BOTTLE); + break; + case 2: + dComIfGs_setBottleItemIn(GREEN_BOTTLE, EMPTY_BOTTLE); + break; + case 3: + dComIfGs_setBottleItemIn(BLUE_BOTTLE, EMPTY_BOTTLE); + break; + case 4: + dComIfGs_setBottleItemIn(MILK_BOTTLE, EMPTY_BOTTLE); + break; + case 5: + dComIfGs_setBottleItemIn(HALF_MILK_BOTTLE, EMPTY_BOTTLE); + break; + case 6: + dComIfGs_setBottleItemIn(OIL_BOTTLE, EMPTY_BOTTLE); + break; + case 7: + dComIfGs_setBottleItemIn(HOT_SPRING, EMPTY_BOTTLE); + break; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgFlow_c::event040(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { +asm int dMsgFlow_c::event040(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { nofralloc #include "asm/d/msg/d_msg_flow/event040__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024DA78-8024DAA8 2483B8 0030+00 1/0 0/0 0/0 .text * event041__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgFlow_c::event041(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - nofralloc -#include "asm/d/msg/d_msg_flow/event041__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" +int dMsgFlow_c::event041(mesg_flow_node_event* flow_node, fopAc_ac_c*) { + int prm0 = getParam(flow_node->params); + dMsgObject_addOffering(prm0); + + return 1; } -#pragma pop /* 8024DAA8-8024DAB0 2483E8 0008+00 1/0 0/0 0/0 .text * event042__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -bool dMsgFlow_c::event042(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { - return true; +int dMsgFlow_c::event042(mesg_flow_node_event*, fopAc_ac_c*) { + return 1; } /* 8024DAB0-8024DACC 2483F0 001C+00 3/3 0/0 0/0 .text cLib_calcTimer__FPl */ @@ -2857,19 +2395,4 @@ extern "C" asm void func_8024DAB0(void* _this, s32* param_0) { } #pragma pop -/* 8024DACC-8024E3E0 24840C 0914+00 0/0 1/0 0/0 .text __sinit_d_msg_flow_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_msg_flow_cpp() { - nofralloc -#include "asm/d/msg/d_msg_flow/__sinit_d_msg_flow_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8024DACC, __sinit_d_msg_flow_cpp); -#pragma pop - /* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp index bb259748cc0..53b349a53ee 100644 --- a/src/d/msg/d_msg_object.cpp +++ b/src/d/msg/d_msg_object.cpp @@ -12,28 +12,6 @@ // Types: // -struct jmessage_tControl {}; - -struct jmessage_tReference { - /* 80228B04 */ jmessage_tReference(); - /* 80229034 */ void pageSend(); - /* 80229168 */ void selectMessage(); - /* 802294A8 */ void inputNumber(); - /* 802297E4 */ void shiftCharCountBuffer(); - /* 80229810 */ void resetCharCountBuffer(); - /* 8022994C */ void isLightEnd(); - /* 80238C78 */ void setActorPos(cXyz); -}; - -struct jmessage_tSequenceProcessor { - /* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*); -}; - -struct jmessage_tRenderingProcessor { - /* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*); - /* 8022E12C */ void resetRendering(); -}; - struct dMsgString_c { /* 80249C20 */ dMsgString_c(); /* 80249D28 */ ~dMsgString_c(); @@ -133,28 +111,6 @@ struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; -struct JMessage { - struct TControl { - /* 802A75D4 */ void reset(); - /* 802A7634 */ void update(); - /* 802A76BC */ void render(); - /* 802A77E8 */ void setMessageCode(u16, u16); - /* 802A78F4 */ void setMessageID(u32, u32, bool*); - }; - - struct TResourceContainer { - struct TCResource { - /* 802A8EF8 */ ~TCResource(); - }; - - /* 802A906C */ TResourceContainer(); - }; - - struct TParse { - /* 802A9130 */ TParse(JMessage::TResourceContainer*); - }; -}; - // // Forward References: // @@ -1125,7 +1081,7 @@ asm void dMsgObject_c::isHowlMessage() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::isMidonaMessage() { +asm bool dMsgObject_c::isMidonaMessage() { nofralloc #include "asm/d/msg/d_msg_object/isMidonaMessage__12dMsgObject_cFv.s" } @@ -1474,7 +1430,7 @@ asm void dMsgObject_c::offCameraCancelFlag() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::isKillMessageFlag() { +asm bool dMsgObject_c::isKillMessageFlag() { nofralloc #include "asm/d/msg/d_msg_object/isKillMessageFlag__12dMsgObject_cFv.s" } @@ -1781,7 +1737,7 @@ asm void dMsgObject_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* p #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getMsgDtPtr() { +asm u8* dMsgObject_c::getMsgDtPtr() { nofralloc #include "asm/d/msg/d_msg_object/getMsgDtPtr__12dMsgObject_cFv.s" } @@ -2121,7 +2077,7 @@ asm void dMsgObject_c::isHowlHearingMode() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getSelectBombBagID() { +asm u8 dMsgObject_c::getSelectBombBagID() { nofralloc #include "asm/d/msg/d_msg_object/getSelectBombBagID__12dMsgObject_cFv.s" } @@ -2131,7 +2087,7 @@ asm void dMsgObject_c::getSelectBombBagID() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getSelectBombPrice() { +asm s16 dMsgObject_c::getSelectBombPrice() { nofralloc #include "asm/d/msg/d_msg_object/getSelectBombPrice__12dMsgObject_cFv.s" } @@ -2232,7 +2188,7 @@ static asm void dMsgObject_addTotalPayment(s16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_getFundRaising() { +asm u16 dMsgObject_getFundRaising() { nofralloc #include "asm/d/msg/d_msg_object/dMsgObject_getFundRaising__Fv.s" } @@ -2262,7 +2218,7 @@ static asm void dMsgObject_addFundRaising(s16 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_getOffering() { +asm u16 dMsgObject_getOffering() { nofralloc #include "asm/d/msg/d_msg_object/dMsgObject_getOffering__Fv.s" } diff --git a/src/d/shop/d_shop_system.cpp b/src/d/shop/d_shop_system.cpp index 34e97f46d68..f6f74ea5425 100644 --- a/src/d/shop/d_shop_system.cpp +++ b/src/d/shop/d_shop_system.cpp @@ -1940,9 +1940,9 @@ int dShopSystem_c::seq_choose(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { p_flow->doFlow(actor, NULL, 0); - u16 select_num = p_flow->getSelectNum(); + int select_num = p_flow->getSelectNum(); if (dMsgObject_c::getStatus() != 6 && dMsgObject_c::getStatus() != 8 && dMsgObject_c::getStatus() != 9 && dMsgObject_c::getStatus() != 20) { - if (select_num == 0) { + if ((u16)select_num == 0) { setSeq(SEQ_DECIDE_YES); } else { setSeq(SEQ_DECIDE_NO); diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index 2450e5d4a69..f86916988cb 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -129,7 +129,7 @@ asm void fopMsgM_setStageLayer(void* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void fopMsgM_SearchByID(unsigned int param_0) { +asm msg_class* fopMsgM_SearchByID(unsigned int param_0) { nofralloc #include "asm/f_op/f_op_msg_mng/fopMsgM_SearchByID__FUi.s" }