mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-18 04:48:21 -04:00
d_a_obj_item done (#2150)
* d_a_obj_item 99% done * item cleanup * remove asm * add actor attention dist type enum * change dist_entry names slightly
This commit is contained in:
@@ -4,13 +4,52 @@
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "d/a/d_a_itembase.h"
|
||||
#include "d/particle/d_particle.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
|
||||
class daItem_c;
|
||||
typedef void (daItem_c::*procFunc)();
|
||||
|
||||
class daItem_c : public daItemBase_c {
|
||||
public:
|
||||
daItem_c() : field_0x998(0, 0) {}
|
||||
enum Type_e {
|
||||
TYPE_LAUNCH_e,
|
||||
TYPE_FIXED_PLACE_e,
|
||||
TYPE_UNK2_e,
|
||||
TYPE_WAIT_e,
|
||||
TYPE_SIMPLE_GET_e,
|
||||
TYPE_BOOM_HIT_e,
|
||||
TYPE_LAUNCH_NO_RND_e,
|
||||
TYPE_FORCE_GET_e,
|
||||
TYPE_LAUNCH_SMALL_e,
|
||||
TYPE_LAUNCH_FROM_PLAYER_e,
|
||||
};
|
||||
|
||||
enum Flag_e {
|
||||
FLAG_UNK_2_e = (1 << 1),
|
||||
FLAG_NO_MOVE_e = (1 << 2),
|
||||
FLAG_NO_TIMER_e = (1 << 3),
|
||||
FLAG_INIT_GET_ITEM_e = (1 << 4),
|
||||
FLAG_DELETE_ITEM_e = (1 << 5),
|
||||
};
|
||||
|
||||
enum Mode_e {
|
||||
MODE_WAIT_e,
|
||||
MODE_WATER_e,
|
||||
};
|
||||
|
||||
enum Status_e {
|
||||
STATUS_NORMAL_e,
|
||||
STATUS_ENEMY_CARRY_e,
|
||||
STATUS_SIMPLE_GET_DEMO_e,
|
||||
STATUS_WAIT_GET_DEMO_EVENT_e,
|
||||
STATUS_GET_DEMO_EVENT_e,
|
||||
STATUS_BOOMERANG_CARRY_e,
|
||||
STATUS_SW_ON_WAIT_e,
|
||||
STATUS_BOOM_HIT_WAIT_e,
|
||||
STATUS_FORCE_GET_e,
|
||||
};
|
||||
|
||||
daItem_c() : mSparkleEmtr(0, 0) {}
|
||||
/* 8015B0C4 */ void initBaseMtx();
|
||||
/* 8015B108 */ void setBaseMtx();
|
||||
/* 8015B190 */ void setBaseMtx_0();
|
||||
@@ -45,13 +84,13 @@ public:
|
||||
/* 8015CEEC */ void itemGetNextExecute();
|
||||
/* 8015D0A8 */ void itemGet();
|
||||
/* 8015D370 */ BOOL checkCountTimer();
|
||||
/* 8015D3CC */ bool checkPlayerGet();
|
||||
/* 8015D3CC */ BOOL checkPlayerGet();
|
||||
/* 8015D410 */ void checkYogan();
|
||||
/* 8015D480 */ void deleteItem();
|
||||
/* 8015D4AC */ int itemActionForRupee();
|
||||
/* 8015D56C */ void itemActionForHeart();
|
||||
/* 8015D688 */ void itemActionForArrow();
|
||||
/* 8015D700 */ void itemActionForBoomerang();
|
||||
/* 8015D56C */ int itemActionForHeart();
|
||||
/* 8015D688 */ int itemActionForArrow();
|
||||
/* 8015D700 */ int itemActionForBoomerang();
|
||||
/* 8015D734 */ void bg_check();
|
||||
/* 8015D834 */ void set_bound_se();
|
||||
/* 8015D95C */ int CountTimer();
|
||||
@@ -65,80 +104,43 @@ public:
|
||||
u32 endControl();
|
||||
|
||||
/* 8015CE94 */ virtual void setTevStr();
|
||||
virtual void unk0() = 0;
|
||||
virtual void unk1() = 0;
|
||||
virtual void unk2() = 0;
|
||||
virtual void unk3() = 0;
|
||||
virtual void unk4() = 0;
|
||||
virtual void unk5() = 0;
|
||||
virtual void unk6() = 0;
|
||||
virtual void unk7() = 0;
|
||||
virtual void unk8() = 0;
|
||||
virtual void unk9() = 0;
|
||||
virtual void unk10() = 0;
|
||||
virtual void unk11() = 0;
|
||||
virtual void unk12() = 0;
|
||||
virtual void unk13() = 0;
|
||||
virtual void unk14() = 0;
|
||||
virtual void unk15() = 0;
|
||||
virtual void unk16() = 0;
|
||||
virtual void unk17() = 0;
|
||||
virtual void unk18() = 0;
|
||||
virtual void unk19() = 0;
|
||||
virtual void unk20() = 0;
|
||||
virtual void unk21() = 0;
|
||||
virtual void unk22() = 0;
|
||||
virtual void unk23() = 0;
|
||||
virtual void unk24() = 0;
|
||||
virtual void unk25() = 0;
|
||||
virtual void unk26() = 0;
|
||||
virtual void unk27() = 0;
|
||||
virtual void unk28() = 0;
|
||||
virtual void unk29() = 0;
|
||||
virtual void unk30() = 0;
|
||||
virtual void unk31() = 0;
|
||||
virtual void unk32() = 0;
|
||||
virtual void unk33() = 0;
|
||||
virtual void unk34() = 0;
|
||||
virtual void unk35() = 0;
|
||||
|
||||
void setStatus(u8 status) { mStatus = status; }
|
||||
int getStatus() { return mStatus; }
|
||||
|
||||
void setFlag(u8 pFlag) { cLib_onBit(mFlag, pFlag); }
|
||||
void setStatus(u8 status) { mStatus = status; }
|
||||
u8 getStatus() { return mStatus; }
|
||||
bool checkFlag(u8 flag) { return cLib_checkBit(mFlag, flag); }
|
||||
void clrFlag(u8 flag) { cLib_offBit(mFlag, flag); }
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static procFunc mFuncPtr[9];
|
||||
#else
|
||||
static u8 mFuncPtr[120];
|
||||
#endif
|
||||
bool checkBoomWindTgTimer() { return mBoomWindTgTimer == 0; }
|
||||
|
||||
static procFunc mFuncPtr[];
|
||||
static dCcD_SrcCyl m_cyl_src;
|
||||
static s32 m_timer_max;
|
||||
|
||||
/* 0x92C */ s16 field_0x92c;
|
||||
/* 0x92E */ u16 field_0x92e;
|
||||
/* 0x930 */ cXyz field_0x930;
|
||||
/* 0x93C */ int field_0x93c;
|
||||
/* 0x930 */ cXyz mItemScale;
|
||||
/* 0x93C */ int mSwitchNo;
|
||||
/* 0x940 */ u16 field_0x940;
|
||||
/* 0x942 */ s16 field_0x942;
|
||||
/* 0x944 */ s16 field_0x944;
|
||||
/* 0x946 */ s16 field_0x946;
|
||||
/* 0x942 */ s16 mWaitTimer;
|
||||
/* 0x944 */ s16 mDisappearTimer;
|
||||
/* 0x946 */ s16 mSimpleExistTimer;
|
||||
/* 0x948 */ u8 mFlag;
|
||||
/* 0x949 */ u8 field_0x949;
|
||||
/* 0x949 */ u8 mMode;
|
||||
/* 0x94A */ u8 mStatus;
|
||||
/* 0x94B */ u8 field_0x94b;
|
||||
/* 0x94C */ u32 m_item_id;
|
||||
/* 0x950 */ cXyz field_0x950;
|
||||
/* 0x95C */ u8 field_0x95c;
|
||||
/* 0x95C */ u8 mSwOnWaitTimer;
|
||||
/* 0x95D */ bool field_0x95d;
|
||||
/* 0x95E */ u8 mBoomWindTgTimer;
|
||||
/* 0x95F */ u8 field_0x95f;
|
||||
/* 0x960 */ u8 field_0x960[0xC];
|
||||
/* 0x96C */ cXyz field_0x96c;
|
||||
/* 0x978 */ Z2SoundObjSimple field_0x978;
|
||||
/* 0x998 */ dPa_followEcallBack field_0x998;
|
||||
/* 0x9AC */ cXyz field_0x9ac;
|
||||
/* 0x960 */ daPy_boomerangMove_c mBoomerangMove;
|
||||
/* 0x96C */ cXyz mLastPos;
|
||||
/* 0x978 */ Z2SoundObjSimple mSound;
|
||||
/* 0x998 */ dPa_followEcallBack mSparkleEmtr;
|
||||
/* 0x9AC */ cXyz mSparklePos;
|
||||
/* 0x9B8 */ u32 field_0x9b8;
|
||||
/* 0x9BC */ u8 field_0x9bc[4];
|
||||
/* 0x9C0 */ u8 field_0x9c0;
|
||||
|
||||
+22
-22
@@ -7,23 +7,23 @@
|
||||
|
||||
struct daItemBase_data {
|
||||
/* 0x00 */ f32 mGravity;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ s16 field_0x14;
|
||||
/* 0x16 */ s16 field_0x16;
|
||||
/* 0x18 */ s16 field_0x18;
|
||||
/* 0x1A */ s16 field_0x1a;
|
||||
/* 0x1C */ s16 field_0x1c;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ s16 field_0x28;
|
||||
/* 0x2A */ s16 field_0x2a;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x36 */ s16 field_0x36;
|
||||
/* 0x04 */ f32 mGroundReflect;
|
||||
/* 0x08 */ f32 mLaunchSpeed;
|
||||
/* 0x0C */ f32 mScalingTime;
|
||||
/* 0x10 */ f32 mSpeedH;
|
||||
/* 0x14 */ s16 mFlashCycleTime;
|
||||
/* 0x16 */ s16 mWaitTime;
|
||||
/* 0x18 */ s16 mDisappearTime;
|
||||
/* 0x1A */ s16 mRotateXSpeed;
|
||||
/* 0x1C */ s16 mRotateYSpeed;
|
||||
/* 0x20 */ f32 mHeartFallSpeed;
|
||||
/* 0x24 */ f32 mHeartAmplitude;
|
||||
/* 0x28 */ s16 mHeartFallCycleTime;
|
||||
/* 0x2A */ s16 mHeartTilt;
|
||||
/* 0x2C */ f32 mGetDemoLaunchSpeed;
|
||||
/* 0x30 */ f32 mGetDemoGravity;
|
||||
/* 0x34 */ s16 mSimpleExistTime;
|
||||
/* 0x36 */ s16 mNoGetTime;
|
||||
};
|
||||
|
||||
class daItemBase_c : public fopAc_ac_c {
|
||||
@@ -68,12 +68,12 @@ public:
|
||||
/* 0x588 */ mDoExt_btpAnm* mpBtpAnm;
|
||||
/* 0x58C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x764 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x7A4 */ dCcD_Stts mColStatus;
|
||||
/* 0x7E0 */ dCcD_Cyl mCollider;
|
||||
/* 0x7A4 */ dCcD_Stts mCcStts;
|
||||
/* 0x7E0 */ dCcD_Cyl mCcCyl;
|
||||
/* 0x91C */ u32 mShadowKey;
|
||||
/* 0x920 */ u32 field_0x920;
|
||||
/* 0x924 */ int field_0x924;
|
||||
/* 0x928 */ s16 field_0x928;
|
||||
/* 0x920 */ u32 mItemBitNo;
|
||||
/* 0x924 */ int m_timer;
|
||||
/* 0x928 */ s16 m_get_timer;
|
||||
/* 0x92A */ u8 m_itemNo;
|
||||
/* 0x92B */ u8 field_0x92b;
|
||||
};
|
||||
|
||||
@@ -809,13 +809,13 @@ public:
|
||||
/* 80155BCC */ virtual void drawOtherMdls();
|
||||
|
||||
BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[3]);
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_SPEAK_e]);
|
||||
}
|
||||
BOOL chkPlayerInSpeakArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInSpeakArea(daPy_getPlayerActorClass(), i_actor);
|
||||
}
|
||||
BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[1]);
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_TALK_e]);
|
||||
}
|
||||
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor);
|
||||
|
||||
@@ -533,7 +533,7 @@ public:
|
||||
BOOL checkCopyRodThrowAfter() const { return checkNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); }
|
||||
BOOL checkRide() const { return checkHorseRide() || checkBoarRide() || checkSpinnerRide() || checkCanoeRide() || checkBoardRide(); }
|
||||
const cXyz& getRightHandPos() const { return mRightHandPos; }
|
||||
const cXyz* getLeftHandPos() const { return &mLeftHandPos; }
|
||||
const cXyz getLeftHandPos() const { return mLeftHandPos; }
|
||||
const cXyz getItemPos() const { return mItemPos; }
|
||||
|
||||
virtual cXyz* getMidnaAtnPos() const;
|
||||
|
||||
@@ -141,8 +141,8 @@ public:
|
||||
};
|
||||
|
||||
struct dist_entry {
|
||||
/* 0x00 */ f32 mRadius1;
|
||||
/* 0x04 */ f32 mRadius2;
|
||||
/* 0x00 */ f32 mDistMax;
|
||||
/* 0x04 */ f32 mDistMaxRelease;
|
||||
/* 0x08 */ f32 mDistanceAdjust;
|
||||
/* 0x0C */ f32 mUpperY;
|
||||
/* 0x10 */ f32 mLowerY;
|
||||
|
||||
@@ -82,6 +82,18 @@ enum fopAc_Cull_e {
|
||||
fopAc_CULLSPHERE_CUSTOM_e,
|
||||
};
|
||||
|
||||
enum fopAc_attention_type {
|
||||
fopAc_attn_LOCK_e,
|
||||
fopAc_attn_TALK_e,
|
||||
fopAc_attn_BATTLE_e,
|
||||
fopAc_attn_SPEAK_e,
|
||||
fopAc_attn_CARRY_e,
|
||||
fopAc_attn_DOOR_e,
|
||||
fopAc_attn_JUEL_e,
|
||||
fopAc_attn_ETC_e,
|
||||
fopAc_attn_CHECK_e,
|
||||
};
|
||||
|
||||
class JKRSolidHeap;
|
||||
|
||||
enum dEvt_Command_e {
|
||||
@@ -162,7 +174,7 @@ struct actor_place {
|
||||
};
|
||||
|
||||
struct actor_attention_types {
|
||||
/* 0x00 */ u8 field_0x0[9];
|
||||
/* 0x00 */ u8 distances[9];
|
||||
/* 0x0A */ s16 field_0xa;
|
||||
/* 0x0C */ cXyz position;
|
||||
/* 0x18 */ u32 flags;
|
||||
|
||||
@@ -362,6 +362,10 @@ inline const cXyz* fopAcM_GetSpeed_p(const fopAc_ac_c* p_actor) {
|
||||
return &p_actor->speed;
|
||||
}
|
||||
|
||||
inline cXyz& fopAcM_GetSpeed(fopAc_ac_c* p_actor) {
|
||||
return p_actor->speed;
|
||||
}
|
||||
|
||||
inline const cXyz* fopAcM_GetPosition_p(const fopAc_ac_c* p_actor) {
|
||||
return &p_actor->current.pos;
|
||||
}
|
||||
|
||||
@@ -55,10 +55,18 @@ void fopCamM_SetBank(camera_class* cam, s16 bank) {
|
||||
cam->mBank = bank;
|
||||
} */
|
||||
|
||||
inline s16 fopCamM_GetAngleX(camera_class* i_camera) {
|
||||
return i_camera->mAngle.x;
|
||||
}
|
||||
|
||||
inline s16 fopCamM_GetAngleY(camera_class* i_camera) {
|
||||
return i_camera->mAngle.y;
|
||||
}
|
||||
|
||||
inline s16 fopCamM_GetAngleZ(camera_class* i_camera) {
|
||||
return i_camera->mAngle.z;
|
||||
}
|
||||
|
||||
inline f32 fopCamM_GetFovy(camera_class* i_camera) {
|
||||
return i_camera->mFovy;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user