work on daalink, fop actor, mDo machine, msg_scrn, + various (#201)

* work on fop actor / actor mng, daalink, d_a_obj_item

* d_a_title mostly decompiled

* daalink / d_event / JMessage / dmsg_out_font work

* msg_scrn_base / msg_scrn_boss

* some work on mDo machine, d_menu_save, d_tresure, and various

* remove asm

* progress
This commit is contained in:
TakaRikka
2022-06-29 13:19:09 -07:00
committed by GitHub
parent cd5b02450c
commit 046d178003
412 changed files with 12030 additions and 16833 deletions
+1 -3
View File
@@ -4,10 +4,8 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class msg_class {
class msg_class : public leafdraw_class {
public:
/* 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;
+219 -12
View File
@@ -10,6 +10,7 @@
#include "dolphin/types.h"
class COutFont_c;
class dMsgScrnBase_c;
class dMsgObject_c : public msg_class {
public:
@@ -23,7 +24,7 @@ public:
/* 80233FD8 */ void getRevoMessageIndex(u32);
/* 802340D4 */ void getMessageIndexAlways(u32);
/* 80234128 */ void getMessageIDAlways(u32);
/* 8023413C */ void getMessageGroup(u32);
/* 8023413C */ static s16 getMessageGroup(u32);
/* 80234150 */ void waitProc();
/* 80234318 */ void openProc();
/* 802349D8 */ void outnowProc();
@@ -50,9 +51,9 @@ public:
/* 80236D0C */ void changeGroupLocal(s16);
/* 80236DE4 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 802370A8 */ void isGetItemMessage();
/* 802370BC */ void isKanbanMessage();
/* 802370E8 */ void isHowlMessage();
/* 802370A8 */ BOOL isGetItemMessage();
/* 802370BC */ BOOL isKanbanMessage();
/* 802370E8 */ BOOL isHowlMessage();
/* 802370FC */ bool isMidonaMessage();
/* 80237138 */ void isMidonaNormalTalkWait();
/* 802371B0 */ void isMidonaTalkWait();
@@ -78,19 +79,19 @@ public:
/* 8023759C */ void getBombBuyPriceLocal(u8);
/* 802375E4 */ void addSelectBomBag(u8);
/* 80237610 */ void resetSelectBomBag();
/* 8023763C */ void getSelectBombBagIDLocal();
/* 8023768C */ void getSelectBombPriceLocal();
/* 8023763C */ u8 getSelectBombBagIDLocal();
/* 8023768C */ s16 getSelectBombPriceLocal();
/* 8023773C */ void setEquipBombInfoLocal();
/* 80237748 */ void updateEquipBombInfoLocal();
/* 802378B8 */ static void setShopWaitTimer(u8);
/* 802378CC */ void setSelectWordFlagLocal(u8);
/* 802378D4 */ void isHowlHearingModeLocal();
/* 802378D4 */ bool isHowlHearingModeLocal();
/* 80237934 */ void isCameraCancelFlag();
/* 80237950 */ void onCameraCancelFlag();
/* 80237968 */ void offCameraCancelFlag();
/* 80237980 */ static bool isKillMessageFlag();
/* 80237994 */ static void onKillMessageFlag();
/* 802379AC */ void setKillMessageFlag();
/* 802379AC */ static void setKillMessageFlag();
/* 802379D8 */ void setKillMessageFlagLocal();
/* 80237A74 */ void setTalkPartner(fopAc_ac_c*);
/* 80237A88 */ void setNowTalkFlowNo(s16);
@@ -109,9 +110,11 @@ public:
/* 80237F10 */ void setTalkActorLocal(fopAc_ac_c*);
/* 8023800C */ static void readMessageGroup(mDoDvdThd_mountXArchive_c**);
/* 8023803C */ static void changeFlowGroup(s32);
/* 8023806C */ void demoMessageGroup();
/* 80238098 */ static void endFlowGroup();
/* 802380C4 */ static void changeGroup(s16);
/* 8023806C */ static void demoMessageGroup();
/* 80238098 */ void endFlowGroup();
/* 802380C4 */ void changeGroup(s16);
/* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*,
char*, char*, s16*);
/* 80238174 */ static u8* getMsgDtPtr();
@@ -146,19 +149,21 @@ public:
/* 80238528 */ void getSelectWord(int);
/* 80238544 */ void setSelectWordFlag(u8);
/* 80238574 */ void getSelectWordFlag();
/* 80238588 */ void isHowlHearingMode();
/* 80238588 */ bool isHowlHearingMode();
/* 802385B4 */ static u8 getSelectBombBagID();
/* 802385E0 */ static s16 getSelectBombPrice();
/* 8023860C */ void setEquipBombInfo();
/* 80238638 */ void getItemEquipButton();
/* 80238638 */ u8 getItemEquipButton();
/* 8023864C */ static void setSelectCancelPos(u8);
void setShopWaitTimerLocal(u8 timer) { mShopWaitTimer = timer; }
void setSelectCancelPosLocal(u8 pos) { mSelectCancelPos = pos; }
u8 getItemEquipButtonLocal() { return mItemEquipButton; }
u8 getSelectPushFlag() { return mSelectPushFlag; }
u8 getSelectCancelPos() { return mSelectCancelPos; }
/* 0x100 */ msg_class* field_0x100;
/* 0x104 */ int mpScrnDraw;
/* 0x104 */ dMsgScrnBase_c* mpScrnDraw;
/* 0x108 */ dMsgString_c* mpMsgString;
/* 0x10C */ COutFont_c* mpOutFont;
/* 0x110 */ JMessage::TResourceContainer* mpResCont;
@@ -282,4 +287,206 @@ inline void dMsgObject_setTalkActor(fopAc_ac_c* actor) {
}
}
inline void dMsgObject_onKillMessageFlag() {
dMsgObject_c::onKillMessageFlag();
}
inline void dMsgObject_setKillMessageFlag() {
dMsgObject_c::setKillMessageFlag();
}
inline void dMsgObject_endFlowGroup() {
dMsgObject_c::endFlowGroup();
}
class dMsgObject_HowlHIO_c {
public:
/* 80232AEC */ dMsgObject_HowlHIO_c();
/* 80238B94 */ virtual ~dMsgObject_HowlHIO_c() {}
/* 0x04 */ s8 field_0x4;
/* 0x08 */ JUtility::TColor mHowlLineStartCol;
/* 0x0C */ JUtility::TColor mHowlLineEndCol;
/* 0x10 */ f32 mHighlightScale;
/* 0x14 */ JUtility::TColor mHighlightMoyaR0;
/* 0x18 */ JUtility::TColor mHighlightMoyaR1;
/* 0x1C */ JUtility::TColor mHighlightMoyabsR0;
/* 0x20 */ JUtility::TColor mHighlightMoyabsR1;
/* 0x24 */ JUtility::TColor mHighlightPikaR0;
/* 0x28 */ JUtility::TColor mHighlightPikaR1;
/* 0x2C */ f32 mAnmSpeed;
/* 0x30 */ JUtility::TColor mGuideUpperBlack;
/* 0x34 */ JUtility::TColor mGuideUpperWhite;
/* 0x38 */ JUtility::TColor mGuideMidBlack;
/* 0x3C */ JUtility::TColor mGuideMidWhite;
/* 0x40 */ JUtility::TColor mGuideLowerBlack;
/* 0x44 */ JUtility::TColor mGuideLowerWhite;
/* 0x48 */ JUtility::TColor mAnswerUpperBlack;
/* 0x4C */ JUtility::TColor mAnswerUpperWhite;
/* 0x50 */ JUtility::TColor mAnswerMidBlack;
/* 0x54 */ JUtility::TColor mAnswerMidWhite;
/* 0x58 */ JUtility::TColor mAnswerLowerBlack;
/* 0x5C */ JUtility::TColor mAnswerLowerWhite;
/* 0x60 */ JUtility::TColor mDotBlack;
/* 0x64 */ JUtility::TColor mDotWhite;
/* 0x68 */ f32 mDotScale;
/* 0x6C */ f32 mDrawInterval;
/* 0x70 */ f32 mLineThickness;
/* 0x74 */ f32 mCrossPosX;
/* 0x78 */ f32 mCrossPosY;
/* 0x7C */ f32 mCrossScale;
/* 0x80 */ f32 mWindowPosX;
/* 0x84 */ f32 mWindowPosY;
/* 0x88 */ f32 mWindowScale;
/* 0x8C */ f32 mInputStartPoint;
/* 0x90 */ f32 mGuideUpperAlpha;
/* 0x94 */ f32 mGuideMidAlpha;
/* 0x98 */ f32 mGuideLowerAlpha;
/* 0x9C */ f32 mAnswerUpperAlpha;
/* 0xA0 */ f32 mAnswerMidAlpha;
/* 0xA4 */ f32 mAnswerLowerAlpha;
/* 0xA8 */ f32 mLineSpaceOffset;
/* 0xAC */ u16 mWaveformThickness;
/* 0xAE */ u16 mWaveformLineLen;
/* 0xB0 */ u16 mWaveformDotLen;
};
class dMsgObject_HIO_c {
public:
/* 80232D6C */ dMsgObject_HIO_c();
/* 80238BDC */ virtual ~dMsgObject_HIO_c() {}
/* 0x004 */ s8 field_0x4;
/* 0x008 */ f32 mBoxMidna_fontSizeX;
/* 0x00C */ f32 field_0xc;
/* 0x010 */ f32 mBoxMidna_fontSizeY;
/* 0x014 */ f32 field_0x14;
/* 0x018 */ f32 mBoxTalkAlphaP;
/* 0x01C */ f32 mBoxNaviAlphaP;
/* 0x020 */ f32 mBoxMidnaAlphaP;
/* 0x024 */ f32 mBoxItemAlphaP;
/* 0x028 */ f32 mBoxStoneAlphaP;
/* 0x02C */ f32 mBoxWoodAlphaP;
/* 0x030 */ f32 mBoxBookAlphaP;
/* 0x034 */ f32 mBoxWolfAlphaP;
/* 0x038 */ f32 mSubtitleAlphaP;
/* 0x03C */ f32 field_0x3c;
/* 0x040 */ f32 mBoxNaviAnmSpeed;
/* 0x044 */ f32 field_0x44;
/* 0x048 */ f32 mBoxItemAnmSpeed;
/* 0x04C */ f32 field_0x4c;
/* 0x050 */ f32 field_0x50;
/* 0x054 */ f32 field_0x54;
/* 0x058 */ f32 mBoxWolfAnmSpeed;
/* 0x05C */ f32 mBoxItemHaloAlpha;
/* 0x060 */ f32 mBoxNaviHaloAlpha;
/* 0x064 */ f32 mBoxMidnaHaloAlpha;
/* 0x068 */ f32 mBoxWolfHaloAlpha;
/* 0x06C */ f32 mBoxTalkHaloAlpha;
/* 0x070 */ f32 mBoxTalkScaleX;
/* 0x074 */ f32 mBoxNaviScaleX;
/* 0x078 */ f32 mBoxMidnaScaleX;
/* 0x07C */ f32 mBoxItemScaleX;
/* 0x080 */ f32 mBoxStoneScaleX;
/* 0x084 */ f32 mBoxWoodScaleX;
/* 0x088 */ f32 mBoxBookScaleX;
/* 0x08C */ f32 mBoxWolfScaleX;
/* 0x090 */ f32 mStageTitleScaleX;
/* 0x094 */ f32 mSubtitleScaleX;
/* 0x098 */ f32 mBossNameScaleX;
/* 0x09C */ f32 mBoxTalkScaleY;
/* 0x0A0 */ f32 mBoxNaviScaleY;
/* 0x0A4 */ f32 mBoxMidnaScaleY;
/* 0x0A8 */ f32 mBoxItemScaleY;
/* 0x0AC */ f32 mBoxStoneScaleY;
/* 0x0B0 */ f32 mBoxWoodScaleY;
/* 0x0B4 */ f32 mBoxBookScaleY;
/* 0x0B8 */ f32 mBoxWolfScaleY;
/* 0x0BC */ f32 mStageTitleScaleY;
/* 0x0C0 */ f32 mSubtitleScaleY;
/* 0x0C4 */ f32 mBossNameScaleY;
/* 0x0C8 */ f32 mBoxItemSizeX;
/* 0x0CC */ f32 mBoxItemSizeY;
/* 0x0D0 */ f32 mBoxItemPosX;
/* 0x0D4 */ f32 mBoxItemPosY;
/* 0x0D8 */ f32 mBoxItemTextSizeX;
/* 0x0DC */ f32 mBoxItemTextSizeY;
/* 0x0E0 */ f32 mBoxItemTextPosX;
/* 0x0E4 */ f32 mBoxItemTextPosY;
/* 0x0E8 */ JUtility::TColor mBoxStartBlack[10]; // talk, navi, midna, item, stone, wood, book, wolf,
/* 0x110 */ JUtility::TColor mBoxEndBlack[10];
/* 0x138 */ JUtility::TColor mBoxStartWhite[10];
/* 0x160 */ JUtility::TColor mBoxEndWhite[10];
/* 0x188 */ JUtility::TColor mSelMsgInactiveCol;
/* 0x18C */ f32 mStageTitleCharPosX;
/* 0x190 */ f32 mBossNameCharPosX;
/* 0x194 */ f32 mStageTitleCharPosY;
/* 0x198 */ f32 mBossNameCharPosY;
/* 0x19C */ f32 mStageTitleCharSizeX;
/* 0x1A0 */ f32 mBossNameCharSizeX;
/* 0x1A4 */ f32 mStageTitleCharSizeY;
/* 0x1A8 */ f32 mBossNameCharSizeY;
/* 0x1AC */ f32 mStageTitleBasePosX;
/* 0x1B0 */ f32 mBossNameBasePosX;
/* 0x1B4 */ f32 mStageTitleBasePosY;
/* 0x1B8 */ f32 mBossNameBasePosY;
/* 0x1BC */ f32 mStageTitleBaseSizeX;
/* 0x1C0 */ f32 mBossNameBaseSizeX;
/* 0x1C4 */ f32 mStageTitleBaseSizeY;
/* 0x1C8 */ f32 mBossNameBaseSizeY;
/* 0x1CC */ f32 mStageTitleBaseAlpha;
/* 0x1D0 */ f32 mBossNameBaseAlpha;
/* 0x1D4 */ f32 mChoicePos[3][10]; // down, mid, top
/* 0x24C */ f32 mBoxPos[3][10]; // down, mid, top // talk, navi, midna, item, stone, wood, book, wolf,
/* 0x2C4 */ f32 mPortalIconScale;
/* 0x2C8 */ f32 mTextPosX;
/* 0x2CC */ f32 mTextPosY;
/* 0x2D0 */ f32 mPikariScale;
/* 0x2D4 */ JUtility::TColor mPikariMoyaR0;
/* 0x2D8 */ JUtility::TColor mPikariMoyaR1;
/* 0x2DC */ JUtility::TColor mPikariMoyabsR0;
/* 0x2E0 */ JUtility::TColor mPikariMoyabsR1;
/* 0x2E4 */ JUtility::TColor mPikariPikaR0;
/* 0x2E8 */ JUtility::TColor mPikariPikaR1;
/* 0x2EC */ f32 mPikariAnmSpeed;
/* 0x2F0 */ u16 mPikariHaloDelay_spirit;
/* 0x2F2 */ u8 mStageTitleDisplayType;
/* 0x2F4 */ u16 mMsgIndex;
/* 0x2F6 */ u16 mFlowIndex;
/* 0x2F8 */ u16 mSaveSeqMsgIndex;
/* 0x2FA */ u16 mSelWeightFrame;
/* 0x2FC */ u16 mBoxAppearBound;
/* 0x2FE */ u16 mBoxAppearFrame;
/* 0x300 */ u16 mWaitFrame;
/* 0x302 */ u16 mLightAppearFrame;
/* 0x304 */ u16 field_0x304;
/* 0x306 */ u16 mStageTitleFadeIn;
/* 0x308 */ u16 mStageTitleFadeOut;
/* 0x30A */ u16 mBossNameFadeIn;
/* 0x30C */ u16 mBossNameFadeOut;
/* 0x30E */ u16 mStageTitleDisplayTime;
/* 0x310 */ u16 mBossNameDisplayTime;
/* 0x312 */ u16 mBatchDisplayWeight_3;
/* 0x314 */ u16 mCharDisplayWeight_5;
/* 0x316 */ u16 mBatchDisplayWeight_8;
/* 0x318 */ u16 mBatchDisplayWeight_9;
/* 0x31A */ u16 mHaloDelayFrame;
/* 0x31C */ u16 mHaloDelayFrameSpirit;
/* 0x31E */ bool mSaveSeqMsgDebug;
/* 0x31F */ bool mMsgDebug;
/* 0x320 */ u8 field_0x320;
/* 0x320 */ bool mTextColorDebug;
/* 0x321 */ u8 mTextColorUpperR[9]; // Default, Red, Green, Blue, Yellow, L.Blue, Purple, Grey, Orange,
/* 0x32A */ u8 mTextColorUpperG[9];
/* 0x333 */ u8 mTextColorUpperB[9];
/* 0x33C */ u8 mTextColorLowerR[9]; // Default, Red, Green, Blue, Yellow, L.Blue, Purple, Grey, Orange,
/* 0x345 */ u8 mTextColorLowerG[9];
/* 0x34E */ u8 mTextColorLowerB[9];
/* 0x357 */ u8 mDisplaySpeed;
/* 0x358 */ u8 mDisplaySpeedSpirit;
/* 0x359 */ u8 mMessageDisplay;
/* 0x35C */ dMsgObject_HowlHIO_c mHowlHIO;
};
#endif /* D_MSG_D_MSG_OBJECT_H */
+58
View File
@@ -2,5 +2,63 @@
#define D_MSG_D_MSG_OUT_FONT_H
#include "dolphin/types.h"
#include "JSystem/J2DGraph/J2DTextBox.h"
#include "JSystem/J2DGraph/J2DPicture.h"
class COutFontSet_c {
public:
/* 80225BB8 */ COutFontSet_c();
/* 80225C3C */ void initialize();
/* 80225C70 */ void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
/* 80225BF4 */ virtual ~COutFontSet_c();
u8 getType() { return mType; }
u32 getColor() { return mColor; }
f32 getPosX() { return mPosX; }
f32 getPosY() { return mPosY; }
f32 getSizeX() { return mSizeX; }
f32 getSizeY() { return mSizeY; }
J2DTextBox* getTextBoxPtr() { return mpTextBoxPtr; }
void setTextBoxPtr(J2DTextBox* p_textBox) { mpTextBoxPtr = p_textBox; }
void resetType() { mType = 0x47; }
private:
/* 0x04 */ J2DTextBox* mpTextBoxPtr;
/* 0x08 */ f32 mPosX;
/* 0x0C */ f32 mPosY;
/* 0x10 */ f32 mSizeX;
/* 0x14 */ f32 mSizeY;
/* 0x18 */ u32 mColor;
/* 0x1C */ u8 mAlpha;
/* 0x1D */ u8 mType;
};
class COutFont_c {
public:
/* 80225C94 */ COutFont_c(u8);
/* 80226CF8 */ void initialize();
/* 80228490 */ void setBlendAnime(J2DPicture*, s16);
/* 80228530 */ const char* getBtiName(int);
/* 80225D60 */ virtual ~COutFont_c();
/* 80225E7C */ virtual void setPane(J2DPicture*);
/* 80225EA8 */ virtual void createPane();
/* 80226DB0 */ virtual void draw(J2DTextBox*, f32, f32, f32);
/* 80228448 */ virtual void reset(J2DTextBox*);
/* 80226D4C */ virtual void drawFont(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
/* 80226DA8 */ virtual void setAlphaRatio(f32);
private:
/* 0x004 */ COutFontSet_c* mpOfs[35];
/* 0x090 */ J2DPicture* mpPane[70];
/* 0x1A8 */ f32 mAlphaRatio;
/* 0x1AC */ f32 field_0x1ac;
/* 0x1B0 */ f32 field_0x1b0;
/* 0x1B4 */ s16 field_0x1b4[70];
/* 0x240 */ bool field_0x240;
/* 0x241 */ u8 mRupeeColor;
/* 0x242 */ u8 field_0x242;
};
#endif /* D_MSG_D_MSG_OUT_FONT_H */
+21 -1
View File
@@ -1,6 +1,26 @@
#ifndef D_MSG_D_MSG_STRING_H
#define D_MSG_D_MSG_STRING_H
#include "dolphin/types.h"
#include "d/msg/d_msg_string_base.h"
#include "d/msg/d_msg_out_font.h"
class dMsgString_c {
public:
/* 80249C20 */ dMsgString_c();
/* 80249CA0 */ dMsgString_c(u8);
/* 80249D28 */ ~dMsgString_c();
/* 80191B6C */ virtual void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
/* 801E1D10 */ virtual void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
u8);
/* 80249DB4 */ virtual void resetStringLocal(J2DTextBox*);
/* 80249DE4 */ virtual void drawOutFontLocal(J2DTextBox*, f32);
/* 80249ED0 */ virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
private:
/* 0x24 */ COutFont_c* mpOutFont;
/* 0x28 */ u8 field_0x28;
};
#endif /* D_MSG_D_MSG_STRING_H */
+36 -1
View File
@@ -1,6 +1,41 @@
#ifndef D_MSG_D_MSG_STRING_BASE_H
#define D_MSG_D_MSG_STRING_BASE_H
#include "dolphin/types.h"
#include "d/msg/d_msg_object.h"
struct jmessage_string_tControl;
struct jmessage_string_tReference;
struct jmessage_string_tSequenceProcessor;
struct jmessage_string_tRenderingProcessor;
class dMsgStringBase_c {
public:
/* 802493B4 */ dMsgStringBase_c();
/* 80249528 */ ~dMsgStringBase_c();
/* 80249700 */ void getResource();
/* 80249768 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
/* 802498D8 */ void getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*,
COutFont_c*, u8);
/* 80249A48 */ void getPageMax(int);
/* 80249A70 */ void getMessageLocal(u32, char*);
/* 80249BB0 */ virtual void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8);
/* 80249BD0 */ virtual void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*,
u8);
/* 80249BF8 */ virtual void getMessage(u32, char*);
/* 80249C18 */ virtual void resetStringLocal(J2DTextBox*);
/* 80249C1C */ virtual void drawOutFontLocal(J2DTextBox*, f32);
/* 80249BAC */ virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8);
private:
/* 0x04 */ JMessage::TResourceContainer* mpResCont;
/* 0x08 */ jmessage_string_tControl* mpCtrl;
/* 0x0C */ jmessage_string_tReference* mpRefer;
/* 0x10 */ jmessage_string_tSequenceProcessor* mpSeqProc;
/* 0x14 */ jmessage_string_tRenderingProcessor* mpRenProc;
/* 0x18 */ JMessage::TParse* mpParse;
/* 0x1C */ void* field_0x1c;
/* 0x20 */ u16 field_0x20;
};
#endif /* D_MSG_D_MSG_STRING_BASE_H */