d_a_obj_cwall almost matching (#2270)

* d_a_obj_cwall almost matching

* d_a_obj_pdoor OK
This commit is contained in:
hatal175
2024-12-28 05:16:59 +02:00
committed by GitHub
parent ad2badcd29
commit c429ce21eb
8 changed files with 1033 additions and 1208 deletions
+62 -11
View File
@@ -1,6 +1,8 @@
#ifndef D_A_OBJ_CWALL_H
#define D_A_OBJ_CWALL_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,21 +13,30 @@
* @details
*
*/
class daObjCwall_c : public fopAc_ac_c {
class daObjCwall_c : public dBgS_MoveBgActor {
public:
struct chain_s {
public:
/* 80BD6E94 */ ~chain_s();
/* 80BD6ED0 */ chain_s();
J3DModel* mModel;
cXyz mPos;
};
enum Type {
TYPE_0,
TYPE_1,
};
typedef void (daObjCwall_c::*modeFunc)();
/* 80BD6A4C */ void initBaseMtx();
/* 80BD6A88 */ void setBaseMtx();
/* 80BD6AEC */ void Create();
/* 80BD6D08 */ void CreateHeap();
/* 80BD6ED4 */ void create1st();
/* 80BD6F80 */ void Execute(f32 (**)[3][4]);
/* 80BD6AEC */ int Create();
/* 80BD6D08 */ int CreateHeap();
/* 80BD6ED4 */ int create1st();
/* 80BD6F80 */ int Execute(Mtx**);
/* 80BD7288 */ void setTension();
/* 80BD7718 */ void calcSePos();
/* 80BD7788 */ void getChainBasePos(cXyz*);
@@ -40,14 +51,54 @@ public:
/* 80BD8BC8 */ void initClose();
/* 80BD8BF0 */ void modeClose();
/* 80BD935C */ void setPower(f32, s16*);
/* 80BD9414 */ void checkWall();
/* 80BD95A0 */ void checkPullNow();
/* 80BD977C */ void checkPull();
/* 80BD9848 */ void Draw();
/* 80BD9948 */ void Delete();
/* 80BD9414 */ BOOL checkWall();
/* 80BD95A0 */ BOOL checkPullNow();
/* 80BD977C */ BOOL checkPull();
/* 80BD9848 */ int Draw();
/* 80BD9948 */ int Delete();
u8 getArg0() { return fopAcM_GetParamBit(this, 0, 4); }
u8 getType() { return fopAcM_GetParamBit(this, 4, 4); }
u8 getSwbit() { return fopAcM_GetParamBit(this, 8, 8); }
private:
/* 0x568 */ u8 field_0x568[0xf5c - 0x568];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mWallModel;
/* 0x5AC */ dCcD_Stts mStts;
/* 0x5E8 */ dCcD_Cyl mCyl;
/* 0x724 */ dCcD_Sph mSph;
/* 0x85C */ dCcD_Cyl mCyls[4];
/* 0xD4C */ dCcD_Cyl mCyl2;
/* 0xE88 */ J3DModel* mHandleModel;
/* 0xE8C */ chain_s* mChains;
/* 0xE90 */ u8 field_0xe90;
/* 0xE91 */ u8 field_0xe91;
/* 0xE92 */ u8 field_0xe92;
/* 0xE93 */ u8 field_0xe93;
/* 0xE94 */ cXyz field_0xe94[7];
/* 0xEE8*/ f32 field_0xee8[7];
/* 0xF04 */ u8 field_0xf04[7];
/* 0xF0B */ u8 field_0xf0b;
/* 0xF0C */ u8 field_0xf0c;
/* 0xF0D */ u8 field_0xf0d;
/* 0xF0E */ u8 field_0xf0e;
/* 0xF0F */ u8 field_0xf0f;
/* 0xF10 */ u8 field_0xf10;
/* 0xF11 */ u8 mType;
/* 0xF12 */ u8 field_0xf12;
/* 0xF14 */ s16 field_0xf14;
/* 0xF16 */ s16 field_0xf16;
/* 0xF18 */ s16 field_0xf18;
/* 0xF1A */ s16 field_0xf1a;
/* 0xF1C */ s16 field_0xf1c;
/* 0xF20 */ cXyz field_0xf20;
/* 0xF2C */ cXyz field_0xf2c;
/* 0xF38 */ cXyz field_0xf38;
/* 0xF44 */ cXyz field_0xf44;
/* 0xF50 */ f32 field_0xf50;
/* 0xF54 */ f32 field_0xf54;
/* 0xF58 */ u8 field_0xf58;
/* 0xF58 */ u8 field_0xf59;
};
STATIC_ASSERT(sizeof(daObjCwall_c) == 0xf5c);
+30 -9
View File
@@ -1,6 +1,7 @@
#ifndef D_A_OBJ_PDOOR_H
#define D_A_OBJ_PDOOR_H
#include "d/d_bg_s_movebg_actor.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,24 +12,44 @@
* @details
*
*/
class daObjPDoor_c : public fopAc_ac_c {
class daObjPDoor_c : public dBgS_MoveBgActor {
public:
typedef void (daObjPDoor_c::*modeFunc)();
enum Mode {
MODE_WAIT,
MODE_ROTATE,
};
/* 80CA9F9C */ void initBaseMtx();
/* 80CA9FD8 */ void setBaseMtx();
/* 80CAA03C */ void Create();
/* 80CAA14C */ void CreateHeap();
/* 80CAA1BC */ void create1st();
/* 80CAA23C */ void Execute(f32 (**)[3][4]);
/* 80CAA03C */ int Create();
/* 80CAA14C */ int CreateHeap();
/* 80CAA1BC */ int create1st();
/* 80CAA23C */ int Execute(Mtx**);
/* 80CAA290 */ void mode_proc_call();
/* 80CAA31C */ void init_modeWait();
/* 80CAA354 */ void modeWait();
/* 80CAA698 */ void init_modeRotate();
/* 80CAA6B4 */ void modeRotate();
/* 80CAA968 */ void Draw();
/* 80CAAA0C */ void Delete();
/* 80CAA968 */ int Draw();
/* 80CAAA0C */ int Delete();
private:
/* 0x568 */ u8 field_0x568[0x5c4 - 0x568];
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getSwbit2() { return fopAcM_GetParamBit(this, 8, 8); }
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mModel;
/* 0x5AC */ s8 mDoorDirection;
/* 0x5AD */ u8 mMode;
/* 0x5B0 */ int field_0x5b0;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5b6[2];
/* 0x5B8 */ s16 field_0x5b8;
/* 0x5BA */ s16 field_0x5ba;
/* 0x5BC */ s16 field_0x5bc;
/* 0x5C0 */ dBgW_Base::PushPullLabel mPushPullLabel;
};
STATIC_ASSERT(sizeof(daObjPDoor_c) == 0x5c4);
+2 -2
View File
@@ -670,7 +670,7 @@ public:
static f32 getAttentionOffsetY();
static int checkNowWolfEyeUp();
static void forceRestartRoom(int, u32, int);
static void setFmChainPos(fopAc_ac_c*, cXyz*, int);
static BOOL setFmChainPos(fopAc_ac_c*, cXyz*, int);
static void cancelFmChainGrab();
static void setLookPos(cXyz*);
static void setPlayerSe(u32);
@@ -698,7 +698,7 @@ public:
cXyz* getLeftFootPosP() { return &mLeftFootPos; }
BOOL checkCopyRodThrowAfter() const { return checkNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); }
BOOL checkRide() const { return checkHorseRide() || checkBoarRide() || checkSpinnerRide() || checkCanoeRide() || checkBoardRide(); }
const cXyz& getRightHandPos() const { return mRightHandPos; }
cXyz getRightHandPos() const { return mRightHandPos; }
const cXyz getLeftHandPos() const { return mLeftHandPos; }
const cXyz getItemPos() const { return mItemPos; }