mirror of
https://github.com/zeldaret/ss
synced 2026-10-08 05:33:53 -04:00
d_a_e_skytail OK
This commit is contained in:
@@ -138,7 +138,7 @@ fn_129_C390 = .text:0x0000C390; // type:function size:0x40
|
||||
fn_129_C3D0 = .text:0x0000C3D0; // type:function size:0xA8
|
||||
fn_129_C480 = .text:0x0000C480; // type:function size:0x14
|
||||
fn_129_C494 = .text:0x0000C494; // type:function size:0x4
|
||||
fn_129_C4A0 = .text:0x0000C4A0; // type:function size:0xA4
|
||||
fn_129_C4A0__7dBird_cFR7mVec3_cUs = .text:0x0000C4A0; // type:function size:0xA4
|
||||
AcBird__handleDamage = .text:0x0000C550; // type:function size:0x208
|
||||
fn_129_C760 = .text:0x0000C760; // type:function size:0x4C
|
||||
AcBird__setDamageAnim = .text:0x0000C7B0; // type:function size:0x50
|
||||
@@ -149,7 +149,7 @@ fn_129_C980 = .text:0x0000C980; // type:function size:0xC4
|
||||
fn_129_CA50 = .text:0x0000CA50; // type:function size:0x298
|
||||
fn_129_CCF0 = .text:0x0000CCF0; // type:function size:0x18
|
||||
fn_129_CD10 = .text:0x0000CD10; // type:function size:0x29C
|
||||
fn_129_CFB0 = .text:0x0000CFB0; // type:function size:0x24
|
||||
fn_129_CFB0__7dBird_cFv = .text:0x0000CFB0; // type:function size:0x24
|
||||
fn_129_CFE0 = .text:0x0000CFE0; // type:function size:0x50
|
||||
fn_129_D030 = .text:0x0000D030; // type:function size:0x4
|
||||
fn_129_D040 = .text:0x0000D040; // type:function size:0x28
|
||||
|
||||
@@ -3,32 +3,32 @@ _epilog = .text:0x00000030; // type:function size:0x2C scope:global
|
||||
_unresolved = .text:0x00000060; // type:function size:0x4 scope:global
|
||||
__register_global_object = .text:0x00000070; // type:function size:0x1C scope:global
|
||||
__destroy_global_chain = .text:0x00000090; // type:function size:0x54 scope:global
|
||||
fn_172_F0 = .text:0x000000F0; // type:function size:0x40
|
||||
__dt__7mVec3_cFv = .text:0x000000F0; // type:function size:0x40
|
||||
dAcESkytail_c_classInit__Fv = .text:0x00000130; // type:function size:0x164
|
||||
fn_172_2A0 = .text:0x000002A0; // type:function size:0x58
|
||||
fn_172_300 = .text:0x00000300; // type:function size:0x90
|
||||
__ct__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x000002A0; // type:function size:0x58
|
||||
__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x00000300; // type:function size:0x90
|
||||
__dt__26sFState_c<13dAcESkytail_c>Fv = .text:0x00000390; // type:function size:0x58
|
||||
__dt__29sFStateFct_c<13dAcESkytail_c>Fv = .text:0x000003F0; // type:function size:0x6C
|
||||
__dt__82sStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00000460; // type:function size:0xA0
|
||||
__dt__52sFStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c>Fv = .text:0x00000500; // type:function size:0xA4
|
||||
fn_172_5B0 = .text:0x000005B0; // type:function size:0x4
|
||||
fn_172_5C0 = .text:0x000005C0; // type:function size:0x74
|
||||
fn_172_640 = .text:0x00000640; // type:function size:0x58
|
||||
fn_172_6A0 = .text:0x000006A0; // type:function size:0x74
|
||||
fn_172_720 = .text:0x00000720; // type:function size:0x264
|
||||
fn_172_990 = .text:0x00000990; // type:function size:0xB0
|
||||
fn_172_A40 = .text:0x00000A40; // type:function size:0x1FC
|
||||
fn_172_C40 = .text:0x00000C40; // type:function size:0x4C
|
||||
__ct__7mVec3_cFv = .text:0x000005B0; // type:function size:0x4
|
||||
__dt__Q213dAcESkytail_c14callbackBody_cFv = .text:0x000005C0; // type:function size:0x74
|
||||
__ct__Q213dAcESkytail_c17callbackAntenna_cFv = .text:0x00000640; // type:function size:0x58
|
||||
__dt__Q213dAcESkytail_c17callbackAntenna_cFv = .text:0x000006A0; // type:function size:0x74
|
||||
timingB__Q213dAcESkytail_c14callbackBody_cFUlPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdl = .text:0x00000720; // type:function size:0x264
|
||||
timingB__Q213dAcESkytail_c17callbackAntenna_cFUlPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdl = .text:0x00000990; // type:function size:0xB0
|
||||
fn_172_A40__13dAcESkytail_cFv = .text:0x00000A40; // type:function size:0x1FC
|
||||
ChkTgHit__8cCcD_ObjFv = .text:0x00000C40; // type:function size:0x4C
|
||||
changeState__82sStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x00000C90; // type:function size:0x10
|
||||
fn_172_CA0 = .text:0x00000CA0; // type:function size:0x1C
|
||||
fn_172_CC0 = .text:0x00000CC0; // type:function size:0xE8
|
||||
fn_172_DB0 = .text:0x00000DB0; // type:function size:0x31C
|
||||
fn_172_10D0 = .text:0x000010D0; // type:function size:0x8
|
||||
fn_172_10E0 = .text:0x000010E0; // type:function size:0xC0C
|
||||
calcTimer<s>__4sLibFPs_s = .text:0x00000CA0; // type:function size:0x1C
|
||||
createHeap__13dAcESkytail_cFv = .text:0x00000CC0; // type:function size:0xE8
|
||||
create__13dAcESkytail_cFv = .text:0x00000DB0; // type:function size:0x31C
|
||||
doDelete__13dAcESkytail_cFv = .text:0x000010D0; // type:function size:0x8
|
||||
actorExecute__13dAcESkytail_cFv = .text:0x000010E0; // type:function size:0xC0C
|
||||
getStateID__82sStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00001CF0; // type:function size:0x10
|
||||
executeState__82sStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00001D00; // type:function size:0x10
|
||||
fn_172_1D10 = .text:0x00001D10; // type:function size:0x4C
|
||||
fn_172_1D60 = .text:0x00001D60; // type:function size:0x68
|
||||
ChkCoHit__8cCcD_ObjFv = .text:0x00001D10; // type:function size:0x4C
|
||||
draw__13dAcESkytail_cFv = .text:0x00001D60; // type:function size:0x68
|
||||
initializeState_RandomMove__13dAcESkytail_cFv = .text:0x00001DD0; // type:function size:0x9C
|
||||
executeState_RandomMove__13dAcESkytail_cFv = .text:0x00001E70; // type:function size:0x1EC
|
||||
finalizeState_RandomMove__13dAcESkytail_cFv = .text:0x00002060; // type:function size:0x10
|
||||
@@ -37,7 +37,7 @@ executeState_Move__13dAcESkytail_cFv = .text:0x00002080; // type:function size:0
|
||||
finalizeState_Move__13dAcESkytail_cFv = .text:0x00002430; // type:function size:0x4
|
||||
initializeState_ParallelMove__13dAcESkytail_cFv = .text:0x00002440; // type:function size:0x90
|
||||
executeState_ParallelMove__13dAcESkytail_cFv = .text:0x000024D0; // type:function size:0xB30
|
||||
fn_172_3000 = .text:0x00003000; // type:function size:0x48
|
||||
ChkAtHit__8cCcD_ObjFv = .text:0x00003000; // type:function size:0x48
|
||||
finalizeState_ParallelMove__13dAcESkytail_cFv = .text:0x00003050; // type:function size:0x1C
|
||||
initializeState_FrontAttack__13dAcESkytail_cFv = .text:0x00003070; // type:function size:0x78
|
||||
executeState_FrontAttack__13dAcESkytail_cFv = .text:0x000030F0; // type:function size:0x588
|
||||
@@ -51,15 +51,15 @@ finalizeState_Dead__13dAcESkytail_cFv = .text:0x00003B80; // type:function size:
|
||||
initializeState_Skytail__13dAcESkytail_cFv = .text:0x00003B90; // type:function size:0x4
|
||||
executeState_Skytail__13dAcESkytail_cFv = .text:0x00003BA0; // type:function size:0x118
|
||||
finalizeState_Skytail__13dAcESkytail_cFv = .text:0x00003CC0; // type:function size:0x4
|
||||
fn_172_3CD0 = .text:0x00003CD0; // type:function size:0x570
|
||||
fn_172_4240 = .text:0x00004240; // type:function size:0x384
|
||||
fn_172_45D0 = .text:0x000045D0; // type:function size:0x4
|
||||
fn_172_45E0 = .text:0x000045E0; // type:function size:0x4
|
||||
fn_172_45F0 = .text:0x000045F0; // type:function size:0x40
|
||||
fn_172_4630 = .text:0x00004630; // type:function size:0x8
|
||||
fn_172_4640 = .text:0x00004640; // type:function size:0x4
|
||||
fn_172_4650 = .text:0x00004650; // type:function size:0x4
|
||||
fn_172_4660 = .text:0x00004660; // type:function size:0x8
|
||||
fn_172_3CD0__13dAcESkytail_cFv = .text:0x00003CD0; // type:function size:0x570
|
||||
fn_172_4240__13dAcESkytail_cFl = .text:0x00004240; // type:function size:0x384
|
||||
fn_172_45D0__13dAcESkytail_cFv = .text:0x000045D0; // type:function size:0x4
|
||||
fn_172_45E0__13dAcESkytail_cFv = .text:0x000045E0; // type:function size:0x4
|
||||
fn_172_45F0__13dAcESkytail_cFv = .text:0x000045F0; // type:function size:0x40
|
||||
vt_0x88__11dAcEnBase_cFi = .text:0x00004630; // type:function size:0x8
|
||||
vt_0x84__11dAcEnBase_cFv = .text:0x00004640; // type:function size:0x4
|
||||
vt_0x80__11dAcEnBase_cFv = .text:0x00004650; // type:function size:0x4
|
||||
getObjectListEntry__11dAcEnBase_cFv = .text:0x00004660; // type:function size:0x8
|
||||
__dt__13dAcESkytail_cFv = .text:0x00004670; // type:function size:0x164
|
||||
build__29sFStateFct_c<13dAcESkytail_c>FRC12sStateIDIf_c = .text:0x000047E0; // type:function size:0x60
|
||||
dispose__29sFStateFct_c<13dAcESkytail_c>FRP10sStateIf_c = .text:0x00004840; // type:function size:0xC
|
||||
@@ -78,7 +78,7 @@ initializeState__28sFStateID_c<13dAcESkytail_c>CFR13dAcESkytail_c = .text:0x0000
|
||||
__sinit_\d_a_e_skytail_cpp = .text:0x000049A0; // type:function size:0x5DC scope:local
|
||||
__dt__28sFStateID_c<13dAcESkytail_c>Fv = .text:0x00004F80; // type:function size:0x58
|
||||
isSameName__28sFStateID_c<13dAcESkytail_c>CFPCc = .text:0x00004FE0; // type:function size:0x88
|
||||
fn_172_5070 = .text:0x00005070; // type:function size:0x8
|
||||
@272@__dt__22dCcD_Linked<8dCcD_Sph>Fv = .text:0x00005070; // type:function size:0x8
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
_dtors = .dtors:0x00000000; // type:label scope:global
|
||||
__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global
|
||||
@@ -97,21 +97,23 @@ lbl_172_data_F0 = .data:0x000000F0; // type:object size:0xC data:4byte
|
||||
lbl_172_data_FC = .data:0x000000FC; // type:object size:0x4 data:4byte
|
||||
lbl_172_data_100 = .data:0x00000100; // type:object size:0x4 data:4byte
|
||||
lbl_172_data_104 = .data:0x00000104; // type:object size:0x4 data:4byte
|
||||
lbl_172_data_108 = .data:0x00000108; // type:object size:0x90
|
||||
lbl_172_data_198 = .data:0x00000198; // type:object size:0x30
|
||||
lbl_172_data_1C8 = .data:0x000001C8; // type:object size:0x30
|
||||
lbl_172_data_1F8 = .data:0x000001F8; // type:object size:0x18
|
||||
lbl_172_data_210 = .data:0x00000210; // type:object size:0x18
|
||||
lbl_172_data_228 = .data:0x00000228; // type:object size:0x70
|
||||
lbl_172_data_298 = .data:0x00000298; // type:object size:0x18
|
||||
lbl_172_data_2B0 = .data:0x000002B0; // type:object size:0x1F8
|
||||
__vt__13dAcESkytail_c = .data:0x00000108; // type:object size:0x8C
|
||||
__vt__52sFStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c> = .data:0x00000198; // type:object size:0x30
|
||||
__vt__82sStateMgr_c<13dAcESkytail_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x000001C8; // type:object size:0x30
|
||||
__vt__29sFStateFct_c<13dAcESkytail_c> = .data:0x000001F8; // type:object size:0x14
|
||||
__vt__26sFState_c<13dAcESkytail_c> = .data:0x00000210; // type:object size:0x18
|
||||
__vt__22dCcD_Linked<8dCcD_Sph> = .data:0x00000228; // type:object size:0x70
|
||||
__vt__Q213dAcESkytail_c17callbackAntenna_c = .data:0x00000298; // type:object size:0x18
|
||||
__vt__Q213dAcESkytail_c14callbackBody_c = .data:0x000002B0; // type:object size:0x1F8
|
||||
lbl_172_data_4A8 = .data:0x000004A8; // type:object size:0x34
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_172_bss_8 = .bss:0x00000008; // type:object size:0x10 align:4 data:float
|
||||
lbl_172_bss_18 = .bss:0x00000018; // type:object size:0x40 data:4byte
|
||||
lbl_172_bss_58 = .bss:0x00000058; // type:object size:0x40 data:4byte
|
||||
lbl_172_bss_98 = .bss:0x00000098; // type:object size:0x40 data:4byte
|
||||
lbl_172_bss_D8 = .bss:0x000000D8; // type:object size:0x80 data:4byte
|
||||
lbl_172_bss_158 = .bss:0x00000158; // type:object size:0xCC data:4byte
|
||||
StateID_RandomMove__13dAcESkytail_c = .bss:0x00000018; // type:object size:0x30 data:4byte
|
||||
StateID_Move__13dAcESkytail_c = .bss:0x00000058; // type:object size:0x30 data:4byte
|
||||
StateID_ParallelMove__13dAcESkytail_c = .bss:0x00000098; // type:object size:0x30 data:4byte
|
||||
StateID_FrontAttack__13dAcESkytail_c = .bss:0x000000D8; // type:object size:0x30 data:4byte
|
||||
StateID_Charge__13dAcESkytail_c = .bss:0x00000118; // type:object size:0x30 data:4byte
|
||||
StateID_Dead__13dAcESkytail_c = .bss:0x00000158; // type:object size:0x30 data:4byte
|
||||
StateID_Skytail__13dAcESkytail_c = .bss:0x00000198; // type:object size:0x30 data:4byte
|
||||
lbl_172_bss_224 = .bss:0x00000224; // type:object size:0x1 data:byte
|
||||
lbl_172_bss_228 = .bss:0x00000228; // type:object size:0xC align:4 data:float
|
||||
|
||||
@@ -1187,7 +1187,7 @@ fn_800307E0 = .text:0x800307E0; // type:function size:0x34
|
||||
fn_80030820 = .text:0x80030820; // type:function size:0x14
|
||||
fn_80030840 = .text:0x80030840; // type:function size:0x13C
|
||||
fn_80030980__11dAcEnBase_cFRQ23m3d5mdl_clb = .text:0x80030980; // type:function size:0x188
|
||||
fn_80030B10 = .text:0x80030B10; // type:function size:0x10C
|
||||
isWithinCameraView__11dAcEnBase_cFff = .text:0x80030B10; // type:function size:0x10C
|
||||
fn_80030c20__11dAcEnBase_cFUlffff = .text:0x80030C20; // type:function size:0x28
|
||||
fn_80030C50 = .text:0x80030C50; // type:function size:0x8
|
||||
fn_80030C60 = .text:0x80030C60; // type:function size:0x4
|
||||
|
||||
+1
-1
@@ -2138,7 +2138,7 @@ config.libs = [
|
||||
Rel(NonMatching, "d_a_e_sf4", "REL/d/a/e/d_a_e_sf4.cpp"),
|
||||
Rel(NonMatching, "d_a_e_sf", "REL/d/a/e/d_a_e_sf.cpp"),
|
||||
Rel(NonMatching, "d_a_e_siren", "REL/d/a/e/d_a_e_siren.cpp"),
|
||||
Rel(NonMatching, "d_a_e_skytail", "REL/d/a/e/d_a_e_skytail.cpp"),
|
||||
Rel(Matching, "d_a_e_skytail", "REL/d/a/e/d_a_e_skytail.cpp"),
|
||||
Rel(NonMatching, "d_a_e_sm", "REL/d/a/e/d_a_e_sm.cpp"),
|
||||
Rel(NonMatching, "d_a_e_spark", "REL/d/a/e/d_a_e_spark.cpp"),
|
||||
Rel(NonMatching, "d_a_e_st", "REL/d/a/e/d_a_e_st.cpp"),
|
||||
|
||||
+21
-1
@@ -2,6 +2,7 @@
|
||||
#define D_A_BIRD_H
|
||||
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "s/s_State.hpp"
|
||||
|
||||
class dBird_c : public dAcObjBase_c {
|
||||
@@ -28,19 +29,38 @@ public:
|
||||
// fn_129_8DD0, only referenced by d_a_obj_bird_sp
|
||||
void accelerateTowards(mVec3_c &targetDirection);
|
||||
|
||||
void fn_129_C4A0(mVec3_c &out, u16);
|
||||
bool fn_129_CFB0();
|
||||
|
||||
s16 getNumDashes() const {
|
||||
return mNumDashes;
|
||||
}
|
||||
const mVec3_c &getField_0xFAC() const {
|
||||
return field_0xFAC;
|
||||
}
|
||||
s16 getField_0xFCC() const {
|
||||
return field_0xFCC;
|
||||
}
|
||||
|
||||
static dBird_c *getInstance() {
|
||||
return spInstance;
|
||||
}
|
||||
|
||||
dAcObjRef_c &getRef_0xEB8() {
|
||||
return field_0xEB8;
|
||||
}
|
||||
|
||||
private:
|
||||
static dBird_c *spInstance;
|
||||
/* 0x??? */ STATE_MGR_DECLARE(dBird_c);
|
||||
u8 _0x36C[0xF8E - 0x36C];
|
||||
u8 _0x36C[0xEB8 - 0x36C];
|
||||
/* 0xEB8 */ dAcObjRef_c field_0xEB8;
|
||||
u8 _0xEC4[0xF8E - 0xEC4];
|
||||
/* 0xF8E */ s16 mNumDashes;
|
||||
/* 0xFB0 */ u8 _0xFB90[0xFAC - 0xF90];
|
||||
/* 0xFAC */ mVec3_c field_0xFAC;
|
||||
/* 0xFB8 */ u8 _0xFB8[0xFCC - 0xFB8];
|
||||
/* 0xFCC */ s16 field_0xFCC;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,13 +2,121 @@
|
||||
#define D_A_E_SKYTAIL_H
|
||||
|
||||
#include "d/a/e/d_a_en_base.h"
|
||||
#include "d/col/bg/d_bg_s_acch.h"
|
||||
#include "d/col/cc/d_cc_d.h"
|
||||
#include "d/d_cc.h"
|
||||
#include "m/m3d/m_mdl.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "toBeSorted/d_d3d.h"
|
||||
|
||||
class dAcESkytail_c : public dAcEnBase_c {
|
||||
class callbackBody_c : public m3d::callback_c {
|
||||
public:
|
||||
callbackBody_c() {}
|
||||
virtual ~callbackBody_c() {}
|
||||
|
||||
virtual void timingB(u32, nw4r::g3d::WorldMtxManip *, nw4r::g3d::ResMdl) override;
|
||||
|
||||
// Node Center -> then all spines
|
||||
mVec3_c mPos[12];
|
||||
mAng3_c mAng[12];
|
||||
|
||||
f32 mScaleSpine11;
|
||||
s16 field_0x10DC;
|
||||
s16 field_0x10DE;
|
||||
s16 field_0x10E0;
|
||||
};
|
||||
enum BodyNode_e {
|
||||
BODY_NODE_Center,
|
||||
BODY_NODE_Head,
|
||||
BODY_NODE_Hair,
|
||||
BODY_NODE_LMouthBig,
|
||||
BODY_NODE_LMouthSmall,
|
||||
BODY_NODE_RMouthBig,
|
||||
BODY_NODE_RMouthSmall,
|
||||
BODY_NODE_Spine01,
|
||||
BODY_NODE_Spine02,
|
||||
BODY_NODE_Spine03,
|
||||
BODY_NODE_L1wing01,
|
||||
BODY_NODE_L1wing02,
|
||||
BODY_NODE_L1wing03,
|
||||
BODY_NODE_L1wing04,
|
||||
BODY_NODE_L1wing05,
|
||||
BODY_NODE_R1wing01,
|
||||
BODY_NODE_R1wing02,
|
||||
BODY_NODE_R1wing03,
|
||||
BODY_NODE_R1wing04,
|
||||
BODY_NODE_R1wing05,
|
||||
BODY_NODE_Spine04,
|
||||
BODY_NODE_Spine05,
|
||||
BODY_NODE_L2wing01,
|
||||
BODY_NODE_L2wing02,
|
||||
BODY_NODE_L2wing03,
|
||||
BODY_NODE_L2wing04,
|
||||
BODY_NODE_R2wing01,
|
||||
BODY_NODE_R2wing02,
|
||||
BODY_NODE_R2wing03,
|
||||
BODY_NODE_R2wing04,
|
||||
BODY_NODE_Spine06,
|
||||
BODY_NODE_Spine07,
|
||||
BODY_NODE_L3wing01,
|
||||
BODY_NODE_L3wing02,
|
||||
BODY_NODE_L3wing03,
|
||||
BODY_NODE_L3wing04,
|
||||
BODY_NODE_R3wing01,
|
||||
BODY_NODE_R3wing02,
|
||||
BODY_NODE_R3wing03,
|
||||
BODY_NODE_R3wing04,
|
||||
BODY_NODE_Spine08,
|
||||
BODY_NODE_Spine09,
|
||||
BODY_NODE_Spine10,
|
||||
BODY_NODE_Spine11
|
||||
};
|
||||
|
||||
class callbackAntenna_c : public m3d::callback_c {
|
||||
public:
|
||||
callbackAntenna_c() {}
|
||||
virtual ~callbackAntenna_c() {}
|
||||
|
||||
virtual void timingB(u32, nw4r::g3d::WorldMtxManip *, nw4r::g3d::ResMdl) override;
|
||||
|
||||
// Corresponds to the AntennaNode_e
|
||||
mVec3_c mPos[9];
|
||||
mAng3_c mAng[9];
|
||||
};
|
||||
enum AntennaNode_e {
|
||||
ANTENNA_NODE_AntennaCenter,
|
||||
ANTENNA_NODE_Antenna01,
|
||||
ANTENNA_NODE_Antenna02,
|
||||
ANTENNA_NODE_Antenna03,
|
||||
ANTENNA_NODE_Antenna04,
|
||||
ANTENNA_NODE_Antenna05,
|
||||
ANTENNA_NODE_Antenna06,
|
||||
ANTENNA_NODE_Antenna07,
|
||||
ANTENNA_NODE_Antenna08,
|
||||
};
|
||||
|
||||
enum CollisionIdx_e {
|
||||
COLLIDER_Head,
|
||||
COLLIDER_Spine4,
|
||||
COLLIDER_Spine6,
|
||||
COLLIDER_Spine8,
|
||||
COLLIDER_Rear,
|
||||
};
|
||||
|
||||
public:
|
||||
dAcESkytail_c() : mStateMgr(*this) {}
|
||||
virtual ~dAcESkytail_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int doDelete() override;
|
||||
virtual int draw() override;
|
||||
virtual bool createHeap() override;
|
||||
virtual int actorExecute() override;
|
||||
|
||||
STATE_FUNC_DECLARE(dAcESkytail_c, RandomMove);
|
||||
STATE_FUNC_DECLARE(dAcESkytail_c, Move);
|
||||
STATE_FUNC_DECLARE(dAcESkytail_c, ParallelMove);
|
||||
@@ -17,8 +125,109 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcESkytail_c, Dead);
|
||||
STATE_FUNC_DECLARE(dAcESkytail_c, Skytail);
|
||||
|
||||
STATE_MGR_DEFINE_UTIL_ISSTATE(dAcESkytail_c);
|
||||
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dAcESkytail_c);
|
||||
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dAcESkytail_c);
|
||||
|
||||
void fn_172_A40();
|
||||
void fn_172_3CD0();
|
||||
void fn_172_4240(s32);
|
||||
void fn_172_45D0();
|
||||
void fn_172_45E0();
|
||||
void fn_172_45F0();
|
||||
|
||||
private:
|
||||
/* 0x??? */ STATE_MGR_DECLARE(dAcESkytail_c);
|
||||
/* 0x0378 */ d3d::AnmMdlWrapper mBodyMdl;
|
||||
/* 0x03E8 */ d3d::AnmMdlWrapper mAntennaMdl[2];
|
||||
/* 0x04C8 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x0524 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x08D4 */ dCcD_Linked<dCcD_Sph> mCc[5];
|
||||
/* 0x0FB4 */ dColliderLinkedList mCollider;
|
||||
/* 0x0FC0 */ STATE_MGR_DECLARE(dAcESkytail_c);
|
||||
/* 0x0FFC */ callbackBody_c mBodyTransform;
|
||||
/* 0x10E4 */ callbackAntenna_c mAntennaTransform[2];
|
||||
/* 0x1234 */ mMtx_c field_0x1234;
|
||||
/* 0x1264 */ mVec3_c field_0x1264;
|
||||
/* 0x1270 */ mVec3_c field_0x1270;
|
||||
/* 0x127C */ mVec3_c field_0x127C;
|
||||
/* 0x1288 */ mVec3_c field_0x1288;
|
||||
/* 0x1294 */ mVec3_c field_0x1294;
|
||||
/* 0x12A0 */ mVec3_c field_0x12A0;
|
||||
/* 0x12AC */ mVec3_c field_0x12AC;
|
||||
/* 0x12B8 */ mVec3_c field_0x12B8;
|
||||
/* 0x12C4 */ mVec3_c mBirdPosition;
|
||||
/* 0x12D0 */ mVec3_c field_0x12D0;
|
||||
/* 0x12DC */ mVec3_c field_0x12DC;
|
||||
/* 0x12E8 */ mVec3_c field_0x12E8;
|
||||
/* 0x12F4 */ mVec3_c field_0x12F4;
|
||||
/* 0x1300 */ mAng3_c field_0x1300;
|
||||
/* 0x1306 */ mAng3_c mBirdRotation;
|
||||
/* 0x130C */ f32 field_0x130C;
|
||||
/* 0x1310 */ f32 field_0x1310;
|
||||
/* 0x1314 */ f32 mScaleF;
|
||||
/* 0x1318 */ f32 field_0x1318;
|
||||
/* 0x131C */ f32 field_0x131C;
|
||||
/* 0x1310 */ f32 field_0x1320;
|
||||
/* 0x1324 */ f32 mDistanceToBird;
|
||||
/* 0x1328 */ f32 field_0x1328;
|
||||
/* 0x132C */ f32 field_0x132C;
|
||||
/* 0x1330 */ f32 field_0x1330;
|
||||
/* 0x1334 */ f32 field_0x1334;
|
||||
/* 0x1338 */ f32 field_0x1338;
|
||||
/* 0x133C */ f32 field_0x133C;
|
||||
/* 0x1340 */ f32 field_0x1340;
|
||||
/* 0x1344 */ f32 field_0x1344;
|
||||
/* 0x1348 */ f32 field_0x1348;
|
||||
/* 0x134C */ f32 field_0x134C;
|
||||
/* 0x1350 */ u8 _0x1350[0x135C - 0x1350];
|
||||
/* 0x135C */ s32 field_0x135C;
|
||||
/* 0x1360 */ s32 field_0x1360;
|
||||
/* 0x1364 */ s32 field_0x1364;
|
||||
/* 0x1368 */ s16 field_0x1368;
|
||||
/* 0x136A */ s16 field_0x136A;
|
||||
/* 0x136C */ s16 field_0x136C;
|
||||
/* 0x136E */ s16 field_0x136E;
|
||||
/* 0x1370 */ s16 field_0x1370;
|
||||
/* 0x1372 */ s16 field_0x1372;
|
||||
/* 0x1376 */ s16 field_0x1374;
|
||||
/* 0x1376 */ s16 field_0x1376;
|
||||
/* 0x1378 */ s16 field_0x1378;
|
||||
/* 0x137A */ s16 field_0x137A;
|
||||
/* 0x137C */ s16 field_0x137C;
|
||||
/* 0x137E */ s16 field_0x137E;
|
||||
/* 0x1380 */ s16 field_0x1380;
|
||||
/* 0x1382 */ s16 field_0x1382;
|
||||
/* 0x1384 */ s16 field_0x1384;
|
||||
/* 0x1386 */ s16 field_0x1386;
|
||||
/* 0x1388 */ s16 field_0x1388;
|
||||
/* 0x1388 */ s16 field_0x138A;
|
||||
/* 0x138C */ s16 field_0x138C;
|
||||
/* 0x138E */ s16 field_0x138E;
|
||||
/* 0x1390 */ s16 field_0x1390;
|
||||
/* 0x1392 */ s16 field_0x1392;
|
||||
/* 0x1394 */ s16 field_0x1394;
|
||||
/* 0x1394 */ s16 field_0x1396;
|
||||
/* 0x1398 */ s16 field_0x1398;
|
||||
/* 0x139A */ s16 field_0x139A;
|
||||
/* 0x139A */ s16 field_0x139C;
|
||||
/* 0x139E */ s16 field_0x139E;
|
||||
/* 0x13A0 */ s16 field_0x13A0;
|
||||
/* 0x13A2 */ s16 field_0x13A2;
|
||||
/* 0x13A4 */ u16 field_0x13A4[3];
|
||||
/* 0x13AA */ u16 field_0x13AA;
|
||||
/* 0x13AC */ u8 field_0x13AC;
|
||||
/* 0x13AD */ u8 field_0x13AD;
|
||||
/* 0x13AE */ u8 field_0x13AE;
|
||||
/* 0x13AF */ u8 field_0x13AF;
|
||||
/* 0x13B0 */ u8 field_0x13B0;
|
||||
/* 0x13B1 */ u8 field_0x13B1;
|
||||
/* 0x13B2 */ u8 field_0x13B2;
|
||||
/* 0x13B3 */ u8 field_0x13B3;
|
||||
/* 0x13B4 */ u8 field_0x13B4;
|
||||
/* 0x13B5 */ u8 field_0x13B5;
|
||||
/* 0x13B6 */ u8 field_0x13B6;
|
||||
/* 0x13B7 */ bool field_0x13B7; // Maybe Bird has Player?
|
||||
/* 0x13B8 */ u8 field_0x13B8;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
void fn_80030700();
|
||||
dAcObjBase_c *targetPlayerOrScrapper(f32 biasToScrapper);
|
||||
static void fn_80030980(m3d::mdl_c &, s32, bool markDirty);
|
||||
|
||||
bool isWithinCameraView(f32, f32);
|
||||
void fn_80030c20(u32 flags, f32, f32, f32, f32);
|
||||
|
||||
s32 someEnemyDamageCollisionStuffMaybe(dColliderLinkedList &list, u16 *pOutFlags);
|
||||
|
||||
+1210
-15
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
#include "d/a/e/d_a_en_base.h"
|
||||
|
||||
#include "d/d_stage_mgr.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/g3d/g3d_camera.h"
|
||||
|
||||
bool dAcEnBase_c::isWithinCameraView(f32 w, f32 h) {
|
||||
nw4r::g3d::Camera cam = dStageMgr_c::GetInstance()->getCamera(0);
|
||||
|
||||
f32 x, y, width, height, near, far;
|
||||
cam.GetViewport(&x, &y, &width, &height, &near, &far);
|
||||
|
||||
mVec3_c src;
|
||||
cam.Project(src, mPosition);
|
||||
|
||||
return ((width * w <= src.x) && (src.x < width * (1.0f - w))) &&
|
||||
((height * h <= src.y) && src.y < height * (1.0f - h)) && ((near <= src.z) && (src.z < far));
|
||||
}
|
||||
Reference in New Issue
Block a user