Merge branch 'd_a_obj_crvhahen' of github.com:stuckinlimbo/tp into d_a_obj_crvhahen

This commit is contained in:
StuckInLimbo 2025-07-31 02:45:38 -04:00
commit 3ab5a61f4b
No known key found for this signature in database
GPG Key ID: AB3739B111D9BEB6
22 changed files with 3874 additions and 3726 deletions

View File

@ -131,7 +131,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_60_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
@3946 = .bss:0x00000074; // type:object size:0xC scope:local

View File

@ -5,17 +5,17 @@ __register_global_object = .text:0x00000078; // type:function size:0x1C scope:gl
__destroy_global_chain = .text:0x00000094; // type:function size:0x58 scope:global
__ct__12daE_SB_HIO_cFv = .text:0x000000EC; // type:function size:0x8C scope:global
CreateHeap__8daE_SB_cFv = .text:0x00000178; // type:function size:0xF8 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x00000270; // type:function size:0x20 scope:global
useHeapInit__FP10fopAc_ac_c = .text:0x00000270; // type:function size:0x20 scope:local
initCcCylinder__8daE_SB_cFv = .text:0x00000290; // type:function size:0x60 scope:global
setCcCylinder__8daE_SB_cFv = .text:0x000002F0; // type:function size:0x48 scope:global
ctrlJoint__8daE_SB_cFP8J3DJointP8J3DModel = .text:0x00000338; // type:function size:0xF8 scope:global
JointCallBack__FP8J3DJointi = .text:0x00000430; // type:function size:0x4C scope:global
JointCallBack__FP8J3DJointi = .text:0x00000430; // type:function size:0x4C scope:local
Particle_Set__8daE_SB_cFUs = .text:0x0000047C; // type:function size:0x70 scope:global
SetAnm__8daE_SB_cFiiff = .text:0x000004EC; // type:function size:0xAC scope:global
MemberClear__8daE_SB_cFv = .text:0x00000598; // type:function size:0x5C scope:global
other_bg_check__FP8daE_SB_cP10fopAc_ac_c = .text:0x000005F4; // type:function size:0xD8 scope:global
s_obj_sub__FPvPv = .text:0x000006CC; // type:function size:0x108 scope:global
s_bomb_sub__FPvPv = .text:0x000007D4; // type:function size:0xA0 scope:global
s_obj_sub__FPvPv = .text:0x000006CC; // type:function size:0x108 scope:local
s_bomb_sub__FPvPv = .text:0x000007D4; // type:function size:0xA0 scope:local
Shield_Motion__8daE_SB_cFv = .text:0x00000874; // type:function size:0x15C scope:global
AttackStop__8daE_SB_cFv = .text:0x000009D0; // type:function size:0x50 scope:global
AttackSetSP__8daE_SB_cFv = .text:0x00000A20; // type:function size:0x200 scope:global
@ -50,16 +50,16 @@ Execute__8daE_SB_cFv = .text:0x00002E30; // type:function size:0x12C scope:globa
Draw__8daE_SB_cFv = .text:0x00002F5C; // type:function size:0x11C scope:global
Delete__8daE_SB_cFv = .text:0x00003078; // type:function size:0x68 scope:global
setBaseMtx__8daE_SB_cFv = .text:0x000030E0; // type:function size:0x78 scope:global
daE_SB_Draw__FP8daE_SB_c = .text:0x00003158; // type:function size:0x20 scope:global
daE_SB_Execute__FP8daE_SB_c = .text:0x00003178; // type:function size:0x20 scope:global
daE_SB_IsDelete__FP8daE_SB_c = .text:0x00003198; // type:function size:0x8 scope:global
daE_SB_Delete__FP8daE_SB_c = .text:0x000031A0; // type:function size:0x20 scope:global
daE_SB_Draw__FP8daE_SB_c = .text:0x00003158; // type:function size:0x20 scope:local
daE_SB_Execute__FP8daE_SB_c = .text:0x00003178; // type:function size:0x20 scope:local
daE_SB_IsDelete__FP8daE_SB_c = .text:0x00003198; // type:function size:0x8 scope:local
daE_SB_Delete__FP8daE_SB_c = .text:0x000031A0; // type:function size:0x20 scope:local
Create__8daE_SB_cFv = .text:0x000031C0; // type:function size:0x438 scope:global
__dt__8cM3dGCylFv = .text:0x000035F8; // type:function size:0x48 scope:global
__dt__8cM3dGSphFv = .text:0x00003640; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x00003688; // type:function size:0x48 scope:global
__dt__12dBgS_ObjAcchFv = .text:0x000036D0; // type:function size:0x70 scope:global
daE_SB_Create__FP10fopAc_ac_c = .text:0x00003740; // type:function size:0x20 scope:global
daE_SB_Create__FP10fopAc_ac_c = .text:0x00003740; // type:function size:0x20 scope:local
__dt__12daE_SB_HIO_cFv = .text:0x00003760; // type:function size:0x48 scope:global
__sinit_d_a_e_sb_cpp = .text:0x000037A8; // type:function size:0x3C scope:local
@36@__dt__12dBgS_ObjAcchFv = .text:0x000037E4; // type:function size:0x8 scope:local
@ -111,7 +111,7 @@ ccCylSrc$3693 = .rodata:0x0000002C; // type:object size:0x44 scope:local
@4739 = .rodata:0x000000F8; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000000FC; // type:object size:0x5 scope:local data:string_table
@4468 = .data:0x00000000; // type:object size:0x1C scope:local
l_daE_SB_Method = .data:0x0000001C; // type:object size:0x20 scope:global
l_daE_SB_Method = .data:0x0000001C; // type:object size:0x20 scope:local
g_profile_E_SB = .data:0x0000003C; // type:object size:0x30 scope:global
__vt__8cM3dGCyl = .data:0x0000006C; // type:object size:0xC scope:global
__vt__8cM3dGSph = .data:0x00000078; // type:object size:0xC scope:global
@ -136,12 +136,12 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_227_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000045; // type:object size:0x1 scope:local data:byte
@3653 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x40 scope:global data:byte
s_Bomb__22@unnamed@d_a_e_sb_cpp@ = .bss:0x00000094; // type:object size:0x4 scope:global data:4byte
s_TargetAngle__22@unnamed@d_a_e_sb_cpp@ = .bss:0x00000098; // type:object size:0x2 scope:global data:2byte
s_LinkPos__22@unnamed@d_a_e_sb_cpp@ = .bss:0x0000009C; // type:object size:0x4 scope:global data:4byte
l_HIO = .bss:0x00000054; // type:object size:0x40 scope:local data:byte
s_Bomb__22@unnamed@d_a_e_sb_cpp@ = .bss:0x00000094; // type:object size:0x4 scope:local data:4byte
s_TargetAngle__22@unnamed@d_a_e_sb_cpp@ = .bss:0x00000098; // type:object size:0x2 scope:local data:2byte
s_LinkPos__22@unnamed@d_a_e_sb_cpp@ = .bss:0x0000009C; // type:object size:0x4 scope:local data:4byte
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000000A0; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000000A4; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x000000A8; // type:object size:0x4 scope:global

