mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
d_a_obj_lv4chandelier equivalent (#2590)
This commit is contained in:
@@ -84,11 +84,13 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(e_db_class) == 0x1270);
|
||||
|
||||
class daE_DB_HIO_c {
|
||||
class daE_DB_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 8069AAEC */ daE_DB_HIO_c();
|
||||
/* 806A13D8 */ virtual ~daE_DB_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s8 id;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ f32 flower_size;
|
||||
|
||||
@@ -85,6 +85,8 @@ public:
|
||||
/* 806A226C */ daE_DD_HIO_c();
|
||||
/* 806A6D08 */ virtual ~daE_DD_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* ドドンゴ - Dodongo */
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 basic_size; // 基本サイズ - Basic Size
|
||||
|
||||
@@ -47,11 +47,13 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(obj_key_class) == 0x9b8);
|
||||
|
||||
class daObj_Key_HIO_c {
|
||||
class daObj_Key_HIO_c : public JORReflexible{
|
||||
public:
|
||||
/* 80C3F40C */ daObj_Key_HIO_c();
|
||||
/* 80C40F28 */ virtual ~daObj_Key_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ s8 id;
|
||||
/* 0x8 */ f32 size;
|
||||
/* 0xC */ f32 chain_size;
|
||||
|
||||
@@ -70,11 +70,13 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(obj_keyhole_class) == 0x2CB8);
|
||||
|
||||
class daObj_Keyhole_HIO_c {
|
||||
class daObj_Keyhole_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 80C4124C */ daObj_Keyhole_HIO_c();
|
||||
/* 80C4394C */ virtual ~daObj_Keyhole_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ s8 id;
|
||||
/* 0x8 */ f32 obj_size;
|
||||
};
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef D_A_OBJ_LV4CHANDELIER_H
|
||||
#define D_A_OBJ_LV4CHANDELIER_H
|
||||
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_model.h"
|
||||
|
||||
@@ -12,37 +14,83 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjLv4Chan_c : public fopAc_ac_c {
|
||||
class daObjLv4Chan_c : public dBgS_MoveBgActor, public request_of_phase_process_class {
|
||||
public:
|
||||
struct ChainPos {
|
||||
/* 80C66564 */ ~ChainPos();
|
||||
/* 80C665A0 */ ChainPos();
|
||||
/* 0x00 */ cXyz field_0x0;
|
||||
/* 0x0C */ cXyz field_0xc;
|
||||
/* 0x18 */ cXyz field_0x18;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
};
|
||||
|
||||
/* 80C63360 */ void create1st();
|
||||
/* 80C63360 */ int create1st();
|
||||
/* 80C634CC */ void setMtxChain(daObjLv4Chan_c::ChainPos*, dMdl_obj_c*, int);
|
||||
/* 80C636B4 */ void setMtx();
|
||||
/* 80C639B4 */ void rideActor(fopAc_ac_c*);
|
||||
/* 80C63CFC */ void CreateHeap();
|
||||
/* 80C63FA8 */ void Create();
|
||||
/* 80C63CFC */ int CreateHeap();
|
||||
/* 80C63FA8 */ int Create();
|
||||
/* 80C6449C */ void constraintChain(daObjLv4Chan_c::ChainPos*, int);
|
||||
/* 80C64668 */ void constraintBase();
|
||||
/* 80C647FC */ void calcVec(daObjLv4Chan_c::ChainPos*, int);
|
||||
/* 80C64878 */ void chkGnd();
|
||||
/* 80C648F4 */ void Execute(f32 (**)[3][4]);
|
||||
/* 80C65F04 */ void Draw();
|
||||
/* 80C66114 */ void Delete();
|
||||
/* 80C648F4 */ int Execute(Mtx**);
|
||||
/* 80C65F04 */ int Draw();
|
||||
/* 80C66114 */ int Delete();
|
||||
|
||||
int getArg0() { return fopAcM_GetParamBit(this, 0, 4); }
|
||||
int getAddChain0() { return fopAcM_GetParamBit(this, 4, 4); }
|
||||
int getAddChain1() { return fopAcM_GetParamBit(this, 8, 4); }
|
||||
int getAddChain2() { return fopAcM_GetParamBit(this, 12, 4); }
|
||||
int getSw() { return fopAcM_GetParamBit(this, 16, 8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x24a4 - 0x568];
|
||||
/* 0x05A8 */ Mtx field_0x5a8;
|
||||
/* 0x05D8 */ Mtx field_0x5d8;
|
||||
/* 0x0608 */ J3DModel* mModel;
|
||||
/* 0x060C */ J3DModelData* mChainModelData;
|
||||
/* 0x0610 */ int mChainLengths[3];
|
||||
/* 0x061C */ ChainPos* mChains[3];
|
||||
/* 0x0628 */ int mMdlLengths[3];
|
||||
/* 0x0634 */ dMdl_obj_c* mMdls[3];
|
||||
/* 0x0640 */ dCcD_Stts mStts;
|
||||
/* 0x067C */ dCcD_Sph mSphs1[8];
|
||||
/* 0x103C */ dCcD_Sph mSphs2[8];
|
||||
/* 0x19FC */ dCcD_Sph mSphs3[8];
|
||||
/* 0x23BC */ cXyz field_0x23bc;
|
||||
/* 0x23C8 */ cXyz field_0x23c8;
|
||||
/* 0x23D4 */ int field_0x23d4;
|
||||
/* 0x23D8 */ fopAc_ac_c* field_0x23d8[8];
|
||||
/* 0x23F8 */ fopAc_ac_c* field_0x23f8[8];
|
||||
/* 0x2418 */ int field_0x2418;
|
||||
/* 0x241C */ int field_0x241c;
|
||||
/* 0x2420 */ f32 field_0x2420;
|
||||
/* 0x2424 */ int mShadowId;
|
||||
/* 0x2428 */ dBgS_ObjGndChk mGndChk;
|
||||
/* 0x247C */ f32 field_0x247c;
|
||||
/* 0x2480 */ int mAddChain0;
|
||||
/* 0x2484 */ int field_0x2484;
|
||||
/* 0x2488 */ u8 field_0x2488;
|
||||
/* 0x2489 */ u8 field_0x2489;
|
||||
/* 0x248A */ u8 field_0x248a;
|
||||
/* 0x248B */ u8 field_0x248b;
|
||||
/* 0x248C */ u8 field_0x248c;
|
||||
/* 0x248D */ u8 field_0x248d;
|
||||
/* 0x2490 */ f32 field_0x2490;
|
||||
/* 0x2494 */ f32 field_0x2494;
|
||||
/* 0x2498 */ u8 field_0x2498;
|
||||
/* 0x2499 */ u8 field_0x2499;
|
||||
/* 0x249C */ f32 field_0x249c;
|
||||
/* 0x24A0 */ f32 field_0x24a0;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjLv4Chan_c) == 0x24a4);
|
||||
|
||||
class daObjSwChain_c : public fopAc_ac_c {
|
||||
#ifdef DEBUG
|
||||
class daObjLv4Chan_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
/* 80C665A4 */ void checkTight();
|
||||
daObjLv4Chan_HIO_c();
|
||||
void genMessage(JORMContext*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* D_A_OBJ_LV4CHANDELIER_H */
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#define D_A_OBJ_SWCHAIN_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
@@ -17,6 +19,10 @@ public:
|
||||
public:
|
||||
/* 80CF8B00 */ ~chain_s();
|
||||
/* 80CF8B3C */ chain_s();
|
||||
|
||||
/* 0x00 */ u8 field_0x00[0x34 - 0x00];
|
||||
/* 0x00 */ cXyz field_0x34;
|
||||
/* 0x00 */ u8 field_0x40[0x50 - 0x40];
|
||||
};
|
||||
|
||||
/* 80CF8768 */ void Create();
|
||||
@@ -36,10 +42,49 @@ public:
|
||||
/* 80CFB5E8 */ void _delete();
|
||||
|
||||
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
u8 getChainID() { return fopAcM_GetParamBit(this, 28, 4); }
|
||||
BOOL checkDispEmphasis() { return fopAcM_isSwitch(this, getSwbit()) == FALSE; }
|
||||
bool checkCarry() { return mCarry == 1; }
|
||||
void setRatioForChandelier(f32 ratio) { mRatio = ratio; }
|
||||
|
||||
/* 80C665A4 */ BOOL checkTight() {
|
||||
if (mCarry != 0 && (home.roomNo == 4 || home.roomNo == 6) && field_0xa64 >= field_0xa69 &&
|
||||
field_0xa9c == 0)
|
||||
{
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
chain_s* swChain = &field_0xa74[field_0xa65] - field_0xa64 + 1;
|
||||
cXyz cStack_54;
|
||||
cXyz cStack_60;
|
||||
cStack_54 = swChain->field_0x34;
|
||||
cStack_60 = field_0xa74[field_0xa65].field_0x34;
|
||||
f32 dVar10 = cStack_60.abs(cStack_54);
|
||||
f32 dVar13 = (field_0xa67 - 2) * 35.0f;
|
||||
cXyz local_6c;
|
||||
cXyz cStack_78 = field_0xa74[0].field_0x34 - field_0xa74[field_0xa65].field_0x34;
|
||||
local_6c.x = player->getSpeedF() * cM_ssin(player->current.angle.y);
|
||||
local_6c.z = player->getSpeedF() * cM_scos(player->current.angle.y);
|
||||
if (cStack_78.inprodXZ(local_6c) < 0.0f && dVar10 > dVar13 - 35.0f) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xaa0 - 0x568];
|
||||
/* 0x568 */ u8 field_0x568[0xa62 - 0x568];
|
||||
/* 0xA62 */ u8 mCarry;
|
||||
/* 0xA63 */ u8 field_0xa63;
|
||||
/* 0xA64 */ u8 field_0xa64;
|
||||
/* 0xA65 */ u8 field_0xa65;
|
||||
/* 0xA66 */ u8 field_0xa66;
|
||||
/* 0xA67 */ u8 field_0xa67;
|
||||
/* 0xA68 */ u8 field_0xa68;
|
||||
/* 0xA69 */ u8 field_0xa69;
|
||||
/* 0xA6A */ u8 field_0xa6a[0xa74 - 0xa6a];
|
||||
/* 0xA6A */ chain_s* field_0xa74;
|
||||
/* 0xA6A */ u8 field_0xa78[0xa98 - 0xa78];
|
||||
/* 0xA98 */ f32 mRatio;
|
||||
/* 0xA9C */ u8 field_0xa9c;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjSwChain_c) == 0xaa0);
|
||||
|
||||
Reference in New Issue
Block a user