Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions config/GZ2E01/rels/d_a_obj_mie/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ l_bmdData = .data:0x00000000; // type:object size:0x8 scope:global
l_resNameList = .data:0x00000008; // type:object size:0x8 scope:global
l_ccDCyl = .data:0x00000010; // type:object size:0x44 scope:global
emttrId$4602 = .data:0x00000054; // type:object size:0x8 scope:local
daObj_Mie_MethodTable = .data:0x0000005C; // type:object size:0x20 scope:global
daObj_Mie_MethodTable = .data:0x0000005C; // type:object size:0x20 scope:local
g_profile_OBJ_MIE = .data:0x0000007C; // type:object size:0x30 scope:global
__vt__8cM3dGPla = .data:0x000000AC; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x000000B8; // type:object size:0x24 scope:global
Expand Down Expand Up @@ -108,8 +108,9 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
@3822 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte
@4599 = .bss:0x00000058; // type:object size:0xC scope:local
init$2448 = .bss:0x00000064; // type:object size:0x1 scope:local
scl$4598 = .bss:0x00000068; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global
Expand Down
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -2068,7 +2068,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(Equivalent, "d_a_obj_master_sword"), #weak function and vtable order
ActorRel(NonMatching, "d_a_obj_mato"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mhole"),
ActorRel(NonMatching, "d_a_obj_mie"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mie"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mirror_6pole"),
ActorRel(NonMatching, "d_a_obj_mirror_chain"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mirror_sand"),
Expand Down
8 changes: 6 additions & 2 deletions include/d/actor/d_a_npc_pouya.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class daNpc_Pouya_c : public fopAc_ac_c {
/* 80AAE7DC */ void Draw();
/* 80AAE870 */ void createHeapCallBack(fopAc_ac_c*);
/* 80AAE890 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80AAE8E8 */ void getType();
/* 80AAE8E8 */ u8 getType();
/* 80AAE94C */ void isDelete();
/* 80AAE9D8 */ void reset();
/* 80AAEBCC */ void ctrlSubFaceMotion(int);
Expand Down Expand Up @@ -57,11 +57,15 @@ class daNpc_Pouya_c : public fopAc_ac_c {
/* 80AB1F74 */ void checkChangeJoint(int);
/* 80AB1F84 */ void checkRemoveJoint(int);

MtxP getHeadMtx() { return mpMorf->getModel()->getAnmMtx(4); }

static void* mCutNameList[3];
static u8 mCutList[36];

private:
/* 0x568 */ u8 field_0x568[0xfd4 - 0x568];
/* 0x568 */ u8 field_0x568[0x578 - 0x568];
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
/* 0x57C */ u8 field_0x57c[0xfd4 - 0x57c];
};

STATIC_ASSERT(sizeof(daNpc_Pouya_c) == 0xfd4);
Expand Down
128 changes: 108 additions & 20 deletions include/d/actor/d_a_obj_mie.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,46 @@
#ifndef D_A_OBJ_MIE_H
#define D_A_OBJ_MIE_H

#include "SSystem/SComponent/c_math.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"

struct daObj_Mie_HIOParam {
/* 0x00 */ f32 focus_offset;
/* 0x04 */ f32 gravity;
/* 0x08 */ f32 scale;
/* 0x0C */ f32 real_shadow_size;
/* 0x10 */ f32 weight;
/* 0x14 */ f32 height;
/* 0x18 */ f32 knee_length;
/* 0x1C */ f32 width;
/* 0x20 */ f32 firing_rate;
/* 0x24 */ f32 launch_angle;
/* 0x28 */ f32 floating_offset;
};

struct daObj_Mie_Param_c {
virtual ~daObj_Mie_Param_c() {}
static const daObj_Mie_HIOParam m;
};

class daObj_Mie_HIO_c
#ifdef DEBUG
: public mDoHIO_entry_c
#endif
{
public:
daObj_Mie_HIO_c() {
mParams = daObj_Mie_Param_c::m;
}

void genMessage(JORMContext*);
/* 80C95A40 */ virtual ~daObj_Mie_HIO_c() {}

daObj_Mie_HIOParam mParams;
};

/**
* @ingroup actors-objects
* @class daObj_Mie_c
Expand All @@ -12,35 +50,85 @@
*
*/
class daObj_Mie_c : public fopAc_ac_c {
private:
/* 0x568 */ daObj_Mie_HIO_c* mHIO;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* mModel;
/* 0x578 */ dBgS_ObjAcch mAcch;
/* 0x750 */ dCcD_Stts mStts;
/* 0x78C */ dBgS_AcchCir mAcchCir;
/* 0x7CC */ cBgS_GndChk mGndChk;
/* 0x808 */ dCcD_Cyl mCyl;
/* 0x944 */ cM3dGLin mLine;
/* 0x960 */ dBgS_LinChk mLinChk;
/* 0x9D0 */ u8 mType;
/* 0x9D4 */ cXyz field_0x9d4;
/* 0x9E0 */ cXyz field_0x9e0;
/* 0x9EC */ csXyz field_0x9ec;
/* 0x9F4 */ int field_0x9f4;
/* 0x9F8 */ int field_0x9f8;
/* 0x9FC */ f32 field_0x9fc;
/* 0xA00 */ f32 field_0xa00;
/* 0xA04 */ f32 field_0xa04;
/* 0xA08 */ f32 field_0xa08;
/* 0xA0C */ f32 field_0xa0c;
/* 0xA10 */ s16 field_0xa10;
/* 0xA12 */ s16 field_0xa12;
/* 0xA14 */ s16 field_0xa14;
/* 0xA16 */ s16 field_0xa16;
/* 0xA18 */ s16 field_0xa18;
/* 0xA18 */ int field_0xa1c;
/* 0xA18 */ u32 field_0xa20[4];
/* 0xA38 */ u32 field_0xa30;
/* 0xA38 */ u32 field_0xa34;
/* 0xA38 */ u32 field_0xa38;
/* 0xA3C */ u32 field_0xa3c;
/* 0xA40 */ u8 field_0xa40;
/* 0xA41 */ u8 field_0xa41;
/* 0xA42 */ u8 field_0xa42;
/* 0xA43 */ u8 field_0xa43;
/* 0xA44 */ u8 field_0xa44;
/* 0xA45 */ u8 field_0xa45;
/* 0xA46 */ u8 field_0xa46;
/* 0xA47 */ u8 field_0xa47;
/* 0xA48 */ int field_0xa48;
public:
/* 80C93FCC */ ~daObj_Mie_c();
/* 80C941C8 */ void create();
/* 80C945E8 */ void CreateHeap();
/* 80C94674 */ void Delete();
/* 80C946A8 */ void Execute();
/* 80C95140 */ void Draw();
/* 80C952D8 */ void createHeapCallBack(fopAc_ac_c*);
/* 80C952F8 */ void srchPouyaa(void*, void*);
enum Type {
TYPE_0,
};

/* 80C93FCC */ virtual ~daObj_Mie_c();
/* 80C941C8 */ int create();
/* 80C945E8 */ int CreateHeap();
/* 80C94674 */ int Delete();
/* 80C946A8 */ int Execute();
/* 80C95140 */ int Draw();
/* 80C952D8 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80C952F8 */ static void* srchPouyaa(void*, void*);
/* 80C9536C */ void setEnvTevColor();
/* 80C953C8 */ void setRoomNo();
/* 80C9540C */ void setMtx();
/* 80C954BC */ void calcRollAngle(s16, int);
/* 80C9555C */ void getWallAngle(s16, s16*);
/* 80C954BC */ s16 calcRollAngle(s16, int);
/* 80C9555C */ int getWallAngle(s16, s16*);
/* 80C956EC */ void setSmokePrtcl();
/* 80C95768 */ void setWaterPrtcl();
/* 80C95890 */ void setHamonPrtcl();
private:
/* 0x568 */ u8 field_0x568[0xa50 - 0x568];
};

STATIC_ASSERT(sizeof(daObj_Mie_c) == 0xa50);

class daObj_Mie_Param_c {
public:
/* 80C95A40 */ ~daObj_Mie_Param_c();

static u8 const m[44];
u8 getType() { return TYPE_0; }
void popup(f32 param_1, f32 param_2, cXyz* param_3) {
if (param_3 != NULL) {
current.pos = *param_3;
home.pos = current.pos;
}
s16 sVar3 = cM_deg2s(param_2);
speed.setall(0.0f);
speed.y = param_1 * cM_ssin(sVar3);
speedF = param_1 * cM_scos(sVar3);
field_0xa14 = 0x4000;
field_0xa44 = 1;
}
};

STATIC_ASSERT(sizeof(daObj_Mie_c) == 0xa50);

#endif /* D_A_OBJ_MIE_H */
2 changes: 1 addition & 1 deletion src/d/actor/d_a_npc_pouya.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1046,7 +1046,7 @@ void daNpc_Pouya_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
}

/* 80AAE8E8-80AAE94C 000C28 0064+00 1/1 0/0 1/1 .text getType__13daNpc_Pouya_cFv */
void daNpc_Pouya_c::getType() {
u8 daNpc_Pouya_c::getType() {
// NONMATCHING
}

Expand Down
Loading