mirror of https://github.com/zeldaret/tp.git
msg_flow wip
This commit is contained in:
parent
fdaeb3437d
commit
985d47a5c8
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -3,4 +3,10 @@
|
|||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
namespace JMessage {
|
||||
struct data {
|
||||
static f32 ga4cSignature[1 + 1 /* padding */];
|
||||
};
|
||||
};
|
||||
|
||||
#endif /* DATA_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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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]; }
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -7,16 +7,6 @@
|
|||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct JMessage {
|
||||
struct data {
|
||||
static f32 ga4cSignature[1 + 1 /* padding */];
|
||||
};
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
//
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue