mirror of https://github.com/zeldaret/tp.git
d_a_obj_gm almost matching (#2750)
* linked some objs * major work * equivalent * almost matching * almost matching * PR cleanup
This commit is contained in:
parent
d6711a18c8
commit
4a5752fe52
|
|
@ -89,6 +89,6 @@ __vt__8cM3dGAab = .data:0x0000018C; // type:object size:0xC scope:global
|
|||
__vt__12dBgS_ObjAcch = .data:0x00000198; // type:object size:0x24 scope:global
|
||||
__vt__14daObj_Gm_HIO_c = .data:0x000001BC; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_460_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
@3661 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x8 scope:global data:byte
|
||||
|
|
|
|||
|
|
@ -1981,7 +1981,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_cho"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_cowdoor"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crope"),
|
||||
ActorRel(NonMatching, "d_a_obj_crvfence"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_crvfence"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crvgate"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crvhahen"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_crvlh_down"),
|
||||
|
|
@ -1995,7 +1995,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_digsnow"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_dmelevator"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_drop"),
|
||||
ActorRel(NonMatching, "d_a_obj_dust"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_dust"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_enemy_create"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_fallobj"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_fan"),
|
||||
|
|
|
|||
|
|
@ -32,10 +32,10 @@ public:
|
|||
inline int create();
|
||||
/* 80BE2A70 */ inline int CreateHeap();
|
||||
|
||||
/* 80BE2AE8 */ int Create();
|
||||
/* 80BE2B30 */ int Execute(Mtx**);
|
||||
/* 80BE2E9C */ int Draw();
|
||||
/* 80BE2F40 */ int Delete();
|
||||
/* 80BE2AE8 */ inline int Create();
|
||||
/* 80BE2B30 */ inline int Execute(Mtx**);
|
||||
/* 80BE2E9C */ inline int Draw();
|
||||
/* 80BE2F40 */ inline int Delete();
|
||||
|
||||
/* 0x5A0 */ f32 mRideOscillationSpeed;
|
||||
/* 0x5A4 */ f32 mRideIntensity;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#ifndef D_A_OBJ_GM_H
|
||||
#define D_A_OBJ_GM_H
|
||||
|
||||
#include "d/actor/d_a_tbox.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
|
@ -13,21 +13,21 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class obj_gm_class : public fopAc_ac_c {
|
||||
*/
|
||||
|
||||
class obj_gm_class {
|
||||
public:
|
||||
/* 0x000 */ fopAc_ac_c actor;
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ u8 field_0x570;
|
||||
/* 0x570 */ u8 mType;
|
||||
/* 0x571 */ u8 field_0x571;
|
||||
/* 0x572 */ u8 field_0x572;
|
||||
/* 0x573 */ u8 field_0x573;
|
||||
/* 0x574 */ J3DModel* field_0x574;
|
||||
/* 0x572 */ u8 mSwBit;
|
||||
/* 0x574 */ J3DModel* mModel;
|
||||
/* 0x578 */ Z2Creature mSound;
|
||||
/* 0x608 */ s16 field_0x608;
|
||||
/* 0x60A */ s16 field_0x60a;
|
||||
/* 0x60C */ s16 field_0x60c;
|
||||
/* 0x60E */ s16 field_0x60e;
|
||||
/* 0x610 */ u8 field_0x610[0x614 - 0x610];
|
||||
/* 0x60A */ s16 mAction;
|
||||
/* 0x60C */ s16 mActionMode;
|
||||
/* 0x60E */ s16 mTimers[2];
|
||||
/* 0x614 */ cXyz field_0x614[2];
|
||||
/* 0x62C */ f32 field_0x62c;
|
||||
/* 0x630 */ f32 field_0x630;
|
||||
|
|
@ -38,51 +38,32 @@ public:
|
|||
/* 0x640 */ s16 field_0x640;
|
||||
/* 0x642 */ s16 field_0x642;
|
||||
/* 0x644 */ s16 field_0x644;
|
||||
/* 0x646 */ u8 field_0x646[0x648 - 0x646];
|
||||
/* 0x648 */ f32 field_0x648;
|
||||
/* 0x64C */ s16 field_0x64c[4];
|
||||
/* 0x64C */ s16 field_0x64c[2];
|
||||
/* 0x650 */ void* field_0x650;
|
||||
/* 0x654 */ cXyz field_0x654[2];
|
||||
/* 0x66C */ cXyz field_0x66c[2];
|
||||
/* 0x684 */ cXyz field_0x684[6];
|
||||
/* 0x6CC */ cXyz field_0x6cc[6];
|
||||
/* 0x714 */ u8 field_0x714[0x720 - 0x714];
|
||||
/* 0x714 */ cXyz field_0x714;
|
||||
/* 0x720 */ s16 field_0x720;
|
||||
/* 0x722 */ s16 field_0x722;
|
||||
/* 0x724 */ u8 field_0x724[0x726 - 0x724];
|
||||
/* 0x726 */ u8 field_0x726;
|
||||
/* 0x727 */ u8 field_0x727;
|
||||
/* 0x726 */ s8 field_0x726;
|
||||
/* 0x728 */ f32 field_0x728;
|
||||
/* 0x72C */ u8 field_0x72c;
|
||||
/* 0x72D */ u8 field_0x72d[0x730 - 0x72d];
|
||||
/* 0x72C */ s8 field_0x72c;
|
||||
/* 0x730 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x770 */ dBgS_ObjAcch mObjAcch;
|
||||
/* 0x770 */ dBgS_ObjAcch mBgc;
|
||||
/* 0x948 */ s16 field_0x948;
|
||||
/* 0x94A */ u8 field_0x94a[0x94c - 0x94a];
|
||||
/* 0x94C */ dCcD_Stts mStts;
|
||||
/* 0x988 */ dCcD_Sph field_0x988;
|
||||
/* 0x988 */ dCcD_Sph mSph;
|
||||
/* 0xAC0 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xAE4 */ u8 field_0xae4;
|
||||
/* 0xAE5 */ u8 field_0xae5[0xae8 - 0xae5];
|
||||
/* 0xAE8 */ u32 field_0xae8;
|
||||
/* 0xAEC */ u32 field_0xaec;
|
||||
/* 0xAF0 */ u8 field_0xaf0;
|
||||
/* 0xAF1 */ u8 field_0xaf1[0xaf4 - 0xaf1];
|
||||
|
||||
/* 0xAF0 */ bool mIsFirstSpawn;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(obj_gm_class) == 0xaf4);
|
||||
|
||||
class daObj_Gm_HIO_c {
|
||||
public:
|
||||
/* 80BFB14C */ daObj_Gm_HIO_c();
|
||||
/* 80BFD284 */ ~daObj_Gm_HIO_c();
|
||||
};
|
||||
|
||||
struct daObj {
|
||||
public:
|
||||
/* 800372A0 */ void make_eff_break_gm_kotubo(fopAc_ac_c*);
|
||||
/* 80037330 */ void make_eff_break_gm_ootubo(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_OBJ_GM_H */
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef D_A_TBOX_H
|
||||
#define D_A_TBOX_H
|
||||
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
|
|
@ -141,6 +142,10 @@ public:
|
|||
u16 flagCheck(u16 i_flag) { return mFlags & i_flag; }
|
||||
void setAction(daTbox_actionFn i_actionFn) { mpActionFn = i_actionFn; }
|
||||
void action() { (this->*mpActionFn)(); }
|
||||
void setDrawMtx(Mtx i_mtx) {
|
||||
MTXCopy(i_mtx, mDrawMtx);
|
||||
field_0x9fc = 1;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x718 */ u8 field_0x718;
|
||||
|
|
@ -187,7 +192,7 @@ private:
|
|||
/* 0x9F8 */ u32 mOpenSeId;
|
||||
/* 0x9FC */ u8 field_0x9fc;
|
||||
/* 0x9FD */ u8 field_0x9fd;
|
||||
/* 0xA00 */ Mtx field_0xa00;
|
||||
/* 0xA00 */ Mtx mDrawMtx;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daTbox_c) == 0xA30);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -72,9 +72,9 @@ static void cut_line_calc(obj_ito_class* i_this, ito_s* param_2, int param_3) {
|
|||
cXyz sp11c(0.0f, 0.0f, 0.0f);
|
||||
cXyz sp128;
|
||||
|
||||
if (param_2 == &i_this->field_0x103c && actor_p != NULL && actor_p->field_0x60a == 2) {
|
||||
sp11c = *pos - actor_p->current.pos;
|
||||
sp11c *= (XREG_F(2) + 0.0018f) * actor_p->speedF;
|
||||
if (param_2 == &i_this->field_0x103c && actor_p != NULL && actor_p->mAction == 2) {
|
||||
sp11c = *pos - actor_p->actor.current.pos;
|
||||
sp11c *= (XREG_F(2) + 0.0018f) * actor_p->actor.speedF;
|
||||
}
|
||||
|
||||
cXyz sp134;
|
||||
|
|
@ -89,7 +89,7 @@ static void cut_line_calc(obj_ito_class* i_this, ito_s* param_2, int param_3) {
|
|||
cXyz sp140;
|
||||
sp104.y = sp104.z = 0.0f;
|
||||
|
||||
if (actor_p != NULL && actor_p->field_0x60a == 1) {
|
||||
if (actor_p != NULL && actor_p->mAction == 1) {
|
||||
bVar1 = true;
|
||||
cMtx_YrotS(*calc_mtx, actor_p->field_0x64c[0] + param_3 * (hREG_S(3) + 18000));
|
||||
sp104.x = hREG_F(8) + 2.0f;
|
||||
|
|
@ -248,7 +248,7 @@ static void action(obj_ito_class* i_this) {
|
|||
spe8 = i_this->field_0x618 - a_this->current.pos;
|
||||
i_this->field_0x624 = a_this->current.pos + (spe8 * 0.5f);
|
||||
|
||||
if (actor_p->field_0x60a == 0) {
|
||||
if (actor_p->mAction == 0) {
|
||||
spe8 = actor_p->field_0x654[i_this->field_0x570] - actor_p->field_0x66c[i_this->field_0x570];
|
||||
i_this->field_0x624 += spe8 * (TREG_F(5) + 0.25f);
|
||||
}
|
||||
|
|
@ -342,14 +342,14 @@ static void action(obj_ito_class* i_this) {
|
|||
|
||||
if (i_this->field_0x678[i].ChkCoHit()) {
|
||||
fopAc_ac_c* var_r25 = i_this->field_0x678[i].GetCoHitObj()->GetAc();
|
||||
if (actor_p != NULL && var_r25 != actor_p) {
|
||||
if (actor_p != NULL && var_r25 != &actor_p->actor) {
|
||||
actor_p->field_0xae4 |= 0x4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (actor_p != NULL && actor_p->field_0x567 != 0) {
|
||||
actor_p->field_0x567 = 0;
|
||||
if (actor_p != NULL && actor_p->actor.field_0x567 != 0) {
|
||||
actor_p->actor.field_0x567 = 0;
|
||||
actor_p->field_0xae4 |= 2;
|
||||
cut_set(i_this, 100);
|
||||
}
|
||||
|
|
@ -403,7 +403,7 @@ static void action(obj_ito_class* i_this) {
|
|||
}
|
||||
}
|
||||
|
||||
if (i_this->field_0x570 == 0 && actor_p->field_0x60a == 2 && i_this->field_0x1038 == 0) {
|
||||
if (i_this->field_0x570 == 0 && actor_p->mAction == 2 && i_this->field_0x1038 == 0) {
|
||||
cut_set(i_this, 100);
|
||||
}
|
||||
}
|
||||
|
|
@ -430,7 +430,7 @@ static void action(obj_ito_class* i_this) {
|
|||
i_this->field_0x1038 = 2;
|
||||
}
|
||||
|
||||
a_this->current.angle = actor_p->current.angle;
|
||||
a_this->current.angle = actor_p->actor.current.angle;
|
||||
cMtx_YrotS(*calc_mtx, a_this->current.angle.y);
|
||||
cMtx_XrotM(*calc_mtx, a_this->current.angle.x);
|
||||
|
||||
|
|
|
|||
|
|
@ -1753,7 +1753,7 @@ void daTbox_c::setBaseMtx() {
|
|||
mDoMtx_stack_c::transM(0.0f, -50.0f, 0.0f);
|
||||
|
||||
if (field_0x9fc != 0) {
|
||||
mpModel->setBaseTRMtx(field_0xa00);
|
||||
mpModel->setBaseTRMtx(mDrawMtx);
|
||||
} else {
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue