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
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1788,7 +1788,7 @@ def MatchingFor(*versions) -> bool:
ActorRel(NonMatching, "d_a_npc_grm"),
ActorRel(Equivalent, "d_a_npc_grmc"), # weak func order
ActorRel(NonMatching, "d_a_npc_gro"),
ActorRel(NonMatching, "d_a_npc_grr"),
ActorRel(Equivalent, "d_a_npc_grr", extra_cflags=[DANPCF_C_HACK]), # weak func order
ActorRel(NonMatching, "d_a_npc_grs"),
ActorRel(NonMatching, "d_a_npc_grz"),
ActorRel(NonMatching, "d_a_npc_guard"),
Expand Down
107 changes: 70 additions & 37 deletions include/d/actor/d_a_npc_grr.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,64 +10,97 @@
*
* @details
*
*/
class daNpc_grR_c : public fopAc_ac_c {
*/

struct daNpc_grR_HIOParam {
/* 0x0 */ daNpcF_HIOParam common;
};

class daNpc_grR_HIO_c
#ifdef DEBUG
: public mDoHIO_entry_c
#endif
{
/* 0x8 */ daNpc_grR_HIOParam param;
};

class daNpc_grR_Param_c {
public:
/* 809E386C */ virtual ~daNpc_grR_Param_c() {}

static daNpc_grR_HIOParam const m;
};

class daNpc_grR_c : public daNpcF_c {
public:
typedef int (daNpc_grR_c::*cutFunc)(int);
typedef int (daNpc_grR_c::*actionFunc)(void*);
/* 809DF8CC */ daNpc_grR_c();
/* 809DFAE0 */ ~daNpc_grR_c();
/* 809DFCE0 */ void create();
/* 809DFFB8 */ void CreateHeap();
/* 809E03FC */ void Delete();
/* 809E0430 */ void Execute();
/* 809E0450 */ void Draw();
/* 809E04E0 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 809E0714 */ void createHeapCallBack(fopAc_ac_c*);
/* 809E0734 */ void ctrlJointCallBack(J3DJoint*, int);
/* 809DFCE0 */ cPhs__Step create();
/* 809DFFB8 */ int CreateHeap();
/* 809E03FC */ int Delete();
/* 809E0430 */ int Execute();
/* 809E0450 */ int Draw();
/* 809E04E0 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 809E0714 */ static int createHeapCallBack(fopAc_ac_c*);
/* 809E0734 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 809E0780 */ void setParam();
/* 809E08FC */ void main();
/* 809E0A7C */ void ctrlBtk();
/* 809E08FC */ BOOL main();
/* 809E0A7C */ BOOL ctrlBtk();
/* 809E0B5C */ void setAttnPos();
/* 809E105C */ void setExpressionAnm(int, bool);
/* 809E1260 */ void setExpressionBtp(int);
/* 809E105C */ bool setExpressionAnm(int, bool);
/* 809E1260 */ bool setExpressionBtp(int);
/* 809E138C */ void setExpression(int, f32);
/* 809E13B8 */ bool setMotionAnm(int, f32);
/* 809E13B8 */ void setMotionAnm(int, f32);
/* 809E1548 */ void setMotion(int, f32, int);
/* 809E158C */ bool drawDbgInfo();
/* 809E158C */ BOOL drawDbgInfo();
/* 809E1594 */ void drawOtherMdls();
/* 809E1598 */ void getTypeFromParam();
/* 809E15E4 */ void isDelete();
/* 809E1598 */ u8 getTypeFromParam();
/* 809E15E4 */ BOOL isDelete();
/* 809E16CC */ void reset();
/* 809E18A4 */ void playExpression();
/* 809E1B28 */ void playMotion();
/* 809E1F10 */ void chkAction(int (daNpc_grR_c::*)(void*));
/* 809E1F3C */ void setAction(int (daNpc_grR_c::*)(void*));
/* 809E1FE4 */ void selectAction();
/* 809E1F10 */ BOOL chkAction(actionFunc);
/* 809E1F3C */ BOOL setAction(actionFunc);
/* 809E1FE4 */ BOOL selectAction();
/* 809E2088 */ void doNormalAction(int);
/* 809E219C */ void doEvent();
/* 809E219C */ BOOL doEvent();
/* 809E2480 */ void setLookMode(int);
/* 809E24A4 */ void lookat();
/* 809E272C */ void setExpressionTalkAfter();
/* 809E27CC */ void wait(void*);
/* 809E29B8 */ void waitMaro(void*);
/* 809E2B48 */ void talk(void*);
/* 809E2E84 */ void test(void*);
/* 809E27CC */ int wait(void*);
/* 809E29B8 */ int waitMaro(void*);
/* 809E2B48 */ int talk(void*);
/* 809E2E84 */ int test(void*);
/* 809E3868 */ void adjustShapeAngle();

static void* mEvtCutNameList;
static u8 mEvtCutList[12];
static char* mEvtCutNameList;
static cutFunc mEvtCutList[1];

private:
/* 0x568 */ u8 field_0x568[0xe20 - 0x568];
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
/* 0xBDC */ daNpcF_Lookat_c mLookat;
/* 0xC78 */ daNpcF_ActorMngr_c mActorMngr[2];
/* 0xC88 */ daNpc_grR_HIO_c* mHIO;
/* 0xC8C */ dCcD_Cyl mCyl;
/* 0xDC8 */ actionFunc mNextAction;
/* 0xDD4 */ actionFunc mAction;
/* 0xDE0 */ request_of_phase_process_class mPhases[3];
/* 0xDF8 */ int field_0xdf8;
/* 0xDFC */ int field_0xdfc;
/* 0xE00 */ int field_0xe00;
/* 0xE04 */ int field_0xe04;
/* 0xE08 */ int mFlowID;
/* 0xE0C */ s16 mLookMode;
/* 0xE0E */ u16 mMode;
/* 0xE10 */ u8 mType;
/* 0xE14 */ fpc_ProcID mItemID;
/* 0xE18 */ bool field_0xe18;
/* 0xE1C */ int mAnm;
};

STATIC_ASSERT(sizeof(daNpc_grR_c) == 0xe20);

class daNpc_grR_Param_c {
public:
/* 809E386C */ ~daNpc_grR_Param_c();

static u8 const m[108];
};


#endif /* D_A_NPC_GRR_H */
3 changes: 1 addition & 2 deletions src/d/actor/d_a_npc_grc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,7 @@ u8 daNpc_grC_c::getTypeFromParam() {
/* 809CCF38-809CCFBC 001B58 0084+00 1/1 0/0 0/0 .text isDelete__11daNpc_grC_cFv */
BOOL daNpc_grC_c::isDelete() {
if (mType == TYPE_6 || mType == TYPE_0 || mType == TYPE_TWILIGHT || mType == TYPE_SPA &&
/*dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
daNpcF_chkEvtBit(64) ||
mType == TYPE_3 || mType == TYPE_BUYER || mType == TYPE_5) {
return FALSE;
Expand Down Expand Up @@ -1243,7 +1243,6 @@ void daNpc_grC_c::lookat() {
mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f,
head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos);
mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE);

}

/* 809CDFFC-809CE12C 002C1C 0130+00 3/3 0/0 0/0 .text chkFindPlayer__11daNpc_grC_cFv */
Expand Down
Loading