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
48 changes: 6 additions & 42 deletions include/d/actor/d_a_npc_maro.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,52 +179,16 @@ class daNpc_Maro_c : public dShopSystem_c {

STATIC_ASSERT(sizeof(daNpc_Maro_c) == 0x1140);

struct daNpc_Maro_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ u32 field_0x8c;
};

class daNpc_Maro_Param_c {
public:
/* 805649B0 */ virtual ~daNpc_Maro_Param_c() {}

struct Data {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ u32 field_0x54;
/* 0x58 */ u32 field_0x58;
/* 0x5C */ u32 field_0x5c;
/* 0x60 */ u32 field_0x60;
/* 0x64 */ u32 field_0x64;
/* 0x68 */ u32 field_0x68;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ f32 field_0x70;
/* 0x74 */ f32 field_0x74;
/* 0x78 */ f32 field_0x78;
/* 0x7C */ f32 field_0x7c;
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
/* 0x8C */ u32 field_0x8c;
};

static const Data m;
static const daNpc_Maro_HIOParam m;
};


Expand Down
84 changes: 45 additions & 39 deletions src/d/actor/d_a_npc_maro.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,34 +187,40 @@ daNpc_Maro_c::~daNpc_Maro_c() {

/* ############################################################################################## */
/* 80564BAC-80564C3C 000000 0090+00 15/15 0/0 0/0 .rodata m__18daNpc_Maro_Param_c */
daNpc_Maro_Param_c::Data const daNpc_Maro_Param_c::m = {
const daNpc_Maro_HIOParam daNpc_Maro_Param_c::m = {
100.0f,
-3.0f,
1.0f,
400.0f,
/* 0x10 */ 255.0f,
255.0f,
80.0f,
35.0f,
30.0f,
/* 0x20 */ 0.0f,
0.0f,
0.0f,
10.0f,
-10.0f,
/* 0x30 */ 30.0f,
30.0f,
-10.0f,
30.0f,
-30.0f,
/* 0x40 */ 0.6f,
0.6f,
12.0f,
3, 6,
5, 6,
3,
6,
5,
6,
110.0f,
0x00000000,
0x00000000,
0x00000000,
0x003C0008,
0x00000000,
0x00000000,
0.0f,
0.0f,
0.0f,
60,
8,
0,
0,
0,
0,
0,
4.0f,
-15.0f,
0.0f,
Expand Down Expand Up @@ -264,7 +270,7 @@ int daNpc_Maro_c::create() {
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
&mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this),
fopAcM_GetShapeAngle_p(this));
mCcStts.Init(daNpc_Maro_Param_c::m.field_0x10, 0, this);
mCcStts.Init(daNpc_Maro_Param_c::m.common.weight, 0, this);
mCyl1.Set(mCcDCyl);
mCyl1.SetStts(&mCcStts);
mCyl1.SetTgHitCallback(tgHitCallBack);
Expand Down Expand Up @@ -634,10 +640,10 @@ void daNpc_Maro_c::setParam() {

srchActors();
u32 uVar7 = 10;
s16 sVar10 = daNpc_Maro_Param_c::m.field_0x48;
s16 sVar9 = daNpc_Maro_Param_c::m.field_0x4a;
s16 sVar8 = daNpc_Maro_Param_c::m.field_0x4c;
s16 sVar7 = daNpc_Maro_Param_c::m.field_0x4e;
s16 sVar10 = daNpc_Maro_Param_c::m.common.talk_distance;
s16 sVar9 = daNpc_Maro_Param_c::m.common.talk_angle;
s16 sVar8 = daNpc_Maro_Param_c::m.common.attention_distance;
s16 sVar7 = daNpc_Maro_Param_c::m.common.attention_angle;
if (&daNpc_Maro_c::swdTutorial == field_0x110c) {
sVar10 = 11;
sVar9 = 6;
Expand Down Expand Up @@ -677,18 +683,18 @@ void daNpc_Maro_c::setParam() {
attention_info.distances[3] = daNpcT_getDistTableIdx(sVar10, sVar9);

attention_info.flags = uVar7;
scale.set(daNpc_Maro_Param_c::m.field_0x08, daNpc_Maro_Param_c::m.field_0x08,
daNpc_Maro_Param_c::m.field_0x08);
mCcStts.SetWeight(daNpc_Maro_Param_c::m.field_0x10);
mCylH = daNpc_Maro_Param_c::m.field_0x14;
mWallR = daNpc_Maro_Param_c::m.field_0x1c;
mAttnFovY = daNpc_Maro_Param_c::m.field_0x50;
scale.set(daNpc_Maro_Param_c::m.common.scale, daNpc_Maro_Param_c::m.common.scale,
daNpc_Maro_Param_c::m.common.scale);
mCcStts.SetWeight(daNpc_Maro_Param_c::m.common.weight);
mCylH = daNpc_Maro_Param_c::m.common.height;
mWallR = daNpc_Maro_Param_c::m.common.width;
mAttnFovY = daNpc_Maro_Param_c::m.common.fov;
mAcchCir.SetWallR(mWallR);
mAcchCir.SetWallH(daNpc_Maro_Param_c::m.field_0x18);
field_0xde8 = daNpc_Maro_Param_c::m.field_0x0c;
field_0xa80 = daNpc_Maro_Param_c::m.field_0x6c;
mMorfFrames = daNpc_Maro_Param_c::m.field_0x44;
gravity = daNpc_Maro_Param_c::m.field_0x04;
mAcchCir.SetWallH(daNpc_Maro_Param_c::m.common.knee_length);
field_0xde8 = daNpc_Maro_Param_c::m.common.real_shadow_size;
field_0xa80 = daNpc_Maro_Param_c::m.common.expression_morf_frame;
mMorfFrames = daNpc_Maro_Param_c::m.common.morf_frame;
gravity = daNpc_Maro_Param_c::m.common.gravity;
}

/* 8055CB14-8055CC9C 001674 0188+00 1/0 0/0 0/0 .text checkChangeEvt__12daNpc_Maro_cFv */
Expand Down Expand Up @@ -1015,19 +1021,19 @@ void daNpc_Maro_c::setAttnPos() {
f32 dVar8 = cM_s2rad(mCurAngle.y - field_0xd7e.y);
mJntAnm.setParam(
this, mpMorf[0]->getModel(), &eyeOffset, getBackboneJointNo(), getNeckJointNo(),
getHeadJointNo(), daNpc_Maro_Param_c::m.field_0x24, daNpc_Maro_Param_c::m.field_0x20,
daNpc_Maro_Param_c::m.field_0x2c, daNpc_Maro_Param_c::m.field_0x28,
daNpc_Maro_Param_c::m.field_0x34, daNpc_Maro_Param_c::m.field_0x30,
daNpc_Maro_Param_c::m.field_0x3c, daNpc_Maro_Param_c::m.field_0x38,
daNpc_Maro_Param_c::m.field_0x40, 0.0f, NULL);
getHeadJointNo(), daNpc_Maro_Param_c::m.common.body_angleX_min, daNpc_Maro_Param_c::m.common.body_angleX_max,
daNpc_Maro_Param_c::m.common.body_angleY_min, daNpc_Maro_Param_c::m.common.body_angleY_max,
daNpc_Maro_Param_c::m.common.head_angleX_min, daNpc_Maro_Param_c::m.common.head_angleX_max,
daNpc_Maro_Param_c::m.common.head_angleY_min, daNpc_Maro_Param_c::m.common.head_angleY_max,
daNpc_Maro_Param_c::m.common.neck_rotation_ratio, 0.0f, NULL);
mJntAnm.calcJntRad(0.2f, 1.0f, (float)dVar8);
setMtx();
mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo()));
mDoMtx_stack_c::multVec(&eyeOffset, &eyePos);
mJntAnm.setEyeAngleX(eyePos, 1.0f, 0);
mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0);
eyeOffset.set(0.0f, 0.0f, 0.0f);
eyeOffset.y = daNpc_Maro_Param_c::m.field_0x00;
eyeOffset.y = daNpc_Maro_Param_c::m.common.attention_offset;
mDoMtx_stack_c::YrotS(mCurAngle.y);
mDoMtx_stack_c::multVec(&eyeOffset, &eyeOffset);
attention_info.position = current.pos + eyeOffset;
Expand Down Expand Up @@ -2936,10 +2942,10 @@ int daNpc_Maro_c::wait(void* param_0) {
actor_p = (daNpc_Len_c*)mActorMngr[8].getActorP();
if (actor_p != NULL &&
((daNpc_Len_c*) actor_p)->checkStartDemo13StbEvt(
this, daNpc_Maro_Param_c::m.field_0x70, daNpc_Maro_Param_c::m.field_0x74,
daNpc_Maro_Param_c::m.field_0x78, daNpc_Maro_Param_c::m.field_0x7c,
daNpc_Maro_Param_c::m.field_0x80, daNpc_Maro_Param_c::m.field_0x84,
daNpc_Maro_Param_c::m.field_0x88))
this, daNpc_Maro_Param_c::m.common.box_min_x, daNpc_Maro_Param_c::m.common.box_min_y,
daNpc_Maro_Param_c::m.common.box_min_z, daNpc_Maro_Param_c::m.common.box_max_x,
daNpc_Maro_Param_c::m.common.box_max_y, daNpc_Maro_Param_c::m.common.box_max_z,
daNpc_Maro_Param_c::m.common.box_offset))
{
mEvtNo = 7;
field_0x1133 = 1;
Expand Down
Loading