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 02b3548d79
commit a91d7c4539
412 changed files with 12030 additions and 16833 deletions
+8 -1
View File
@@ -36,7 +36,7 @@ public:
/* 80300490 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
/* 803002E8 */ virtual void draw(f32, f32);
/* 80300278 */ virtual void setFont(JUTFont*);
/* 8021C7F4 */ virtual void getFont() const;
/* 8021C7F4 */ virtual JUTFont* getFont() const;
/* 80254408 */ virtual bool setBlack(JUtility::TColor);
/* 80186C84 */ virtual void setWhite(JUtility::TColor);
/* 8019230C */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
@@ -75,8 +75,15 @@ public:
}
void setFontSize(TFontSize size) { setFontSize(size.mSizeX, size.mSizeY); }
void getFontSize(TFontSize& size) const {
size.mSizeX = field_0x11c;
size.mSizeY = field_0x120;
}
void setCharSpace(f32 space) { mCharSpacing = space; }
f32 getCharSpace() const { return mCharSpacing; }
void setLineSpace(f32 space) { mLineSpacing = space; }
f32 getLineSpace() const { return mLineSpacing; }
private:
/* 0x0100 */ JUTFont* mFont;
+1 -1
View File
@@ -37,7 +37,7 @@ public:
/* 803078AC */ virtual void draw(f32, f32);
/* 80307AF0 */ virtual void draw(f32, f32, f32, J2DTextBoxHBinding);
/* 80307D5C */ virtual void setFont(JUTFont*);
/* 80307DC0 */ virtual void getFont() const;
/* 80307DC0 */ virtual JUTFont* getFont() const;
/* 8030823C */ virtual void setBlack(JUtility::TColor);
/* 803082C4 */ virtual void setWhite(JUtility::TColor);
/* 8030834C */ virtual void setBlackWhite(JUtility::TColor, JUtility::TColor);
@@ -575,6 +575,7 @@ public:
f32 getRate() const { return mRate; }
f32 getFrame() const { return mFrame; }
s16 getEnd() const { return mEnd; }
u8 getAttribute() const { return mAttribute; }
void setAttribute(u8 attr) { mAttribute = attr; }
void setEnd(s16 end) { mEnd = end; }
@@ -585,10 +586,11 @@ public:
}
void setFrame(f32 frame) { mFrame = frame; }
void setLoop(s16 loop) { mLoop = loop; }
bool checkState(u8 state) const { return mState & state; }
private:
/* 0x04 */ u8 mAttribute;
/* 0x05 */ bool mState;
/* 0x05 */ u8 mState;
/* 0x06 */ s16 mStart;
/* 0x08 */ s16 mEnd;
/* 0x0A */ s16 mLoop;
@@ -60,6 +60,9 @@ public:
void setYounger(J3DJoint* pYounger) { mYounger = pYounger; }
void setCurrentMtxCalc(J3DMtxCalc* pMtxCalc) { mCurrentMtxCalc = pMtxCalc; }
J3DTransformInfo& getTransformInfo() { return mTransformInfo; }
Vec* getMax() { return &mMax; }
Vec* getMin() { return &mMin; }
void setCallBack(J3DJointCallBack callback) { mCallBack = callback; }
static J3DMtxCalc* mCurrentMtxCalc;
@@ -69,6 +69,7 @@ public:
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
void setBaseScale(const Vec& scale) { mBaseScale = scale; }
void setUserArea(u32 area) { mUserArea = area; }
Vec* getBaseScale() { return &mBaseScale; }
// is there a better way to handle inlines with same name as non-inlines?
MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); }
@@ -43,6 +43,8 @@ public:
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
bool checkBumpFlag() const { return mbHasBumpArray; }
bool checkBBoardFlag() const { return mbHasBillboard == 1; }
void entryTexMtxAnimator(J3DAnmTextureSRTKey* anm) { mMaterialTable.entryTexMtxAnimator(anm); }
void entryTevRegAnimator(J3DAnmTevRegKey* anm) { mMaterialTable.entryTevRegAnimator(anm); }
int removeTexNoAnimator(J3DAnmTexPattern* anm) {
return mMaterialTable.removeTexNoAnimator(anm);
}
+8
View File
@@ -27,6 +27,14 @@ struct JFWSystem {
/* 80271D18 */ static void init();
static JUTConsole* getSystemConsole() { return systemConsole; }
static JKRExpHeap* getSystemHeap() { return systemHeap; }
static void setMaxStdHeap(s32 max) { CSetUpParam::maxStdHeaps = max; }
static void setSysHeapSize(u32 size) { CSetUpParam::sysHeapSize = size; }
static void setFifoBufSize(u32 size) { CSetUpParam::fifoBufSize = size; }
static void setAramAudioBufSize(u32 size) { CSetUpParam::aramAudioBufSize = size; }
static void setAramGraphBufSize(u32 size) { CSetUpParam::aramGraphBufSize = size; }
static void setRenderMode(GXRenderModeObj* p_modeObj) { CSetUpParam::renderMode = p_modeObj; }
static JKRExpHeap* rootHeap;
static JKRExpHeap* systemHeap;
@@ -42,6 +42,8 @@ public:
static JKRADCommand* callCommand_Async(JKRADCommand*);
static bool syncAram(JKRADCommand*, int);
static void setSZSBufferSize(u32 size) { sSZSBufferSize = size; }
// TODO: fix type
static u8 sDvdAramAsyncList[12];
static u32 sSZSBufferSize;
+2
View File
@@ -29,6 +29,8 @@ public:
ALLOC_DIRECTION_BACKWARD = 2,
};
static void setSZSBufferSize(u32 size) { sSZSBufferSize = size; }
static void* loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection,
u32, JKRCompression*, u32*);
static void* loadToMainRAM(long, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32,
+3
View File
@@ -8,6 +8,8 @@
class JKRHeap;
typedef void (*JKRErrorHandler)(void*, u32, int);
extern bool data_804508B0;
class JKRHeap : public JKRDisposer {
public:
class TState {
@@ -134,6 +136,7 @@ public:
static JKRErrorHandler setErrorHandler(JKRErrorHandler errorHandler);
static void setDefaultDebugFill(bool status) { data_804508B0 = status; }
static void* getCodeStart(void) { return mCodeStart; }
static void* getCodeEnd(void) { return mCodeEnd; }
static void* getUserRamStart(void) { return mUserRamStart; }
+20 -4
View File
@@ -2,22 +2,38 @@
#define CONTROL_H
#include "dolphin/types.h"
#include "JSystem/JMessage/processor.h"
#include "JSystem/JMessage/resource.h"
namespace JMessage {
struct TProcessor;
struct TControl {
/* 802A7548 */ TControl();
/* 802A758C */ ~TControl();
/* 802A758C */ virtual ~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);
/* 0x04 */ TSequenceProcessor* pSequenceProcessor_;
/* 0x08 */ TRenderingProcessor* pRenderingProcessor_;
/* 0x0C */ u16 messageCode_;
/* 0x0E */ u16 field_0xe;
/* 0x10 */ TResource* pResourceCache_;
/* 0x14 */ void* pEntry_;
/* 0x18 */ u32 pMessageText_begin_;
/* 0x1C */ char* pszText_update_current_;
/* 0x20 */ u32 field_0x20;
/* 0x24 */ TProcessor::TStack_ oStack_renderingProcessor_;
};
}; // namespace JMessage
struct jmessage_tControl {};
struct jmessage_tControl : public JMessage::TControl {
/* 802299EC */ jmessage_tControl();
/* 80039B0C */ virtual ~jmessage_tControl();
};
#endif /* CONTROL_H */
+229 -38
View File
@@ -3,10 +3,36 @@
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTFont.h"
namespace JMessage {
struct TResource;
struct TResourceContainer;
struct TReference {
/* 802A7AF8 */ virtual ~TReference();
/* 802A7B40 */ virtual bool do_word(u32) const;
TResourceContainer* pcResource_;
};
struct TProcessor {
/* 802A7B48 */ ~TProcessor();
struct TStack_ {
/* 0x0 */ int upsz_; // size
/* 0x4 */ const char* stack[4];
}; // Size: 0x14
struct TProcess_ {
/* 0x0 */ void* pfnProcess_CharacterEnd;
struct {
/* 0x0 */ void* pfn;
/* 0x4 */ u32 pcBase;
/* 0x8 */ u32 pOffset;
/* 0xC */ u32 uRest;
}
/* 0x4 */ rData;
}; // Size: 0x14
/* 802A7B90 */ void reset();
/* 802A7BF8 */ void stack_pushCurrent(char const*);
/* 802A7C30 */ void stack_popCurrent();
@@ -16,17 +42,7 @@ struct TProcessor {
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*);
@@ -35,18 +51,36 @@ struct 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;
/* 802A7B48 */ virtual ~TProcessor();
/* 802A7FC0 */ virtual void do_reset();
/* 802A7FC4 */ virtual void do_begin(void const*, char const*);
/* 802A7FC8 */ virtual void do_end();
/* 802A7FCC */ virtual void do_character(int);
/* 802A7FD0 */ virtual bool do_tag(u32, void const*, u32);
/* 802A7FD8 */ virtual void do_select_begin(u32);
/* 802A7FDC */ virtual void do_select_end();
/* 802A7FE0 */ virtual void do_select_separate();
/* 802A8084 */ virtual void do_resetStatus_(char const*);
/* 802A8088 */ virtual bool do_setBegin_isReady_() const;
/* 0x04 */ TReference* pReference_;
/* 0x08 */ TResource* pResourceCache_;
/* 0x0C */ const char* pszCurrent_;
/* 0x10 */ TStack_ oStack_;
/* 0x24 */ TProcess_ oProcess_;
};
struct TControl;
struct TSequenceProcessor {
struct TSequenceProcessor : public TProcessor {
enum SeqStatus {
STATUS_NORMAL = 2,
STATUS_JUMP,
STATUS_BRANCH,
};
/* 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);
@@ -57,54 +91,211 @@ struct TSequenceProcessor {
/* 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);
/* 802A83B8 */ virtual ~TSequenceProcessor();
/* 802A87A4 */ virtual void do_resetStatus_(char const*);
/* 802A87C0 */ virtual void do_setBegin_isReady_() const;
/* 802A87D0 */ virtual void do_begin_(void const*, char const*);
/* 802A87D4 */ virtual void do_end_();
/* 802A87E0 */ virtual void do_tag_(u32, void const*, u32);
/* 802A8780 */ virtual bool do_isReady();
/* 802A8788 */ virtual bool do_jump_isReady();
/* 802A8790 */ virtual void do_jump(void const*, char const*);
/* 802A8794 */ virtual void do_branch_query(u32);
/* 802A8798 */ virtual s32 do_branch_queryResult();
/* 802A87A0 */ virtual void do_branch(void const*, char const*);
/* 0x38 */ TControl* pControl_;
/* 0x3C */ SeqStatus eStatus_;
/* 0x40 */ TProcess_ oProcess2_;
};
struct TRenderingProcessor {
struct TRenderingProcessor : public TProcessor {
/* 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);
/* 802A8AC0 */ virtual ~TRenderingProcessor();
/* 802A8BA4 */ virtual void do_begin_(void const*, char const*);
/* 802A8BA8 */ virtual void do_end_();
/* 802A8BAC */ virtual void do_tag_(u32, void const*, u32);
};
}; // namespace JMessage
struct jmessage_tReference {
struct STControl;
struct dMsgObject_c;
struct jmessage_tReference : public JMessage::TReference {
/* 80228B04 */ jmessage_tReference();
/* 80228D28 */ void calcDistance();
/* 80228DE0 */ void getLineMax();
/* 80228E6C */ void isKanban();
/* 80228EA0 */ void isPlaceName();
/* 80228ED4 */ void isBossName();
/* 80228F08 */ void isSaveSeq();
/* 80228F3C */ void isBook();
/* 80228F70 */ void isStaffRoll();
/* 80228FA4 */ void isHowl();
/* 80228FD8 */ void isMidona();
/* 8022900C */ void resetReference();
/* 80229034 */ void pageSend();
/* 80229168 */ void selectMessage();
/* 802294A8 */ void inputNumber();
/* 80229730 */ void getWord(int);
/* 80229744 */ void resetWord();
/* 80229768 */ void setCharactor(u16);
/* 80229788 */ void addCharactor(u16);
/* 802297B0 */ void resetCharactor();
/* 802297E4 */ void shiftCharCountBuffer();
/* 80229810 */ void resetCharCountBuffer();
/* 80229848 */ void allsetCharCountBuffer();
/* 8022986C */ void isCharSend();
/* 802298DC */ void isLightSend();
/* 8022994C */ void isLightEnd();
/* 80238C78 */ void setActorPos(cXyz);
};
/* 802299AC */ void decideOutFontRupeeColor(int);
/* 80232A20 */ void getActorPos();
/* 80238C78 */ void setActorPos(cXyz pos) {
mActorPos = pos;
}
/* 80228CB4 */ virtual ~jmessage_tReference();
private:
/* 0x0008 */ STControl* mpStick;
/* 0x000C */ u16 field_0xc[0x200];
/* 0x040C */ s16 field_0x40c;
/* 0x040E */ s16 field_0x40e;
/* 0x0410 */ s16 mCountBackUp;
/* 0x0414 */ cXyz mActorPos;
/* 0x0420 */ f32 mFontSizeX;
/* 0x0424 */ f32 mFontSizeY;
/* 0x0428 */ f32 mRubySize;
/* 0x042C */ f32 mTBoxWidth;
/* 0x0430 */ f32 mTBoxHeight;
/* 0x0434 */ f32 mLineSpace;
/* 0x0438 */ f32 mCharSpace;
/* 0x043C */ f32 mRubyCharSpace;
/* 0x0440 */ f32 mSelFontSize;
/* 0x0444 */ f32 mSelRubySize;
/* 0x0448 */ f32 mSelTBoxWidth;
/* 0x044C */ f32 mSelCharSpace;
/* 0x0450 */ f32 mSelRubyCharSpace;
/* 0x0454 */ f32 mDistanceScale;
/* 0x0458 */ f32 mAddCharAllAlphaRate;
/* 0x045C */ f32 mCharAllAlphaRate;
/* 0x0460 */ f32 mAddCharAlpha;
/* 0x0464 */ f32 mCharAlpha;
/* 0x0468 */ f32 mStrLength[40];
/* 0x0508 */ f32 mSpaceLength[40];
/* 0x05A8 */ f32 mSelLength[3];
/* 0x05B4 */ u32 mDemoFrame;
/* 0x05B8 */ u32 mRevoMessageID;
/* 0x05BC */ u16* mpStatus;
/* 0x05C0 */ dMsgObject_c* mpObjectPtr;
/* 0x05C4 */ char* mpSelMsgPtr;
/* 0x05C8 */ JUTFont* mpFont;
/* 0x05CC */ s16 mStartLineCount;
/* 0x05CE */ s16 mEndLineCount;
/* 0x05D0 */ u16 mLineCount;
/* 0x05D2 */ s16 field_0x5d2;
/* 0x05D4 */ s16 mPageEndCount;
/* 0x05D6 */ s16 mSendTimer;
/* 0x05D8 */ s16 mCharCnt;
/* 0x05DA */ s16 mPageNum;
/* 0x05DC */ u8 mNowLightCount;
/* 0x05DD */ u8 mDrawLightCount;
/* 0x05DE */ u16 mMsgID;
/* 0x05E0 */ u16 mLineScale[40];
/* 0x0630 */ u16 mTopTagScale;
/* 0x0632 */ u16 mNowTagScale;
/* 0x0634 */ char mWord[10][100];
/* 0x0A1C */ char mTextPtr[0x200];
/* 0x0C1C */ char mTextSPtr[0x200];
/* 0x0E1C */ char mRuby[0x200];
/* 0x101C */ u8 mSelText[3][50];
/* 0x10B2 */ u8 mSelRuby[3][80];
/* 0x11A2 */ s8 mPageLine[40];
/* 0x11CA */ s8 mPageLineMax[40];
/* 0x11F2 */ u8 mPageType[40];
/* 0x121A */ u8 mLineArrange[40];
/* 0x1242 */ u8 mSelectNum;
/* 0x1243 */ u8 mSelectType;
/* 0x1244 */ u8 mSelectPos;
/* 0x1245 */ u8 mFukiPosType;
/* 0x1246 */ u8 mFukiKind;
/* 0x1247 */ u8 mForm;
/* 0x1248 */ u8 field_0x1248;
/* 0x1249 */ u8 mNowColorType;
/* 0x124A */ u8 mTopColorType;
/* 0x124B */ bool mButtonTagStopFlag;
/* 0x124C */ u8 mSendFlag;
/* 0x124D */ u8 mStopFlag;
/* 0x124E */ u8 mSelectRubyFlag;
/* 0x124F */ u8 mInputFigure;
/* 0x1250 */ u8 mOutFontRupeeColor;
/* 0x1251 */ s8 mNowWordCount;
/* 0x1252 */ s8 mTopWordCount;
/* 0x1253 */ u8 mCharCountBuffer[31];
/* 0x1272 */ bool mLightBatchFlag;
/* 0x1273 */ bool mBatchFlag;
/* 0x1274 */ bool mSelectSetCancelFlag;
/* 0x1275 */ bool mBombNameUseFlag;
/* 0x1276 */ bool mBatchColorFlag;
}; // Size: 0x1278
struct jmessage_tControl;
struct jmessage_tSequenceProcessor {
struct jmessage_tSequenceProcessor : public JMessage::TSequenceProcessor {
/* 8022B558 */ jmessage_tSequenceProcessor(jmessage_tReference const*, jmessage_tControl*);
/* 8022C904 */ void do_name1();
/* 8022C908 */ void do_space(u32);
/* 8022CA24 */ void do_rubyset(void const*, u32);
/* 8022CAAC */ void push_word();
/* 8022CB10 */ void messageSePlay(u8, u8, cXyz*);
/* 8022CBE8 */ void calcStringLength();
/* 8023299C */ virtual ~jmessage_tSequenceProcessor();
/* 8022B654 */ virtual void do_reset();
/* 8022B658 */ virtual void do_begin(void const*, char const*);
/* 8022BA3C */ virtual void do_end();
/* 8022BFE0 */ virtual void do_character(int);
/* 8022C1A0 */ virtual void do_tag(u32, void const*, u32);
/* 8022BB7C */ virtual void do_isReady();
/* 8022C8FC */ virtual bool do_jump_isReady();
/* 8022CBE4 */ virtual void do_jump(void const*, char const*);
};
struct jmessage_tRenderingProcessor {
struct jmessage_tRenderingProcessor : public JMessage::TRenderingProcessor {
/* 8022CCB0 */ jmessage_tRenderingProcessor(jmessage_tReference const*);
/* 8022E12C */ void resetRendering();
/* 8022E17C */ void do_widthcenter();
/* 8022E260 */ void do_selwidthcenter(int);
/* 8022E318 */ void do_heightcenter();
/* 8022E7CC */ void do_color(u8);
/* 8022E860 */ void do_scale(f32);
/* 8022E960 */ void do_linedown(s16);
/* 8022E9C0 */ void do_transY(s16, bool);
/* 8022EAE4 */ void do_outfont(u8, u32);
/* 8022ED10 */ void do_arrow2();
/* 8022EECC */ void getLineLength(int);
/* 8022EF00 */ void do_strcat(char*, bool, bool, bool);
/* 8022F148 */ void do_rubyset(void const*, u32);
/* 8022F384 */ void do_rubystrcat(char*, char*, f32, f32);
/* 8022F53C */ void do_name1();
/* 8022F540 */ void do_numset(s16);
/* 8022F734 */ void push_word();
/* 8022F784 */ void getCharInfo(f32, f32, f32, f32, f32);
/* 8023293C */ virtual ~jmessage_tRenderingProcessor();
/* 8022CDC8 */ virtual void do_reset();
/* 8022CDCC */ virtual void do_begin(void const*, char const*);
/* 8022CFD8 */ virtual void do_end();
/* 8022D0A0 */ virtual void do_character(int);
/* 8022D74C */ virtual void do_tag(u32, void const*, u32);
};
#endif /* PROCESSOR_H */
+3 -1
View File
@@ -2,9 +2,11 @@
#define RESOURCE_H
#include "dolphin/types.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/JStudio/fvb-data.h"
namespace JMessage {
struct TResource {
struct TResource : public JGadget::TLinkListNode {
/* 802A8CDC */ void toMessageIndex_messageID(u32, u32, bool*) const;
};
+6 -4
View File
@@ -194,10 +194,11 @@ struct JPAEmitterWorkData {
class JPAEmitterCallBack {
public:
/* 80050368 */ void execute(JPABaseEmitter*);
/* 8005036C */ void draw(JPABaseEmitter*);
/* 80050370 */ void drawAfter(JPABaseEmitter*);
/* 80050374 */ void executeAfter(JPABaseEmitter*);
/* 80050368 */ virtual void execute(JPABaseEmitter*);
/* 80050374 */ virtual void executeAfter(JPABaseEmitter*);
/* 8005036C */ virtual void draw(JPABaseEmitter*);
/* 80050370 */ virtual void drawAfter(JPABaseEmitter*);
/* 8027E6A4 */ ~JPAEmitterCallBack();
};
@@ -230,6 +231,7 @@ public:
u8 getResourceManagerID() const { return mResMgrID; }
u8 getGroupID() const { return mGroupID; }
u8 getDrawTimes() const { return mDrawTimes; }
void setRate(f32 rate) { mRate = rate; }
f32 get_r_f() { return mRndm.get_rndm_f(); }
f32 get_r_zp() { return mRndm.get_rndm_zp(); }
+73
View File
@@ -2,5 +2,78 @@
#define JUTCACHEFONT_H
#include "dolphin/types.h"
#include "JSystem/JUtility/JUTResFont.h"
#include "JSystem/JKernel/JKRAram.h"
class JUTCacheFont : public JUTResFont {
public:
struct TGlyphCacheInfo {
/* 0x0 */ TGlyphCacheInfo* field_0x0;
/* 0x4 */ TGlyphCacheInfo** field_0x4;
};
struct TCachePage {
/* 0x00 */ u8 field_0x0[8];
/* 0x08 */ s16 field_0x8;
/* 0x0A */ u16 field_0xa;
/* 0x0C */ u8 field_0xc[4];
/* 0x10 */ u8* field_0x10;
/* 0x14 */ u16 field_0x14;
/* 0x16 */ u16 field_0x16;
/* 0x18 */ u16 field_0x18;
/* 0x1A */ u16 field_0x1a;
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u16 field_0x1e;
}; // Size: 0x20
enum EPagingType {
PAGE_TYPE_0,
PAGE_TYPE_1,
};
/* 802DD188 */ JUTCacheFont(ResFONT const*, u32, JKRHeap*);
/* 802DD29C */ void deleteMemBlocks_CacheFont();
/* 802DD320 */ void initialize_state();
/* 802DD35C */ int getMemorySize(ResFONT const*, u16*, u32*, u16*, u32*, u16*, u32*, u32*);
/* 802DD4EC */ int initiate(ResFONT const*, void*, u32, JKRHeap*);
/* 802DD54C */ bool internal_initiate(ResFONT const*, void*, u32, JKRHeap*);
/* 802DD650 */ bool allocArea(void*, u32, JKRHeap*);
/* 802DD804 */ bool allocArray(JKRHeap*);
/* 802DDB0C */ void determineBlankPage();
/* 802DDBBC */ void getGlyphFromAram(JUTCacheFont::TGlyphCacheInfo*, JUTCacheFont::TCachePage*,
int*, int*);
/* 802DDD98 */ void loadCache_char_subroutine(int*, bool);
/* 802DDEE0 */ void invalidiateAllCache();
/* 802DDF68 */ void unlink(JUTCacheFont::TGlyphCacheInfo*);
/* 802DDFAC */ void prepend(JUTCacheFont::TGlyphCacheInfo*);
/* 802DD208 */ virtual ~JUTCacheFont();
/* 802DDCE4 */ virtual void loadImage(int, _GXTexMapID);
/* 802DD8EC */ virtual void setBlock();
void setPagingType(EPagingType type) { mPagingType = type; }
static u32 calcCacheSize(u32 param_0, int param_1) { return (ALIGN_NEXT(param_0, 0x20) + 0x40) * param_1; }
private:
/* 0x70 */ u32 mTotalWidSize;
/* 0x74 */ u32 mTotalGlySize;
/* 0x78 */ u32 mTotalMapSize;
/* 0x7C */ void* field_0x7c;
/* 0x80 */ void* field_0x80;
/* 0x84 */ void* field_0x84;
/* 0x88 */ u32 mMaxSheetSize;
/* 0x8C */ EPagingType mPagingType;
/* 0x90 */ void** mCacheBuffer;
/* 0x94 */ int field_0x94;
/* 0x98 */ u32 mCachePage;
/* 0x9C */ TGlyphCacheInfo* field_0x9c;
/* 0xA0 */ TGlyphCacheInfo* field_0xa0;
/* 0xA4 */ void* field_0xa4;
/* 0xA8 */ u32 field_0xa8;
/* 0xAC */ JKRAramBlock* field_0xac;
/* 0xB0 */ u8 field_0xb0;
/* 0xB4 */ int field_0xb4;
}; // Size: 0xB8
#endif /* JUTCACHEFONT_H */
+20 -7
View File
@@ -11,7 +11,9 @@
class JUTConsole : public JKRDisposer {
public:
enum EConsoleType {
UNK_TYPE2 = 2,
CONSOLE_TYPE_0 = 0,
CONSOLE_TYPE_1 = 1,
CONSOLE_TYPE_2 = 2,
};
enum OutputFlag {
@@ -47,8 +49,8 @@ public:
}
void setHeight(u32 height) {
mHeight = height;
if (mHeight > field_0x24) {
mHeight = field_0x24;
if (mHeight > mMaxLines) {
mHeight = mMaxLines;
}
}
@@ -72,18 +74,27 @@ public:
if (diff >= 0) {
return diff;
}
return diff += field_0x24;
return diff += mMaxLines;
}
void scrollToLastLine() { scroll(field_0x24); }
void scrollToFirstLine() { scroll(-field_0x24); }
int nextIndex(int param_0) const {
int index = param_0 + 1;
if (mMaxLines <= index) {
index = 0;
}
return index;
}
void scrollToLastLine() { scroll(mMaxLines); }
void scrollToFirstLine() { scroll(-mMaxLines); }
private:
/* 0x18 */ JGadget::TLinkListNode mListNode;
private:
/* 0x20 */ u32 field_0x20;
/* 0x24 */ u32 field_0x24;
/* 0x24 */ u32 mMaxLines;
/* 0x28 */ u8* mBuf;
/* 0x2C */ bool field_0x2c;
/* 0x30 */ int field_0x30;
@@ -116,6 +127,8 @@ public:
/* 802E8450 */ void drawDirect(bool) const;
/* 802E84C4 */ void setDirectConsole(JUTConsole*);
JUTConsole* getDirectConsole() const { return mDirectConsole; }
static JUTConsoleManager* getManager() { return sManager; }
static JUTConsoleManager* sManager;
+1
View File
@@ -88,6 +88,7 @@ public:
/* 802E3980 */ static void waitTime(s32);
static JUTException* getManager() { return sErrorManager; }
static JUTConsole* getConsole() { return sConsole; }
JUTExternalFB* getFrameMemory() const { return mFrameMemory; }
+1 -1
View File
@@ -24,7 +24,7 @@ public:
s32 getStatus() const { return mStatus; }
void setColor(JUtility::TColor color) { mColor.set(color); }
private:
//private:
/* 0x04 */ s32 mStatus;
/* 0x08 */ u16 field_0x8;
/* 0x0A */ u16 field_0xa;
+20 -6
View File
@@ -74,7 +74,7 @@ public:
/* 0x24 */ virtual s32 getHeight() const = 0;
/* 0x28 */ virtual s32 getWidth() const = 0;
/* 0x2C */ virtual void getWidthEntry(int i_no, TWidth* width) const;
/* 0x30 */ virtual u16 getCellWidth() const;
/* 0x30 */ virtual int getCellWidth() const;
/* 0x34 */ virtual u16 getCellHeight() const;
/* 0x38 */ virtual u16 getFontType() const = 0;
/* 0x3C */ virtual ResFONT* getResFont() const = 0;
@@ -87,16 +87,30 @@ public:
void initialize_state();
void setCharColor(JUtility::TColor col1);
void setGradColor(JUtility::TColor col1, JUtility::TColor col2);
f32 drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* a5, u32 usz, bool a7);
f32 drawString_size_scale(f32 posX, f32 posY, f32 width, f32 height, const char* str, u32 usz,
bool visible);
void drawString(int param_0, int param_1, const char* str, bool param_3) {
drawString_size(param_0, param_1, str, strlen(str), param_3);
void drawString(int posX, int posY, const char* str, bool visible) {
drawString_size(posX, posY, str, strlen(str), visible);
}
void drawString_size(int param_0, int param_1, const char* str, u32 len, bool param_4) {
drawString_size_scale(param_0, param_1, getWidth(), getHeight(), str, len, param_4);
void drawString_size(int posX, int posY, const char* str, u32 len, bool visible) {
drawString_size_scale(posX, posY, getWidth(), getHeight(), str, len, visible);
}
void drawString_scale(f32 posX, f32 posY, f32 width, f32 height, const char* str,
bool visible) {
drawString_size_scale(posX, posY, width, height, str, strlen(str), visible);
}
int getWidth(int i_no) const {
TWidth width;
getWidthEntry(i_no, &width);
return width.field_0x1;
}
bool isValid() const { return mValid; }
/* 0x04 */ bool mValid;
/* 0x05 */ bool mFixed;
/* 0x08 */ int mFixedWidth;
+1 -1
View File
@@ -17,7 +17,7 @@ public:
/* 802DE01C */ virtual s32 getHeight() const;
/* 802DDFF8 */ virtual s32 getWidth() const;
/* 802DFC64 */ virtual void getWidthEntry(int, JUTFont::TWidth*) const;
/* 802DFD0C */ virtual u16 getCellWidth() const;
/* 802DFD0C */ virtual int getCellWidth() const;
/* 802DFD58 */ virtual u16 getCellHeight() const;
/* 802DDFE0 */ virtual u16 getFontType() const;
/* 802DDFD8 */ virtual ResFONT* getResFont() const;
+1
View File
@@ -9,6 +9,7 @@ struct TColor : public GXColor {
TColor(u8 r, u8 g, u8 b, u8 a) { set(r, g, b, a); }
TColor() { set(0xffffffff); }
TColor(u32 u32Color) { set(u32Color); }
TColor(GXColor color) { set(color); }
// TColor(const TColor& other) { set(other.toUInt32()); }
TColor& operator=(const TColor& other) {
@@ -33,5 +33,6 @@ struct interface_of_controller_pad {
};
void cAPICPad_recalibrate(void);
u32 cAPICPad_ANY_BUTTON(u32 param_0);
#endif
+7
View File
@@ -336,6 +336,7 @@ public:
/* 802648B0 */ void ClrHit();
/* 802648C8 */ void SetHit(cCcD_Obj*);
int GetType() const { return mType; }
void SetType(u32 type) { mType = type; }
u32 GetGrp() const { return MskSPrm(0x1E); }
bool ChkSet() const { return MskSPrm(1); }
@@ -358,6 +359,7 @@ public:
u32 GetIGrp() const { return MskSPrm(0xE); }
u32 ChkNoCrr() const { return MskSPrm(0x100); }
u32 ChkSph3DCrr() const { return MskSPrm(0x80); }
void ClrSet() { OffSPrmBit(1); }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCo));
@@ -398,9 +400,13 @@ public:
u32 ChkCoSph3DCrr() const { return mObjCo.ChkSph3DCrr(); }
void OnAtSPrmBit(u32 flag) { mObjAt.OnSPrmBit(flag); }
void OffAtSPrmBit(u32 flag) { mObjAt.OffSPrmBit(flag); }
void OffCoSPrmBit(u32 flag) { mObjCo.OffSPrmBit(flag); }
void SetAtType(u32 type) { mObjAt.SetType(type); }
void OnAtSetBit() { mObjAt.OnSPrmBit(1); }
void SetAtAtp(int atp) { mObjAt.SetAtp(atp); }
void OffCoSetBit() { mObjCo.ClrSet(); }
void SetTgType(u32 type) { mObjTg.SetType(type); }
void OnTgSPrmBit(u32 flag) { mObjTg.OnSPrmBit(flag); }
}; // Size = 0x40
@@ -422,6 +428,7 @@ public:
fopAc_ac_c* GetAc();
cCcD_Stts* GetStts() { return mStts; }
void SetStts(cCcD_Stts* stts) { mStts = stts; }
cCcD_DivideInfo& GetDivideInfo() { return mDivideInfo; }
int ChkBsRevHit() const { return field_0x40 & 2; }
+6 -1
View File
@@ -25,7 +25,7 @@ void cLib_addCalcAngleS2(short*, short, short, short);
int cLib_chaseUC(unsigned char*, unsigned char, unsigned char);
int cLib_chaseS(short*, short, short);
int cLib_chaseF(float*, float, float);
int cLib_chaseF(float* value, float target, float step);
int cLib_chasePos(cXyz*, const cXyz&, float);
int cLib_chasePosXZ(cXyz*, const cXyz&, float);
int cLib_chaseAngleS(short*, short, short);
@@ -61,6 +61,9 @@ inline T cLib_minMaxLimit(T val, T min, T max) {
return ret;
}
template <typename T>
T cLib_calcTimer(T* val);
void MtxInit(void);
void MtxTrans(float, float, float, unsigned char);
void MtxScale(float, float, float, unsigned char);
@@ -68,4 +71,6 @@ void MtxPosition(cXyz*, cXyz*);
void MtxPush(void);
Mtx* MtxPull(void);
extern Mtx* calc_mtx;
#endif
+2
View File
@@ -120,6 +120,8 @@ struct cXyz : Vec {
f32 absXZ() const { return sqrtf(this->abs2XZ()); }
f32 absXZ(const Vec& other) const { return sqrtf(this->abs2XZ(other)); }
f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); }
f32 getDotProduct(const Vec& other) const { return PSVECDotProduct(this, &other); }
};
#endif /* C_XYZ_H */
-6
View File
@@ -1,6 +0,0 @@
#ifndef A_OBJ_D_A_OBJ_ITEM_H
#define A_OBJ_D_A_OBJ_ITEM_H
#include "dolphin/types.h"
#endif /* A_OBJ_D_A_OBJ_ITEM_H */
-6
View File
@@ -1,6 +0,0 @@
#ifndef A_OBJ_D_A_OBJ_SS_BASE_H
#define A_OBJ_D_A_OBJ_SS_BASE_H
#include "dolphin/types.h"
#endif /* A_OBJ_D_A_OBJ_SS_BASE_H */
+543 -298
View File
File diff suppressed because it is too large Load Diff
+15 -1
View File
@@ -4,7 +4,21 @@
#include "dolphin/types.h"
#include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h"
class daTagHstop_c {
class daTagHstop_c : public fopAc_ac_c {
public:
static daTagHstop_c* getTop() { return m_top; }
daTagHstop_c* getNext() { return mpNext; }
bool getActiveFlg() const { return mActive; }
/* 0x568 */ daTagHstop_c* mpNext;
/* 0x56C */ daTagHstop_c* field_0x56c;
/* 0x570 */ u8 field_0x570;
/* 0x571 */ bool mActive;
/* 0x572 */ u8 field_0x572;
/* 0x573 */ u8 field_0x573;
/* 0x574 */ int field_0x574;
static daTagHstop_c* m_top;
};
+133 -8
View File
@@ -3,20 +3,145 @@
#include "SSystem/SComponent/c_lib.h"
#include "dolphin/types.h"
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_itembase_static.h"
#include "d/particle/d_particle.h"
class daItem_c {
class daItem_c;
typedef void (daItem_c::*procFunc)();
class daItem_c : public daItemBase_c {
public:
daItem_c() : field_0x998(0, 0) {}
/* 8015B0C4 */ void initBaseMtx();
/* 8015B108 */ void setBaseMtx();
/* 8015B190 */ void setBaseMtx_0();
/* 8015B1C8 */ void setBaseMtx_1();
/* 8015B3D8 */ void CreateInit();
/* 8015B7BC */ void setCullInfo();
/* 8015B7D4 */ int _daItem_create();
/* 8015BA9C */ void _daItem_execute();
/* 8015BD84 */ int _daItem_draw();
/* 8015BDE8 */ int _daItem_delete();
/* 8015BE60 */ void procInitNormal();
/* 8015BEA4 */ void procMainNormal();
/* 8015BFE8 */ void procMainEnemyCarry();
/* 8015BFEC */ void procInitForceGet();
/* 8015C038 */ void procMainForceGet();
/* 8015C058 */ void procInitSimpleGetDemo();
/* 8015C134 */ void procMainSimpleGetDemo();
/* 8015C200 */ void procInitGetDemoEvent();
/* 8015C2A4 */ void procWaitGetDemoEvent();
/* 8015C3BC */ void procMainGetDemoEvent();
/* 8015C41C */ void procInitBoomerangCarry();
/* 8015C514 */ void procMainBoomerangCarry();
/* 8015C5F4 */ void procInitSwOnWait();
/* 8015C648 */ void procMainSwOnWait();
/* 8015C708 */ void procInitBoomHitWait();
/* 8015C738 */ void procMainBoomHitWait();
/* 8015CAB8 */ void move_proc_call();
/* 8015CC4C */ void mode_wait_init();
/* 8015CC88 */ void mode_water_init();
/* 8015CCD0 */ void mode_wait();
/* 8015CDCC */ void mode_water();
/* 8015CEEC */ void itemGetNextExecute();
/* 8015D0A8 */ void itemGet();
/* 8015D370 */ BOOL checkCountTimer();
/* 8015D3CC */ bool checkPlayerGet();
/* 8015D410 */ void checkYogan();
/* 8015D480 */ void deleteItem();
/* 8015D4AC */ int itemActionForRupee();
/* 8015D56C */ void itemActionForHeart();
/* 8015D688 */ void itemActionForArrow();
/* 8015D700 */ void itemActionForBoomerang();
/* 8015D734 */ void bg_check();
/* 8015D834 */ void set_bound_se();
/* 8015D95C */ int CountTimer();
/* 8015D9F0 */ int initAction();
/* 8015DAAC */ void initFlag();
/* 8015DBF0 */ void initScale();
/* 8015DC40 */ void initSpeed(int);
/* 8015DE38 */ void initAngle();
u32 startCtrl();
u32 startControl();
u32 endControl();
void setFlag(u8 pFlag) { cLib_onBit(unk2376, pFlag); }
/* 8015CE94 */ virtual void setTevStr();
virtual void unk0() = 0;
virtual void unk1() = 0;
virtual void unk2() = 0;
virtual void unk3() = 0;
virtual void unk4() = 0;
virtual void unk5() = 0;
virtual void unk6() = 0;
virtual void unk7() = 0;
virtual void unk8() = 0;
virtual void unk9() = 0;
virtual void unk10() = 0;
virtual void unk11() = 0;
virtual void unk12() = 0;
virtual void unk13() = 0;
virtual void unk14() = 0;
virtual void unk15() = 0;
virtual void unk16() = 0;
virtual void unk17() = 0;
virtual void unk18() = 0;
virtual void unk19() = 0;
virtual void unk20() = 0;
virtual void unk21() = 0;
virtual void unk22() = 0;
virtual void unk23() = 0;
virtual void unk24() = 0;
virtual void unk25() = 0;
virtual void unk26() = 0;
virtual void unk27() = 0;
virtual void unk28() = 0;
virtual void unk29() = 0;
virtual void unk30() = 0;
virtual void unk31() = 0;
virtual void unk32() = 0;
virtual void unk33() = 0;
virtual void unk34() = 0;
virtual void unk35() = 0;
private:
u8 unk0[0x948];
u8 unk2376;
u8 unk2377;
u8 unk2378;
};
void setFlag(u8 pFlag) { cLib_onBit(mFlag, pFlag); }
void setStatus(u8 status) { mStatus = status; }
u8 getStatus() { return mStatus; }
bool checkFlag(u8 flag) { return cLib_checkBit(mFlag, flag); }
void clrFlag(u8 flag) { cLib_offBit(mFlag, flag); }
static u8 mFuncPtr[120];
//static procFunc mFuncPtr[9];
static u8 m_cyl_src[68];
static s32 m_timer_max;
/* 0x92C */ s16 field_0x92c;
/* 0x92E */ u16 field_0x92e;
/* 0x930 */ cXyz field_0x930;
/* 0x93C */ u32 field_0x93c;
/* 0x940 */ u16 field_0x940;
/* 0x942 */ s16 field_0x942;
/* 0x944 */ s16 field_0x944;
/* 0x946 */ s16 field_0x946;
/* 0x948 */ u8 mFlag;
/* 0x949 */ u8 field_0x949;
/* 0x94A */ u8 mStatus;
/* 0x94B */ u8 field_0x94b;
/* 0x94C */ u32 m_item_id;
/* 0x950 */ cXyz field_0x950;
/* 0x95C */ u8 field_0x95c;
/* 0x95D */ bool field_0x95d;
/* 0x95E */ u8 mBoomWindTgTimer;
/* 0x95F */ u8 field_0x95f;
/* 0x960 */ u8 field_0x960[0xC];
/* 0x96C */ cXyz field_0x96c;
/* 0x978 */ Z2SoundObjSimple field_0x978;
/* 0x998 */ dPa_followEcallBack field_0x998;
/* 0x9AC */ cXyz field_0x9ac;
/* 0x9B8 */ u32 field_0x9b8;
/* 0x9BC */ u8 field_0x9bc[4];
/* 0x9C0 */ u8 field_0x9c0;
/* 0x9C1 */ u8 field_0x9c1;
}; // Size: 0x9C4
#endif /* D_A_D_A_ITEM_STATIC_H */
+14 -13
View File
@@ -8,7 +8,7 @@
#include "f_op/f_op_actor.h"
struct daItemBase_data {
/* 0x00 */ f32 field_0x0;
/* 0x00 */ f32 mGravity;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
@@ -41,7 +41,7 @@ public:
int DeleteBase(char const*);
void setListEnd();
void animPlay(f32, f32, f32, f32, f32, f32);
daItemBase_data& getData();
const daItemBase_data& getData();
virtual int DrawBase();
virtual void setListStart();
@@ -61,20 +61,21 @@ public:
static daItemBase_data const m_data;
private:
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mpModel;
/* 0x578 */ mDoExt_btkAnm* field_0x578;
/* 0x57C */ mDoExt_bpkAnm* field_0x57c;
/* 0x580 */ mDoExt_brkAnm* field_0x580;
/* 0x584 */ mDoExt_bckAnm* field_0x584;
/* 0x588 */ mDoExt_btpAnm* field_0x588;
/* 0x58C */ dBgS_ObjAcch field_0x58c;
/* 0x764 */ dBgS_AcchCir field_0x764;
/* 0x7A4 */ dCcD_Stts field_0x7a4;
/* 0x7E0 */ dCcD_Cyl field_0x7e0;
/* 0x578 */ mDoExt_btkAnm* mpBtkAnm;
/* 0x57C */ mDoExt_bpkAnm* mpBpkAnm;
/* 0x580 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x584 */ mDoExt_bckAnm* mpBckAnm;
/* 0x588 */ mDoExt_btpAnm* mpBtpAnm;
/* 0x58C */ dBgS_ObjAcch mAcch;
/* 0x764 */ dBgS_AcchCir mAcchCir;
/* 0x7A4 */ dCcD_Stts mColStatus;
/* 0x7E0 */ dCcD_Cyl mCollider;
/* 0x91C */ u32 field_0x91c;
/* 0x920 */ u8 field_0x920[0xA];
/* 0x920 */ u32 field_0x920;
/* 0x924 */ int field_0x924;
/* 0x928 */ s16 field_0x928;
/* 0x92A */ u8 m_itemNo;
/* 0x92B */ u8 field_0x92b;
};
+2
View File
@@ -4,4 +4,6 @@
#include "d/a/d_a_itembase.h"
#include "dolphin/types.h"
void CheckFieldItemCreateHeap(fopAc_ac_c* actor);
#endif /* D_A_D_A_ITEMBASE_STATIC_H */
+3
View File
@@ -514,4 +514,7 @@ public:
STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
void daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2,
csXyz& param_3);
#endif /* D_A_D_A_NPC_H */
+24
View File
@@ -0,0 +1,24 @@
#ifndef A_OBJ_D_A_OBJ_ITEM_H
#define A_OBJ_D_A_OBJ_ITEM_H
#include "d/a/d_a_item_static.h"
namespace daItem_prm {
static inline u8 getItemNo(daItem_c* item) {
return fopAcM_GetParam(item);
}
static inline u32 getItemBitNo(daItem_c* item) {
return (fopAcM_GetParam(item) >> 8) & 0xFF;
}
static inline u16 getSwOnWaitTimer(daItem_c* item) {
return item->field_0x92e & 0x3F;
}
static inline u8 checkInWater(daItem_c* item) {
return fopAcM_GetParamBit(item, 0x1C, 4);
}
};
#endif /* A_OBJ_D_A_OBJ_ITEM_H */
+21
View File
@@ -0,0 +1,21 @@
#ifndef A_OBJ_D_A_OBJ_SS_BASE_H
#define A_OBJ_D_A_OBJ_SS_BASE_H
#include "f_op/f_op_actor_mng.h"
class daObj_SSBase_c : public fopAc_ac_c {
public:
/* 8015E3F8 */ daObj_SSBase_c();
/* 8015E450 */ virtual ~daObj_SSBase_c();
/* 8015E4C8 */ virtual void setSoldOut();
/* 8015E4B0 */ virtual u32 getProcessID();
private:
/* 0x56C */ void* mpParentPtr;
/* 0x570 */ u16 field_0x570;
/* 0x572 */ u16 mFlowNodeNum;
/* 0x574 */ u16 mValueNum;
};
#endif /* A_OBJ_D_A_OBJ_SS_BASE_H */
+34 -4
View File
@@ -46,7 +46,13 @@ private:
class daPy_anmHeap_c {
public:
enum daAlinkHEAP_TYPE {};
enum daAlinkHEAP_TYPE {
HEAP_TYPE_1 = 1,
HEAP_TYPE_2,
HEAP_TYPE_3,
HEAP_TYPE_4,
HEAP_TYPE_5,
};
/* 80140DCC */ void __defctor(); // supposed to be the ctor?
@@ -67,6 +73,8 @@ public:
void resetArcNo() { mArcNo = 0xffff; }
bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; }
void setBufferSize(u32 size) { mBufferSize = size; }
void setBuffer(u8* buf) { mBuffer = buf; }
u8* getBuffer() { return mBuffer; }
private:
/* 0x00 */ u16 mIdx;
@@ -74,7 +82,7 @@ private:
/* 0x04 */ u16 mArcNo;
/* 0x06 */ u16 field_0x06;
/* 0x08 */ u32 mBufferSize;
/* 0x0C */ void* mBuffer;
/* 0x0C */ u8* mBuffer;
/* 0x10 */ JKRSolidHeap* mAnimeHeap;
}; // Size = 0x14
@@ -130,7 +138,11 @@ public:
void setDemoMode(u32 mode) { mDemoMode = mode; }
u32 getDemoMode() const { return mDemoMode; }
int getParam1() const { return mParam1; }
void setOriginalDemoType() { setDemoType(3); }
void i_setSpecialDemoType() { setDemoType(5); }
void setStick(f32 stick) { mStick = stick; }
void setMoveAngle(s16 angle) { mDemoMoveAngle = angle; }
s16 getMoveAngle() const { return mDemoMoveAngle; }
private:
/* 0x00 */ u16 mDemoType;
@@ -164,9 +176,10 @@ public:
/* 0x058C */ u32 mEndResetFlg1;
/* 0x0590 */ u32 mEndResetFlg2;
/* 0x0594 */ f32 field_0x594;
/* 0x0598 */ u8 field_0x598[0x4];
/* 0x0598 */ f32 field_0x598;
/* 0x059C */ s16 mLookAngleY;
/* 0x059E */ u8 field_0x59e[0x6];
/* 0x059E */ s16 field_0x59e;
/* 0x05A0 */ u8 field_0x5a0[0x4];
/* 0x05A4 */ cXyz mHeadTopPos;
/* 0x05B0 */ cXyz mItemPos;
/* 0x05BC */ cXyz mSwordTopPos;
@@ -187,6 +200,7 @@ public:
FLG0_UNK_80000 = 0x80000,
FLG0_UNK_20000 = 0x20000,
FLG0_UNK_8000 = 0x8000,
FLG0_UNK_4000 = 0x4000,
MAGNE_BOOTS_ON = 0x1000,
FLG0_UNK_80 = 0x80,
FLG0_UNK_40 = 0x40,
@@ -199,16 +213,20 @@ public:
};
enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000 };
enum daPy_FLG2 {
FLG2_UNK_20000000 = 0x20000000,
FLG2_UNK_4080000 = 0x4080000,
FLG2_UNK_2080000 = 0x2080000,
BOAR_SINGLE_BATTLE = 0x1800000,
STATUS_WINDOW_DRAW = 0x400000,
UNK_ARMOR = 0x80000,
SCENE_CHANGE_START = 0x8000,
FLG2_UNK_4000 = 0x4000,
UNK_FLG2_2 = 2,
UNK_DAPY_FLG2_1 = 1
};
enum daPy_FLG3 {
FLG3_UNK_2000000 = 0x2000000,
FLG3_UNK_1000000 = 0x1000000,
FLG3_UNK_100000 = 0x100000,
COPY_ROD_THROW_AFTER = 0x40000
};
@@ -337,6 +355,15 @@ public:
/* 80182AC4 */ void checkCopyRodThrowAfter() const;
/* 80182AD8 */ void checkRide() const;
/* 80182B9C */ void getRightHandPos() const;
/* 8015DFD8 */ const cXyz getItemPos() const;
/* 8015DFF4 */ const cXyz& getLeftHandPos() const;
/* const cXyz* getItemPos() const {
return &mItemPos;
}
const cXyz* getLeftHandPos() const {
return &mLeftHandPos;
} */
virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
@@ -526,6 +553,7 @@ public:
u8 getCutType() const { return mCutType; }
u16 getSwordAtUpTime() const { return mSwordUpTimer; }
bool checkWaterInMove() const { return i_checkNoResetFlg0(UNDER_WATER_MOVEMENT); }
bool checkSceneChangeAreaStart() const { return i_checkNoResetFlg2(SCENE_CHANGE_START); }
// some functions use these function as an inline
// is there a better way to handle this?
@@ -555,12 +583,14 @@ public:
void i_onPlayerNoDraw() { i_onNoResetFlg0(PLAYER_NO_DRAW); }
void i_offPlayerNoDraw() { i_offNoResetFlg0(PLAYER_NO_DRAW); }
inline static u32 i_getLastSceneMode();
inline static u32 getLastSceneMode();
inline static bool checkWoodSwordEquip();
inline BOOL i_checkSwordGet();
inline bool i_checkShieldGet() const;
inline static BOOL checkNowWolf();
inline bool checkZoraWearFlg() const;
inline bool checkMagicArmorWearFlg() const;
static daMidna_c* getMidnaActor() { return m_midnaActor; }
+3 -3
View File
@@ -74,13 +74,13 @@ public:
bool ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
s32 GetExitId(cBgS_PolyInfo const&);
s32 GetPolyColor(cBgS_PolyInfo const&);
bool GetHorseNoEntry(cBgS_PolyInfo const&);
BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
bool GetSpecialCode(cBgS_PolyInfo const&);
bool GetMagnetCode(cBgS_PolyInfo const&);
int GetMagnetCode(cBgS_PolyInfo const&);
bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
bool GetUnderwaterRoofCode(cBgS_PolyInfo const&);
s32 GetWallCode(cBgS_PolyInfo const&);
bool GetPolyAtt0(cBgS_PolyInfo const&);
BOOL GetPolyAtt0(cBgS_PolyInfo const&);
bool GetPolyAtt1(cBgS_PolyInfo const&);
bool GetGroundCode(cBgS_PolyInfo const&);
s32 GetCamMoveBG(cBgS_PolyInfo const&);
+14
View File
@@ -62,6 +62,7 @@ public:
/* 0x000080 */ GROUND_LANDING = (1 << 7),
/* 0x000100 */ GROUND_AWAY = (1 << 8),
/* 0x000200 */ ROOF_HIT = (1 << 9),
/* 0x000400 */ WATER_NONE = (1 << 10),
/* 0x000800 */ WATER_HIT = (1 << 11),
/* 0x001000 */ WATER_IN = (1 << 12),
/* 0x002000 */ LINE_CHECK = (1 << 13),
@@ -139,6 +140,14 @@ public:
void SetGroundAway() { m_flags |= GROUND_AWAY; }
const u32 MaskWaterHit() { return m_flags & WATER_HIT; }
const bool ChkWaterHit() { return MaskWaterHit(); }
void ClrWaterNone() { m_flags &= ~WATER_NONE; }
void SetWaterCheckOffset(f32 offset) { m_wtr_chk_offset = offset; }
void OnLineCheck() { m_flags |= LINE_CHECK; }
void ClrRoofNone() { m_flags &= ~ROOF_NONE; }
void SetRoofCrrHeight(f32 height) { m_roof_crr_height = height; }
void SetWtrChkMode(int mode) { m_wtr_mode = mode; }
void SetGrndNone() { m_flags |= GRND_NONE; }
void ClrGrndNone() { m_flags &= ~GRND_NONE; }
// inline dupe
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
@@ -187,6 +196,11 @@ public:
};
class dBgS_ObjAcch : public dBgS_Acch {
public:
dBgS_ObjAcch() {
SetObj();
}
/* 80BB336C */ virtual ~dBgS_ObjAcch();
};
+6 -6
View File
@@ -109,10 +109,10 @@ public:
/* 8007B0E4 */ virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
virtual bool GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
virtual bool GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
virtual void GetPolyLinkThrough(int) = 0;
@@ -125,7 +125,7 @@ public:
virtual bool GetUnderwaterRoofCode(int) = 0;
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
@@ -208,10 +208,10 @@ public:
/* 8007DF00 */ virtual void SphChk(dBgS_SphChk*, virtual void*);
/* 8007B3AC */ virtual s32 GetExitId(cBgS_PolyInfo const&);
/* 8007B3D8 */ virtual s32 GetPolyColor(cBgS_PolyInfo const&);
/* 8007B404 */ virtual bool GetHorseNoEntry(cBgS_PolyInfo const&);
/* 8007B404 */ virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&);
/* 8007B430 */ virtual bool GetSpecialCode(cBgS_PolyInfo const&);
/* 8007B460 */ virtual void GetSpecialCode(int);
/* 8007B488 */ virtual bool GetMagnetCode(cBgS_PolyInfo const&);
/* 8007B488 */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 8007B4E0 */ virtual void GetPolyObjThrough(int);
/* 8007B504 */ virtual void GetPolyCamThrough(int);
/* 8007B52C */ virtual void GetPolyLinkThrough(int);
@@ -225,7 +225,7 @@ public:
/* 8007B4B4 */ virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 8007B6AC */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 8007B6D8 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 8007B704 */ virtual bool GetPolyAtt0(cBgS_PolyInfo const&);
/* 8007B704 */ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&);
/* 8007B734 */ virtual bool GetPolyAtt1(cBgS_PolyInfo const&);
/* 8007B760 */ virtual bool GetGroundCode(cBgS_PolyInfo const&);
/* 8007B7DC */ virtual void GetIronBallThrough(int);
+3 -3
View File
@@ -49,10 +49,10 @@ public:
virtual s32 GetGrpRoomIndex(cBgS_PolyInfo const&) const = 0;
virtual s32 GetExitId(cBgS_PolyInfo const&) = 0;
virtual s32 GetPolyColor(cBgS_PolyInfo const&) = 0;
virtual bool GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual BOOL GetHorseNoEntry(cBgS_PolyInfo const&) = 0;
virtual bool GetSpecialCode(cBgS_PolyInfo const&) = 0;
virtual void GetSpecialCode(int) = 0;
virtual bool GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual int GetMagnetCode(cBgS_PolyInfo const&) = 0;
virtual void GetPolyObjThrough(int) = 0;
virtual void GetPolyCamThrough(int) = 0;
virtual void GetPolyLinkThrough(int) = 0;
@@ -66,7 +66,7 @@ public:
virtual bool GetMonkeyBarsCode(cBgS_PolyInfo const&) = 0;
virtual void GetLinkNo(cBgS_PolyInfo const&) = 0;
virtual s32 GetWallCode(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&) = 0;
virtual bool GetPolyAtt1(cBgS_PolyInfo const&) = 0;
virtual bool GetGroundCode(cBgS_PolyInfo const&) = 0;
virtual void GetIronBallThrough(int) = 0;
+2 -2
View File
@@ -48,7 +48,7 @@ public:
/* 80082A80 */ virtual void GetHorseNoEntry(cBgS_PolyInfo const&);
/* 80082AB0 */ virtual void GetSpecialCode(cBgS_PolyInfo const&);
/* 80082AE0 */ virtual void GetSpecialCode(int);
/* 80082B0C */ virtual void GetMagnetCode(cBgS_PolyInfo const&);
/* 80082B0C */ virtual int GetMagnetCode(cBgS_PolyInfo const&);
/* 80082B6C */ virtual void GetPolyObjThrough(int);
/* 80082B98 */ virtual void GetPolyCamThrough(int);
/* 80082BC4 */ virtual void GetPolyLinkThrough(int);
@@ -62,7 +62,7 @@ public:
/* 80082B3C */ virtual void GetMonkeyBarsCode(cBgS_PolyInfo const&);
/* 80082D24 */ virtual void GetLinkNo(cBgS_PolyInfo const&);
/* 80082D54 */ virtual s32 GetWallCode(cBgS_PolyInfo const&);
/* 80082D84 */ virtual void GetPolyAtt0(cBgS_PolyInfo const&);
/* 80082D84 */ virtual BOOL GetPolyAtt0(cBgS_PolyInfo const&);
/* 80082DB4 */ virtual void GetPolyAtt1(cBgS_PolyInfo const&);
/* 80082DE4 */ virtual void GetGroundCode(cBgS_PolyInfo const&);
/* 80082E14 */ virtual void GetIronBallThrough(int);
+14 -6
View File
@@ -91,13 +91,13 @@ enum dCcG_At_Spl {
};
class dCcD_GObjInf;
typedef void (*dCcD_AtHitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
typedef void (*dCcD_HitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
class dCcD_GAtTgCoCommonBase {
public:
/* 0x00 */ u32 mGFlag;
/* 0x04 */ u32 mRPrm;
/* 0x08 */ dCcD_AtHitCallback mHitCallback;
/* 0x08 */ dCcD_HitCallback mHitCallback;
/* 0x0C */ u32 mApid;
/* 0x10 */ fopAc_ac_c* mAc;
/* 0x14 */ s8 mEffCounter;
@@ -124,7 +124,7 @@ public:
void OnSPrm(u32 flag) { mGFlag |= flag; }
void OffSPrm(u32 flag) { mGFlag &= ~flag; }
bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
void SetHitCallback(dCcD_AtHitCallback callback) { mHitCallback = callback; }
void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; }
}; // Size = 0x1C
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
@@ -157,6 +157,8 @@ public:
/* 80083BE8 */ virtual ~dCcD_GObjTg() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
void SetShieldFrontRangeYAngle(s16* angle) { mShieldFrontRangeYAngle = angle; }
void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
private:
/* 0x1C */ u8 mSe;
@@ -186,7 +188,7 @@ public:
/* 800843A8 */ cCcD_GObjInf* GetAtHitGObj();
/* 800843DC */ bool ChkAtNoGuard();
/* 800843FC */ void ClrTgHit();
/* 80084460 */ bool ChkTgHit();
/* 80084460 */ u32 ChkTgHit();
/* 800844B8 */ void ResetTgHit();
/* 800844F8 */ cCcD_Obj* GetTgHitObj();
/* 80084548 */ dCcD_GObjInf* GetTgHitGObj();
@@ -202,21 +204,27 @@ public:
bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); }
void OnAtNoHitMark() { mGObjAt.OnSPrm(2); }
void OffAtNoHitMark() { mGObjAt.OffSPrm(2); }
void OnTgNoHitMark() { mGObjTg.OnSPrm(4); }
void OnAtNoConHit() { mGObjAt.OnSPrm(1); }
void OffAtNoConHit() { mGObjAt.OffSPrm(1); }
void OnTgNoConHit() { mGObjTg.OnSPrm(2); }
void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); }
void SetAtSe(u8 se) { mGObjAt.SetSe(se); }
void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
void SetTgMtrl(u8 mtrl) { mGObjTg.SetMtrl(mtrl); }
fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); }
bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
void SetAtHitCallback(dCcD_AtHitCallback callback) { mGObjAt.SetHitCallback(callback); }
void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); }
void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); }
void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); }
u8 GetAtSe() { return mGObjAt.GetSe(); }
s32 GetAtSpl() { return mGObjAt.GetSpl(); }
u8 GetAtMtrl() { return mGObjAt.GetMtrl(); }
fopAc_ac_c* GetTgHitAc() { return mGObjTg.GetAc(); }
void SetTgShieldFrontRangeYAngle(s16* angle) { mGObjTg.SetShieldFrontRangeYAngle(angle); }
static u32 const m_hitSeID[24];
protected:
+12
View File
@@ -3,4 +3,16 @@
#include "dolphin/types.h"
class dComIfAc_info_c {
public:
/* 0x0 */ int field_0x0;
/* 0x4 */ bool mPause;
};
extern dComIfAc_info_c g_dComIfAc_gameInfo;
inline bool dComIfA_PauseCheck() {
return g_dComIfAc_gameInfo.mPause;
}
#endif /* D_COM_D_COM_INF_ACTOR_H */
+196 -6
View File
@@ -52,7 +52,9 @@ public:
/* 0x00 */ camera_class* mCamera;
/* 0x04 */ u8 field_0x4;
/* 0x05 */ u8 field_0x5[3];
/* 0x05 */ u8 field_0x5;
/* 0x06 */ s8 field_0x6;
/* 0x07 */ u8 field_0x7;
/* 0x08 */ u32 mCameraAttentionStatus;
/* 0x0C */ f32 mCameraZoomScale;
/* 0x10 */ f32 mCameraZoomForcus;
@@ -326,8 +328,11 @@ public:
JKRExpHeap* getMsgExpHeap() { return mMsgExpHeap; }
JKRExpHeap* getSubExpHeap2D(int idx) { return mSubExpHeap2D[idx]; }
void setSubExpHeap2D(int idx, void* heap) { mSubExpHeap2D[idx] = (JKRExpHeap*)heap; }
void setExpHeap2D(void* heap) { mExpHeap2D = (JKRExpHeap*)heap; }
void setMsgExpHeap(void* heap) { mMsgExpHeap = (JKRExpHeap*)heap; }
JKRArchive* getMsgDtArchive(int idx) { return mMsgDtArchive[idx]; }
JKRArchive* getMsgArchive(int idx) { return mMsgArchive[idx]; }
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
JKRArchive* getAnmArchive() { return mAnmArchive; }
JKRArchive* getCollectResArchive() { return mCollectResArchive; }
@@ -355,8 +360,11 @@ public:
void setRubyArchive(JKRArchive* arc) { mRubyArchive = arc; }
void setMain2DArchive(JKRArchive* arc) { mMain2DArchive = arc; }
void setItemTable(void* data) { mItemTable = data; }
void* getItemTable() { return mItemTable; }
void setPlayerPtr(int i, fopAc_ac_c* ptr) { mPlayerPtr[i] = ptr; }
void setPlayer(int i, fopAc_ac_c* player) { mPlayer[i] = (daAlink_c*)player; }
void setPlayerInfo(int i, fopAc_ac_c* ptr, int camIdx) { mPlayer[i] = (daAlink_c*)ptr; mPlayerCameraID[camIdx] = 0; }
void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; }
void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; }
bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; }
@@ -368,12 +376,21 @@ public:
BOOL checkCameraAttentionStatus(int i, u32 flag) {
return mCameraInfo[i].mCameraAttentionStatus & flag;
}
void setCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus = flag; }
void setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) {
mCameraInfo[camIdx].mCamera = p_cam;
mCameraInfo[camIdx].field_0x4 = param_2;
mCameraInfo[camIdx].field_0x5 = param_3;
mCameraInfo[camIdx].field_0x6 = param_4;
setCameraAttentionStatus(camIdx, 0);
}
void setStatus(u16 status) { mStatus = status; }
s32 checkStatus(u16 flags) { return flags & mStatus; }
bool& isPauseFlag() { return mPauseFlag; }
void offPauseFlag() { mPauseFlag = false; }
void onPauseFlag() { mPauseFlag = true; }
void show2dOn() { mShow2D = 1; }
s8 getLayerOld() { return mLayerOld; }
void setMesgCancelButton(u8 button) { mMesgCancelButton = button; }
@@ -389,6 +406,10 @@ public:
mWindow[i].setMode(mode);
}
void setLastPlayStageName(char* name) {
strncpy(mLastPlayStageName, name, 7);
mLastPlayStageName[7] = 0;
}
char* getLastPlayStageName() { return mLastPlayStageName; }
u8 getGameoverStatus() { return mGameoverStatus; }
@@ -440,7 +461,7 @@ public:
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x04E74 */ daAlink_c* mPlayer[1];
/* 0x04E78 */ s8 mPlayerCameraID[4];
/* 0x04E7C */ void* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E7C */ fopAc_ac_c* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E84 */ dMsgObject_c* mMsgObjectClass;
/* 0x04E88 */ f32 mItemLifeCount;
/* 0x04E8C */ s32 mItemRupeeCount;
@@ -656,9 +677,7 @@ void dComIfG_get_timelayer(int* layer);
int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* resName);
int dComIfG_changeOpeningScene(scene_class* scene, s16 procName);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* arc_name);
BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no);
void dComIfGs_onStageSwitch(int i_stageNo, int i_no);
void dComIfGs_offStageSwitch(int i_stageNo, int i_no);
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* resName, JKRHeap* heap);
inline void dComIfG_setBrightness(u8 brightness) {
g_dComIfG_gameInfo.mFadeBrightness = brightness;
@@ -765,6 +784,17 @@ void dComIfGs_offOneZoneSwitch(int param_0, int param_1);
s8 dComIfGp_getReverb(int roomNo);
void dComIfGs_gameStart();
int dComIfGs_wolfeye_effect_check();
BOOL dComIfGs_Wolf_Change_Check();
void dComIfGs_onVisitedRoom(int param_0);
void dComIfGs_setWarpItemData(char const* stage, cXyz pos, s16 angle, s8 roomNo, u8 param_4,
u8 param_5);
BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no);
void dComIfGs_onStageSwitch(int i_stageNo, int i_no);
void dComIfGs_offStageSwitch(int i_stageNo, int i_no);
inline void dComIfGs_init() {
g_dComIfG_gameInfo.info.init();
}
inline void dComIfGs_onDungeonItemMap() {
g_dComIfG_gameInfo.info.getMemory().getBit().onDungeonItemMap();
@@ -866,6 +896,10 @@ inline void dComIfGs_setEmptyBombBagItemIn(u8 newBomb, bool setNum) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(newBomb, setNum);
}
inline void dComIfGs_setEmptyBombBagItemIn(u8 newBomb, u8 bombNum, bool setNum) {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBombBagItemIn(newBomb, bombNum, setNum);
}
inline void dComIfGs_setEmptyBottle() {
g_dComIfG_gameInfo.info.getPlayer().getItem().setEmptyBottle();
}
@@ -1051,6 +1085,10 @@ inline s32 dComIfGs_isDungeonItemWarp() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isDungeonItemWarp();
}
inline s32 dComIfGs_isStageBossEnemy() {
return g_dComIfG_gameInfo.info.getMemory().getBit().isStageBossEnemy();
}
inline void dComIfGs_setKeyNum(u8 keyNum) {
g_dComIfG_gameInfo.info.getMemory().getBit().setKeyNum(keyNum);
}
@@ -1369,6 +1407,38 @@ inline void* dComIfGs_getPEventBit() {
return g_dComIfG_gameInfo.info.getEvent().getPEventBit();
}
inline bool dComIfGs_isItem(int bitNo, int roomNo) {
return g_dComIfG_gameInfo.info.isItem(bitNo, roomNo);
}
inline void dComIfGs_onItem(int bitNo, int roomNo) {
g_dComIfG_gameInfo.info.onItem(bitNo, roomNo);
}
inline void dComIfGs_onActor(int bitNo, int roomNo) {
g_dComIfG_gameInfo.info.onActor(bitNo, roomNo);
}
inline void dComIfGs_setLastWarpAcceptStage(s8 param_0) {
g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().setWarpAcceptStage(param_0);
}
inline void dComIfGs_setOptPointer(u8 i_pointer) {
g_dComIfG_gameInfo.info.getPlayer().getConfig().setPointer(i_pointer);
}
inline u8 dComIfGs_getNewFile() {
return g_dComIfG_gameInfo.info.getNewFile();
}
inline void dComIfGs_setInitDataToCard(u8* p_saveData, int dataNum) {
g_dComIfG_gameInfo.info.initdata_to_card((char*)p_saveData, dataNum);
}
inline void dComIfGs_setMemoryToCard(u8* p_saveData, int dataNum) {
g_dComIfG_gameInfo.info.memory_to_card((char*)p_saveData, dataNum);
}
void dComIfGp_setItemLifeCount(f32 amount, u8 type);
void dComIfGp_setItemRupeeCount(long amount);
void dComIfGp_setSelectItem(int index);
@@ -1396,6 +1466,7 @@ u8 dComIfGp_world_dark_get();
JKRExpHeap* dComIfGp_getSubHeap2D(int flag);
void dComIfGp_world_dark_set(u8);
u8 dComIfGp_getNowLevel();
void dComIfGp_calcNowRegion();
inline dStage_startStage_c* dComIfGp_getStartStage() {
return g_dComIfG_gameInfo.play.getStartStage();
@@ -1457,6 +1528,10 @@ inline JKRArchive* dComIfGp_getMsgDtArchive(int idx) {
return g_dComIfG_gameInfo.play.getMsgDtArchive(idx);
}
inline JKRArchive* dComIfGp_getMsgArchive(int idx) {
return g_dComIfG_gameInfo.play.getMsgArchive(idx);
}
inline void dComIfGp_setFieldMapArchive2(JKRArchive* arc) {
g_dComIfG_gameInfo.play.setFieldMapArchive2(arc);
}
@@ -1537,6 +1612,10 @@ inline void dComIfGp_setItemTable(void* data) {
g_dComIfG_gameInfo.play.setItemTable(data);
}
inline void* dComIfGp_getItemTable() {
return g_dComIfG_gameInfo.play.getItemTable();
}
inline JKRExpHeap* dComIfGp_getExpHeap2D() {
return g_dComIfG_gameInfo.play.getExpHeap2D();
}
@@ -1605,6 +1684,10 @@ inline s16 dComIfGp_getNextStagePoint() {
return g_dComIfG_gameInfo.play.getNextStagePoint();
}
inline void dComIfGp_setLastPlayStageName(char* name) {
g_dComIfG_gameInfo.play.setLastPlayStageName(name);
}
inline u32 dComIfGp_getNowVibration() {
return g_dComIfG_gameInfo.play.getNowVibration();
}
@@ -1801,6 +1884,14 @@ inline void dComIfGp_setSubExpHeap2D(int idx, void* heap) {
g_dComIfG_gameInfo.play.setSubExpHeap2D(idx, heap);
}
inline void dComIfGp_setExpHeap2D(void* heap) {
g_dComIfG_gameInfo.play.setExpHeap2D(heap);
}
inline void dComIfGp_setMsgExpHeap(void* heap) {
g_dComIfG_gameInfo.play.setMsgExpHeap(heap);
}
inline void dComIfGp_offEnableNextStage() {
g_dComIfG_gameInfo.play.offEnableNextStage();
}
@@ -1825,10 +1916,22 @@ inline void dComIfGp_setStatus(u16 status) {
g_dComIfG_gameInfo.play.setStatus(status);
}
inline void dComIfGp_setLinkPlayer(fopAc_ac_c* ptr) {
g_dComIfG_gameInfo.play.setPlayerPtr(0, ptr);
}
inline void dComIfGp_setPlayerPtr(int i, fopAc_ac_c* ptr) {
g_dComIfG_gameInfo.play.setPlayerPtr(i, ptr);
}
inline void dComIfGp_setPlayer(int i, fopAc_ac_c* player) {
g_dComIfG_gameInfo.play.setPlayer(i, player);
}
inline void dComIfGp_setPlayerInfo(int plyrIdx, fopAc_ac_c* ptr, int camIdx) {
g_dComIfG_gameInfo.play.setPlayerInfo(plyrIdx, ptr, camIdx);
}
inline void dComIfGp_setPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 0, flag);
}
@@ -1841,6 +1944,10 @@ inline BOOL dComIfGp_checkCameraAttentionStatus(int i, u32 flag) {
return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(i, flag);
}
inline void dComIfGp_setCameraInfo(int camIdx, camera_class* p_cam, int param_2, int param_3, int param_4) {
g_dComIfG_gameInfo.play.setCameraInfo(camIdx, p_cam, param_2, param_3, param_4);
}
inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) {
g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag);
}
@@ -2015,6 +2122,14 @@ inline JKRAramArchive* dComIfGp_getFieldMapArchive2() {
return g_dComIfG_gameInfo.play.getFieldMapArchive2();
}
inline void dComIfGp_onPauseFlag() {
g_dComIfG_gameInfo.play.onPauseFlag();
}
inline void dComIfGp_createSimpleModel() {
g_dComIfG_gameInfo.play.createSimpleModel();
}
inline s32 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
@@ -2063,10 +2178,55 @@ inline BOOL dComIfGp_event_compulsory(void* param_0, const char* param_1, u16 pa
return g_dComIfG_gameInfo.play.getEvent().compulsory(param_0, param_1, param_2);
}
inline int dComIfGp_event_moveApproval(void* actor) {
return g_dComIfG_gameInfo.play.getEvent().moveApproval(actor);
}
inline int dComIfGp_event_order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4,
void* param_5, s16 eventID, u8 infoIdx) {
return g_dComIfG_gameInfo.play.getEvent().order(eventType, priority, flag, param_3, param_4, param_5, eventID, infoIdx);
}
inline void dComIfGp_event_setGtItm(int i_itemNo) {
g_dComIfG_gameInfo.play.getEvent().setGtItm(i_itemNo);
}
inline void dComIfGp_evmng_cutEnd(int param_0) {
dComIfGp_getPEvtManager()->cutEnd(param_0);
}
inline BOOL dComIfGp_evmng_endCheck(const char* event) {
return g_dComIfG_gameInfo.play.getEvtManager().endCheckOld(event);
}
inline void dComIfGp_event_setItemPartnerId(unsigned int id) {
g_dComIfG_gameInfo.play.getEvent().setPtI_Id(id);
}
inline int dComIfGp_evmng_startDemo(int param_0) {
return dComIfGp_getPEvtManager()->setStartDemo(param_0);
}
inline void* dComIfGp_event_getTalkPartner() {
u32 t = g_dComIfG_gameInfo.play.getEvent().mPtT;
return g_dComIfG_gameInfo.play.getEvent().convPId(t);
}
inline void* dComIfGp_event_getItemPartner() {
u32 i = g_dComIfG_gameInfo.play.getEvent().mPtI;
return g_dComIfG_gameInfo.play.getEvent().convPId(i);
}
inline void* dComIfGp_event_getPt1() {
u32 pt1 = g_dComIfG_gameInfo.play.getEvent().mPt1;
return g_dComIfG_gameInfo.play.getEvent().convPId(pt1);
}
inline void* dComIfGp_event_getPt2() {
u32 pt2 = g_dComIfG_gameInfo.play.getEvent().mPt2;
return g_dComIfG_gameInfo.play.getEvent().convPId(pt2);
}
inline int i_dComIfGp_evmng_getMyStaffId(const char* pName, fopAc_ac_c* pActor, int param_2) {
return dComIfGp_getPEvtManager()->getMyStaffId(pName, pActor, param_2);
}
@@ -2111,6 +2271,10 @@ inline void dComIfGp_particle_create() {
g_dComIfG_gameInfo.play.createParticle();
}
inline void dComIfGp_particle_createScene(const void* param_0) {
g_dComIfG_gameInfo.play.getParticle()->createScene(param_0);
}
inline JKRExpHeap* dComIfGp_particle_getResHeap() {
return g_dComIfG_gameInfo.play.getParticle()->getResHeap();
}
@@ -2145,6 +2309,15 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2,
param_10, param_11, 1.0f);
}
inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const csXyz* param_3,
const cXyz* param_4, u8 param_5, dPa_levelEcallBack* param_6,
s8 param_7, const GXColor* param_8, const GXColor* param_9,
const cXyz* param_10) {
return g_dComIfG_gameInfo.play.getParticle()->setNormal(
param_0, param_1, param_2, NULL, param_3, param_4, param_5, param_6, param_7, param_8,
param_9, param_10, 1.0f);
}
inline u32 dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
const csXyz* param_4, const cXyz* param_5, u8 param_6,
dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9,
@@ -2160,11 +2333,23 @@ inline u32 dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz*
NULL, NULL);
}
inline u32 dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const dKy_tevstr_c* param_2, const csXyz* param_3,
const cXyz* param_4) {
return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL,
NULL, NULL);
}
inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const csXyz* param_3,
const cXyz* param_4) {
return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL,
NULL, NULL);
}
inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) {
g_dComIfG_gameInfo.play.getParticle()->forceOnEventMove(param_0);
}
inline dPa_control_c::level_c::emitter_c* dComIfGp_particle_getEmitter(u32 param_0) {
inline JPABaseEmitter* dComIfGp_particle_getEmitter(u32 param_0) {
return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0);
}
@@ -2232,6 +2417,11 @@ inline void dComIfGd_setList() {
g_dComIfG_gameInfo.drawlist.setXluList();
}
inline void dComIfGd_setListItem3D() {
g_dComIfG_gameInfo.drawlist.setOpaListItem3D();
g_dComIfG_gameInfo.drawlist.setXluListItem3D();
}
inline void dComIfGd_setXluList2DScreen() {
g_dComIfG_gameInfo.drawlist.setXluList2DScreen();
}
+1 -1
View File
@@ -29,7 +29,7 @@ public:
/* 80031248 */ void newData(s8, cXyz const&, cXyz const&, u8, u8, u8);
/* 800313BC */ void reset();
/* 800314D4 */ void check(fopAc_ac_c*);
/* 800314D4 */ static void check(fopAc_ac_c*);
/* 80031434 */ static bool check(s8, cXyz const&);
/* 800315A4 */ static void execute();
+53 -3
View File
@@ -14,11 +14,20 @@ struct dCamMapToolData {
/* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8);
};
struct dCamera_c {
struct dCamInfo_c {
class dCamera_c {
public:
class dCamInfo_c {
public:
/* 8018291C */ dCamInfo_c();
/* 80182920 */ ~dCamInfo_c();
};
private:
/* 0x00 */ cXyz field_0x0;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ cSAngle field_0x1c;
/* 0x1E */ s16 field_0x1e;
}; // Size: 0x20
/* 8008908C */ void getEvIntData(int*, char*, int);
/* 80088CB0 */ void getEvIntData(int*, char*);
@@ -185,9 +194,50 @@ struct dCamera_c {
/* 80182980 */ void chkFlag(u32);
/* 801829AC */ void Bank();
bool Active() { return field_0x24 == 0; }
static u8 engine_tbl[240];
/* 0x000 */ cXyz field_0x0;
/* 0x00C */ cXyz field_0xc;
/* 0x018 */ f32 field_0x18;
/* 0x01C */ cSAngle field_0x1c;
/* 0x01E */ s16 field_0x1e;
/* 0x020 */ u8 field_0x20;
/* 0x021 */ u8 field_0x21;
/* 0x022 */ u8 field_0x22[0x24 - 0x22];
/* 0x024 */ int field_0x24;
/* 0x028 */ u8 field_0x28[0x30 - 0x28];
/* 0x030 */ cXyz field_0x30;
/* 0x03C */ cXyz field_0x3c;
/* 0x048 */ cXyz field_0x48;
/* 0x054 */ cSAngle field_0x54;
/* 0x058 */ f32 field_0x58;
class {
public:
/* 0x00 */ cSGlobe field_0x0;
/* 0x08 */ cXyz field_0x8;
/* 0x14 */ cXyz field_0x14;
/* 0x20 */ cSAngle field_0x20;
}
/* 0x05C */ field_0x5c;
/* 0x07C */ u8 field_0x7c[0x8C - 0x7C];
/* 0x08C */ cSAngle field_0x8c;
/* 0x090 */ cXyz field_0x90;
/* 0x09C */ cXyz field_0x9c;
/* 0x0A8 */ u8 field_0xa8[0xB0 - 0xA8];
/* 0x0B0 */ dCamInfo_c field_0xb0;
/* 0x0D0 */ dCamInfo_c field_0xd0[2];
class {
public:
/* 0x00 */ u8 field_0x0[8];
/* 0x08 */ dCamInfo_c field_0x8;
/* 0x28 */ cXyz field_0x28;
}
/* 0x110 */ field_0x110;
};
dCamera_c* dCam_getBody();
dCamera_c* dCam_getCamera();
#endif /* D_D_CAMERA_H */
+53 -6
View File
@@ -4,18 +4,65 @@
#include "JSystem/JStudio/JStudio/stb.h"
#include "dolphin/types.h"
class cXyz;
struct dDemo_c {
/* 80039678 */ void create();
struct cXyz;
struct Vec;
struct fopAc_ac_c;
class dDemo_actor_c;
class dDemo_object_c {
public:
/* 80038F54 */ dDemo_object_c();
/* 80038F70 */ ~dDemo_object_c();
/* 80038FC0 */ void appendActor(fopAc_ac_c*);
/* 80039088 */ static dDemo_actor_c* getActor(u8);
/* 800390AC */ void createCamera();
/* 80039128 */ void getActiveCamera();
/* 8003913C */ void createAmbient();
/* 800391B8 */ void appendLight();
/* 80039258 */ void createFog();
/* 800392D4 */ void remove();
};
class dDemo_actor_c {
public:
/* 80038020 */ dDemo_actor_c();
/* 80038098 */ ~dDemo_actor_c();
/* 80038128 */ void getActor();
/* 8003815C */ void setActor(fopAc_ac_c*);
/* 8003819C */ void getPrm_Morf();
/* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
/* 800387EC */ void JSGSetData(u32, void const*, u32);
/* 80038920 */ void JSGSetTranslation(Vec const&);
/* 80038980 */ void JSGSetScaling(Vec const&);
/* 800389A8 */ void JSGSetRotation(Vec const&);
/* 80038A0C */ void JSGSetShape(u32);
/* 80038A20 */ void JSGSetAnimation(u32);
/* 80038A40 */ void JSGSetAnimationFrame(f32);
/* 80038A54 */ void JSGSetAnimationTransition(f32);
/* 80038A68 */ void JSGSetTextureAnimation(u32);
/* 80038A7C */ void JSGSetTextureAnimationFrame(f32);
/* 8003A05C */ void JSGFindNodeID(char const*) const;
/* 8003A088 */ void JSGGetNodeTransformation(u32, f32 (*)[4]) const;
/* 8003A0C8 */ void JSGGetAnimationFrameMax() const;
/* 8003A0D0 */ void JSGGetTextureAnimationFrameMax() const;
/* 8003A0D8 */ void JSGGetTranslation(Vec*) const;
/* 8003A0F4 */ void JSGGetScaling(Vec*) const;
/* 8003A110 */ void JSGGetRotation(Vec*) const;
};
class dDemo_c {
public:
/* 80039678 */ static void create();
/* 80039910 */ void remove();
/* 80039B6C */ static void start(u8 const*, cXyz*, f32);
/* 80039B6C */ void start(u8 const*, cXyz*, f32);
/* 80039CF8 */ static void end();
/* 80039D4C */ void branch();
/* 80039DA4 */ void update();
/* 80039DA4 */ static void update();
/* 80039EDC */ void setBranchType(u16);
/* 80039EEC */ void setBranchId(u16, s16);
/* 80039F04 */ void reset();
static dDemo_actor_c* getActor(u8 param_0) { return m_object->getActor(param_0); }
static u32 getFrameNoMsg() { return m_frameNoMsg; }
static s32 getMode() { return m_mode; }
static JStudio::stb::TControl* getControl() { return m_control; }
@@ -29,7 +76,7 @@ struct dDemo_c {
static u8 m_message[4];
static u8 m_factory[4];
static u8 m_mesgControl[4];
static u8 m_object[4];
static dDemo_object_c* m_object;
static u8 m_data[4];
static u8 m_frame[4];
static u8 m_translation[4];
+2
View File
@@ -239,6 +239,8 @@ public:
void setOpaListDark() { setOpaDrawList(mOpaListDark); }
void setOpaList() { setOpaDrawList(mOpaList); }
void setXluList() { setXluDrawList(mXluList); }
void setOpaListItem3D() { setOpaDrawList(mOpaListItem3d); }
void setXluListItem3D() { setXluDrawList(mXluListItem3d); }
void setXluListBG() { setXluDrawList(mXluListBG); }
void setOpaListBG() { setOpaDrawList(mOpaListBG); }
void setXluList2DScreen() { setXluDrawList(mList2DScreen); }
+2 -1
View File
@@ -385,8 +385,9 @@ s32 item_getcheck_func_KEY_OF_FILONE();
s32 item_getcheck_func_noentry();
s32 checkItemGet(u8, int);
BOOL isHeart(u8 item_no);
s32 isBomb(u8);
s32 isArrow(u8);
void addBombCount(u8, u8);
int addBombCount(u8, u8);
#endif /* D_D_ITEM_H */
+4
View File
@@ -54,6 +54,8 @@ struct dItem_data {
static s8 getBtpFrm(u8 index) { return item_resource[index].mBtpFrm; }
static s16 getTexture(u8 index) { return item_resource[index].mTexture; }
static char* getFieldArc(u8 index) { return field_item_res[index].mFieldArc; }
static s16 getItemBmdName(u8 index) { return field_item_res[index].mItemBmdName; }
@@ -78,6 +80,8 @@ struct dItem_data {
static u8 getR(u8 index) { return item_info[index].mR; }
static u16 getFieldHeapSize(u8 index) { return field_item_res[index].mHeapSize; }
static dItem_itemResource item_resource[255];
static dItem_fieldItemResource field_item_res[255];
static dItem_itemInfo item_info[255];
+18 -6
View File
@@ -12,14 +12,26 @@ struct STControl {
init();
}
/* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16);
enum EStickDir {
TRIG_LEFT = 1,
TRIG_RIGHT,
TRIG_UP = 4,
TRIG_UP_LEFT,
TRIG_UP_RIGHT,
TRIG_DOWN = 8,
TRIG_DOWN_LEFT,
TRIG_DOWN_RIGHT,
};
/* 80032044 */ STControl(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f32 threshold,
f32 param_5, s16 param_6, s16 param_7);
/* 80032088 */ void setWaitParm(s16, s16, s16, s16, f32, f32, s16, s16);
/* 800320AC */ void init();
/* 800320FC */ void Xinit();
/* 8003212C */ void Yinit();
/* 8003215C */ virtual f32 getValueStick();
/* 8003216C */ virtual s16 getAngleStick();
/* 8003219C */ void checkTrigger();
/* 8003219C */ u8 checkTrigger();
/* 8003242C */ bool checkLeftTrigger();
/* 800324A8 */ bool checkRightTrigger();
/* 80032524 */ bool checkUpTrigger();
@@ -27,14 +39,14 @@ struct STControl {
void setFirstWaitTime(s16 time) { mFirstWaitTime = time; }
/* 0x04 */ f32 field_0x04;
/* 0x04 */ f32 mThreshold;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ u8 field_0x0c;
/* 0x0C */ u8 mDirectionTrig;
/* 0x0D */ u8 field_0x0d;
/* 0x0E */ s16 field_0x0e;
/* 0x10 */ s16 field_0x10;
/* 0x12 */ s16 field_0x12;
/* 0x14 */ s16 field_0x14;
/* 0x12 */ s16 mRepeatDelayY;
/* 0x14 */ s16 mRepeatDelayX;
/* 0x16 */ s16 field_0x16;
/* 0x18 */ s16 mXwaitTimer;
/* 0x1A */ s16 mYwaitTimer;
+1 -1
View File
@@ -41,7 +41,7 @@ public:
/* 8009C6DC */ dMdl_c* search(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C724 */ dMdl_c* entry(J3DModelData*, u16, dKy_tevstr_c*);
/* 8009C8D8 */ dMdl_c* entry(J3DModelData*, u16, int);
/* 8009C7AC */ void create();
/* 8009C7AC */ static void create();
/* 8009C864 */ void remove();
/* 8009C8C0 */ void reset();
+2
View File
@@ -3,4 +3,6 @@
#include "dolphin/types.h"
u16* dPath_GetRoomPath(int param_0, int param_1);
#endif /* D_D_PATH_H */
+23 -2
View File
@@ -210,6 +210,7 @@ public:
/* 0x0C */ f32 field_0xc;
/* 0x10 */ u8 field_0x10[10];
/* 0x1A */ u8 mDefaultCamera;
/* 0x1B */ u8 mBitSw;
/* 0x1C */ u16 mMsg;
}; // Size: 0x20
@@ -244,7 +245,9 @@ struct dStage_MapEvent_dt_c {
u8 mType;
u8 field_0x1[3 - 1];
u8 field_0x3;
u8 field_0x4[7 - 4];
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
u8 field_0x8;
u8 field_0x9;
@@ -715,6 +718,7 @@ public:
static void offNoChangeRoom() { data_80450D68 = false; }
static void setProcID(u32 id) { mProcID = id; }
static u32 getProcID() { return mProcID; }
static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; }
static void setFileList2(int i_roomNo, dStage_FileList2_dt_c* list) {
mStatus[i_roomNo].mRoomDt.mFileList2Info = list;
}
@@ -855,6 +859,10 @@ 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);
int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle);
int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed,
u32 mode, s16 angle, int param_7);
void dStage_Create();
inline s32 dStage_roomRead_dt_c_GetVrboxswitch(roomRead_data_class& data) {
return data.field_0x2 & 8;
@@ -895,11 +903,16 @@ inline s16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) {
inline u32 dStage_stagInfo_GetArg0(stage_stag_info_class* p_info) {
return (p_info->field_0x0c >> 0x14) & 0xFF;
}
inline int dStage_stagInfo_GetMsgGroup(stage_stag_info_class* p_info) {
return p_info->mMsgGroup;
}
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
return p_info->field_0xb & 0xF;
}
inline s8 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
inline s32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
return p_info->mWipe;
}
@@ -915,6 +928,14 @@ inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) {
return p_fList->mParameters >> 3 & 7;
}
inline u32 dStage_FileList_dt_GetEnemyAppear1Flag(dStage_FileList_dt_c* p_fList) {
return p_fList->mParameters & 0x20000000;
}
inline int dStage_FileList_dt_GetBitSw(dStage_FileList_dt_c* p_fList) {
return p_fList->mBitSw;
}
inline int dStage_MapEvent_dt_c_getEventSCutSW(dStage_MapEvent_dt_c* event) {
return event->field_0x8 & 1;
}
+26 -13
View File
@@ -21,8 +21,17 @@ public:
class typeGroupData_c {
public:
data_s* getDataPointer() { return &mData; }
typeGroupData_c* getNextDataPointer() const { return mNextData; }
void setNextDataPointer(typeGroupData_c* data) { mNextData = data; }
void setTypeGroupNo(u8 no) { mTypeGroupNo = no; }
u8 getNo() const { return mData.mNo; }
u8 getStatus() const { return mData.mStatus; }
void setStatus(u8 status) { mData.mStatus = status; }
void setRoomNo(s8 roomNo) { mData.mRoomNo = roomNo; }
s8 getRoomNo() const { return mData.mRoomNo; }
void setPos(const Vec& pos) { mData.mPos = pos; }
u8 getSwBit() const { return mData.mSwBit; }
const Vec* getPos() const { return &mData.mPos; }
/* 0x00 */ data_s mData;
/* 0x14 */ typeGroupData_c* mNextData;
@@ -30,28 +39,32 @@ public:
}; // Size: 0x1C
struct list_class {
/* 0x0 */ int field_0x0;
/* 0x0 */ typeGroupData_c* field_0x0;
/* 0x4 */ typeGroupData_c* field_0x4;
/* 0x8 */ u8 field_0x8;
/* 0x8 */ u8 mNumber;
};
/* 8009BBD8 */ static int createWork();
/* 8009BC18 */ static void create();
/* 8009BC60 */ void remove();
/* 8009BC60 */ static void remove();
/* 8009BC6C */ static void reset();
/* 8009BCB4 */ static void addData(dTres_c::list_class*, s8);
/* 8009BE28 */ static void checkTreasureBox(dTres_c::data_s*);
/* 8009C168 */ void onStatus(u8, int, int);
/* 8009C1F0 */ void offStatus(u8, int, int);
/* 8009C27C */ void getBossIconFloorNo(int*);
/* 8009C360 */ void getFirstData(u8);
/* 8009C39C */ void getNextData(dTres_c::typeGroupData_c*);
/* 8009C3B4 */ void getNextData(dTres_c::typeGroupData_c const*);
/* 8009C3CC */ void setPosition(int, u8, Vec const*, int);
/* 8009C49C */ void getTypeGroupNoToType(u8);
/* 8009C4B0 */ static u8 getTypeToTypeGroupNo(u8);
/* 8009C168 */ static void onStatus(u8, int, int);
/* 8009C1F0 */ static void offStatus(u8, int, int);
/* 8009C27C */ static int getBossIconFloorNo(int*);
/* 8009C360 */ static typeGroupData_c* getFirstData(u8);
/* 8009C39C */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c*);
/* 8009C3B4 */ static typeGroupData_c* getNextData(dTres_c::typeGroupData_c const*);
/* 8009C3CC */ static void setPosition(int, u8, Vec const*, int);
/* 8009C49C */ static int getTypeGroupNoToType(u8);
/* 8009C4B0 */ static int getTypeToTypeGroupNo(u8);
static u8 const typeToTypeGroup[34];
static int getTypeGroupNumber(int index) {
return mTypeGroupListAll[index].mNumber;
}
static u8 const typeToTypeGroup[17][2];
static list_class mTypeGroupListAll[17];
static typeGroupData_c* mTypeGroupData;
static u16 mNum;
+38 -31
View File
@@ -13,15 +13,15 @@ public:
~dEvt_order_c() {}
dEvt_order_c();
/* 0x00 */ u16 mEventType;
/* 0x02 */ u16 mFlag;
/* 0x04 */ s16 field_0x04;
/* 0x08 */ fopAc_ac_c* mActor1;
/* 0x0C */ fopAc_ac_c* mActor2;
/* 0x10 */ s16 mEventId;
/* 0x12 */ s16 mPriority;
/* 0x14 */ u8 mNextOrderIdx;
/* 0x15 */ u8 mEventInfoIdx;
/* 0x00 */ u16 mEventType;
/* 0x02 */ u16 mFlag;
/* 0x04 */ u16 field_0x04;
/* 0x08 */ fopAc_ac_c* mActor1;
/* 0x0C */ fopAc_ac_c* mActor2;
/* 0x10 */ s16 mEventId;
/* 0x12 */ u16 mPriority;
/* 0x14 */ s8 mNextOrderIdx;
/* 0x15 */ u8 mEventInfoIdx;
}; // Size = 0x18
STATIC_ASSERT(sizeof(dEvt_order_c) == 0x18);
@@ -31,24 +31,25 @@ typedef int (*SkipFunc)(void*, int);
class dEvt_control_c {
public:
dEvt_control_c();
bool orderOld(u16, u16, u16, u16, void*, void*, void const*);
bool order(u16, u16, u16, u16, void*, void*, s16, u8);
s32 orderOld(u16, u16, u16, u16, void*, void*, void const*);
s32 order(u16 eventType, u16 priority, u16 flag, u16 param_3, void* param_4,
void* param_5, s16 eventID, u8 infoIdx);
void setParam(dEvt_order_c*);
s32 beforeFlagProc(dEvt_order_c*);
void afterFlagProc(dEvt_order_c*);
int commonCheck(dEvt_order_c*, u16, u16);
void talkCheck(dEvt_order_c*);
void talkXyCheck(dEvt_order_c*);
void catchCheck(dEvt_order_c*);
int talkCheck(dEvt_order_c*);
int talkXyCheck(dEvt_order_c*);
int catchCheck(dEvt_order_c*);
void talkEnd();
void demoCheck(dEvt_order_c*);
int demoCheck(dEvt_order_c*);
void demoEnd();
s32 potentialCheck(dEvt_order_c*);
void doorCheck(dEvt_order_c*);
int potentialCheck(dEvt_order_c*);
int doorCheck(dEvt_order_c*);
int itemCheck(dEvt_order_c*);
int endProc();
void change();
void entry();
int change();
int entry();
void reset(void*);
void reset();
void clearSkipSystem();
@@ -57,9 +58,9 @@ public:
void setSkipZev(void*, char*);
void onSkipFade();
void offSkipFade();
void skipper();
void Step();
void moveApproval(void*);
bool skipper();
int Step();
int moveApproval(void*);
BOOL compulsory(void*, char const*, u16);
void remove();
dStage_MapEvent_dt_c* getStageEventDt();
@@ -80,17 +81,23 @@ public:
void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
bool runCheck() { return field_0xe5 != 0; }
bool runCheck() { return mEventStatus != 0; }
u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
void onEventFlag(u16 flag) { mEventFlag |= flag; }
void offEventFlag(u16 flag) { mEventFlag &= ~flag; }
u8 getMode() const { return mMode; }
u16 checkHind(u16 flag) { return flag & mHindFlag; }
u8 checkCompulsory() { return mCompulsory; }
u8 getMapToolId() { return mMapToolId; }
void onFlag2(u16 flag) { mFlag2 |= flag; }
void offFlag2(u16 flag) { mFlag2 &= ~flag; }
void setCullRate(f32 f) { mCullRate = f; }
bool i_isOrderOK() { return field_0xe5 == 0 || field_0xe5 == 2; }
bool i_isOrderOK() { return mEventStatus == 0 || mEventStatus == 2; }
void* getPt1() { return convPId(mPt1); }
void* getPt2() { return convPId(mPt2); }
void* getPtT() { return convPId(mPtT); }
bool isChangeOK(void* param_0) { return mChangeOK == param_0; }
public:
/* 0x000 */ u8 field_0x0[4];
@@ -105,10 +112,10 @@ public:
/* 0x0DC */ u16 mHindFlag;
/* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
/* 0x0E0 */ s16 field_0xe0;
/* 0x0E2 */ u8 mNum;
/* 0x0E3 */ u8 field_0xe3;
/* 0x0E2 */ s8 mNum;
/* 0x0E3 */ s8 field_0xe3;
/* 0x0E4 */ u8 mMode;
/* 0x0E5 */ u8 field_0xe5;
/* 0x0E5 */ u8 mEventStatus;
/* 0x0E6 */ u8 field_0xe6;
/* 0x0E7 */ u8 field_0xe7;
/* 0x0E8 */ u8 field_0xe8;
@@ -119,19 +126,19 @@ public:
/* 0x0ED */ u8 field_0xed;
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
/* 0x0F0 */ float mCullRate;
/* 0x0F0 */ f32 mCullRate;
/* 0x0F4 */ dStage_MapEvent_dt_c* mStageEventDt;
/* 0x0F8 */ void* mChangeOK;
/* 0x0FC */ u8 field_0xfc[4];
/* 0x100 */ SkipFunc mSkipFunc;
/* 0x104 */ u32 field_0x104;
/* 0x108 */ u32 field_0x108;
/* 0x10C */ u32 field_0x10c;
/* 0x108 */ int mSkipTimer;
/* 0x10C */ int field_0x10c;
/* 0x110 */ int mSkipFade;
/* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
/* 0x129 */ bool field_0x129;
/* 0x12C */ int field_0x12c;
/* 0x12C */ int mRoomNo;
}; // Size = 0x130
int dEv_defaultSkipProc(void* param_0, int param_1);
+2 -2
View File
@@ -67,11 +67,11 @@ public:
int ChkPresentEnd();
int checkStartDemo();
void setStartDemo(int param_0) { mEventException.setStartDemo(param_0); }
int setStartDemo(int param_0) { return mEventException.setStartDemo(param_0); }
void setCameraPlay(int status) { mCameraPlay = status; }
dEvDtBase_c& getBase() { return mEventList[mCurrentEventType]; }
void setFlag(int flag) { mFlags.flagSet(flag); }
bool dataLoaded() { return mDataLoaded; }
int flagCheck(int flag) { return mFlags.flagCheck(flag); }
static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; }
+20 -1
View File
@@ -1,6 +1,25 @@
#ifndef D_FILE_D_FILE_SEL_WARNING_H
#define D_FILE_D_FILE_SEL_WARNING_H
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
class dFile_warning_c {
public:
/* 80191BAC */ dFile_warning_c(JKRArchive*, u8);
/* 80191CF4 */ void screenSet();
/* 80191F18 */ void _move();
/* 80191F90 */ void modeWait();
/* 80191F94 */ void modeMove();
/* 80191FD4 */ void baseMoveAnm();
/* 801920B8 */ void openInit();
/* 8019210C */ void closeInit();
/* 80192160 */ void init();
/* 80192190 */ void _draw();
/* 801921CC */ void drawSelf();
/* 801921F8 */ void setText(u32);
/* 80192240 */ void setFontColor(JUtility::TColor, JUtility::TColor);
/* 80191C18 */ virtual ~dFile_warning_c();
};
#endif /* D_FILE_D_FILE_SEL_WARNING_H */
+4
View File
@@ -24,6 +24,7 @@ s32 dKy_daynight_check();
void dKy_clear_game_init();
void dKy_setLight_init();
u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
void dKy_depth_dist_set(void* param_0);
void dKy_instant_rainchg();
void dKy_instant_timechg(f32);
@@ -507,5 +508,8 @@ void dKy_setLight_nowroom(char);
void dKy_setLight_nowroom_actor(dKy_tevstr_c*);
void dKy_setLight_again();
void dKy_GxFog_tevstr_set(dKy_tevstr_c*);
void dKy_plight_set(LIGHT_INFLUENCE* param_0);
void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2);
SND_INFLUENCE* dKy_Sound_get();
#endif /* D_KANKYO_D_KANKYO_H */
+1 -1
View File
@@ -13,7 +13,7 @@ public:
/* 8003F7E8 */ static void createWork();
/* 8003FA40 */ void setPointer(s8, void*, int);
/* 8003F810 */ void setPointer(dDrawPath_c::room_class*, s8*, s8*);
/* 8003FB70 */ void create();
/* 8003FB70 */ static void create();
/* 8003FBD0 */ void reset();
/* 8003FC70 */ void remove();
+133 -42
View File
@@ -5,37 +5,133 @@
#include "d/d_lib.h"
#include "d/d_select_cursor.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_dvd_thread.h"
class dMsgString_c;
class mDoDvdThd_command_c;
class dFile_warning_c;
class dFile_info_c;
class dMsgScrnExplain_c;
class dDlst_MenuSaveExplain_c : public dDlst_base_c {
public:
dDlst_MenuSaveExplain_c() { mpScrn = NULL; }
/* 801F6ADC */ virtual void draw();
/* 801F6B8C */ virtual ~dDlst_MenuSaveExplain_c();
void setScrnExplain(dMsgScrnExplain_c* p_scrn) { mpScrn = p_scrn; }
private:
/* 0x4 */ int field_0x4;
/* 0x4 */ dMsgScrnExplain_c* mpScrn;
};
class dDlst_MenuSave_c : public dDlst_base_c {
public:
dDlst_MenuSave_c() {
Scr = NULL;
mMsgString = NULL;
}
/* 801F6B0C */ virtual void draw();
/* 801F6B44 */ virtual ~dDlst_MenuSave_c();
/* 0x04 */ J2DScreen* Scr;
/* 0x08 */ JUTFont* font[2];
/* 0x10 */ dMsgString_c* mMsgString;
};
class dMs_HIO_c {
public:
/* 801EF654 */ dMs_HIO_c();
/* 801F6BD4 */ virtual ~dMs_HIO_c();
/* 0x4 */ s8 field_0x4;
/* 0x5 */ u8 mDisplayWaitFrames;
/* 0x6 */ u8 mCardWaitFrames;
/* 0x7 */ u8 mEffectDispFrames;
/* 0x8 */ u8 mCharSwitchFrames;
/* 0x9 */ u8 mSelectIcon;
/* 0xA */ u8 mSelectFrames;
/* 0xB */ u8 mFadeOutTimer;
/* 0xC */ bool mTitleMsgCheck;
/* 0xD */ u8 field_0xd;
/* 0xE */ bool mErrorMsgCheck;
/* 0xF */ u8 field_0xf;
};
class dMenu_save_c {
public:
enum {
/* 0x00 */ PROC_SAVE_QUESTION,
/* 0x01 */ PROC_SAVE_QUESTION2,
/* 0x02 */ PROC_SAVE_QUESTION21,
/* 0x03 */ PROC_SAVE_QUESTION3,
/* 0x04 */ PROC_SAVE_QUESTION4,
/* 0x05 */ PROC_SAVE_GUIDE,
/* 0x06 */ PROC_MEMCARD_CHECK,
/* 0x07 */ PROC_BACK_SAVE_QUESTION,
/* 0x08 */ PROC_BACK_SAVE_QUESTION2,
/* 0x09 */ PROC_MEMCARD_ERRMSG_WAIT_KEY,
/* 0x0A */ PROC_IPL_SELECT_DISP1,
/* 0x0B */ PROC_IPL_SELECT_DISP2,
/* 0x0C */ PROC_MEMCARD_ERR_GO_IPL_SEL,
/* 0x0D */ PROC_IPL_SELECT2_DISP,
/* 0x0E */ PROC_MEMCARD_ERR_GO_IPL_SEL2,
/* 0x0F */ PROC_MEMCARD_ERR_GOTO_IPL,
/* 0x10 */ PROC_MEMCARD_ERRMSG_WAIT_FORMAT_SEL,
/* 0x11 */ PROC_CARD_FORMAT_YES_SEL_DISP,
/* 0x12 */ PROC_CARD_FORMAT_NO_SEL_DISP,
/* 0x13 */ PROC_MEMCARD_ERRMSG_WAIT_FORMAT_SEL2,
/* 0x14 */ PROC_CARD_FORMAT_YES_SEL2_DISP,
/* 0x15 */ PROC_MEMCARD_FORMAT,
/* 0x16 */ PROC_MEMCARD_FORMAT_WAIT,
/* 0x17 */ PROC_MAKE_GAME_FILE_SEL_DISP,
/* 0x18 */ PROC_MEMCARD_MAKE_GAME_FILE_SEL,
/* 0x19 */ PROC_MAKE_GAME_FILE_DISP,
/* 0x1A */ PROC_MEMCARD_MAKE_GAME_FILE,
/* 0x1B */ PROC_MEMCARD_MAKE_GAME_FILE_WAIT,
/* 0x1C */ PROC_MEMCARD_COMMAND_END,
/* 0x1D */ PROC_MEMCARD_COMMAND_END2,
/* 0x1E */ PROC_MEMCARD_DATA_LOAD_WAIT,
/* 0x1F */ PROC_MEMCARD_DATA_SAVE_WAIT,
/* 0x20 */ PROC_MEMCARD_DATA_SAVE_WAIT2,
/* 0x21 */ PROC_GAME_CONTINUE_DISP,
/* 0x22 */ PROC_GAME_CONTINUE,
/* 0x23 */ PROC_GAME_CONTINUE2,
/* 0x24 */ PROC_GAME_CONTINUE3,
/* 0x25 */ PROC_SAVE_END,
/* 0x26 */ PROC_ENDING_NO_SAVE,
/* 0x27 */ PROC_ENDING_NO_SAVE2,
/* 0x28 */ PROC_ENDING_DATA_CHECK,
/* 0x29 */ PROC_SAVE_WAIT,
/* 0x2A */ PROC_MESSAGE_CHANGE,
/* 0x2B */ PROC_RETRY_QUESTION0,
/* 0x2C */ PROC_RETRY_QUESTION1,
/* 0x2D */ PROC_RETRY_QUESTION2,
/* 0x2E */ PROC_OPEN_SAVE_SELECT,
/* 0x2F */ PROC_OPEN_SAVE_SELECT2,
/* 0x30 */ PROC_OPEN_SAVE_SELECT3,
/* 0x31 */ PROC_SAVE_SELECT,
/* 0x32 */ PROC_SAVE_SELECT_MOVE_ANM,
/* 0x33 */ PROC_SELECT_DATA_OPEN_MOVE,
/* 0x34 */ PROC_SAVE_YES_NO_SELECT,
/* 0x35 */ PROC_YES_NO_CURSOR_MOVE_ANM,
/* 0x36 */ PROC_SAVE_YES_NO_CANCEL_MOVE,
/* 0x37 */ PROC_SAVE_MOVE_DISP,
/* 0x38 */ PROC_SAVE_MOVE_DISP2,
/* 0x39 */ PROC_MSG_WINDOW_INIT_OPEN,
/* 0x3A */ PROC_MSG_WINDOW_OPEN,
/* 0x3B */ PROC_MSG_WINDOW_CLOSE,
/* 0x3C */ PROC_ERR_YES_NO_CURSOR_MOVE_ANM,
};
/* 801EF6A0 */ dMenu_save_c();
/* 801EF7AC */ void _create();
/* 801EF904 */ void screenSet();
/* 801F0938 */ void initialize();
/* 801F0958 */ void displayInit();
/* 801F09AC */ bool _open();
/* 801F0B10 */ void _close();
/* 801F0B10 */ int _close();
/* 801F0B28 */ void _delete();
/* 801F1048 */ void _move();
/* 801F1100 */ void saveSelAnm();
@@ -96,7 +192,7 @@ public:
/* 801F30B8 */ void restartInit();
/* 801F31B0 */ void saveWait();
/* 801F31B4 */ void messageChange();
/* 801F328C */ void YesNoSelect();
/* 801F328C */ int YesNoSelect();
/* 801F34BC */ void msgTxtSet(u16, bool);
/* 801F3588 */ void openSaveSelect();
/* 801F36B4 */ void openSaveSelect2();
@@ -120,11 +216,11 @@ public:
/* 801F4B84 */ void msgWindowInitOpen();
/* 801F4D10 */ void msgWindowOpen();
/* 801F4DAC */ void msgWindowClose();
/* 801F4E48 */ void errYesNoSelect(u8, u8);
/* 801F4E48 */ bool errYesNoSelect(u8, u8);
/* 801F4FB4 */ void errCurMove(u8, u8);
/* 801F5054 */ void errYesNoCursorMoveAnm();
/* 801F50C4 */ void errorTxtSet(u16);
/* 801F5190 */ void errorTxtChangeAnm();
/* 801F5190 */ bool errorTxtChangeAnm();
/* 801F5278 */ void saveSelectOpenInit();
/* 801F533C */ void selectDataBaseMoveAnmInitSet(int, int);
/* 801F53D4 */ void selectDataBaseMoveAnm();
@@ -132,7 +228,7 @@ public:
/* 801F5508 */ void selectDataMoveAnmInitSet(int, int);
/* 801F5600 */ void selectDataMoveAnm();
/* 801F5744 */ void yesnoMenuMoveAnmInitSet(int, int, u8);
/* 801F58C8 */ void yesnoMenuMoveAnm();
/* 801F58C8 */ bool yesnoMenuMoveAnm();
/* 801F5AE4 */ void yesnoSelectMoveAnm(u8);
/* 801F5D84 */ void yesnoCursorShow();
/* 801F5EF4 */ void errorMoveAnmInitSet(int, int);
@@ -140,7 +236,7 @@ public:
/* 801F60A4 */ void modoruTxtDispAnmInit(u8);
/* 801F6120 */ void modoruTxtDispAnm();
/* 801F61FC */ void ketteiTxtDispAnmInit(u8);
/* 801F6278 */ void ketteiTxtDispAnm();
/* 801F6278 */ bool ketteiTxtDispAnm();
/* 801F6354 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8);
/* 801F6390 */ void selectWakuAlpahAnm(u8);
/* 801F6458 */ void selFileCursorShow();
@@ -157,38 +253,33 @@ public:
u8 getSaveStatus() { return mSaveStatus; }
void setUseType(u8 type) { mUseType = type; }
struct SaveSel {
/* 0x00 */ J2DScreen* Scr;
/* 0x04 */ JUTFont* font[2];
/* 0x0C */ dMsgString_c* mMsgString;
}; // Size: 0x10
private:
/* 0x0004 */ JKRArchive* field_0x4;
/* 0x0008 */ mDoDvdThd_command_c* field_0x8;
/* 0x0004 */ JKRArchive* mpArchive;
/* 0x0008 */ mDoDvdThd_mountArchive_c* mpMount;
/* 0x000C */ STControl* stick;
/* 0x0010 */ dDlst_MenuSaveExplain_c field_0x10;
/* 0x0018 */ dDlst_MenuSave_c field_0x18;
/* 0x001C */ SaveSel mSaveSel;
/* 0x0010 */ dDlst_MenuSaveExplain_c mMenuSaveExplain;
/* 0x0018 */ dDlst_MenuSave_c mMenuSave;
/* 0x002C */ dSelect_cursor_c* mSelIcon;
/* 0x0030 */ dFile_warning_c* field_0x30;
/* 0x0034 */ dFile_info_c* field_0x34[3];
/* 0x0040 */ void* field_0x40;
/* 0x0044 */ void* field_0x44;
/* 0x0048 */ void* field_0x48;
/* 0x004C */ void* field_0x4c;
/* 0x0030 */ dFile_warning_c* mWarning;
/* 0x0034 */ dFile_info_c* mFileInfo[3];
/* 0x0040 */ J2DAnmTransformKey* field_0x40;
/* 0x0044 */ J2DAnmTransformKey* field_0x44;
/* 0x0048 */ J2DAnmTransformKey* field_0x48;
/* 0x004C */ J2DAnmTransformKey* field_0x4c;
/* 0x0050 */ s32 field_0x50;
/* 0x0054 */ u8 field_0x54;
/* 0x0058 */ CPaneMgr* field_0x58;
/* 0x005C */ int field_0x5c;
/* 0x0060 */ int field_0x60;
/* 0x0064 */ u8 field_0x64;
/* 0x0064 */ u8 field_0x65;
/* 0x0065 */ u8 field_0x65;
/* 0x0068 */ CPaneMgr* field_0x68[3];
/* 0x0074 */ u8 field_0x74[0x10];
/* 0x0084 */ CPaneMgr* field_0x84[2];
/* 0x008C */ u8 field_0x8c[0x10];
/* 0x009C */ u8 field_0x9c;
/* 0x009D */ u8 field_0x9d;
/* 0x009E */ u8 field_0x9e;
/* 0x00A0 */ int field_0xa0;
/* 0x00A4 */ u8 field_0xa4[0x10];
/* 0x00B4 */ J2DPane* field_0xb4;
@@ -197,7 +288,7 @@ private:
/* 0x00C0 */ CPaneMgr* field_0xc0[2];
/* 0x00C8 */ char* field_0xc8[2];
/* 0x00D0 */ u8 field_0xd0;
/* 0x00D2 */ u8 field_0xd1;
/* 0x00D1 */ u8 field_0xd1;
/* 0x00D2 */ u8 field_0xd2;
/* 0x00D3 */ u8 field_0xd3;
/* 0x00D4 */ CPaneMgr* field_0xd4[3];
@@ -215,22 +306,24 @@ private:
/* 0x0132 */ u8 field_0x132[2];
/* 0x0134 */ u8 field_0x134[2];
/* 0x0138 */ CPaneMgr* field_0x138[2];
/* 0x0140 */ void* field_0x140;
/* 0x0140 */ J2DAnmColorKey* field_0x140;
/* 0x0144 */ int field_0x144;
/* 0x0148 */ void* field_0x148;
/* 0x0148 */ J2DAnmTextureSRTKey* field_0x148;
/* 0x014C */ int field_0x14c;
/* 0x0150 */ void* field_0x150;
/* 0x0150 */ J2DAnmColorKey* field_0x150;
/* 0x0154 */ int field_0x154;
/* 0x0158 */ void* field_0x158;
/* 0x0158 */ J2DAnmTextureSRTKey* field_0x158;
/* 0x015C */ int field_0x15c;
/* 0x0160 */ void* field_0x160;
/* 0x0160 */ J2DAnmTevRegKey* field_0x160;
/* 0x0164 */ int field_0x164;
/* 0x0168 */ CPaneMgr* field_0x168[2];
/* 0x0170 */ u8 field_0x170[8];
/* 0x0170 */ char* field_0x170[2];
/* 0x0178 */ u8 field_0x178;
/* 0x0179 */ u8 field_0x179;
/* 0x017A */ u8 field_0x17a;
/* 0x017B */ u8 field_0x17b[0x19];
/* 0x017B */ u8 field_0x17b;
/* 0x017C */ CPaneMgr* field_0x17c[3];
/* 0x0188 */ CPaneMgr* field_0x188[3];
/* 0x0194 */ CPaneMgr* field_0x194;
/* 0x0198 */ CPaneMgr* field_0x198;
/* 0x019C */ u8 field_0x19c;
@@ -243,7 +336,7 @@ private:
/* 0x01AD */ u8 field_0x1ad[3];
/* 0x01B0 */ u8 field_0x1b0;
/* 0x01B1 */ u8 field_0x1b1;
/* 0x01B2 */ u8 field_0x1b2;
/* 0x01B2 */ u8 mMenuProc;
/* 0x01B3 */ u8 field_0x1b3;
/* 0x01B4 */ u8 field_0x1b4;
/* 0x01B5 */ u8 field_0x1b5;
@@ -254,21 +347,19 @@ private:
/* 0x01BA */ u8 mSaveStatus;
/* 0x01BB */ u8 mEndStatus;
/* 0x01BC */ u8 mUseType;
/* 0x01BD */ u8 field_0x1bd;
/* 0x01BD */ u8 mWaitTimer;
/* 0x01BE */ u8 field_0x1be;
/* 0x01BF */ u8 field_0x1bf;
/* 0x01C0 */ u8 field_0x1c0;
/* 0x01C4 */ int field_0x1c4;
/* 0x01C8 */ int field_0x1c8;
/* 0x01CC */ void* field_0x1cc;
/* 0x01D0 */ u8 field_0x1d0[0xA94 * 3];
/* 0x01CC */ void (dMenu_save_c::*field_0x1cc)();
/* 0x01D0 */ u8 mSaveBuffer[0xA94 * 3];
/* 0x218C */ dMsgScrnExplain_c* mpScrnExplain;
/* 0x2190 */ u8 field_0x2190;
/* 0x2192 */ u16 field_0x2192;
/* 0x2194 */ u8 field_0x2194;
/* 0x2195 */ u8 field_0x2195;
/* 0x2198 */ int field_0x2198;
/* 0x219C */ u8 field_0x219c;
/* 0x2198 */ int mCmdState;
/* 0x219C */ bool field_0x219c;
/* 0x219D */ u8 field_0x219d;
/* 0x219E */ u8 field_0x219e;
/* 0x219F */ u8 field_0x219f;
+59 -1
View File
@@ -8,6 +8,7 @@
#include "dolphin/types.h"
#include "m_Do/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic.h"
#include "m_Do/m_Do_mtx.h"
class dMenu_Ring_c;
class dMenu_Dmap_c;
@@ -15,7 +16,62 @@ class dMenu_Fmap_c;
class dDlst_MENU_CAPTURE_c : public dDlst_base_c {
public:
/* 801FDFCC */ virtual void draw();
/* 801FDFCC */ virtual void draw();/* {
if (getDrawFlag() == 1) {
setDrawFlag();
dComIfGp_onPauseFlag();
GXSetTexCopySrc(0, 0, 608, 448);
GXSetTexCopyDst(304, 224, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_ENABLE);
GXCopyTex(mDoGph_gInf_c::getFrameBufferTex(), GX_FALSE);
GXPixModeSync();
} else {
GXTexObj tex;
GXInitTexObj(&tex, mDoGph_gInf_c::getFrameBufferTex(), 304, 224,
(GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(&tex, GX_TEXMAP0);
GXSetNumChans(0);
GXSetNumTexGens(1);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60, GX_FALSE, 125);
GXSetNumTevStages(1);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXColor color = {0xFF, 0xFF, 0xFF, mAlpha};
GXSetTevColor(GX_TEVREG0, color);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetZCompLoc(GX_TRUE);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
GXSetFogRangeAdj(GX_FALSE, 0, NULL);
GXSetCullMode(GX_CULL_NONE);
GXSetDither(GX_TRUE);
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
GXSetCurrentMtx(0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0);
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMinY(), 0);
GXTexCoord2s8(0, 0);
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMinY(), 0);
GXTexCoord2s8(1, 0);
GXPosition3s16(mDoGph_gInf_c::getMaxX(), mDoGph_gInf_c::getMaxY(), 0);
GXTexCoord2s8(1, 1);
GXPosition3s16(mDoGph_gInf_c::getMinX(), mDoGph_gInf_c::getMaxY(), 0);
GXTexCoord2s8(0, 1);
GXEnd();
}
} */
/* 801FE2E8 */ virtual ~dDlst_MENU_CAPTURE_c();
dDlst_MENU_CAPTURE_c() {
@@ -28,6 +84,8 @@ public:
bool checkDraw() { return mFlag; }
u8 getAlpha() { return mAlpha; }
u8 getTopFlag() { return mTopFlag; }
u8 getDrawFlag() { return mFlag; }
void setDrawFlag() { mFlag = 3; }
private:
/* 0x4 */ u8 mFlag;
+3
View File
@@ -222,6 +222,9 @@ public:
void onRupeeSoundBit(int bit) { mRupeeSound |= (1 << bit); }
void offRupeeSoundBit(int bit) { mRupeeSound &= ~(1 << bit); }
bool isRupeeSoundBit(int bit) { return mRupeeSound & (1 << bit); }
s16 getNowLifeGauge() { return mNowLifeGauge; }
u8 getSubContents() { return mSubContents; }
u16 getSubContentsStringType() { return mSubContentsStringType; }
private:
/* 0x100 */ JKRExpHeap* mpHeap;
+48 -23
View File
@@ -65,7 +65,7 @@ public:
virtual ~dMeter2Info_c();
void init(void);
int setFloatingMessage(u16, s16, bool);
void setFloatingFlow(u16, s16, bool);
int setFloatingFlow(u16, s16, bool);
int isFloatingMessageVisible(void);
int decFloatingMessageTimer(void);
void resetFloatingMessage(void);
@@ -73,8 +73,8 @@ public:
void getString(u32, char*, JMSMesgEntry_c*); // define JMSMesgEntry
void getStringKana(u32, char*, JMSMesgEntry_c*);
void getStringKanji(u32, char*, JMSMesgEntry_c*);
double getStringLength(J2DTextBox*, char*); // define J2DTextBox
dMeter2Info_c* getStringLength(JUTFont*, f32, f32, char*);
f32 getStringLength(J2DTextBox*, char*);
f32 getStringLength(JUTFont*, f32, f32, char*);
void onDirectUseItem(int);
bool isDirectUseItem(int);
int setMeterString(s32);
@@ -84,12 +84,12 @@ public:
void resetMeterString(void);
void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8);
u8 getItemType(u8);
u8 readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
J2DPicture*, int); // define J2DPicture
int readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
J2DPicture*, int);
void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
s8 get2ndTexture(u8);
s8 get3rdTexture(u8);
s8 get4thTexture(u8);
s16 get2ndTexture(u8);
s16 get3rdTexture(u8);
s16 get4thTexture(u8);
void set1stColor(u8, J2DPicture*);
void set2ndColor(u8, J2DPicture*);
void set3rdColor(u8, J2DPicture*);
@@ -150,8 +150,11 @@ public:
const char* getSaveStageName() { return mSaveStageName; }
void onShopTalkFlag() { mShopTalkFlag = true; }
void setLightDropGetFlag(int index, u8 flag) { mLightDropGetFlag[index] = flag; }
u8 getRentalBombBag() { return mRentalBombBag; }
u8 getRentalBombBag() { return mRentalBombBagIdx; }
void setTableMapRegionNo(u8 regionNo) { mTableMapRegionNo = regionNo; }
dMeter2_c* getMeterClass() { return mMeterClass; }
u8 getMiniGameItemSetFlag() { return mMiniGameItemSetFlag; }
s16 getMsgKeyWaitTimer() { return mMsgKeyWaitTimer; }
public:
/* 0x04 */ u8 unk4[4];
@@ -178,7 +181,7 @@ public:
/* 0x80 */ f32 unk128;
/* 0x84 */ u32 mTimeMs;
/* 0x88 */ u32 mMsgTimeMs;
/* 0x8C */ u32 mMeterString;
/* 0x8C */ s32 mMeterString;
/* 0x90 */ u32 mTempBits;
/* 0x94 */ s16 mMsgKeyWaitTimer;
/* 0x96 */ u16 mHorseLifeCount;
@@ -207,19 +210,19 @@ public:
/* 0xC1 */ u8 mPauseStatus;
/* 0xC2 */ u8 mGameOverType;
/* 0xC3 */ u8 mInsectSelectType;
/* 0xC4 */ u8 unk196[4];
/* 0xC8 */ u8 unk200[4];
/* 0xCC */ u8 unk204;
/* 0xCD */ u8 unk205; // arrow num
/* 0xCE */ u8 unk206; // item 1
/* 0xCF */ u8 unk207; // item 2
/* 0xD0 */ u8 unk208[4];
/* 0xD4 */ u8 unk212[4];
/* 0xD8 */ u8 unk216; // bomb num
/* 0xD9 */ u8 unk217; // arrow num?
/* 0xDA */ u8 unk218; // item 1?
/* 0xDB */ u8 unk219; // item 2
/* 0xDC */ u8 mRentalBombBag;
/* 0xC4 */ u8 mSaveSelItemIdx[4];
/* 0xC8 */ u8 mSaveMixItemIdx[4];
/* 0xCC */ u8 mSaveBombNum;
/* 0xCD */ u8 mSaveArrowNum;
/* 0xCE */ u8 mSaveBowItem;
/* 0xCF */ u8 mSaveBombItem;
/* 0xD0 */ u8 mSaveSelItemIdxMG[4];
/* 0xD4 */ u8 mSaveMixItemIdxMG[4];
/* 0xD8 */ u8 mSaveBombNumMG;
/* 0xD9 */ u8 mSaveArrowNumMG;
/* 0xDA */ u8 mSaveBowItemMG;
/* 0xDB */ u8 mSaveBombItemMG;
/* 0xDC */ u8 mRentalBombBagIdx;
/* 0xDD */ u8 mMiniGameItemSetFlag; // 1: rented in game, 3: rented not in game
/* 0xDE */ u8 mMiniGameCount;
/* 0xDF */ u8 mCollectCursorPosX;
@@ -239,6 +242,8 @@ public:
extern dMeter2Info_c g_meter2_info;
void dMeter2Info_setSword(u8, bool);
void dMeter2Info_setCloth(u8 i_clothId, bool param_1);
void dMeter2Info_setShield(u8 i_itemId, bool param_1);
void dMeter2Info_set2DVibration();
void dMeter2Info_set2DVibrationM();
@@ -446,6 +451,10 @@ inline u8 dMeter2Info_getRentalBombBag() {
return g_meter2_info.getRentalBombBag();
}
inline u8 dMeter2Info_getMiniGameItemSetFlag() {
return g_meter2_info.getMiniGameItemSetFlag();
}
inline void dMeter2Info_resetMiniGameItem(bool param_0) {
g_meter2_info.resetMiniGameItem(param_0);
}
@@ -458,6 +467,22 @@ inline void dMeter2Info_changeWater(u8 bottleIdx) {
g_meter2_info.changeWater(bottleIdx);
}
inline void dMeter2Info_warpInProc() {
g_meter2_info.warpInProc();
}
inline void dMeter2Info_warpOutProc() {
g_meter2_info.warpOutProc();
}
inline dMeter2_c* dMeter2Info_getMeterClass() {
return g_meter2_info.getMeterClass();
}
inline s16 dMeter2Info_getMsgKeyWaitTimer() {
return g_meter2_info.getMsgKeyWaitTimer();
}
char* dMeter2Info_getNumberTextureName(int pIndex);
void dMeter2Info_recieveLetter();
u8 dMeter2Info_getNewLetterNum();
+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 */
+1
View File
@@ -39,6 +39,7 @@ public:
J2DPane* getPanePtr() { return (J2DPane*)mWindow; }
u8 getAlpha() { return getPanePtr()->getAlpha(); }
s16 getAlphaTimer() { return mAlphaTimer; }
void alphaAnimeStart(s16 start) { mAlphaTimer = start; }
/* 0x04 */ J2DWindow* mWindow;
/* 0x08 */ JKRExpHeap* heap;
+26 -2
View File
@@ -53,6 +53,28 @@ public:
/* 0x10 */ void* mData;
}; // Size: 0x14
class dPa_followEcallBack : public dPa_levelEcallBack {
public:
/* 80049580 */ dPa_followEcallBack(u8, u8);
/* 80050200 */ virtual ~dPa_followEcallBack();
/* 800495BC */ virtual void execute(JPABaseEmitter*);
/* 800496B0 */ virtual void draw(JPABaseEmitter*);
/* 800496B4 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
/* 80050284 */ virtual void cleanup();
/* 8004974C */ virtual void end();
void remove() { end(); }
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ cXyz* field_0x8;
/* 0x0C */ csXyz* field_0xc;
/* 0x10 */ u8 field_0x10;
/* 0x11 */ u8 field_0x11;
/* 0x12 */ u8 field_0x12;
/* 0x13 */ u8 field_0x13;
};
extern u8 data_80450EC4;
class dPa_control_c {
@@ -66,6 +88,8 @@ public:
/* 8004B5AC */ void cleanup();
/* 8004FBFC */ emitter_c();
JPABaseEmitter* getEmitter() { return mEmitter; }
private:
/* 0x00 */ u32 mId;
/* 0x04 */ u16 mNameId;
@@ -83,7 +107,7 @@ public:
/* 8004B874 */ void get(u32);
/* 8004B8B4 */ void forceOnEventMove(u32);
/* 8004B8E8 */ void allForceOnEventMove();
/* 8004B918 */ emitter_c* getEmitter(u32);
/* 8004B918 */ JPABaseEmitter* getEmitter(u32);
/* 8004B94C */ void entry(u16, JPABaseEmitter*, dPa_levelEcallBack*);
/* 8004BA40 */ void addTable(dPa_control_c::level_c::emitter_c*);
/* 8004BA74 */ void cutTable(dPa_control_c::level_c::emitter_c*);
@@ -136,7 +160,7 @@ public:
dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8);
void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); }
level_c::emitter_c* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
JPABaseEmitter* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
u32 setNormal(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
const csXyz* param_4, const cXyz* param_5, u8 param_6,
+1 -3
View File
@@ -3,6 +3,7 @@
#include "d/com/d_com_inf_game.h"
#include "dolphin/types.h"
#include "SSystem/SComponent/c_lib.h"
class dLog_HIO_c {
public:
@@ -119,7 +120,4 @@ static int phase_0(dScnLogo_c* logo);
static int phase_1(dScnLogo_c* logo);
static int phase_2(dScnLogo_c* logo);
template <typename T>
T cLib_calcTimer(T* val);
#endif /* D_S_D_S_LOGO_H */
+5 -2
View File
@@ -384,7 +384,7 @@ public:
int isMagicFlag(u8 i_magic) const;
u16 getMaxLife() { return mMaxLife; }
u16 getLife() { return mLife; }
u16 getLife() const { return mLife; }
u16 getRupee() { return mRupee; }
u16 getOil() { return mOil; }
u16 getMaxOil() const { return mMaxOil; }
@@ -515,6 +515,7 @@ public:
s8 getRoomNo() { return mRoomNo; }
char getWarpAcceptStage() { return mWarpAcceptStage; }
void resetWarpAcceptStage() { mWarpAcceptStage = -1; }
void setWarpAcceptStage(s8 accept) { mWarpAcceptStage = accept; }
private:
/* 0x00 */ cXyz mPos;
@@ -522,7 +523,7 @@ private:
/* 0x0E */ char mName[8];
/* 0x16 */ u8 mSpawnId;
/* 0x17 */ s8 mRoomNo;
/* 0x18 */ char mWarpAcceptStage;
/* 0x18 */ s8 mWarpAcceptStage;
/* 0x19 */ u8 unk25[3];
}; // Size: 0x1C
@@ -813,6 +814,7 @@ public:
onDungeonItem(STAGE_BOSS_ENEMY);
onDungeonItem(OOCCOO_NOTE);
}
s32 isStageBossEnemy() const { return isDungeonItem(STAGE_BOSS_ENEMY); }
s32 isDungeonItemWarp() const { return isDungeonItem(OOCCOO_NOTE); }
void onStageLife() { onDungeonItem(STAGE_LIFE); }
@@ -1085,6 +1087,7 @@ public:
u8 getDataNum() const { return mDataNum; }
void removeZone(int zoneNo) { mZone[zoneNo].reset(); }
void setNoFile(u8 file) { mNoFile = file; }
u8 getNewFile() const { return mNewFile; }
static const int MEMORY_SWITCH = 0x80;
static const int DAN_SWITCH = 0x40;
+1 -2
View File
@@ -201,8 +201,7 @@ public:
/* 8025C6FC */ virtual ~dSvBit_HIO_c();
private:
/* 0x004 */ u8 field_0x4;
/* 0x004 */ s8 field_0x4;
/* 0x008 */ dSvBit_childSwitchHIO_c mSwitch;
/* 0x210 */ dSvBit_childItemHIO_c mItem;
/* 0x3D8 */ dSvBit_childTreasureHIO_c mTreasure;
+6
View File
@@ -1021,6 +1021,12 @@ inline void GXPosition2s8(s8 x, s8 y) {
GFX_FIFO(s8) = y;
}
inline void GXPosition3s16(s16 x, s16 y, s16 z) {
GFX_FIFO(s16) = x;
GFX_FIFO(s16) = y;
GFX_FIFO(s16) = z;
}
inline void GXTexCoord2s8(s8 x, s8 y) {
GFX_FIFO(s8) = x;
GFX_FIFO(s8) = y;
+2
View File
@@ -230,6 +230,8 @@ void OSInitCond(OSCond* cond);
void OSWaitCond(OSCond* cond, OSMutex* mutex);
void OSSignalCond(OSCond* cond);
void DCStoreRangeNoSync(void*, u32);
inline s16 __OSf32tos16(register f32 inF) {
register s16 out;
u32 tmp;
+24 -14
View File
@@ -12,14 +12,12 @@ struct JKRSolidHeap;
class dEvt_info_c {
public:
dEvt_info_c();
virtual ~dEvt_info_c();
virtual ~dEvt_info_c() {}
void setEventName(char*);
char* getEventName();
void beforeProc();
void onCondition(u16);
void i_onCondition(u16 cond) { mCondition |= cond; }
void offCondition(u16);
void i_offCondition(u16 cond) { mCondition &= ~cond; }
bool checkCommandCatch();
BOOL checkCommandDoor();
BOOL checkCommandDemoAccrpt() { return mCommand == 2; }
@@ -33,10 +31,20 @@ public:
s16 getEventId() { return mEventId; }
s16 getIdx() { return mIndex; }
char* getArchiveName() { return mArchiveName; }
bool chkCondition(u16 condition) { return mCondition == condition; }
BOOL chkCondition(u16 condition) { return mCondition & condition; }
void i_onCondition(u16 cond) { mCondition |= cond; }
void i_offCondition(u16 cond) { mCondition &= ~cond; }
bool checkCommandTalk() { return mCommand == 1; }
bool checkCommandItem() { return mCommand == 4; }
BOOL i_checkCommandDoor() { return mCommand == 3; }
bool i_checkCommandDemoAccrpt() { return mCommand == 2; }
void suspendProc(void* actor) {
if (field_0x10 != NULL) {
field_0x14(actor);
}
}
/* 0x04 */ u16 mCommand;
/* 0x06 */ u16 mCondition;
@@ -44,24 +52,26 @@ public:
/* 0x0A */ u8 mMapToolId;
/* 0x0B */ s8 mIndex;
/* 0x0C */ char* mArchiveName;
/* 0x10 */ void* field_0x10;
/* 0x14 */ void* field_0x14;
/* 0x10 */ u8 field_0x10;
/* 0x14 */ void (*field_0x14)(void*);
}; // Size = 0x18
struct actor_place {
/* 807E2468 */ void operator=(actor_place const&);
/* 807E2468 */ //void operator=(actor_place const&);
cXyz mPosition;
csXyz mAngle;
s8 mRoomNo;
/* 0x00 */ cXyz mPosition;
/* 0x0C */ csXyz mAngle;
/* 0x12 */ s8 mRoomNo;
/* 0x13 */ u8 field_0x13;
};
struct actor_attention_types {
void setFlag(u32 flags) { mFlags |= flags; }
/* 0x00 */ u32 mDistance1;
/* 0x04 */ u32 mDistance2;
/* 0x08 */ u32 mDistance3;
/* 0x00 */ u8 field_0x0[4];
/* 0x04 */ u8 field_0x4[4];
/* 0x08 */ u8 field_0x8[2];
/* 0x0A */ u16 field_0xa;
/* 0x0C */ cXyz mPosition;
/* 0x18 */ u32 mFlags;
}; // Size = 0x1C
@@ -77,7 +87,7 @@ public:
/* 0x0F0 */ JKRSolidHeap* mHeap;
/* 0x0F4 */ dEvt_info_c mEvtInfo;
/* 0x10C */ dKy_tevstr_c mTevStr;
/* 0x494 */ s16 mSetID;
/* 0x494 */ u16 mSetID;
/* 0x496 */ u8 mGroup;
/* 0x497 */ u8 mCullType;
/* 0x498 */ u8 mDemoActorId;
+216 -71
View File
@@ -36,21 +36,49 @@ struct fopAcM_prm_class {
/* 0x21 */ s8 mRoomNo;
};
struct fopAcM_search4ev_prm {
fopAcM_search4ev_prm() { clear(); }
void clear() {
mName[0] = 0;
mEventID = -1;
mProcName = 11;
mSubType = 0;
}
/* 0x00 */ char mName[30];
/* 0x1E */ s16 mEventID;
/* 0x20 */ s16 mProcName;
/* 0x22 */ s8 mSubType;
};
struct fopAcM_search_prm {
/* 0x00 */ u32 mParam0;
/* 0x04 */ u32 mParam1;
/* 0x08 */ s16 mProcName;
/* 0x0A */ s8 mSubType;
};
class dBgS_LinChk;
class fopAcM_lc_c {
public:
static dBgS_LinChk* getLineCheck() { return (dBgS_LinChk*)&mLineCheck; }
static bool lineCheck(const cXyz*, const cXyz*, const fopAc_ac_c*);
static u8 mLineCheck[112];
};
class dBgS_RoofChk;
class fopAcM_rc_c {
public:
static dBgS_RoofChk* getRoofCheck() { return (dBgS_RoofChk*)&mRoofCheck; }
static bool roofCheck(const cXyz*);
static u8 mRoofCheck[80];
static f32 mRoofY;
};
class dBgS_GndChk;
class fopAcM_gc_c {
public:
static dBgS_GndChk* getGroundCheck() { return (dBgS_GndChk*)&mGndCheck; }
static bool gndCheck(const cXyz*);
static u8 mGndCheck[84];
static f32 mGroundY;
@@ -58,8 +86,10 @@ public:
static f32 getGroundY() { return mGroundY; }
};
class dBgS_WtrChk;
class fopAcM_wt_c {
public:
static dBgS_WtrChk* getWaterCheck() { return (dBgS_WtrChk*)&mWaterCheck; }
static bool waterCheck(const cXyz*);
static u8 mWaterCheck[84 + 4 /* padding */];
static f32 mWaterY[1 + 1 /* padding */];
@@ -110,7 +140,7 @@ inline void fopAcM_SetParam(void* p_actor, u32 param) {
fpcM_SetParam(p_actor, param);
}
inline s16 fpcAcM_GetProfName(void* pActor) {
inline s16 fopAcM_GetProfName(const void* pActor) {
return fpcM_GetProfName(pActor);
}
@@ -162,6 +192,10 @@ inline void fopAcM_OnCondition(fopAc_ac_c* p_actor, u32 flag) {
p_actor->mCondition |= flag;
}
inline void fopAcM_OffCondition(fopAc_ac_c* p_actor, u32 flag) {
p_actor->mCondition &= ~flag;
}
inline BOOL fopAcM_IsActor(void* actor) {
return fopAc_IsActor(actor);
}
@@ -178,51 +212,127 @@ inline void fopAcM_cancelHookCarryNow(fopAc_ac_c* actor) {
fopAcM_OffStatus(actor, 0x100000);
}
inline s8 fopAcM_GetHomeRoomNo(const fopAc_ac_c* pActor) {
return pActor->mOrig.mRoomNo;
}
inline void fopAcM_SetGravity(fopAc_ac_c* actor, f32 gravity) {
actor->mGravity = gravity;
}
inline void fopAcM_SetMtx(fopAc_ac_c* actor, MtxP m) {
actor->mCullMtx = m;
}
inline void fopAcM_SetSpeed(fopAc_ac_c* actor, f32 x, f32 y, f32 z) {
actor->mSpeed.set(x, y, z);
}
inline void fopAcM_SetSpeedF(fopAc_ac_c* actor, f32 f) {
actor->mSpeedF = f;
}
inline void fopAcM_SetStatus(fopAc_ac_c* actor, u32 status) {
actor->mStatus = status;
}
inline fopAcM_prm_class* fopAcM_GetAppend(void* actor) {
return (fopAcM_prm_class*)fpcM_GetAppend(actor);
}
inline BOOL fopAcM_IsExecuting(unsigned int id) {
return fpcM_IsExecuting(id);
}
void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData);
void fopAcM_setStageLayer(void*);
int fopAcM_setRoomLayer(void*, int);
s32 fopAcM_SearchByID(unsigned int id, fopAc_ac_c** actor);
s32 fopAcM_SearchByName(s16 procName, fopAc_ac_c** actor);
fopAcM_prm_class* fopAcM_CreateAppend(void);
fopAcM_prm_class* createAppend(u16, u32, const cXyz*, int, const csXyz*, const cXyz*, s8,
unsigned int);
void fopAcM_Log(const fopAc_ac_c*, const char*);
void fopAcM_delete(fopAc_ac_c*);
s32 fopAcM_delete(unsigned int);
s32 fopAcM_create(s16, u16, u32, const cXyz*, int, const csXyz*, const cXyz*, s8, createFunc);
s32 fopAcM_create(s16, u32, const cXyz*, int, const csXyz*, const cXyz*, s8);
void* fopAcM_fastCreate(s16, u32, const cXyz*, int, const csXyz*, const cXyz*, s8, createFunc,
void*);
void* fopAcM_fastCreate(const char*, u32, const cXyz*, int, const csXyz*, const cXyz*, createFunc,
void*);
s32 fopAcM_createChild(s16, unsigned int, u32, const cXyz*, int, const csXyz*, const cXyz*, s8,
createFunc);
s32 fopAcM_createChildFromOffset(s16, unsigned int, u32, const cXyz*, int, const csXyz*,
const cXyz*, s8, createFunc);
void fopAcM_DeleteHeap(fopAc_ac_c*);
s32 fopAcM_callCallback(fopAc_ac_c*, heapCallbackFunc, JKRHeap*);
bool fopAcM_entrySolidHeap_(fopAc_ac_c*, heapCallbackFunc, u32);
bool fopAcM_entrySolidHeap(fopAc_ac_c*, heapCallbackFunc, u32);
void fopAcM_SetMin(fopAc_ac_c*, f32, f32, f32);
void fopAcM_SetMax(fopAc_ac_c*, f32, f32, f32);
void fopAcM_setCullSizeBox(fopAc_ac_c*, f32, f32, f32, f32, f32, f32);
void fopAcM_setCullSizeSphere(fopAc_ac_c*, f32, f32, f32, f32);
void fopAcM_setCullSizeBox2(fopAc_ac_c*, J3DModelData*);
bool fopAcM_addAngleY(fopAc_ac_c*, s16, s16);
void fopAcM_calcSpeed(fopAc_ac_c*);
void fopAcM_posMove(fopAc_ac_c*, const cXyz*);
void fopAcM_posMoveF(fopAc_ac_c*, const cXyz*);
s16 fopAcM_searchActorAngleY(const fopAc_ac_c*, const fopAc_ac_c*);
s16 fopAcM_searchActorAngleX(const fopAc_ac_c*, const fopAc_ac_c*);
void fopAcM_setStageLayer(void* p_proc);
void fopAcM_setRoomLayer(void* p_proc, int roomNo);
s32 fopAcM_SearchByID(unsigned int id, fopAc_ac_c** p_actor);
s32 fopAcM_SearchByName(s16 procName, fopAc_ac_c** p_actor);
fopAcM_prm_class* fopAcM_CreateAppend();
fopAcM_prm_class* createAppend(u16 enemyNo, u32 parameters, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType,
unsigned int parentPId);
void fopAcM_Log(fopAc_ac_c const* p_actor, char const* str);
void fopAcM_delete(fopAc_ac_c* p_actor);
s32 fopAcM_delete(unsigned int actorID);
s32 fopAcM_create(s16 procName, u16 enemyNo, u32 parameter, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType, createFunc p_createFunc);
s32 fopAcM_create(s16 procName, u32 parameter, const cXyz* p_pos, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, s8 subType);
void* fopAcM_fastCreate(s16 procName, u32 parameter, const cXyz* p_pos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, s8 subType, createFunc p_createFunc,
void* p_createFuncData);
void* fopAcM_fastCreate(const char* p_actorName, u32 parameter, const cXyz* pActorPos, int roomNo,
const csXyz* p_angle, const cXyz* p_scale, createFunc p_createFunc,
void* p_createFuncData);
s32 fopAcM_createChild(s16 procName, unsigned int parentPId, u32 parameters, const cXyz* p_pos,
int roomNo, const csXyz* p_angle, const cXyz* p_scale, s8 subType,
createFunc p_createFunc);
s32 fopAcM_createChildFromOffset(s16 procName, unsigned int parentProcID, u32 actorParams,
const cXyz* p_pos, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, s8 subType, createFunc p_createFunc);
void fopAcM_DeleteHeap(fopAc_ac_c* p_actor);
s32 fopAcM_callCallback(fopAc_ac_c* p_actor, heapCallbackFunc p_callbackFunc, JKRHeap* p_heap);
bool fopAcM_entrySolidHeap_(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size);
bool fopAcM_entrySolidHeap(fopAc_ac_c* p_actor, heapCallbackFunc p_heapCallback, u32 size);
void fopAcM_SetMin(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ);
void fopAcM_SetMax(fopAc_ac_c* p_actor, f32 maxX, f32 maxY, f32 maxZ);
void fopAcM_setCullSizeBox(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 maxX, f32 maxY,
f32 maxZ);
void fopAcM_setCullSizeSphere(fopAc_ac_c* p_actor, f32 minX, f32 minY, f32 minZ, f32 radius);
void fopAcM_setCullSizeBox2(fopAc_ac_c* p_actor, J3DModelData* p_modelData);
bool fopAcM_addAngleY(fopAc_ac_c* p_actor, s16 target, s16 step);
void fopAcM_calcSpeed(fopAc_ac_c* p_actor);
void fopAcM_posMove(fopAc_ac_c* p_actor, const cXyz* p_movePos);
void fopAcM_posMoveF(fopAc_ac_c* p_actor, const cXyz* p_movePos);
s16 fopAcM_searchActorAngleY(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
s16 fopAcM_searchActorAngleX(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
s32 fopAcM_seenActorAngleY(const fopAc_ac_c*, const fopAc_ac_c*);
f32 fopAcM_searchActorDistance(const fopAc_ac_c*, const fopAc_ac_c*);
f32 fopAcM_searchActorDistance2(const fopAc_ac_c*, const fopAc_ac_c*);
f32 fopAcM_searchActorDistanceXZ(const fopAc_ac_c*, const fopAc_ac_c*);
f32 fopAcM_searchActorDistanceXZ2(const fopAc_ac_c*, const fopAc_ac_c*);
f32 fopAcM_searchActorDistance(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistance2(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistanceXZ(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
f32 fopAcM_searchActorDistanceXZ2(const fopAc_ac_c* p_actorA, const fopAc_ac_c* p_actorB);
s32 fopAcM_rollPlayerCrash(const fopAc_ac_c*, f32, u32, f32, f32, int, f32);
s32 fopAcM_checkCullingBox(f32[3][4], f32, f32, f32, f32, f32, f32);
s32 fopAcM_cullingCheck(const fopAc_ac_c*);
s32 event_second_actor(u16);
void* event_second_actor(u16);
s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderTalkItemBtnEvent(u16, fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_orderSpeakEvent(fopAc_ac_c*, u16, u16);
@@ -237,50 +347,86 @@ s32 fopAcM_orderMapToolAutoNextEvent(fopAc_ac_c*, u8, s16, u16, u16, u16);
s32 fopAcM_orderPotentialEvent(fopAc_ac_c*, u16, u16, u16);
s32 fopAcM_orderItemEvent(fopAc_ac_c*, u16, u16);
s32 fopAcM_orderTreasureEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16);
s32 fopAcM_getTalkEventPartner(const fopAc_ac_c*);
s32 fopAcM_getItemEventPartner(const fopAc_ac_c*);
s32 fopAcM_getEventPartner(const fopAc_ac_c*);
s32 fopAcM_createItemForPresentDemo(const cXyz*, int, u8, int, int, const csXyz*, const cXyz*);
s32 fopAcM_createItemForTrBoxDemo(const cXyz*, int, int, int, const csXyz*, const cXyz*);
// s32 fopAcM_getItemNoFromTableNo(u8);
s32 fopAcM_createItemFromEnemyID(u8, const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*);
s32 fopAcM_createItemFromTable(const cXyz*, int, int, int, const csXyz*, int, const cXyz*, f32*,
f32*, bool);
s32 fopAcM_createDemoItem(const cXyz*, int, int, const csXyz*, int, const cXyz*, u8);
s32 fopAcM_createItemForBoss(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32, int);
s32 fopAcM_createItemForMidBoss(const cXyz*, int, int, const csXyz*, const cXyz*, int, int);
void* fopAcM_createItemForDirectGet(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32);
void* fopAcM_createItemForSimpleDemo(const cXyz*, int, int, const csXyz*, const cXyz*, f32, f32);
s32 fopAcM_createItem(const cXyz*, int, int, int, const csXyz*, const cXyz*, int);
void* fopAcM_fastCreateItem2(const cXyz*, int, int, int, int, const csXyz*, const cXyz*);
void* fopAcM_fastCreateItem(const cXyz*, int, int, const csXyz*, const cXyz*, f32*, f32*, int, int,
createFunc);
void* fopAcM_getTalkEventPartner(const fopAc_ac_c*);
void* fopAcM_getItemEventPartner(const fopAc_ac_c*);
void* fopAcM_getEventPartner(const fopAc_ac_c*);
s32 fopAcM_createItemForPresentDemo(cXyz const* p_pos, int i_itemNo, u8 param_2, int i_itemBitNo,
int i_roomNo, csXyz const* p_angle, cXyz const* p_scale);
s32 fopAcM_createItemForTrBoxDemo(cXyz const* p_pos, int i_itemNo, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, cXyz const* p_scale);
u8 fopAcM_getItemNoFromTableNo(u8 i_tableNo);
s32 fopAcM_createItemFromEnemyID(u8 i_enemyID, cXyz const* p_pos, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, cXyz const* p_scale, f32* speedF,
f32* speedY);
s32 fopAcM_createItemFromTable(cXyz const* p_pos, int i_tableNo, int i_itemBitNo, int i_roomNo,
csXyz const* p_angle, int param_5, cXyz const* p_scale,
f32* speedF, f32* speedY, bool createDirect);
s32 fopAcM_createDemoItem(const cXyz* p_pos, int itemNo, int itemBitNo, const csXyz* p_angle,
int roomNo, const cXyz* scale, u8 param_7);
s32 fopAcM_createItemForBoss(const cXyz* p_pos, int param_2, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32 speedF, f32 speedY, int param_8);
s32 fopAcM_createItemForMidBoss(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, int param_6, int param_7);
void* fopAcM_createItemForDirectGet(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32 speedF, f32 speedY);
void* fopAcM_createItemForSimpleDemo(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32 speedF, f32 speedY);
s32 fopAcM_createItem(const cXyz* p_pos, int itemNo, int param_3, int roomNo, const csXyz* p_angle,
const cXyz* p_scale, int param_7);
void* fopAcM_fastCreateItem2(const cXyz* p_pos, int itemNo, int param_3, int roomNo, int param_5,
const csXyz* p_angle, const cXyz* p_scale);
void* fopAcM_fastCreateItem(const cXyz* p_pos, int i_itemNo, int i_roomNo, const csXyz* p_angle,
const cXyz* p_scale, f32* p_speedF, f32* p_speedY, int param_8,
int param_9, createFunc p_createFunc);
s32 fopAcM_createBokkuri(u16, const cXyz*, int, int, int, const cXyz*, int, int);
s32 fopAcM_createWarpHole(const cXyz*, const csXyz*, int, u8, u8, u8);
s32 fopAcM_myRoomSearchEnemy(s8);
void fopAcM_myRoomSearchEnemy(s8 roomNo);
s32 fopAcM_createDisappear(const fopAc_ac_c*, const cXyz*, u8, u8, u8);
s32 fopAcM_setCarryNow(fopAc_ac_c*, int);
s32 fopAcM_cancelCarryNow(fopAc_ac_c*);
f32 fopAcM_otoCheck(const fopAc_ac_c*, f32);
void fopAcM_setCarryNow(fopAc_ac_c*, int);
void fopAcM_cancelCarryNow(fopAc_ac_c*);
s32 fopAcM_otoCheck(const fopAc_ac_c*, f32);
s32 fopAcM_otherBgCheck(const fopAc_ac_c*, const fopAc_ac_c*);
s32 fopAcM_wayBgCheck(const fopAc_ac_c*, f32, f32);
s32 fopAcM_plAngleCheck(const fopAc_ac_c*, s16);
s32 fopAcM_effSmokeSet1(u32*, u32*, const cXyz*, const csXyz*, f32, const dKy_tevstr_c*, int);
s32 fopAcM_effHamonSet(u32*, const cXyz*, f32, f32);
void fopAcM_effHamonSet(u32*, const cXyz*, f32, f32);
s32 fopAcM_riverStream(cXyz*, s16*, f32*, f32);
s32 fopAcM_carryOffRevise(fopAc_ac_c*);
// void vectle_calc(const DOUBLE_POS*, cXyz*);
// void get_vectle_calc(const cXyz*, const cXyz*, cXyz*);
void fopAcM_setEffectMtx(const fopAc_ac_c*, const J3DModelData*);
static const char* fopAcM_getProcNameString(const fopAc_ac_c*);
// s32 fopAcM_findObjectCB(const fopAc_ac_c*, void*);
s32 fopAcM_searchFromName(const char*, u32, u32);
s32 fopAcM_findObject4EventCB(fopAc_ac_c*, void*);
fopAc_ac_c* fopAcM_searchFromName4Event(const char*, s16);
static const char* fopAcM_getProcNameString(const fopAc_ac_c* p_actor);
static const fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c const* p_actor, void* p_data);
fopAc_ac_c* fopAcM_searchFromName(char const* name, u32 param0, u32 param1);
fopAc_ac_c* fopAcM_findObject4EventCB(fopAc_ac_c* p_actor, void* p_data);
fopAc_ac_c* fopAcM_searchFromName4Event(char const* name, s16 eventID);
s32 fopAcM_getWaterY(const cXyz*, f32*);
void fpoAcM_relativePos(const fopAc_ac_c*, const cXyz*, cXyz*);
void fpoAcM_relativePos(fopAc_ac_c const* actor, cXyz const* p_inPos, cXyz* p_outPos);
s32 fopAcM_getWaterStream(const cXyz*, const cBgS_PolyInfo&, cXyz*, int*, int);
s16 fopAcM_getPolygonAngle(const cBgS_PolyInfo&, s16);
s16 fopAcM_getPolygonAngle(cM3dGPla const* param_0, s16 param_1);
extern "C" {
void fopAcM_initManager__Fv(void);
@@ -353,7 +499,6 @@ void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(void);
void fopAcM_setRoomLayer__FPvi(void);
void fopAcM_setStageLayer__FPv(void);
void waterCheck__11fopAcM_wt_cFPC4cXyz(void);
void fopScnM_SearchByID(void);
void fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz(void);
void fopAcM_SearchByName__FsPP10fopAc_ac_c(void);
void fopAcM_createChildFromOffset__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(void);
+4
View File
@@ -4,6 +4,10 @@
#include "SSystem/SComponent/c_tag.h"
#include "dolphin/types.h"
u32 fopAcTg_ActorQTo(create_tag_class* pTag);
u32 fopAcTg_Init(create_tag_class* pTag, void* data);
u32 fopAcTg_ToActorQ(create_tag_class* c);
// f_op_actor_tag::g_fopAcTg_Queue
extern node_list_class g_fopAcTg_Queue;
+2
View File
@@ -7,5 +7,7 @@ extern node_lists_tree_class g_fopDwTg_Queue;
void fopDwTg_DrawQTo(create_tag_class* pTag);
void fopDwTg_CreateQueue();
bool fopDwTg_Init(create_tag_class* pCreateTagClass, void* pActor);
void fopDwTg_ToDrawQ(create_tag_class* pCreateTagClass, int priority);
#endif
+3 -4
View File
@@ -22,10 +22,9 @@ typedef struct leafdraw_class {
typedef struct leaf_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x1C */ leafdraw_method_class* mLfDrwMth;
/* 0x20 */ s16 mPriority;
/* 0x22 */ u8 unk22[2];
/* 0x24 */ leafdraw_method_class* mMethods;
/* 0x28 */ int field_0x28;
/* 0x2C */ u8 field_0x2c;
/* 0x2D */ u8 field_0x2d;
} leaf_process_profile_definition;
s32 fpcLf_GetPriority(const leafdraw_class* pLeaf);
+22 -1
View File
@@ -8,6 +8,7 @@
#include "f_pc/f_pc_create_iter.h"
#include "f_pc/f_pc_node_req.h"
#include "f_pc/f_pc_stdcreate_req.h"
#include "f_pc/f_pc_executor.h"
typedef int (*FastCreateReqFunc)(void*);
typedef void (*fpcM_ManagementFunc)(void);
@@ -27,7 +28,7 @@ inline void fpcM_SetParam(void* p_actor, u32 param) {
((base_process_class*)p_actor)->mParameters = param;
}
inline s16 fpcM_GetProfName(void* pActor) {
inline s16 fpcM_GetProfName(const void* pActor) {
return ((base_process_class*)pActor)->mBsTypeId;
}
@@ -40,6 +41,26 @@ inline s32 fpcM_ChangeLayerID(void* proc, int layerID) {
return fpcPi_Change(&((base_process_class*)proc)->mPi, layerID, 0xFFFD, 0xFFFD);
}
inline s32 fpcM_IsJustType(int type1, int type2) {
return fpcBs_Is_JustOfType(type1, type2);
}
inline bool fpcM_IsFirstCreating(void* proc) {
return ((base_process_class*)proc)->mInitState == 0;
}
inline leaf_process_profile_definition* fpcM_GetProfile(void* proc) {
return (leaf_process_profile_definition*)((base_process_class*)proc)->mpProf;
}
inline void* fpcM_GetAppend(const void* proc) {
return ((base_process_class*)proc)->mpUserData;
}
inline BOOL fpcM_IsExecuting(unsigned int id) {
return fpcEx_IsExist(id);
}
void fpcM_Draw(void* pProc);
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc);
s32 fpcM_Execute(void* pProc);
-4
View File
@@ -21,10 +21,6 @@ typedef struct process_node_class {
typedef struct node_process_profile_definition {
process_profile_definition mBase;
nodedraw_method_class* mNDrwMthCls;
s16 unk20;
u8 unk22[2];
s32 unk24;
} node_process_profile_definition;
s32 fpcNd_DrawMethod(nodedraw_method_class* pNodeMethod, void* pData);
+7 -2
View File
@@ -6,6 +6,7 @@
#include "f_pc/f_pc_method.h"
struct nodedraw_method_class;
struct leafdraw_method_class;
typedef struct process_profile_definition {
/* 0x00 */ s32 mLayerID;
@@ -17,12 +18,16 @@ typedef struct process_profile_definition {
/* 0x10 */ s32 mSize;
/* 0x14 */ s32 mSizeOther;
/* 0x18 */ s32 mParameters;
/* 0x1C */ leafdraw_method_class* mLfDrwMth;
/* 0x20 */ s16 mPriority;
/* 0x22 */ u8 unk22[2];
/* 0x24 */ leafdraw_method_class* mMethods;
} process_profile_definition;
#define LAYER_DEFAULT (-2)
struct leaf_process_profile_definition;
leaf_process_profile_definition* fpcPf_Get(s16 profileID);
extern leaf_process_profile_definition** g_fpcPf_ProfileList_p;
process_profile_definition* fpcPf_Get(s16 profileID);
extern process_profile_definition** g_fpcPf_ProfileList_p;
#endif
+1
View File
@@ -7,5 +7,6 @@
void mDoDvdErr_ThdCleanup();
static void mDoDvdErr_Watch(void*);
static void AlarmHandler(OSAlarm*, OSContext*);
void mDoDvdErr_ThdInit();
#endif /* M_DO_M_DO_DVDERROR_H */
+4
View File
@@ -65,4 +65,8 @@ inline bool mDoMemCd_isCardCommNone() {
return g_mDoMemCd_control.isCardCommNone();
}
inline void mDoMemCd_ThdInit() {
g_mDoMemCd_control.ThdInit();
}
#endif /* M_DO_M_DO_MEMCARD_H */
+21 -1
View File
@@ -17,6 +17,15 @@ public:
void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); }
f32 getFrame() { return mFrameCtrl.getFrame(); }
f32 getEndFrame() { return mFrameCtrl.getEnd(); }
void setFrame(f32 frame) { mFrameCtrl.setFrame(frame); }
bool isStop() {
bool stopped = true;
if (!mFrameCtrl.checkState(1) && mFrameCtrl.getRate() != 0.0f) {
stopped = false;
}
return stopped;
}
private:
/* 0x0 */ J3DFrameCtrl mFrameCtrl;
@@ -154,6 +163,7 @@ public:
void setRatio(f32 ratio) { mRatio = ratio; }
J3DAnmTransform* getAnmTransform() { return mAnmTransform; }
void setAnmTransform(J3DAnmTransform* anm) { mAnmTransform = anm; }
private:
/* 0x0 */ f32 mRatio;
@@ -383,6 +393,14 @@ JKRExpHeap* mDoExt_getCommandHeap();
JKRExpHeap* mDoExt_getZeldaHeap();
JKRExpHeap* mDoExt_getJ2dHeap();
JKRExpHeap* mDoExt_getHostIOHeap();
JKRExpHeap* mDoExt_getDbPrintHeap();
JKRExpHeap* mDoExt_createDbPrintHeap(u32 param_0, JKRHeap* param_1);
JKRAssertHeap* mDoExt_createAssertHeap(JKRHeap* param_0);
JKRExpHeap* mDoExt_createCommandHeap(u32 param_0, JKRHeap* param_1);
JKRExpHeap* mDoExt_createArchiveHeap(u32 param_0, JKRHeap* param_1);
JKRExpHeap* mDoExt_createJ2dHeap(u32 param_0, JKRHeap* param_1);
JKRExpHeap* mDoExt_createZeldaHeap(u32 param_0, JKRHeap* param_1);
JKRExpHeap* mDoExt_createGameHeap(u32 param_0, JKRHeap* param_1);
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(JKRHeap**, u32, JKRHeap*, u32);
JKRSolidHeap* mDoExt_createSolidHeapToCurrent(u32, JKRHeap*, u32);
JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(u32, u32);
@@ -397,10 +415,12 @@ void mDoExt_setAraCacheSize(u32 param_0);
struct JUTFont;
JUTFont* mDoExt_getMesgFont();
void mDoExt_getSubFont();
void mDoExt_getRubyFont();
JUTFont* mDoExt_getRubyFont();
void mDoExt_removeSubFont();
extern JKRExpHeap* zeldaHeap;
extern JKRExpHeap* gameHeap;
extern JKRExpHeap* archiveHeap;
extern JKRExpHeap* commandHeap;
#endif /* M_DO_M_DO_EXT_H */
+6
View File
@@ -54,6 +54,12 @@ public:
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
static f32 getWidthF() { return 608.0f; }
static f32 getHeightF() { return 448.0f; }
static int getMinY() { return 0; }
static int getMinX() { return 0; }
static int getMaxY() { return 448; }
static int getMaxX() { return 608; }
static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; }
static void* getFrameBufferTex() { return mFrameBufferTex; }
static void setFadeRate(f32 rate) { mFadeRate = rate; }
static f32 getFadeRate() { return mFadeRate; }
+1 -1
View File
@@ -9,7 +9,7 @@
#include "m_Do/m_Do_main.h"
void myHeapCheckRecursive(JKRHeap*);
u8 mDoMch_IsProgressiveMode();
BOOL mDoMch_IsProgressiveMode();
bool exceptionReadPad(u32*, u32*);
void exceptionRestart();
void myExceptionCallback(u16, OSContext*, u32, u32);
+3
View File
@@ -3,11 +3,14 @@
#include "dolphin/types.h"
struct JUTConsole;
void print_f(char const*, ...);
void print(char const*);
void dispHeapInfo();
void dispGameInfo();
void dispDateInfo();
void dispConsoleToTerminal();
void exception_addition(JUTConsole* pConsole);
#endif /* M_DO_M_DO_MACHINE_EXCEPTION_H */
+8
View File
@@ -14,11 +14,16 @@ void mDoMtx_ZXYrotM(Mtx, s16, s16, s16);
void mDoMtx_ZrotS(Mtx, s16);
void mDoMtx_YrotS(Mtx, s16);
void mDoMtx_XrotS(Mtx, s16);
void mDoMtx_XrotM(Mtx mtx, s16 x);
void mDoMtx_YrotM(Mtx, s16);
void mDoMtx_MtxToRot(CMtxP, csXyz*);
void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3);
void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]);
inline void mDoMtx_multVecSR(Mtx m, const Vec* src, Vec* dst) {
PSMTXMultVecSR(m, src, dst);
}
class mDoMtx_stack_c {
public:
/* 8000CCC8 */ bool push();
@@ -46,6 +51,9 @@ public:
static void ZXYrotM(s16 x, s16 y, s16 z) { mDoMtx_ZXYrotM(now, x, y, z); }
static void YrotM(s16 y) { mDoMtx_YrotM(now, y); }
static void YrotS(s16 y) { mDoMtx_YrotS(now, y); }
static void XrotM(s16 x) { mDoMtx_XrotM(now, x); }
static void inverse() { PSMTXInverse(now, now); }
static void concat(const Mtx m) { PSMTXConcat(now, m, now); }
static Mtx now;
static Mtx buffer[16];
+67 -1
View File
@@ -1,6 +1,72 @@
#ifndef MSG_SCRN_D_MSG_SCRN_BASE_H
#define MSG_SCRN_D_MSG_SCRN_BASE_H
#include "dolphin/types.h"
#include "d/msg/d_msg_out_font.h"
#include "d/com/d_com_inf_game.h"
struct CharInfo_c;
class dMsgScrnBase_c : public dDlst_base_c {
public:
/* 8023C0DC */ dMsgScrnBase_c();
/* 8023C16C */ void init();
/* 8023C32C */ void drawOutFont(f32, f32, f32);
/* 8023C360 */ void setString(char*, char*);
/* 8023C3EC */ void setRubyString(char*);
/* 8023C574 */ bool isTalkNow();
/* 8023C274 */ virtual void draw();
/* 8023C124 */ virtual ~dMsgScrnBase_c();
/* 80238C3C */ virtual void exec();
/* 8023C234 */ virtual void multiDraw();
/* 8023C300 */ virtual void drawSelf();
/* 80238C44 */ virtual void setSelectString(char*, char*, char*);
/* 80238C40 */ virtual void setSelectRubyString(char*, char*, char*);
/* 80238C58 */ virtual void arwAnimeInit();
/* 80238C54 */ virtual void arwAnimeMove();
/* 80238C74 */ virtual void dotAnimeInit();
/* 80238C70 */ virtual void dotAnimeMove();
/* 80238C60 */ virtual bool isSelect();
/* 80238C50 */ virtual void selectAnimeInit(u8, u8, f32, u8);
/* 80238C48 */ virtual bool selectAnimeMove(u8, u8, bool);
/* 80238C68 */ virtual bool selectAnimeEnd();
/* 8023C458 */ virtual void fukiScale(f32);
/* 8023C480 */ virtual void fukiTrans(f32, f32);
/* 8023C4A4 */ virtual void fukiAlpha(f32);
/* 8023C4F4 */ virtual void fontAlpha(f32);
/* 80238C5C */ virtual void fukiPosCalc(u8);
/* 0x04 */ J2DScreen* mpScreen;
/* 0x08 */ CPaneMgr* mpPmp_c;
/* 0x0C */ CPaneMgr* mpTm_c[7];
/* 0x28 */ CPaneMgr* mpTmr_c[7];
/* 0x44 */ COutFont_c* mpOutFont;
/* 0x48 */ dDlst_base_c* field_0x48;
/* 0x4C */ u32 field_0x4c;
/* 0x50 */ CharInfo_c* mCharInfoPtr;
/* 0x54 */ u32 field_0x54;
/* 0x58 */ J2DTextBox::TFontSize mFontSize;
/* 0x60 */ f32 mRubySize;
/* 0x64 */ f32 mTextBoxPosX;
/* 0x68 */ f32 mTextBoxPosY;
/* 0x6C */ f32 mTextBoxScaleX;
/* 0x70 */ f32 mTextBoxScaleY;
/* 0x74 */ f32 mTBoxWidth;
/* 0x78 */ f32 mTBoxHeight;
/* 0x7C */ f32 mLineSpace;
/* 0x80 */ f32 mCharSpace;
/* 0x84 */ f32 mRubyCharSpace;
/* 0x88 */ f32 mSelFontSize;
/* 0x8C */ f32 mSelRubySize;
/* 0x90 */ f32 mSelTextBoxPosX[3];
/* 0x9C */ f32 mSelTextBoxPosY[3];
/* 0xA8 */ f32 mSelTBoxWidth;
/* 0xAC */ f32 mSelCharSpace;
/* 0xB0 */ f32 mSelRubyCharSpace;
/* 0xB4 */ f32 mTextBoxPosOffsetY;
/* 0xB8 */ f32 field_0xb8;
/* 0xBC */ f32 mCharAlphaRate;
/* 0xC0 */ u16 mMsgID;
};
#endif /* MSG_SCRN_D_MSG_SCRN_BASE_H */
+18 -1
View File
@@ -1,6 +1,23 @@
#ifndef MSG_SCRN_D_MSG_SCRN_BOSS_H
#define MSG_SCRN_D_MSG_SCRN_BOSS_H
#include "dolphin/types.h"
#include "msg/scrn/d_msg_scrn_base.h"
class dMsgScrnBoss_c : public dMsgScrnBase_c {
public:
/* 8023C5C8 */ dMsgScrnBoss_c();
/* 8023C928 */ virtual ~dMsgScrnBoss_c();
/* 8023CA88 */ virtual void exec();
/* 8023CB98 */ virtual void drawSelf();
/* 8023CC7C */ virtual void fukiScale(f32);
/* 8023CC80 */ virtual void fukiTrans(f32, f32);
/* 8023CC84 */ virtual void fontAlpha(f32);
/* 8023CBF0 */ virtual void fukiAlpha(f32);
private:
/* 0xC4 */ CPaneMgr* mpBaseParent;
/* 0xC8 */ CPaneMgr* mpFontParent;
};
#endif /* MSG_SCRN_D_MSG_SCRN_BOSS_H */
+65 -1
View File
@@ -1,6 +1,70 @@
#ifndef MSG_SCRN_D_MSG_SCRN_EXPLAIN_H
#define MSG_SCRN_D_MSG_SCRN_EXPLAIN_H
#include "dolphin/types.h"
#include "msg/scrn/d_msg_scrn_base.h"
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
class dMsgScrnArrow_c;
class dMsgScrn3Select_c;
class dMsgScrnExplain_c {
public:
/* 8023CC88 */ dMsgScrnExplain_c(STControl*, u8, bool, u8);
/* 8023D7D8 */ void move();
/* 8023D918 */ void draw(J2DOrthoGraph*);
/* 8023DAD0 */ void wait_init();
/* 8023DAD4 */ void wait_proc();
/* 8023DAD8 */ void open_request_init();
/* 8023DADC */ void open_request_proc();
/* 8023DBE4 */ void open_init();
/* 8023DC7C */ void open_proc();
/* 8023DD90 */ void move_init();
/* 8023DDB4 */ void move_proc();
/* 8023DE8C */ void move_select_init();
/* 8023E0F4 */ void move_select_proc();
/* 8023E43C */ void close_init();
/* 8023E448 */ void close_proc();
/* 8023E558 */ bool openExplain(u32, u8, u8, u8, bool);
/* 8023E5CC */ void getAlphaRatio();
/* 8023E640 */ void checkTriggerA();
/* 8023E654 */ void checkTriggerB();
/* 8023D538 */ virtual ~dMsgScrnExplain_c();
u8 getStatus() { return mStatus; }
void setForceSelect() { mForceSelect = 1; }
void setKeyWaitTimer(s16 timer) { mKeyWaitTimer = timer; }
private:
/* 0x04 */ dMsgString_c* mpString_c;
/* 0x08 */ CPaneMgr* mpTm_c[2];
/* 0x10 */ CPaneMgr* field_0x10[2];
/* 0x18 */ CPaneMgr* mpMg_c[2];
/* 0x20 */ CPaneMgr* mpRoot_c[2];
/* 0x28 */ CPaneMgr* mpArw_c;
/* 0x2C */ J2DScreen* mpScreen;
/* 0x30 */ J2DScreen* mpTxScreen;
/* 0x34 */ dMsgScrnArrow_c* mpArrow_c;
/* 0x38 */ dMsgScrn3Select_c* mpSelect_c;
/* 0x3C */ COutFont_c* mpOutFont;
/* 0x40 */ J2DPicture* mpBackTex;
/* 0x44 */ STControl* field_0x44;
/* 0x48 */ f32 field_0x48;
/* 0x4C */ f32 field_0x4c;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ u32 field_0x54;
/* 0x58 */ u8 field_0x58;
/* 0x5A */ s16 field_0x5a;
/* 0x5C */ s16 field_0x5c;
/* 0x5E */ s16 mKeyWaitTimer;
/* 0x60 */ u8 mStatus;
/* 0x61 */ u8 mSelCursor;
/* 0x62 */ u8 field_0x62;
/* 0x63 */ u8 field_0x63;
/* 0x64 */ u8 field_0x64;
/* 0x65 */ u8 mForceSelect;
/* 0x66 */ u8 field_0x66;
/* 0x67 */ u8 field_0x67;
}; // Size: 0x68
#endif /* MSG_SCRN_D_MSG_SCRN_EXPLAIN_H */
+7 -2
View File
@@ -152,11 +152,16 @@ public:
bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; }
bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; }
bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; }
f32 getNormalMaxSpeedF() { return mNormalMaxSpeedF; }
void changeDemoMoveAngle(s16 angle) { mDemoMoveAngle = angle; }
void setDemoStickR(f32 stick) { mDemoStickR = stick; }
void i_changeDemoMode(u32 param_0, int param_1) { field_0x1740 = param_0; field_0x1728 = param_1; }
void i_changeOriginalDemo() { field_0x16b8 = 3; field_0x1728 = 0; }
static u8 const m_footJointTable[8];
static f32 const m_callLimitDistance2;
private:
//private:
/* 0x0568 */ u8 field_0x568[8];
/* 0x0570 */ J3DModel* field_0x570;
/* 0x0574 */ void* field_0x574;
@@ -190,7 +195,7 @@ private:
/* 0x16BB */ u8 mRodeoPointCnt;
/* 0x16BC */ u8 field_0x16bc[0x36];
/* 0x16F2 */ s16 mAimNeckAngleY;
/* 0x16F4 */ u8 field_0x16f4[0xA];
/* 0x16F4 */ u8 field_0x16f4[0x8];
/* 0x16FC */ s16 mDemoMoveAngle;
/* 0x16FE */ u8 field_0x16fe[4];
/* 0x1702 */ s16 field_0x1702;
@@ -2,5 +2,24 @@
#define D_A_SCENE_EXIT_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
class daScex_c : public fopAc_ac_c {
public:
daScex_c() {}
/* 80485838 */ int checkWork();
/* 80485A50 */ int execute();
u8 getArg1() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
u8 getArg0() { return fopAcM_GetParam(this); }
u32 getSwNo() { return fopAcM_GetParam(this) >> 0x18; }
u16 getOffEventBit() { return mOrig.mAngle.z & 0xFFF; }
u16 getOnEventBit() { return mOrig.mAngle.x & 0xFFF; }
void setSceneChangeOK() { mSceneChangeOK = true; }
/* 0x568 */ Mtx mMatrix;
/* 0x598 */ u8 field_0x598;
/* 0x599 */ bool mSceneChangeOK;
};
#endif /* D_A_SCENE_EXIT_H */
@@ -27,14 +27,14 @@ public:
/* 80031CF8 */ static void clrSaveFlag();
/* 80031D04 */ static void setSaveFlag();
/* 80031D10 */ void chkSaveFlag();
/* 80031D10 */ static bool chkSaveFlag();
/* 80031D24 */ void getPos(int);
/* 80031D38 */ void savePos(int, cXyz);
/* 80031D64 */ void onSttsFlag(int, u8);
/* 80031D78 */ void offSttsFlag(int, u8);
/* 80031D8C */ void chkSttsFlag(int, u8);
/* 80031DAC */ void setRoomNo(int, s8);
/* 80031DB8 */ void getRoomNo(int);
/* 80031D64 */ static void onSttsFlag(int, u8);
/* 80031D78 */ static void offSttsFlag(int, u8);
/* 80031D8C */ static u8 chkSttsFlag(int, u8);
/* 80031DAC */ static void setRoomNo(int, s8);
/* 80031DB8 */ static s8 getRoomNo(int);
/* 8046F6A4 */ void data();
/* 8046F6BC */ void getArcName();
/* 8046F6D4 */ void getBmdName();
@@ -184,6 +184,10 @@ public:
s32 getType() { return mType; }
static u8 const mData[2072];
static u8 mPos[60];
static u8 mSttsFlag[5];
static s8 mRoomNo[5];
static bool mSaveFlag;
private:
/* 0x568 */ u8 field_0x568[8];
@@ -2,5 +2,29 @@
#define D_A_TAG_MAGNE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
struct cBgS_PolyInfo;
class daTagMagne_c : public fopAc_ac_c {
public:
/* 80031B50 */ static BOOL checkMagnetCode(cBgS_PolyInfo&);
/* 80031BF4 */ int checkMagneA();
/* 80031C48 */ int checkMagneB();
/* 80031C9C */ int checkMagneC();
/* 805A5498 */ int Create();
/* 805A54DC */ int create();
/* 805A5578 */ int _delete();
u8 getSwNo1() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getSwNo2() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getSwNo3() { return fopAcM_GetParamBit(this, 16, 8); }
static daTagMagne_c* mTagMagne;
/* 0x568 */ u8 mSwNo1;
/* 0x569 */ u8 mSwNo2;
/* 0x56A */ u8 mSwNo3;
};
#endif /* D_A_TAG_MAGNE_H */