summaryrefslogtreecommitdiff
path: root/include/rel/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-08-07 08:32:04 -0700
committerGitHub <noreply@github.com>2024-08-07 09:32:04 -0600
commite7e5453771e88272aaa55de7f20db50bf68c6b54 (patch)
tree8c35b4fba096153646509453857fafd4d921b1c9 /include/rel/d
parent106d72032c3c62fb5fd930a1044a38bf44cc1036 (diff)
zramark work, sWallShutter / firewood2 done (#2187)
* obj_zramark done except weaks * setup fixes * obj_sWallShutter done * firewood2 done * remove asm
Diffstat (limited to 'include/rel/d')
-rw-r--r--include/rel/d/a/npc/d_a_npc_hoz/d_a_npc_hoz.h4
-rw-r--r--include/rel/d/a/npc/d_a_npc_zra/d_a_npc_zra.h3
-rw-r--r--include/rel/d/a/obj/d_a_obj_balloon/d_a_obj_balloon.h28
-rw-r--r--include/rel/d/a/obj/d_a_obj_fireWood2/d_a_obj_fireWood2.h46
-rw-r--r--include/rel/d/a/obj/d_a_obj_sWallShutter/d_a_obj_sWallShutter.h66
-rw-r--r--include/rel/d/a/obj/d_a_obj_zraMark/d_a_obj_zraMark.h180
6 files changed, 253 insertions, 74 deletions
diff --git a/include/rel/d/a/npc/d_a_npc_hoz/d_a_npc_hoz.h b/include/rel/d/a/npc/d_a_npc_hoz/d_a_npc_hoz.h
index 5689e268f5..c5bce6e980 100644
--- a/include/rel/d/a/npc/d_a_npc_hoz/d_a_npc_hoz.h
+++ b/include/rel/d/a/npc/d_a_npc_hoz/d_a_npc_hoz.h
@@ -79,6 +79,7 @@ public:
/* 80A065D4 */ bool checkRemoveJoint(int);
bool getGameStartFlag() { return mGameStartFlag; }
+ void setPotBreakFlag() { mPotBreakFlag = true; }
static void* mCutNameList[8];
static u8 mCutList[96];
@@ -86,7 +87,8 @@ public:
private:
/* 0xE40 */ u8 field_0xe40[0x14d];
/* 0xF8D */ bool mGameStartFlag;
- /* 0xF8E */ u8 field_0xf8e[0x3a];
+ /* 0xF8E */ bool mPotBreakFlag;
+ /* 0xF8F */ u8 field_0xf8f[0x39];
};
STATIC_ASSERT(sizeof(daNpc_Hoz_c) == 0xFC8);
diff --git a/include/rel/d/a/npc/d_a_npc_zra/d_a_npc_zra.h b/include/rel/d/a/npc/d_a_npc_zra/d_a_npc_zra.h
index 4ad04a637c..f1a62e1eca 100644
--- a/include/rel/d/a/npc/d_a_npc_zra/d_a_npc_zra.h
+++ b/include/rel/d/a/npc/d_a_npc_zra/d_a_npc_zra.h
@@ -319,6 +319,7 @@ public:
/* 80B8C3E8 */ void adjustShapeAngle();
int getType() { return mType; }
u32 getAngleNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
+ void setBlastFlag(u8 i_flag) { mBlastFlag = i_flag; }
/* 0x0B48 */ Z2Creature mCreatureSound;
/* 0x0BD8 */ J3DModel* mpObjectModel[3];
@@ -390,7 +391,7 @@ public:
/* 0x1595 */ int mRiverPathIdx;
/* 0x159C */ cXyz field_0x159c[3];
/* 0x15C0 */ u8 field_0x15c0;
- /* 0x15C1 */ bool field_0x15c1;
+ /* 0x15C1 */ bool mBlastFlag;
#ifdef NONMATCHING
static char* mEvtCutNameList[11];
diff --git a/include/rel/d/a/obj/d_a_obj_balloon/d_a_obj_balloon.h b/include/rel/d/a/obj/d_a_obj_balloon/d_a_obj_balloon.h
index b72e62e3a4..77026773d5 100644
--- a/include/rel/d/a/obj/d_a_obj_balloon/d_a_obj_balloon.h
+++ b/include/rel/d/a/obj/d_a_obj_balloon/d_a_obj_balloon.h
@@ -17,6 +17,12 @@
*/
class daObj_Balloon_c : public fopAc_ac_c {
public:
+ enum Size_e {
+ SIZE_LARGE_e,
+ SIZE_MEDIUM_e,
+ SIZE_SMALL_e,
+ };
+
/* 80BA7FF4 */ int draw();
/* 80BA80F4 */ void saveBestScore();
/* 80BA810C */ void cc_set();
@@ -29,19 +35,19 @@ public:
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mModel;
- /* 0x574 */ int field_0x574;
- /* 0x578 */ u8 field_0x578;
- /* 0x579 */ u8 field_0x579;
- /* 0x57C */ int field_0x57c;
- /* 0x580 */ s16 field_0x580;
- /* 0x582 */ s16 field_0x582;
- /* 0x584 */ s16 field_0x584;
- /* 0x586 */ s16 field_0x586;
+ /* 0x574 */ u32 mShadowKey;
+ /* 0x578 */ u8 mType;
+ /* 0x579 */ u8 mRotateMode;
+ /* 0x57C */ int mRotateTimer;
+ /* 0x580 */ s16 mRotateZ;
+ /* 0x582 */ s16 mRotateY;
+ /* 0x584 */ s16 mRotZTarget;
+ /* 0x586 */ s16 mRotYTarget;
/* 0x588 */ dBgS_AcchCir mAcchCir;
/* 0x5C8 */ dBgS_ObjAcch mAcch;
/* 0x7A0 */ dCcD_Stts mStts;
/* 0x7D8 */ dCcD_Sph mSph;
- /* 0x914 */ u8 field_0x914;
+ /* 0x914 */ u8 mHIOInit;
/* 0x914 */ u8 mUnused[8];
};
@@ -51,8 +57,8 @@ public:
/* 80BA8D64 */ virtual ~daObj_Balloon_HIO_c() {}
/* 0x04 */ s8 field_0x04;
- /* 0x08 */ f32 field_0x08[3];
- /* 0x14 */ f32 field_0x14[3];
+ /* 0x08 */ f32 mScale[3];
+ /* 0x14 */ f32 mScore[3];
};
#endif /* D_A_OBJ_BALLOON_H */
diff --git a/include/rel/d/a/obj/d_a_obj_fireWood2/d_a_obj_fireWood2.h b/include/rel/d/a/obj/d_a_obj_fireWood2/d_a_obj_fireWood2.h
index f951e0ddcc..ee152ce696 100644
--- a/include/rel/d/a/obj/d_a_obj_fireWood2/d_a_obj_fireWood2.h
+++ b/include/rel/d/a/obj/d_a_obj_fireWood2/d_a_obj_fireWood2.h
@@ -3,11 +3,12 @@
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
+#include "d/cc/d_cc_d.h"
/**
* @ingroup actors-objects
* @class daFireWood2_c
- * @brief Torch Stand
+ * @brief Firewood 2 (Flame)
*
* @details
*
@@ -15,43 +16,44 @@
class daFireWood2_c : public fopAc_ac_c {
public:
/* 80BE82D0 */ void setBaseMtx();
- /* 80BE8328 */ void create();
+ /* 80BE8328 */ int create();
/* 80BE8640 */ void lightInit();
/* 80BE86CC */ void setLight();
/* 80BE86FC */ void cutLight();
/* 80BE872C */ void pointLightProc();
- /* 80BE87DC */ void Execute();
+ /* 80BE87DC */ int Execute();
/* 80BE8D98 */ int Draw();
- /* 80BE8DA0 */ void Delete();
+ /* 80BE8DA0 */ int Delete();
- static u8 const mCcDObjInfo[48];
- static u8 mCcDCyl[68];
+ static const dCcD_SrcGObjInf mCcDObjInfo;
+ static dCcD_SrcCyl mCcDCyl;
private:
/* 0x568 */ u8 field_0x568[0x574 - 0x568];
- /* 0x574 */ dCcD_Stts mStts;
- /* 0x5B0 */ dCcD_Cyl mCyl;
- /* 0x6EC */ cXyz field_0x6ec;
- /* 0x6F8 */ u8 field_0x6f8;
- /* 0x6F9 */ u8 field_0x6f9;
- /* 0x6FA */ u8 field_0x6fa;
- /* 0x6FB */ u8 field_0x6fb;
- /* 0x6FC */ u32 field_0x6fc;
- /* 0x700 */ u32 field_0x700;
- /* 0x704 */ u32 field_0x704;
- /* 0x708 */ u32 field_0x708;
- /* 0x70C */ cXyz field_0x70c;
- /* 0x718 */ u8 field_0x718;
- /* 0x71C */ f32 field_0x71c;
+ /* 0x574 */ dCcD_Stts mCcStts;
+ /* 0x5B0 */ dCcD_Cyl mCcCyl;
+ /* 0x6EC */ cXyz mFlamePos;
+ /* 0x6F8 */ u8 mIsLit;
+ /* 0x6F9 */ u8 mIsSwitch;
+ /* 0x6FA */ u8 mSwitchType;
+ /* 0x6FB */ u8 mFlameType;
+ /* 0x6FC */ u32 mFlameEmtrIDs[4];
+ /* 0x70C */ cXyz mLightPos;
+ /* 0x718 */ u8 mIsPLight;
+ /* 0x71C */ f32 mBossLightStrength;
/* 0x720 */ LIGHT_INFLUENCE mLightInfluence;
};
STATIC_ASSERT(sizeof(daFireWood2_c) == 0x740);
-class daFireWood2_HIO_c {
+class daFireWood2_HIO_c : public mDoHIO_entry_c {
public:
/* 80BE824C */ daFireWood2_HIO_c();
- /* 80BE8E54 */ ~daFireWood2_HIO_c();
+ /* 80BE8E54 */ virtual ~daFireWood2_HIO_c() {}
+
+ /* 0x04 */ f32 mFlameOffsetY;
+ /* 0x08 */ f32 mCollisionDiameter;
+ /* 0x0C */ f32 mCollisionHeight;
};
diff --git a/include/rel/d/a/obj/d_a_obj_sWallShutter/d_a_obj_sWallShutter.h b/include/rel/d/a/obj/d_a_obj_sWallShutter/d_a_obj_sWallShutter.h
index 890bb3be0e..0fc1bfe1ef 100644
--- a/include/rel/d/a/obj/d_a_obj_sWallShutter/d_a_obj_sWallShutter.h
+++ b/include/rel/d/a/obj/d_a_obj_sWallShutter/d_a_obj_sWallShutter.h
@@ -2,21 +2,33 @@
#define D_A_OBJ_SWALLSHUTTER_H
#include "f_op/f_op_actor_mng.h"
+#include "d/bg/d_bg_s_movebg_actor.h"
+#include "m_Do/m_Do_hostIO.h"
/**
* @ingroup actors-objects
* @class daSwShutter_c
- * @brief Rider Gate
+ * @brief Shutter Wall (Switch)
*
* @details
*
*/
-class daSwShutter_c : public fopAc_ac_c {
+class daSwShutter_c : public dBgS_MoveBgActor {
public:
+ enum TYPE_e {
+ TYPE_ROCKWALL_e, // Goron Mines Shutter Wall
+ TYPE_SUBDAN_e, // Cave of Ordeals Shutter Wall
+ };
+
+ enum MODE_e {
+ MODE_WAIT,
+ MODE_MOVE_DOWN_INIT,
+ MODE_MOVE_DOWN,
+ MODE_MOVE_DOWN_END,
+ };
+
/* 805982A4 */ void setBaseMtx();
- /* 80598344 */ void CreateHeap();
- /* 805983C4 */ void create();
- /* 80598564 */ void Execute(f32 (**)[3][4]);
+ /* 805983C4 */ int create();
/* 805985B4 */ void moveMain();
/* 8059873C */ void init_modeWait();
/* 80598748 */ void modeWait();
@@ -26,19 +38,51 @@ public:
/* 80598AFC */ void modeMoveDown();
/* 80598D4C */ void init_modeMoveDownEnd();
/* 80598D58 */ void modeMoveDownEnd();
- /* 80598D5C */ void Draw();
- /* 80598E00 */ void Delete();
+
+ /* 80598344 */ virtual int CreateHeap();
+ /* 80598564 */ virtual int Execute(Mtx**);
+ /* 80598D5C */ virtual int Draw();
+ /* 80598E00 */ virtual int Delete();
-private:
- /* 0x568 */ u8 field_0x568[0x5e8 - 0x568];
+ int getSwBit() { return fopAcM_GetParamBit(this, 0, 8); }
+ int getModelType() { return fopAcM_GetParamBit(this, 8, 4); }
+
+ /* 0x5A0 */ request_of_phase_process_class mPhase;
+ /* 0x5A8 */ J3DModel* mpModel;
+ /* 0x5AC */ u8 mModelType;
+ /* 0x5AD */ u8 mMode;
+ /* 0x5B0 */ f32 field_0x5b0;
+ /* 0x5B4 */ u8 field_0x5B4[0x5B8 - 0x5B4];
+ /* 0x5B8 */ csXyz mShakeRot;
+ /* 0x5C0 */ f32 mShakeStrength;
+ /* 0x5C4 */ f32 mShakeAmpZ;
+ /* 0x5C8 */ f32 mShakeAmpY;
+ /* 0x5CC */ f32 mShakeAtten;
+ /* 0x5D0 */ f32 mMaxAtten;
+ /* 0x5D4 */ f32 mMinAtten;
+ /* 0x5D8 */ int mCounter;
+ /* 0x5DC */ u32 mEmitterID0;
+ /* 0x5E0 */ u32 mEmitterID1;
+ /* 0x5E4 */ u8 field_0x5e4[0x5e8 - 0x5e4];
};
STATIC_ASSERT(sizeof(daSwShutter_c) == 0x5e8);
-class daSwShutter_HIO_c {
+class daSwShutter_HIO_c : public mDoHIO_entry_c {
public:
/* 805981EC */ daSwShutter_HIO_c();
- /* 80598ECC */ ~daSwShutter_HIO_c();
+ /* 80598ECC */ virtual ~daSwShutter_HIO_c() {}
+
+ /* 0x04 */ f32 mInitSpeed;
+ /* 0x08 */ f32 mMaxSpeed;
+ /* 0x0C */ f32 mAcceleration;
+ /* 0x10 */ u8 mVibrationStrength;
+ /* 0x14 */ f32 mShakeStrength;
+ /* 0x18 */ f32 mShakeAmpZ;
+ /* 0x1C */ f32 mShakeAmpY;
+ /* 0x20 */ f32 mShakeAtten;
+ /* 0x24 */ f32 mMaxAtten;
+ /* 0x28 */ f32 mMinAtten;
};
diff --git a/include/rel/d/a/obj/d_a_obj_zraMark/d_a_obj_zraMark.h b/include/rel/d/a/obj/d_a_obj_zraMark/d_a_obj_zraMark.h
index 9ea061a0df..2a956db22c 100644
--- a/include/rel/d/a/obj/d_a_obj_zraMark/d_a_obj_zraMark.h
+++ b/include/rel/d/a/obj/d_a_obj_zraMark/d_a_obj_zraMark.h
@@ -1,56 +1,180 @@
#ifndef D_A_OBJ_ZRAMARK_H
#define D_A_OBJ_ZRAMARK_H
+#include "JSystem/J3DGraphBase/J3DMaterial.h"
+#include "d/a/d_a_npc.h"
+#include "d/cc/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
+class daNpc_Hoz_c;
+
+class _ZraMark_Hahen_c {
+public:
+ _ZraMark_Hahen_c() {
+ mpModel = NULL;
+ setColor(0);
+ }
+
+ /* 80D4347C */ int create(cXyz const&, s8, s8, s8, s8);
+ /* 80D434F8 */ BOOL loadModel();
+ /* 80D4357C */ void init(cXyz const&, s8, s8, s8);
+ /* 80D43808 */ void calcSpeed();
+ /* 80D43864 */ void setMtx();
+ /* 80D438C8 */ void draw();
+
+ void setColor(const s8& i_color) { mColor = i_color; }
+ s8 getColor() { return mColor; }
+ void setPos(const cXyz& i_pos) { mPos = i_pos; }
+ void setSpeed(const cXyz& i_speed) { mSpeed = i_speed; }
+
+ void calcAngle() {
+ mAngle += field_0x3aa;
+ }
+
+ void posMove() {
+ mPos += mSpeed;
+ }
+
+ void fall() {
+ calcAngle();
+ calcSpeed();
+ posMove();
+ }
+
+ /* 0x000 */ J3DModel* mpModel;
+ /* 0x004 */ dKy_tevstr_c mTevstr;
+ /* 0x38C */ cXyz mPos;
+ /* 0x398 */ cXyz mSpeed;
+ /* 0x3A4 */ csXyz mAngle;
+ /* 0x3AA */ csXyz field_0x3aa;
+ /* 0x3B0 */ cXyz field_0x3b0;
+ /* 0x3BC */ s16 field_0x3bc;
+ /* 0x3C0 */ f32 field_0x3c0;
+ /* 0x3C4 */ u8 field_0x3C4[0x3C8 - 0x3C4];
+ /* 0x3C8 */ s8 mColor;
+ /* 0x3CC */ Z2SoundObjSimple mSound;
+};
+
+class _ZraMark_Hahen_Mng_c {
+public:
+ _ZraMark_Hahen_Mng_c() : field_0x2(0) {}
+
+ /* 80D43968 */ int create(cXyz const&, s8, s8, s8, s8);
+ /* 80D439F8 */ void calc();
+ /* 80D43A74 */ void draw();
+
+ s16 getTimer() { return mTimer; }
+ void setTimer(s16 i_timer) { mTimer = i_timer; }
+
+ void decTimer() {
+ if (mTimer > 0) {
+ mTimer--;
+ }
+ }
+
+ /* 0x0 */ s16 mTimer;
+ /* 0x2 */ u8 field_0x2;
+ /* 0x4 */ _ZraMark_Hahen_c mHahen[14];
+};
+
/**
* @ingroup actors-objects
* @class daObjZraMark_c
- * @brief Zora Mark
+ * @brief Iza's River Ride Destructible Buoy
*
* @details
*
*/
class daObjZraMark_c : public fopAc_ac_c {
public:
- /* 80D42678 */ void Create();
- /* 80D4287C */ void CreateHeap();
- /* 80D42A7C */ void Execute();
- /* 80D42B0C */ void Draw();
- /* 80D42C98 */ void Delete();
- /* 80D42CE0 */ void getType();
+ enum TYPE_e {
+ TYPE_BRANCH_GREEN,
+ TYPE_GREEN,
+ TYPE_BRANCH_RED,
+ TYPE_RED,
+ };
+
+ /* 80D42678 */ int Create();
+ /* 80D4287C */ int CreateHeap();
+ /* 80D42A7C */ int Execute();
+ /* 80D42B0C */ int Draw();
+ /* 80D42C98 */ int Delete();
+ /* 80D42CE0 */ int getType();
/* 80D42D2C */ void setBaseMtx();
/* 80D42EE0 */ void col_init();
/* 80D42F5C */ void col_set();
- /* 80D432C8 */ void schHoz();
- /* 80D43314 */ void entryPointer(fopAc_ac_c*);
+ /* 80D432C8 */ daNpc_Hoz_c* schHoz();
+ /* 80D43314 */ bool entryPointer(fopAc_ac_c*);
/* 80D43370 */ void informBlast();
u8 getMarkNo() { return fopAcM_GetParam(this) & 0xff; }
-private:
- /* 0x568 */ u8 field_0x568[0x3e40 - 0x568];
-};
+ void initBlastFlag() { mBlastFlag = false; }
+ void onBlastFlag() { mBlastFlag = true; }
+ bool is_blasted() { return mBlastFlag == true; }
+ bool is_branch_pat() { return mType == 0 || mType == 2; }
-STATIC_ASSERT(sizeof(daObjZraMark_c) == 0x3e40);
+ int get_MarkType() {
+ u8 type = fopAcM_GetParam(this) >> 0x10;
+ if (type == 0xFF) {
+ type = 0;
+ }
-class _ZraMark_Hahen_c : public fopAc_ac_c {
-public:
- /* 80D4347C */ void create(cXyz const&, s8, s8, s8, s8);
- /* 80D434F8 */ void loadModel();
- /* 80D4357C */ void init(cXyz const&, s8, s8, s8);
- /* 80D43808 */ void calcSpeed();
- /* 80D43864 */ void setMtx();
- /* 80D438C8 */ void draw();
- /* 80D43B48 */ ~_ZraMark_Hahen_c();
- /* 80D43BB4 */ _ZraMark_Hahen_c();
+ return type;
+ }
+
+ void _Disp_Vase() {
+ _Material_On(0);
+ _Material_On(2);
+ }
+
+ void _Vanish_Vase() {
+ _Material_Off(0);
+ _Material_Off(2);
+ }
+
+ void _Material_On(u16 i_jointNo) {
+ mpModel->getModelData()->getMaterialNodePointer(i_jointNo)->getShape()->show();
+ }
+
+ void _Material_Off(u16 i_jointNo) {
+ mpModel->getModelData()->getMaterialNodePointer(i_jointNo)->getShape()->hide();
+ }
+
+ BOOL checkHitAt(cCcD_Obj* i_hitobj) {
+ if (is_blasted()) {
+ return false;
+ }
+
+ if (get_MarkType() != 0) {
+ return i_hitobj->ChkAtType(AT_TYPE_IRON_BALL | AT_TYPE_BOMB);
+ } else {
+ return i_hitobj->ChkAtType(AT_TYPE_BOMB);
+ }
+ }
+
+ /* 0x0568 */ request_of_phase_process_class mPhase[1];
+ /* 0x0570 */ J3DModel* mpModel;
+ /* 0x0574 */ Mtx field_0x574;
+ /* 0x05A4 */ dCcD_Stts mCcStts;
+ /* 0x05E0 */ dCcD_Cyl mCcCyl;
+ /* 0x071C */ daNpcF_ActorMngr_c mActorMngr[2];
+ /* 0x072C */ u8 field_0x72c;
+ /* 0x072D */ u8 mType;
+ /* 0x072E */ u8 mBlastFlag;
+ /* 0x0730 */ daNpc_Hoz_c* mpHoz;
+ /* 0x0734 */ Z2SoundObjSimple mSound;
+ /* 0x0754 */ _ZraMark_Hahen_Mng_c mHahenMngr;
};
-class _ZraMark_Hahen_Mng_c : public fopAc_ac_c {
+STATIC_ASSERT(sizeof(daObjZraMark_c) == 0x3e40);
+
+class daObjZraMark_Hio_Param_c {
public:
- /* 80D43968 */ void create(cXyz const&, s8, s8, s8, s8);
- /* 80D439F8 */ void calc();
- /* 80D43A74 */ void draw();
+ /* 0x00 */ f32 mMarkSize;
+ /* 0x04 */ f32 mInteriorMarkSize;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 mMarkCollisionRadius;
+ /* 0x10 */ f32 mMarkCollisionHeight;
};
-
#endif /* D_A_OBJ_ZRAMARK_H */