d_a_tag_kago_fall OK (#2081)

* WIP, about half done

* Decomp OK

* Some more cleanup and first documentation pass

* Cleaning up unused asm

* Fixing static msg object access and a bit more cleanup

* Updating progress

---------

Co-authored-by: GinNoOokami <noreply>
This commit is contained in:
Jeff Padgham
2024-03-01 14:41:50 -08:00
committed by GitHub
parent f1c0e88446
commit 218f15ab6d
15 changed files with 311 additions and 1000 deletions
+1
View File
@@ -400,6 +400,7 @@ public:
RFLG0_UNK_4000000 = 0x4000000,
RFLG0_GRAB_PUT_START = 0x400000,
RFLG0_UNK_20000 = 0x20000,
RFLG0_UNK_10000 = 0x10000,
RFLG0_UNK_8000 = 0x8000,
RFLG0_UNK_4000 = 0x4000,
RFLG0_FRONT_ROLL_CRASH = 0x2000,
+5 -1
View File
@@ -139,7 +139,7 @@ public:
/* 802383D0 */ static u32 getMessageID();
/* 802383E4 */ u32 getSmellTypeMessageID();
/* 80238410 */ static void setSmellType(u8);
/* 80238440 */ void getSelectCursorPos();
/* 80238440 */ static u8 getSelectCursorPos();
/* 8023846C */ static void setSelectCursorPos(u8);
/* 8023849C */ void setPortalMessageID(u16);
/* 802384B0 */ void setInsectItemNo(u8);
@@ -363,6 +363,10 @@ inline void dMsgObject_setSmellType(u8 type) {
dMsgObject_c::setSmellType(type);
}
inline u8 dMsgObject_getSelectCursorPos() {
return dMsgObject_c::getSelectCursorPos();
}
inline void dMsgObject_setTalkPartner(fopAc_ac_c* actor) {
dMsgObject_getMsgObjectClass()->setTalkPartner(actor);
}
+1
View File
@@ -98,6 +98,7 @@ enum dEvt_Command_e {
enum dEvt_Condition_e {
dEvtCnd_NONE_e = 0x0000,
dEvtCnd_CANTALK_e = 0x0001,
dEvtCnd_CANDEMO_e = 0x0002,
dEvtCnd_CANDOOR_e = 0x0004,
dEvtCnd_CANGETITEM_e = 0x0008,
dEvtCnd_CANTALKITEM_e = 0x0020,
@@ -1,6 +1,38 @@
#ifndef D_A_TAG_KAGO_FALL_H
#define D_A_TAG_KAGO_FALL_H
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
class daTagKagoFall_c : public fopAc_ac_c {
public:
enum ActionMode {
/* 0 */ ACTION_MODE_RIVER,
/* 1 */ ACTION_MODE_FALL
};
/* 80D59C58 */ int create();
/* 80D59DE0 */ int execute();
/* 80D59E18 */ void setActionMode(ActionMode mode, u8 state);
/* 80D59E24 */ void actionWaitRiver();
/* 80D5A218 */ void actionWaitFall();
/* 80D5A67C */ int _delete();
/* 0x568 */ dMsgFlow_c mMsgFlow;
/* 0x5b4 */ Mtx mMtx;
/* 0x5e4 */ cXyz mRestartPos;
/* 0x5f0 */ s16 mTimer;
/* 0x5f2 */ s16 mNoCarryTimer;
/* 0x5f4 */ u8 mRiverTimer;
/* 0x5f5 */ u8 mActionMode;
/* 0x5f6 */ u8 mActionState;
/* 0x5f7 */ u8 mExitID;
/* 0x5f8 */ u8 mStartPoint;
/* 0x5f9 */ bool mPlayedSceneChangeSfx;
}; // Size: 0x5fc
STATIC_ASSERT(sizeof(daTagKagoFall_c) == 0x5fc);
#endif /* D_A_TAG_KAGO_FALL_H */