View File

@ -131,7 +131,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_60_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000045; // type:object size:0x1 data:byte
@3937 = .bss:0x00000048; // type:object size:0xC scope:local
l_HIO = .bss:0x00000054; // type:object size:0x20 scope:global data:byte
@3946 = .bss:0x00000074; // type:object size:0xC scope:local

View File

@ -147,7 +147,7 @@ lbl_58_data_4B0 = .data:0x000004B0; // type:object size:0x24
@122173 = .data:0x00000698; // type:object size:0xC scope:local
@122174 = .data:0x000006BC; // type:object size:0x11 scope:local data:string
@122175 = .data:0x000006E4; // type:object size:0xD scope:local data:string
lbl_58_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000000; // type:object size:0x1 data:byte
l_HIO = .bss:0x00000008; // type:object size:0x20 scope:global data:byte
land_sp_pos = .bss:0x00000028; // type:object size:0x30 scope:global
rope_pt = .bss:0x00000058; // type:object size:0x4 scope:global data:4byte

View File

@ -1537,7 +1537,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_attention"),
ActorRel(MatchingFor("GZ2E01"), "d_a_alldie"),
ActorRel(MatchingFor("GZ2E01"), "d_a_andsw2"),
ActorRel(NonMatching, "d_a_bd"),
ActorRel(Equivalent, "d_a_bd"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_canoe"),
ActorRel(MatchingFor("GZ2E01"), "d_a_cstaF"),
ActorRel(MatchingFor("GZ2E01"), "d_a_demo_item"),
@ -1704,7 +1704,7 @@ config.libs = [
ActorRel(Equivalent, "d_a_e_rdb"), # weak func order
ActorRel(Equivalent, "d_a_e_rdy"), # weak func order
ActorRel(NonMatching, "d_a_e_s1"),
ActorRel(NonMatching, "d_a_e_sb"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_sb"),
ActorRel(NonMatching, "d_a_e_sf"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_sg"),
ActorRel(NonMatching, "d_a_e_sh"),
@ -2154,8 +2154,8 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_vground"),
ActorRel(NonMatching, "d_a_obj_volcball"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_volcbom"),
ActorRel(NonMatching, "d_a_obj_warp_kbrg"),
ActorRel(NonMatching, "d_a_obj_warp_obrg"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_warp_kbrg"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_warp_obrg"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_waterGate"),
ActorRel(Equivalent, "d_a_obj_waterPillar"), # vtable order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_waterfall"),

View File

@ -1,6 +1,8 @@
#ifndef D_A_BD_H
#define D_A_BD_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
@ -11,18 +13,95 @@
* @details Used by birds that sit on Coro's head.
*
*/
class bd_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x9ec - 0x5ac];
enum da_BD_ANM {
ANM_FLY = 5,
ANM_KAKKU,
ANM_KAKKU1,
ANM_PITA_DOWN,
ANM_PITA_LEFTUP,
ANM_PITA_RIGHT,
ANM_PYON,
};
enum Action_bd {
ACT_GROUND = 0,
ACT_FLY = 1,
ACT_DROP = 2,
ACT_LANDING = 3,
ACT_LANDING2 = 4,
ACT_LANDING3 = 5,
ACT_ROPE = 6,
ACT_KKRI = 7,
};
class bd_class {
public:
/* 0x000 */ fopEn_enemy_c enemy;
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 field_0x5B4;
/* 0x5B5 */ u8 field_0x5B5;
/* 0x5B6 */ u8 field_0x5B6;
/* 0x5B7 */ u8 field_0x5B7;
/* 0x5B8 */ u8 field_0x5B8;
/* 0x5B9 */ u8 field_0x5B9;
/* 0x5B8 */ char pad5B8[0x8]; // Padding
/* 0x5C2 */ s8 field_0x5C2;
/* 0x5C4 */ cXyz field_0x5C4;
/* 0x5D0 */ s16 mTargetAngleY;
/* 0x5D4 */ actor_place* field_0x5D4;
/* 0x5D8 */ s16 field_0x5D8;
/* 0x5DC */ f32 field_0x5DC;
/* 0x5E0 */ f32 field_0x5E0;
/* 0x5E4 */ mDoExt_McaMorf* mpMorf;
/* 0x5E8 */ mDoExt_btkAnm* mpBtk;
/* 0x5EC */ s8 field_0x5EC;
/* 0x5F0 */ s32 mAnmID;
/* 0x5F4 */ s16 mChirpDist;
/* 0x5F8 */ Z2SoundObjSimple mSound;
/* 0x618 */ s16 field_0x618;
/* 0x61A */ s16 mActionID;
/* 0x61C */ s16 field_0x61C;
/* 0x61E */ s16 field_0x61E;
/* 0x620 */ f32 field_0x620;
/* 0x624 */ f32 field_0x624;
/* 0x628 */ s16 field_0x628;
/* 0x62C */ cXyz* field_0x62C;
/* 0x630 */ int field_0x630;
/* 0x634 */ cXyz field_0x634;
/* 0x640 */ s16 field_0x640;
/* 0x642 */ s16 field_0x642;
/* 0x644 */ char pad644[1]; // Padding
/* 0x645 */ s8 field_0x645;
/* 0x646 */ char pad646[0x64C - 0x646]; // Padding
/* 0x64C */ s16 field_0x64C[4];
/* 0x654 */ s16 field_0x654;
/* 0x656 */ s8 field_0x656;
/* 0x658 */ s16 field_0x658;
/* 0x65C */ dBgS_AcchCir mAcchCir;
/* 0x69C */ dBgS_ObjAcch mBgc;
/* 0x874 */ dCcD_Stts mStts;
/* 0x8B0 */ dCcD_Sph mSphere;
/* 0x9E8 */ u8 field_0x9E8;
};
STATIC_ASSERT(sizeof(bd_class) == 0x9ec);
class daBd_HIO_c {
class daBd_HIO_c : public JORReflexible {
public:
/* 804D6C4C */ daBd_HIO_c();
/* 804D9CB8 */ ~daBd_HIO_c();
/* 804D9CB8 */ virtual ~daBd_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 id;
/* 0x08 */ f32 mBasicSize;
/* 0x0C */ f32 mFlightSpeed;
/* 0x10 */ f32 mGroundSpeed;
/* 0x14 */ s16 mFlightTime;
/* 0x18 */ f32 mLinkDetectRange;
/* 0x1C */ s16 mChirpDist;
/* 0x1E */ s8 field_0x1E;
};
#endif /* D_A_BD_H */

View File

@ -1,5 +1,8 @@
#ifndef D_A_E_SB_H
#define D_A_E_SB_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"
/**
@ -11,10 +14,11 @@
*
*/
class daE_SB_c : public fopEn_enemy_c {
/* 807816D8 */ void CreateHeap();
public:
/* 807816D8 */ int CreateHeap();
/* 807817F0 */ void initCcCylinder();
/* 80781850 */ void setCcCylinder();
/* 80781898 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80781898 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 807819DC */ void Particle_Set(u16);
/* 80781A4C */ void SetAnm(int, int, f32, f32);
/* 80781AF8 */ void MemberClear();
@ -48,20 +52,84 @@ class daE_SB_c : public fopEn_enemy_c {
/* 80783FBC */ void HashiraVib();
/* 80784144 */ void Yazirushi();
/* 807841CC */ void setGroundAngle();
/* 80784390 */ void Execute();
/* 807844BC */ void Draw();
/* 807845D8 */ void Delete();
/* 80784390 */ int Execute();
/* 807844BC */ int Draw();
/* 807845D8 */ int Delete();
/* 80784640 */ void setBaseMtx();
/* 80784720 */ void Create();
/* 80784720 */ cPhs__Step Create();
private:
/* 0x5ac */ u8 field_0x5ac[0xbc0 - 0x5ac];
/* 0x5AC */ int field_0x5ac;
/* 0x5B0 */ int field_0x5b0;
/* 0x5B4 */ int field_0x5b4;
/* 0x5B8 */ int field_0x5b8;
/* 0x5BC */ int field_0x5bc;
/* 0x5C0 */ int field_0x5c0;
/* 0x5C4 */ int field_0x5c4;
/* 0x5C8 */ int field_0x5c8;
/* 0x5CC */ u32 field_0x5cc;
/* 0x5D0 */ u8 field_0x5d0;
/* 0x5D2 */ s16 field_0x5d2;
/* 0x5D1 */ f32 field_0x5d4;
/* 0x5D8 */ csXyz field_0x5d8;
/* 0x5DE */ csXyz field_0x5de;
/* 0x5E4 */ u8 field_0x5e4;
/* 0x5E6 */ s16 field_0x5e6;
/* 0x5E8 */ u8 field_0x5e8;
public:
/* 0x5EC */ cXyz* field_0x5ec;
/* 0x5F0 */ f32 field_0x5f0;
private:
/* 0x5F4 */ cXyz field_0x5f4;
/* 0x600 */ s16 field_0x600;
/* 0x602 */ u8 field_0x602;
/* 0x603 */ u8 field_0x603;
/* 0x604 */ u8 field_0x604;
/* 0x608 */ int field_0x608;
/* 0x60C */ int field_0x60c;
/* 0x610 */ s16 field_0x610;
/* 0x612 */ s16 field_0x612;
/* 0x614 */ csXyz field_0x614;
/* 0x61A */ u8 field_0x61a;
/* 0x61C */ mDoExt_McaMorfSO* mpMorf;
/* 0x620 */ request_of_phase_process_class mPhaseReq;
/* 0x628 */ int mShadowKey;
/* 0x62C */ Z2CreatureEnemy mSound;
/* 0x6D0 */ dBgS_AcchCir mAcchCir;
/* 0x710 */ dBgS_ObjAcch mAcch;
/* 0x8E8 */ dCcD_Stts mStts;
/* 0x924 */ dCcD_Sph mSph;
/* 0xA5C */ dCcD_Cyl mCyl;
/* 0xB98 */ dCcU_AtInfo mAtInfo;
/* 0xBBC */ u8 field_0xbbc;
};
STATIC_ASSERT(sizeof(daE_SB_c) == 0xbc0);
STATIC_ASSERT(sizeof(daE_SB_c) == 0xBC0);
class daE_SB_HIO_c {
class daE_SB_HIO_c : public JORReflexible {
public:
/* 8078164C */ daE_SB_HIO_c();
/* 80784CC0 */ ~daE_SB_HIO_c();
/* 80784CC0 */ virtual ~daE_SB_HIO_c() {}
#if DEBUG
void genMessage(JORMContext*);
#endif
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 search_area;
/* 0x0C */ f32 distance_home;
/* 0x10 */ f32 jump_xz_axis_speed;
/* 0x14 */ f32 jump_y_axis_speed;
/* 0x18 */ f32 atk_jump_xz_axis_speed;
/* 0x1C */ f32 atk_y_axis_speed;
/* 0x20 */ f32 magne_on_atk_y_axis_speed;
/* 0x24 */ f32 grav_reduct_rate;
/* 0x28 */ f32 other_anm_speed;
/* 0x2C */ f32 shield_atk_anm_speed;
/* 0x30 */ f32 death_anm_speed;
/* 0x34 */ f32 size;
/* 0x38 */ f32 atk_start_range;
/* 0x3C */ s16 field_0x3c;
/* 0x3E */ s16 field_0x3e;
};

View File

@ -383,6 +383,11 @@ public:
mpKago = NULL;
}
void onTagWaitPosPortalObj(const cXyz* i_pos) {
mTagWaitPos = *i_pos;
onStateFlg0(daMidna_FLG0(FLG0_PORTAL_OBJ_CALL | FLG0_TAG_WAIT));
}
static daMidna_texData_s const m_texDataTable[21];
static daMidna_anmData_s const m_anmDataTable[53];

View File

@ -57,11 +57,23 @@ public:
/* 80553404 */ void checkChangeJoint(int);
/* 80553414 */ void checkRemoveJoint(int);
MtxP getBd3Mtx() {
return mpMorf->getModel()->getAnmMtx(0x11);
}
MtxP getBd2Mtx() {
return mpMorf->getModel()->getAnmMtx(6);
}
MtxP getBd1Mtx() {
return mpMorf->getModel()->getAnmMtx(5);
}
static void* mCutNameList[3];
static u8 mCutList[36];
private:
/* 0x568 */ u8 field_0x568[0xfdc - 0x568];
/* 0x568 */ u8 field_0x568[0x578 - 0x568];
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
/* 0x57C */ u8 field_0x57C[0xfdc - 0x57C];
};
STATIC_ASSERT(sizeof(daNpc_Kkri_c) == 0xfdc);

View File

@ -2,23 +2,36 @@
#define D_A_OBJ_WARP_KBRG_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_msg_flow.h"
/**
* @ingroup actors-objects
* @class daObjWarpKBrg_c
* @brief Warp K Bridge (Kakariko Gorge Bridge?)
* @brief Kakariko Gorge Warp Bridge
*
* @details
*
*/
class daObjWarpKBrg_c : public fopAc_ac_c {
class daObjWarpKBrg_c : public dBgS_MoveBgActor {
public:
enum Action_e {
ACTION_WAIT_e,
ACTION_ORDER_EVENT_e,
ACTION_TALK_EVENT_e,
ACTION_WAIT_WARP_EVENT_e,
ACTION_WARP_EVENT_e,
ACTION_ORDER_A_TALK_EVENT_e,
ACTION_DEAD_e,
ACTION_WAIT2_e,
ACTION_ORDER_EVENT2_e,
ACTION_WARP_EVENT2_e,
ACTION_DEAD2_e,
};
/* 80D26FA8 */ void initBaseMtx();
/* 80D27008 */ void setBaseMtx();
/* 80D270C4 */ void Create();
/* 80D27300 */ void CreateHeap();
/* 80D276B4 */ void create1st();
/* 80D2781C */ void Execute(f32 (**)[3][4]);
/* 80D276B4 */ int create1st();
/* 80D27890 */ void event_proc_call();
/* 80D27A38 */ void orderZHintEvent();
/* 80D27B2C */ void actionWait();
@ -34,7 +47,7 @@ public:
/* 80D28248 */ void actionDead2();
/* 80D2824C */ void demoProc();
/* 80D28A50 */ void calcObjPos();
/* 80D28AE0 */ void checkTalkDistance();
/* 80D28AE0 */ bool checkTalkDistance();
/* 80D28B7C */ void calcMidnaWaitPos();
/* 80D28C10 */ void setBindEffect();
/* 80D28CDC */ void followBindEffect();
@ -44,11 +57,50 @@ public:
/* 80D290A8 */ void followDstEffect();
/* 80D29158 */ void endSrcEffect();
/* 80D291FC */ void endDstEffect();
/* 80D292A0 */ void Draw();
/* 80D29448 */ void Delete();
private:
/* 0x568 */ u8 field_0x568[0x69c - 0x568];
/* 80D27300 */ virtual int CreateHeap();
/* 80D270C4 */ virtual int Create();
/* 80D2781C */ virtual int Execute(Mtx**);
/* 80D292A0 */ virtual int Draw();
/* 80D29448 */ virtual int Delete();
u8 getNameArg() { return fopAcM_GetParamBit(this, 31, 2); }
u8 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getSwbit2() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getArg0() { return fopAcM_GetParamBit(this, 16, 8); }
void setAction(u8 i_action) { mAction = i_action; }
u16 getMsgID() { return mMsgID; }
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ request_of_phase_process_class mEvPhase;
/* 0x5B0 */ J3DModel* mpBridgeModel;
/* 0x5B4 */ mDoExt_btkAnm* mpBridgeBtk;
/* 0x5B8 */ mDoExt_bckAnm* mpBridgeBck;
/* 0x5BC */ J3DModel* mpPortalModel;
/* 0x5C0 */ mDoExt_btkAnm* mpPortalBtk;
/* 0x5C4 */ mDoExt_brkAnm* mpPortalBrk;
/* 0x5C8 */ u8 field_0x5c8;
/* 0x5C9 */ u8 mTimer;
/* 0x5CA */ u8 mAction;
/* 0x5CB */ u8 mPrmInit;
/* 0x5CC */ u16 mMsgID;
/* 0x5CE */ s16 mEventId[2];
/* 0x5D4 */ int mStaffId;
/* 0x5D8 */ u8 mEventType;
/* 0x5D9 */ u8 field_0x5d9;
/* 0x5DC */ dMsgFlow_c mMsgFlow;
/* 0x628 */ cXyz mMidnaWaitPos;
/* 0x634 */ cXyz mObjPos;
/* 0x640 */ JPABaseEmitter* mStartEfEmitterID[3];
/* 0x64C */ JPABaseEmitter* mDisappEfEmitterID[5];
/* 0x660 */ JPABaseEmitter* mAppEfEmitterID[6];
/* 0x678 */ JPABaseEmitter* mEndEfEmitterID[2];
/* 0x680 */ u8 field_0x680[0x688 - 0x680];
/* 0x688 */ JPABaseEmitter* mBindEfEmitterID[4];
/* 0x698 */ u16 mEffJointNo;
/* 0x69A */ u8 field_0x69a;
/* 0x69B */ u8 field_0x69b;
};
STATIC_ASSERT(sizeof(daObjWarpKBrg_c) == 0x69c);

View File

@ -2,23 +2,32 @@
#define D_A_OBJ_WARP_OBRG_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_msg_flow.h"
/**
* @ingroup actors-objects
* @class daObjWarpOBrg_c
* @brief Warp O Bridge (Eldin Bridge?)
* @brief Eldin Warp Bridge
*
* @details
*
*/
class daObjWarpOBrg_c : public fopAc_ac_c {
class daObjWarpOBrg_c : public dBgS_MoveBgActor {
public:
enum Action_e {
ACTION_WAIT_e,
ACTION_ORDER_EVENT_e,
ACTION_TALK_EVENT_e,
ACTION_WARP_EVENT_e,
ACTION_DEAD_e,
ACTION_ORDER_EVENT_DST_e,
ACTION_WARP_EVENT_DST_e,
};
/* 80D299B8 */ void initBaseMtx();
/* 80D29A00 */ void setBaseMtx();
/* 80D29ACC */ void Create();
/* 80D29BB4 */ void CreateHeap();
/* 80D29E7C */ void create1st();
/* 80D2A008 */ void Execute(f32 (**)[3][4]);
/* 80D29E7C */ int create1st();
/* 80D2A04C */ void event_proc_call();
/* 80D2A194 */ void actionWait();
/* 80D2A4CC */ void actionOrderEvent();
@ -28,13 +37,41 @@ public:
/* 80D2A9E4 */ void actionWarpEventDst();
/* 80D2AA30 */ void actionDead();
/* 80D2AA34 */ void demoProc();
/* 80D2B3BC */ void checkTalkDistance();
/* 80D2B3BC */ bool checkTalkDistance();
/* 80D2B534 */ void calcMidnaWaitPos();
/* 80D2B5C8 */ void Draw();
/* 80D2B6C0 */ void Delete();
private:
/* 0x568 */ u8 field_0x568[0x640 - 0x568];
/* 80D29BB4 */ virtual int CreateHeap();
/* 80D29ACC */ virtual int Create();
/* 80D2A008 */ virtual int Execute(Mtx**);
/* 80D2B5C8 */ virtual int Draw();
/* 80D2B6C0 */ virtual int Delete();
u8 getNameArg() { return subtype; }
u8 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getSwNo2() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getArg0() { return fopAcM_GetParamBit(this, 16, 8); }
u8 getMyPortalID() { return fopAcM_GetParamBit(this, 24, 7); }
void setAction(u8 i_action) { mAction = i_action; }
u16 getMsgID() { return mMsgID; }
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ mDoExt_bckAnm* mpBck;
/* 0x5B0 */ mDoExt_btkAnm* mpBtk;
/* 0x5B4 */ dMsgFlow_c mMsgFlow;
/* 0x600 */ JPABaseEmitter* mEfEmitter[5];
/* 0x614 */ cXyz field_0x614;
/* 0x620 */ cXyz mMidnaWaitPos;
/* 0x62C */ f32 mTalkRange;
/* 0x630 */ int mStaffId;
/* 0x634 */ s16 mEventId;
/* 0x636 */ u16 mMsgID;
/* 0x638 */ u8 mPrmInit;
/* 0x639 */ u8 field_0x639;
/* 0x63A */ u8 field_0x63a;
/* 0x63B */ u8 mAction;
/* 0x63C */ u8 mTimer;
};
STATIC_ASSERT(sizeof(daObjWarpOBrg_c) == 0x640);

View File

@ -599,7 +599,8 @@ public:
};
enum CutType {
/* 0x01 */ CUT_TYPE_NM_VERTICAL = 1,
/* 0x00 */ CUT_TYPE_NONE,
/* 0x01 */ CUT_TYPE_NM_VERTICAL,
/* 0x02 */ CUT_TYPE_NM_STAB,
/* 0x03 */ CUT_TYPE_NM_RIGHT,
/* 0x04 */ CUT_TYPE_NM_LEFT,

View File

@ -149,6 +149,7 @@ public:
u32 MaskRoofHit() const { return m_flags & ROOF_HIT; }
bool ChkRoofHit() const { return MaskRoofHit() != 0; }
void OffClrSpeedY() { m_flags |= CLR_SPEED_Y; }
void OnClrSpeedY() { m_flags &= ~CLR_SPEED_Y; }
bool ChkClrSpeedY() const { return !(m_flags & CLR_SPEED_Y); }
void SetGroundFind() { m_flags |= GROUND_FIND; }
void SetGroundHit() { m_flags |= GROUND_HIT; }

File diff suppressed because it is too large Load Diff

View File

@ -1045,7 +1045,7 @@ static int daE_HZELDA_Execute(e_hzelda_class* i_this) {
BOOL on_player_at_sph = FALSE;
if (daPy_py_c::checkMasterSwordEquip()) {
if (daPy_getPlayerActorClass()->getCutType() != 0) {
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
i_this->mSwordAtTimer++;
if (i_this->mSwordAtTimer < 6) {
on_player_at_sph = TRUE;

View File

@ -354,7 +354,7 @@ int daE_OC_c::searchPlayerShakeHead() {
int daE_OC_c::searchSound() {
if (field_0x6b4 == 2 && mpBridge && mpBridge->getPlayerRide())
return 0;
if (daPy_getPlayerActorClass()->getCutType() != 0 && fopAcM_searchPlayerDistance(this) < mPlayerRange) {
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE && fopAcM_searchPlayerDistance(this) < mPlayerRange) {
field_0x67c = dComIfGp_getPlayer(0)->current.pos;
setActionMode(8, 0);
return 1;

File diff suppressed because it is too large Load Diff

View File

@ -147,7 +147,7 @@ static void e_tk_ball_move(e_tk_ball_class* i_this) {
if (i_this->mTgSph.ChkTgHit() || i_this->mAtSph.ChkAtShieldHit()) {
impact_eff_set(i_this);
actor->current.angle.x *= -1;
if (actor_lockon && daPy_getPlayerActorClass()->getCutType() != 0x00) {
if (actor_lockon && daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
i_this->mAction = ACT_TK_BALL_RETURN;
i_this->mMode = MODE_TK_BALL_INIT;
actor->current.angle.y -= 0x8000;
@ -168,7 +168,7 @@ static void e_tk_ball_move(e_tk_ball_class* i_this) {
i_this->mInitalDistance = direction_vec.abs();
speed_vec.x = 0.0;
speed_vec.y = 0.0;
if (daPy_getPlayerActorClass()->getCutType() != 0x00) {
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
speed_vec.z = 60.0f;
}
cMtx_YrotS(*calc_mtx, actor->current.angle.y);

View File

@ -134,7 +134,7 @@ static void damage_check(e_yd_class* i_this) {
j = i_this->field_0xff4.mpCollider->ChkAtType(AT_TYPE_BOMB | AT_TYPE_40);
if (j != 0 || i_this->field_0x66e == 6) {
at_power_check(&i_this->field_0xff4);
if (daPy_getPlayerActorClass()->getCutType() != 0) {
if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
cVar6 = 1;
} else {
cVar6 = 2;

View File

@ -50,7 +50,7 @@ static void daKytag12_light_swprd_proc(kytag12_class* i_this) {
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
if (dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD) {
if (player->getCutType() != 0) {
if (player->getCutType() != daPy_py_c::CUT_TYPE_NONE) {
if (i_this->field_0x576 == 0) {
cXyz sp28(player->current.pos);
sp28.y -= 100.0f;
@ -878,7 +878,7 @@ static int daKytag12_Execute_R00(kytag12_class* i_this) {
sp80.y = player->current.pos.y;
if (player->current.pos.abs(sp80) < 600.0f &&
dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD && player->getCutType() != 0 &&
dComIfGs_getSelectEquipSword() == fpcNm_ITEM_LIGHT_SWORD && player->getCutType() != daPy_py_c::CUT_TYPE_NONE &&
d_kytag12_cut_turn_check())
{
i_this->field_0x575 = 1;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff