mirror of
https://github.com/zeldaret/ss
synced 2026-10-07 21:30:59 -04:00
@@ -30,8 +30,8 @@ doDelete__14dAcBlastboss_cFv = .text:0x000015A0; // type:function size:0x34
|
||||
actorExecute__14dAcBlastboss_cFv = .text:0x000015E0; // type:function size:0x17A8
|
||||
executeState__83sStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x00002D90; // type:function size:0x10
|
||||
getStateID__83sStateMgr_c<14dAcBlastboss_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x00002DA0; // type:function size:0x10
|
||||
ChkAtHit__10dCcD_CheckFv = .text:0x00002DB0; // type:function size:0x48
|
||||
ChkTgHit__10dCcD_CheckFv = .text:0x00002E00; // type:function size:0x4C
|
||||
ChkAtHit__8cCcD_ObjFv = .text:0x00002DB0; // type:function size:0x48
|
||||
ChkTgHit__8cCcD_ObjFv = .text:0x00002E00; // type:function size:0x4C
|
||||
timingB__Q214dAcBlastboss_c10callback_cFUlPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdl = .text:0x00002E50; // type:function size:0x85C
|
||||
initializeState_Fight__14dAcBlastboss_cFv = .text:0x000036B0; // type:function size:0xBC
|
||||
executeState_Fight__14dAcBlastboss_cFv = .text:0x00003770; // type:function size:0x718
|
||||
|
||||
@@ -18794,8 +18794,8 @@ ChkTgBit23__8cCcD_ObjCFv = .text:0x80328E80; // type:function size:0xC
|
||||
ChkTgBit20__8cCcD_ObjCFv = .text:0x80328E90; // type:function size:0xC
|
||||
ChkTgBit24__8cCcD_ObjCFv = .text:0x80328EA0; // type:function size:0xC
|
||||
ChkTgBit25__8cCcD_ObjCFv = .text:0x80328EB0; // type:function size:0xC
|
||||
GetTgSoundID__8cCcD_ObjCFv = .text:0x80328EC0; // type:function size:0x8
|
||||
GetTg_0x6A__8cCcD_ObjCFv = .text:0x80328ED0; // type:function size:0x8
|
||||
GetTgAtCutDir__8cCcD_ObjCFv = .text:0x80328EC0; // type:function size:0x8
|
||||
GetTgAtCutAng__8cCcD_ObjCFv = .text:0x80328ED0; // type:function size:0x8
|
||||
ChkTgBit8__8cCcD_ObjCFv = .text:0x80328EE0; // type:function size:0xC
|
||||
GetTg_0x4A__8cCcD_ObjCFv = .text:0x80328EF0; // type:function size:0x8
|
||||
GetTgActor__8cCcD_ObjFv = .text:0x80328F00; // type:function size:0x8
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "m/m3d/m_smdl.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/math/math_arithmetic.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "toBeSorted/d_emitter.h"
|
||||
#include "toBeSorted/d_enemy_sword_mdl.h"
|
||||
@@ -42,6 +43,10 @@ struct UnkLastBossCcSph2 {
|
||||
/* 0x08C */ mVec3_c field_0x08C[10];
|
||||
/* 0x104 */ mVec3_c field_0x104[10];
|
||||
/* 0x17C */ dCcD_Linked<dCcD_Sph> mCc;
|
||||
|
||||
f32 getAbs_0x010() const {
|
||||
return nw4r::math::FAbs(field_0x010);
|
||||
}
|
||||
};
|
||||
|
||||
class dAcBlastboss_c : public dAcEnBase_c {
|
||||
@@ -297,6 +302,11 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcBlastboss_c, Stun);
|
||||
STATE_FUNC_DECLARE(dAcBlastboss_c, ThunderWait);
|
||||
|
||||
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dAcBlastboss_c);
|
||||
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dAcBlastboss_c);
|
||||
STATE_MGR_DEFINE_UTIL_ISSTATE(dAcBlastboss_c);
|
||||
STATE_MGR_DEFINE_UTIL_GETSTATEID(dAcBlastboss_c);
|
||||
|
||||
private:
|
||||
void setAnm(const char *anim, f32 blend);
|
||||
void forceSetAnm(const char *anim, f32 blend);
|
||||
|
||||
+25
-13
@@ -328,7 +328,7 @@ struct cCcD_SrcGObjTg {
|
||||
/* 0x04 */ u32 mSPrm;
|
||||
/* 0x08 */ cCcD_SrcGObjTgInfo mInfo;
|
||||
/* 0x0C */ u16 field_0x0C;
|
||||
/* 0x0E */ u16 field_0x0E;
|
||||
/* 0x0E */ u16 mCutDir; // cCcD_CutDir
|
||||
};
|
||||
|
||||
enum dCcD_ObjAtType {
|
||||
@@ -386,7 +386,21 @@ struct cCcD_SrcGObjAtInfo {
|
||||
enum cCcD_AtSPrm {
|
||||
AT_SPRM_DAMAGE = 0x4,
|
||||
};
|
||||
enum cCcD_CutDir {
|
||||
CUT_DIR_NONE = 0,
|
||||
CUT_DIR_U = (1 << 0), // 0x0001
|
||||
CUT_DIR_LU = (1 << 1), // 0x0002
|
||||
CUT_DIR_L = (1 << 2), // 0x0004
|
||||
CUT_DIR_LD = (1 << 3), // 0x0008
|
||||
CUT_DIR_D = (1 << 4), // 0x0010
|
||||
CUT_DIR_RD = (1 << 5), // 0x0020
|
||||
CUT_DIR_R = (1 << 6), // 0x0040
|
||||
CUT_DIR_RU = (1 << 7), // 0x0080
|
||||
CUT_DIR_STAB = (1 << 8), // 0x0100
|
||||
|
||||
CUT_DIR_ALL =
|
||||
(CUT_DIR_U | CUT_DIR_LU | CUT_DIR_L | CUT_DIR_LD | CUT_DIR_D | CUT_DIR_RD | CUT_DIR_R | CUT_DIR_RU | CUT_DIR_STAB)
|
||||
};
|
||||
struct cCcD_SrcGObjAt {
|
||||
/* 0x00 */ u32 mType;
|
||||
/* 0x04 */ u32 mSPrm;
|
||||
@@ -395,8 +409,8 @@ struct cCcD_SrcGObjAt {
|
||||
/* 0x0D */ u8 field_0xD;
|
||||
/* 0x0E */ u8 field_0xE;
|
||||
/* 0x0F */ u8 field_0xF;
|
||||
/* 0x10 */ u16 field_0x10;
|
||||
/* 0x12 */ s16 field_0x12;
|
||||
/* 0x10 */ u16 mCutDir; // cCcD_CutDir
|
||||
/* 0x12 */ s16 mCutAng;
|
||||
};
|
||||
|
||||
struct cCcD_SrcGObjCo {
|
||||
@@ -595,12 +609,12 @@ public:
|
||||
return mAtHitSrc.mType;
|
||||
}
|
||||
|
||||
void SetFlag_0xA(u16 flag) {
|
||||
mSrc.field_0x0E = flag;
|
||||
void SetCutDir(u16 flag) {
|
||||
mSrc.mCutDir = flag;
|
||||
}
|
||||
|
||||
u16 GetFlag_0xA(u16 mask) const {
|
||||
return mSrc.field_0x0E & mask;
|
||||
u16 ChkCutDir(u16 mask) const {
|
||||
return mSrc.mCutDir & mask;
|
||||
}
|
||||
void ClrSet() {
|
||||
OffSPrm(1);
|
||||
@@ -816,8 +830,8 @@ public:
|
||||
bool ChkTgBit23() const;
|
||||
bool ChkTgBit24() const;
|
||||
bool ChkTgBit25() const;
|
||||
s32 GetTgSoundID() const;
|
||||
s16 GetTg_0x6A() const;
|
||||
s32 GetTgAtCutDir() const;
|
||||
s16 GetTgAtCutAng() const;
|
||||
bool ChkTgBit8() const;
|
||||
u8 GetTg_0x4A() const;
|
||||
dAcObjBase_c *GetTgActor();
|
||||
@@ -879,10 +893,8 @@ public:
|
||||
void SetAtRpm(u32 f) {
|
||||
mAt.SetRPrm(f);
|
||||
}
|
||||
|
||||
// Related to directional attacks?
|
||||
void SetTgFlag_0xA(u16 flag) {
|
||||
mTg.SetFlag_0xA(flag);
|
||||
void SetTgCutDir(u16 flag) {
|
||||
mTg.SetCutDir(flag);
|
||||
}
|
||||
|
||||
void SetTgSrcField_0x0C(u16 val) {
|
||||
|
||||
@@ -55,13 +55,6 @@ public:
|
||||
void foreachCc(ccCbFunc f, void *cbArg) const;
|
||||
void foreachCc2(ccCbFunc f, void *cbArg) const;
|
||||
|
||||
// This find function is used by a lot of other
|
||||
// TUs, all of which own the function passed as
|
||||
// a ptmf. It's not immediately clear how this works,
|
||||
// does every actor subclass the LinkedCollider___,
|
||||
// or are the functions all added here for the other
|
||||
// files to implement? d_a_b_lastboss commits a typing crime here
|
||||
// to make it work...
|
||||
typedef bool (cCcD_Obj::*ccPtmf)();
|
||||
cCcD_Obj *find(ccPtmf f) const;
|
||||
|
||||
|
||||
@@ -468,19 +468,6 @@ public:
|
||||
ATTACK_FINAL_BLOW = 11,
|
||||
};
|
||||
|
||||
enum SpecificPlayerAttackDirection_e {
|
||||
/* 0x000 */ ATTACK_DIRECTION_NONE = 0,
|
||||
/* 0x001 */ ATTACK_DIRECTION_DOWN = 1 << 0,
|
||||
/* 0x002 */ ATTACK_DIRECTION_DOWNRIGHT = 1 << 1,
|
||||
/* 0x004 */ ATTACK_DIRECTION_RIGHT = 1 << 2,
|
||||
/* 0x008 */ ATTACK_DIRECTION_UPRIGHT = 1 << 3,
|
||||
/* 0x010 */ ATTACK_DIRECTION_UP = 1 << 4,
|
||||
/* 0x020 */ ATTACK_DIRECTION_UPLEFT = 1 << 5,
|
||||
/* 0x040 */ ATTACK_DIRECTION_LEFT = 1 << 6,
|
||||
/* 0x080 */ ATTACK_DIRECTION_DOWNLEFT = 1 << 7,
|
||||
/* 0x100 */ ATTACK_DIRECTION_STAB = 1 << 8,
|
||||
};
|
||||
|
||||
enum ModelUpdateFlags_e {
|
||||
UPDATE_MODEL_SWORD = 0x20,
|
||||
UPDATE_MODEL_SHIELD = 0x40,
|
||||
|
||||
+193
-237
File diff suppressed because it is too large
Load Diff
+11
-11
@@ -127,9 +127,9 @@ SPECIAL_ACTOR_PROFILE(E_KS, dAcEKs_c, fProfile::E_KS, 0xFE, 0, 4099);
|
||||
|
||||
static dCcD_SrcSph sSrcSph = {
|
||||
{
|
||||
/* mObjAt */ {AT_TYPE_DAMAGE, 0x1D, {0, 0, 0}, 2, 0, 0, 0, 0, 0},
|
||||
/* mObjAt */ {AT_TYPE_DAMAGE, 0x1D, {0, 0, 0}, 2, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~AT_TYPE_COMMON0, 0x200303, {0, 1, 0x40F}, 8, 0},
|
||||
{~AT_TYPE_COMMON0, 0x200303, {0, 1, 0x40F}, 8, CUT_DIR_NONE},
|
||||
/* mObjCo*/ {0xE5},
|
||||
},
|
||||
{35.f}
|
||||
@@ -293,27 +293,27 @@ void dAcEKs_c::fn_155_A60() {
|
||||
s16 a = 0;
|
||||
s16 x = -cLib::targetAngleX(mPosition, dAcPy_c::GetLink()->mPosition);
|
||||
|
||||
if (mSph.GetTgSoundID() == 0x01) {
|
||||
if (mSph.GetTgAtCutDir() == CUT_DIR_U) {
|
||||
x += 0x2000;
|
||||
} else if (mSph.GetTgSoundID() == 0x80) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_RU) {
|
||||
a = 0x1000;
|
||||
x += 0x1000;
|
||||
} else if (mSph.GetTgSoundID() == 0x40) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_R) {
|
||||
a = 0x2000;
|
||||
} else if (mSph.GetTgSoundID() == 0x20) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_RD) {
|
||||
a = 0x1000;
|
||||
x += -0x1000;
|
||||
} else if (mSph.GetTgSoundID() == 0x10) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_D) {
|
||||
x += -0x2000;
|
||||
} else if (mSph.GetTgSoundID() == 0x08) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_LD) {
|
||||
a = -0x1000;
|
||||
x += -0x1000;
|
||||
} else if (mSph.GetTgSoundID() == 0x04) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_L) {
|
||||
a = -0x2000;
|
||||
} else if (mSph.GetTgSoundID() == 0x02) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_LU) {
|
||||
a = -0x1000;
|
||||
x += 0x1000;
|
||||
} else if (mSph.GetTgSoundID() == 0x100) {
|
||||
} else if (mSph.GetTgAtCutDir() == CUT_DIR_STAB) {
|
||||
x += -0x4000;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
SPECIAL_ACTOR_PROFILE(E_REMLY, dAcEremly_c, fProfile::E_REMLY, 0xE1, 0, 3);
|
||||
|
||||
static dCcD_SrcSph sSphSrc = {
|
||||
{{AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 2, 0, 0, 0, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x303, {0, 0, 0x40F}, 8, 0},
|
||||
{{AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 2, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x303, {0, 0, 0x40F}, 8, CUT_DIR_NONE},
|
||||
{0xE5}},
|
||||
{50.f},
|
||||
};
|
||||
|
||||
@@ -45,18 +45,18 @@ static mVec3_c sArrVecs[5] = {
|
||||
|
||||
/* clang-format off */
|
||||
static dCcD_SrcSph sCcSrcHead = {
|
||||
{{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, 0, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, 0},
|
||||
{{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0xC5}},
|
||||
{180.0f},};
|
||||
static dCcD_SrcSph sCcSrcSpine = {
|
||||
{{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, 0, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, 0},
|
||||
{{AT_TYPE_DAMAGE,0x1D, {0, 0, 0}, 4, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0x18, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0xC5}},
|
||||
{170.0f},};
|
||||
static dCcD_SrcSph sCcSrcRear = {
|
||||
{{0, 0, {0, 0, 0}, 0, 0, 0, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0, 0x407}, 0, 0},
|
||||
{{0, 0, {0, 0, 0}, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_COMMON0 | AT_TYPE_PHYSICS), 0x303, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0xC5}},
|
||||
{200.0f},};
|
||||
/* clang-format on */
|
||||
|
||||
@@ -46,8 +46,9 @@ SPECIAL_ACTOR_PROFILE(E_SM, dAcEsm_c, fProfile::E_SM, 0xEB, 0, 4098);
|
||||
|
||||
static dCcD_SrcSph sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x3303, {0, 3, 0x40F}, 8, 0},
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0xD, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x3303, {0, 3, 0x40F}, 8, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xC5}},
|
||||
/* mSphInf */
|
||||
{50.f},
|
||||
|
||||
@@ -41,8 +41,9 @@
|
||||
SPECIAL_ACTOR_PROFILE(NPC_BEE, dAcNpcBee_c, fProfile::NPC_BEE, 0x123, 0, 0);
|
||||
|
||||
static dCcD_SrcSph beeColliderSrc = {
|
||||
/* mObjInf */ {/* mObjAt */ {AT_TYPE_0x2000000, 0x20000F, {0, 0, 0}, 1, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_BOMB, 0x00004011, {0, 00, 0x40F}, 8, 0},
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_0x2000000, 0x20000F, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_BOMB, 0x00004011, {0, 00, 0x40F}, 8, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0}},
|
||||
/* mSphInf */
|
||||
{15.0f}
|
||||
@@ -381,10 +382,8 @@ void dAcNpcBee_c::handleBeeFlyingStates(dAcNpcBeeSingleBee *bee) {
|
||||
dodgedSword = false;
|
||||
local_98 = dAcPy_c::GetLink()->getPosition() - bee->mPos;
|
||||
if (local_98.squareMagXZ() < 90000.f) {
|
||||
if (dAcPy_c::GetLink()->getSpecificAttackDirection() ==
|
||||
(s16)daPlayerActBase_c::ATTACK_DIRECTION_LEFT ||
|
||||
dAcPy_c::GetLink()->getSpecificAttackDirection() ==
|
||||
(s16)daPlayerActBase_c::ATTACK_DIRECTION_RIGHT) {
|
||||
if (dAcPy_c::GetLink()->getSpecificAttackDirection() == (s16)CUT_DIR_R ||
|
||||
dAcPy_c::GetLink()->getSpecificAttackDirection() == (s16)CUT_DIR_L) {
|
||||
local_98.y += 150.f;
|
||||
if (std::fabsf(local_98.y) < 50.f) {
|
||||
if (local_98.y < 0.f) {
|
||||
|
||||
@@ -91,13 +91,13 @@ STATE_DEFINE(dAcOBarrel_c, Rebirth);
|
||||
namespace {
|
||||
static dCcD_SrcCyl sSrcCyl = {
|
||||
{
|
||||
/* mObjAt */ {AT_TYPE_PHYSICS, 0x10013, {0, 0, 0}, 4, 0, 0, 0, 0, 0},
|
||||
/* mObjAt */ {AT_TYPE_PHYSICS, 0x10013, {0, 0, 0}, 4, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000),
|
||||
0x2000111,
|
||||
{0, 0xF, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo*/ {0xE9},
|
||||
},
|
||||
{
|
||||
@@ -106,13 +106,13 @@ static dCcD_SrcCyl sSrcCyl = {
|
||||
};
|
||||
static dCcD_SrcSph sSrcSph = {
|
||||
{
|
||||
/* mObjAt */ {AT_TYPE_PHYSICS, 0x10003, {0, 0, 0}, 4, 0, 0, 0, 0, 0},
|
||||
/* mObjAt */ {AT_TYPE_PHYSICS, 0x10003, {0, 0, 0}, 4, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x2000111,
|
||||
{0, 0xF, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo*/ {0xE9},
|
||||
},
|
||||
{55.f}
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
// clang-format off
|
||||
dCcD_SrcSph dAcObjBirdSp_c::sCcSrc = {
|
||||
/* mObjInf */ {
|
||||
/* mObjAt */ {0, 2, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjAt */ {0, 2, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
// AT_TYPE_COMMON0 - AT_TYPE_WIND
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x00000105, {0, 00, 0x407}, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x00000105, {0, 00, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x00004029}},
|
||||
/* mSphInf */ {1000.0f}
|
||||
};
|
||||
|
||||
@@ -43,8 +43,8 @@ const char *const dAcOBlockUnderground::sDzbPlcNames[4] = {
|
||||
|
||||
const dCcD_SrcCyl dAcOBlockUnderground::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {AT_TYPE_BOMB, 0x11, {0, 8, 0x407}, 0x0, 0x0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {AT_TYPE_BOMB, 0x11, {0, 8, 0x407}, 0x0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0}},
|
||||
/* mCylInf */
|
||||
{50.f, 100.f}
|
||||
|
||||
@@ -32,13 +32,13 @@ char *CHAIR_FILES[9] = {
|
||||
|
||||
static dCcD_SrcCyl sChairColData = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000),
|
||||
0x111,
|
||||
{0, 0x7, 0x407},
|
||||
0x0,
|
||||
0x0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mCylInf */
|
||||
{40.f, 50.f}
|
||||
|
||||
@@ -16,9 +16,8 @@ const f32 dAcOcloudDive_c::height = 40.0f;
|
||||
|
||||
dCcD_SrcCyl dAcOcloudDive_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */
|
||||
{AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {AT_TYPE_BOMB, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0}},
|
||||
/* mCylInf */
|
||||
{100.f, 10.f}
|
||||
|
||||
@@ -29,13 +29,12 @@ SPECIAL_ACTOR_PROFILE(OBJ_DUNGEON_SHIP, dAcODungeonShip_c, fProfile::OBJ_DUNGEON
|
||||
|
||||
dCcD_SrcCps dAcODungeonShip_c::sCcSrc = {
|
||||
{
|
||||
|
||||
{0, 0x1003E, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{0, 0x1003E, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x111,
|
||||
{0, 0, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
{0xE8},
|
||||
},
|
||||
{1000.0f},
|
||||
|
||||
@@ -39,8 +39,8 @@ bool dAcOFlyingClawshotTarget_c::createHeap() {
|
||||
|
||||
// clang-format off
|
||||
const cCcD_SrcGObj dAcOFlyingClawshotTarget_c::sColSrc = {
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1080111, {0, 6, 0x407}, 0, 0},
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1080111, {0, 6, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x0}
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -21,14 +21,14 @@ STATE_DEFINE(dAcOgrassCoil_c, Wait);
|
||||
|
||||
dCcD_SrcCyl dAcOgrassCoil_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{AT_TYPE_SWORD | AT_TYPE_BOMB | AT_TYPE_0x40 | AT_TYPE_SLINGSHOT | AT_TYPE_WHIP | AT_TYPE_ARROW |
|
||||
AT_TYPE_CLAWSHOT | AT_TYPE_0x800000,
|
||||
0x200111,
|
||||
{0, 0xb, 0x407},
|
||||
0x0,
|
||||
0x0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x29}},
|
||||
/* mCylInf */
|
||||
{50.f, 130.f}
|
||||
|
||||
@@ -28,13 +28,13 @@ STATE_DEFINE(dAcOGrave_c, Wait);
|
||||
STATE_DEFINE(dAcOGrave_c, Move);
|
||||
|
||||
dCcD_SrcUnk dAcOGrave_c::sUnkSrc = {
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x111,
|
||||
{0, 6, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0}},
|
||||
{-65.0f, 0.0f, -25.0f, 65.0f, 156.0f, 25.0f},
|
||||
};
|
||||
|
||||
@@ -40,14 +40,14 @@ InteractionTargetDef dAcOivyRope_c::sInteraction = {
|
||||
|
||||
dCcD_SrcCps dAcOivyRope_c::sCpsSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{AT_TYPE_0x800000 | AT_TYPE_BEETLE | AT_TYPE_CLAWSHOT | AT_TYPE_ARROW | AT_TYPE_WHIP | AT_TYPE_SLINGSHOT |
|
||||
AT_TYPE_BOMB | AT_TYPE_SWORD,
|
||||
0x111,
|
||||
{0, 0x19, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x4029}},
|
||||
/* mCpsInf */
|
||||
{10.f}
|
||||
@@ -55,9 +55,9 @@ dCcD_SrcCps dAcOivyRope_c::sCpsSrc = {
|
||||
|
||||
dCcD_SrcSph dAcOivyRope_c::sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0x11, {0, 0, 0}, 1, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0x11, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~AT_TYPE_COMMON0, 0x111, {0, 0, 0x407}, 0, 0},
|
||||
{~AT_TYPE_COMMON0, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x29}},
|
||||
/* mSphInf */
|
||||
{100.f}
|
||||
@@ -65,9 +65,9 @@ dCcD_SrcSph dAcOivyRope_c::sSphSrc = {
|
||||
|
||||
dCcD_SrcCyl dAcOivyRope_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{AT_TYPE_BELLOWS, 0x311, {0, 0, 8}, 8, 0},
|
||||
{AT_TYPE_BELLOWS, 0x311, {0, 0, 8}, 8, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x109}},
|
||||
/* mCylInf */
|
||||
{10.f, 750.f}
|
||||
|
||||
@@ -21,9 +21,13 @@ STATE_DEFINE(dAcOpinwheel_c, Deceleration);
|
||||
|
||||
dCcD_SrcSph dAcOpinwheel_c::sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 6, 0x8}, 8, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x111,
|
||||
{0, 6, 0x8},
|
||||
8,
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mSphInf */
|
||||
{50.f},
|
||||
|
||||
@@ -36,9 +36,13 @@ STATE_DEFINE(dAcOropeIgaiga_c, Water);
|
||||
|
||||
dCcD_SrcSph dAcOropeIgaiga_c::sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0x1F, {0, 0, 0}, 1, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {AT_TYPE_DAMAGE, 0x1F, {0, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_WIND | AT_TYPE_0x8000 | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_BUGNET), 0x311, {0, 0, 0x407}, 0, 0},
|
||||
{~(AT_TYPE_WIND | AT_TYPE_0x8000 | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_BUGNET),
|
||||
0x311,
|
||||
{0, 0, 0x407},
|
||||
0,
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xA9}},
|
||||
/* mSphInf */
|
||||
{20.f},
|
||||
|
||||
@@ -25,8 +25,8 @@ STATE_DEFINE(dAcOSeatSword_c, Get);
|
||||
|
||||
dCcD_SrcCyl dAcOSeatSword_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {0, 0x311, {0, 0, 0x407}, 0x0, 0x0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {0, 0x311, {0, 0, 0x407}, 0x0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mCylInf */
|
||||
{20.f, 100.f}
|
||||
|
||||
@@ -39,9 +39,9 @@ STATE_DEFINE(dAcOsoil_c, Ready);
|
||||
|
||||
dCcD_SrcCyl dAcOsoil_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{0, 0x111, {0, 0, 0x407}, 0, 0},
|
||||
{0, 0x111, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xC9}},
|
||||
/* mCylInf */
|
||||
{10.f, 15.f}
|
||||
|
||||
@@ -2,16 +2,20 @@
|
||||
|
||||
#include "d/a/obj/d_a_obj_base.h"
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "f/f_base.h"
|
||||
|
||||
SPECIAL_ACTOR_PROFILE(OBJ_SPIKE, dAcOspike_c, fProfile::OBJ_SPIKE, 0x1D9, 0, 2);
|
||||
|
||||
// clang-format off
|
||||
dCcD_SrcUnk dAcOspike_c::sCcSrc = {
|
||||
{{AT_TYPE_DAMAGE, 0x2003F, {0, 0, 0}, 1, 0, 0, 0, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, },
|
||||
{0}},
|
||||
{-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}};
|
||||
// clang-format on
|
||||
{{AT_TYPE_DAMAGE, 0x2003F, {0, 0, 0}, 1, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x111,
|
||||
{0x0, 0x06, 0x407},
|
||||
0,
|
||||
CUT_DIR_NONE},
|
||||
{0}},
|
||||
{-1.0f, -246.0f, -472.0f, 73.0f, 255.0f, 482.0f}
|
||||
};
|
||||
|
||||
const mVec3_c dAcOspike_c::sVec1 = mVec3_c(-1.0f, -246.0f, -472.0f);
|
||||
const mVec3_c dAcOspike_c::sVec2 = mVec3_c(73.0f, 255.0f, 482.0f);
|
||||
@@ -68,19 +72,19 @@ int dAcOspike_c::create() {
|
||||
}
|
||||
|
||||
int dAcOspike_c::doDelete() {
|
||||
return 1;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dAcOspike_c::actorExecute() {
|
||||
mStateMgr.executeState();
|
||||
mCollision.cM3dGUnk::Set(mPosition, mRotation.y);
|
||||
dCcS::GetInstance()->Set(&mCollision);
|
||||
return 1;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dAcOspike_c::draw() {
|
||||
drawModelType1(&mMdl);
|
||||
return 1;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
void dAcOspike_c::initializeState_Wait() {}
|
||||
|
||||
@@ -16,8 +16,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_TARZAN_POLE, dAcOTarzanPole_c, fProfile::OBJ_TARZAN_PO
|
||||
// clang-format off
|
||||
dCcD_SrcSph dAcOTarzanPole_c::sCcSrc = {
|
||||
/* mObjInf */ {
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {(AT_TYPE_WHIP | AT_TYPE_WIND), 0x800311, {0, 0, 0x407}, 0x0000, 0x0000},
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {(AT_TYPE_WHIP | AT_TYPE_WIND), 0x800311, {0, 0, 0x407}, 0x0000, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x00000000}},
|
||||
/* mSphInf */ {10.0f}
|
||||
};
|
||||
|
||||
@@ -18,12 +18,12 @@ f32 dAcOtoD3StoneFigure_c::sRadius = 85.0f;
|
||||
f32 dAcOtoD3StoneFigure_c::sHeight = 290.0f;
|
||||
|
||||
dCcD_SrcCyl dAcOtoD3StoneFigure_c::sCcSrc = {
|
||||
{{0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{{0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x1000111,
|
||||
{0, 0x06, 0x407},
|
||||
0,
|
||||
0},
|
||||
CUT_DIR_NONE},
|
||||
{0xE9}},
|
||||
{dAcOtoD3StoneFigure_c::sRadius, dAcOtoD3StoneFigure_c::sHeight}
|
||||
};
|
||||
|
||||
@@ -10,8 +10,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_TRIFORCE, dAcOtriforce_c, fProfile::OBJ_TRIFORCE, 0x15
|
||||
|
||||
// clang-format off
|
||||
dCcD_SrcSph dAcOtriforce_c::sCcSrc = {
|
||||
{{0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, 0},
|
||||
{{0, 0, 0, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, 0x0, 0x06, 0x407, 0, CUT_DIR_NONE},
|
||||
{0xE9}},
|
||||
{150.0f}};
|
||||
// clang-format on
|
||||
|
||||
@@ -52,8 +52,9 @@ STATE_DEFINE(dAcOtubo_c, Rebirth);
|
||||
|
||||
dCcD_SrcSph dAcOtubo_c::sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_PHYSICS, 0x12, {0, 0, 0}, 2, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x801111, {0, 0xA, 0x40F}, 8, 0},
|
||||
{/* mObjAt */ {AT_TYPE_PHYSICS, 0x12, {0, 0, 0}, 2, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x801111, {0, 0xA, 0x40F}, 8, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x1E9}},
|
||||
/* mSphInf */
|
||||
{30.f},
|
||||
|
||||
@@ -34,8 +34,9 @@ STATE_DEFINE(dAcOTumbleWeed_c, Slope);
|
||||
|
||||
dCcD_SrcSph dAcOTumbleWeed_c::sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x111, {0, 8, 0x40F}, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000), 0x111, {0, 8, 0x40F}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mSphInf */
|
||||
{60.f},
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "c/c_lib.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/a/npc/d_a_npc_talk_kensei.h"
|
||||
#include "d/col/c/c_cc_d.h"
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_sc_game.h"
|
||||
#include "d/d_vec.h"
|
||||
@@ -13,9 +14,13 @@ SPECIAL_ACTOR_PROFILE(OBJ_WARP_HOLE, dAcOwarpHole_c, fProfile::OBJ_WARP_HOLE, 0x
|
||||
|
||||
dCcD_SrcCyl dAcOwarpHole_c::sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000), 0x111, {0, 0, 0x407}, 0, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_BEETLE | AT_TYPE_WIND | AT_TYPE_0x8000),
|
||||
0x111,
|
||||
{0, 0, 0x407},
|
||||
0,
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x29}},
|
||||
/* mCylInf */
|
||||
{320.f, 300.f}
|
||||
|
||||
@@ -21,8 +21,8 @@ const f32 dTgReaction_c::sHeight = 100.0f;
|
||||
|
||||
// clang-format off
|
||||
dCcD_SrcCyl dTgReaction_c::sCcSrc = {
|
||||
{{0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
{AT_TYPE_BELLOWS, 0x213, {0, 0, 0x8},0x8},
|
||||
{{0, 0, 0, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{AT_TYPE_BELLOWS, 0x213, {0, 0, 0x8},0x8, CUT_DIR_NONE},
|
||||
{0xE8}},
|
||||
{dTgReaction_c::sRadius, dTgReaction_c::sHeight}
|
||||
};
|
||||
@@ -74,19 +74,19 @@ int dTgReaction_c::create() {
|
||||
switch (getReactType()) {
|
||||
case REACT_SLINGSHOT:
|
||||
mCollision.SetTgType(AT_TYPE_SLINGSHOT);
|
||||
mCollision.SetTgFlag_0xA(0);
|
||||
mCollision.SetTgCutDir(CUT_DIR_NONE);
|
||||
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||
break;
|
||||
case REACT_GUST_BELLOWS:
|
||||
mCollision.SetTgType(AT_TYPE_BELLOWS);
|
||||
mCollision.SetTgFlag_0xA(8);
|
||||
mCollision.SetTgCutDir(CUT_DIR_LD);
|
||||
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||
break;
|
||||
case REACT_UNDERWATER:
|
||||
mCollision.SetTgType(AT_TYPE_BUBBLE);
|
||||
mCollision.SetTgFlag_0xA(0);
|
||||
mCollision.SetTgCutDir(CUT_DIR_NONE);
|
||||
mCollision.SetR(sCcSrc.mCylInf.mRadius * mScale.x);
|
||||
mCollision.SetH(sCcSrc.mCylInf.mHeight * mScale.y);
|
||||
break;
|
||||
|
||||
@@ -260,8 +260,12 @@ static const GlitteringSporeRupeeChance sSporeRupeeChances[] = {
|
||||
};
|
||||
|
||||
static const dCcD_SrcCyl sSrcCyl = {
|
||||
{{0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x111, {0, 0x08, 0x407}, 0, 0},
|
||||
{{0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{~(AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND),
|
||||
0x111,
|
||||
{0, 0x08, 0x407},
|
||||
0,
|
||||
CUT_DIR_NONE},
|
||||
{0xE9}},
|
||||
{40.0f, 60.0f}
|
||||
};
|
||||
|
||||
@@ -26,9 +26,9 @@ STATE_DEFINE(dAcSalbageObj_c, Kill);
|
||||
|
||||
static dCcD_SrcCyl sCylSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~0, 0x111, {0, 0x02, 0x407}, 0, 0},
|
||||
{~0, 0x111, {0, 0x02, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mCylInf */
|
||||
{0.0f, 0.0f}
|
||||
|
||||
@@ -66,10 +66,10 @@ STATE_DEFINE(dAcArrow_c, Bound);
|
||||
// clang-format off
|
||||
|
||||
cCcD_SrcGObj dAcArrow_c::sCcSrcInf = {
|
||||
{AT_TYPE_ARROW, 0x8BB, {0x15,0, 0}, sDamageArrMaybe[0], 0, 0, 0, 0, 0},
|
||||
{AT_TYPE_ARROW, 0x8BB, {0x15,0, 0}, sDamageArrMaybe[0], 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{
|
||||
~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_ARROW | AT_TYPE_0x100 | AT_TYPE_WIND | AT_TYPE_SLINGSHOT),
|
||||
0x210, {0, 0, 0x407}, 0, 0
|
||||
0x210, {0, 0, 0x407}, 0, CUT_DIR_NONE
|
||||
},
|
||||
{0},
|
||||
};
|
||||
@@ -80,8 +80,8 @@ dCcD_SrcCps dAcArrow_c::sCc1 = {
|
||||
};
|
||||
|
||||
const dCcD_SrcSph dAcArrow_c::sCc2 = {
|
||||
{{0x0, 0x0, 0x0, 0, 0, 0, 0, 0, 0},
|
||||
{AT_TYPE_SWORD, 0x211, {0, 0, 0x407}, 0, 0},
|
||||
{{0x0, 0x0, 0x0, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{AT_TYPE_SWORD, 0x211, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0xC28}},
|
||||
{100.0f},
|
||||
};
|
||||
|
||||
@@ -85,9 +85,13 @@ STATE_DEFINE(dAcBomb_c, WindCarry);
|
||||
|
||||
dCcD_SrcSph sSphSrc = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {AT_TYPE_BOMB, 0x1803E, {0, 0, 0}, sHIO.getSomething(), 0, 0, 0, 0, 0},
|
||||
{/* mObjAt */ {AT_TYPE_BOMB, 0x1803E, {0, 0, 0}, sHIO.getSomething(), 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_0x10), 0x800111, {0, 0x0A, 0x40F}, 0, 0},
|
||||
{~(AT_TYPE_BUGNET | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_0x10),
|
||||
0x800111,
|
||||
{0, 0x0A, 0x40F},
|
||||
0,
|
||||
CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}},
|
||||
/* mSphInf */
|
||||
{sHIO.getBombScale()}
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
|
||||
dBgS_BeetleLinChk dAcBoomerang_c::sLinChk;
|
||||
dCcD_SrcSph dAcBoomerang_c::sSphSrc = {
|
||||
{{AT_TYPE_BEETLE, BoomerangAtFlags, {4, 0, 0}, 0, 1, 0, 0, 0},
|
||||
{~AT_TYPE_COMMON0, 0x291, {0, 0, 0x407}, 0, 0},
|
||||
{{AT_TYPE_BEETLE, BoomerangAtFlags, {4, 0, 0}, 0, 1, 0, CUT_DIR_NONE, 0},
|
||||
{~AT_TYPE_COMMON0, 0x291, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0x28}},
|
||||
{15.f}
|
||||
};
|
||||
|
||||
@@ -32,8 +32,8 @@ SPECIAL_ACTOR_PROFILE(OBJ_FAIRY, dAcOFairy_c, fProfile::OBJ_FAIRY, 0x22D, 0, 0x2
|
||||
|
||||
static dCcD_SrcSph sSphSrc1 = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_WIND, 0x200311, {0, 0, 0x40F}, 0, 0},
|
||||
{/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {AT_TYPE_BUGNET | AT_TYPE_BELLOWS | AT_TYPE_WIND, 0x200311, {0, 0, 0x40F}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0}},
|
||||
/* mSphInf */
|
||||
{30.f},
|
||||
@@ -41,8 +41,8 @@ static dCcD_SrcSph sSphSrc1 = {
|
||||
|
||||
static dCcD_SrcSph sSphSrc2 = {
|
||||
/* mObjInf */
|
||||
{/* mObjAt */ {0, 0x0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {0, 0x0, {0, 0, 0x40F}, 0, 0},
|
||||
{/* mObjAt */ {0, 0x0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {0, 0x0, {0, 0, 0x40F}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x29}},
|
||||
/* mSphInf */
|
||||
{10.f},
|
||||
|
||||
@@ -92,8 +92,8 @@ static char *const sOpenEventNames[] = {
|
||||
// clang-format off
|
||||
// TODO just copied from somewhere
|
||||
const cCcD_SrcGObj dAcTbox_c::sColSrc = {
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0, {0, 0, 0x407}, 0, 0},
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0xE9}
|
||||
};
|
||||
// clang-format on
|
||||
@@ -1079,8 +1079,8 @@ int dAcTbox_c::create() {
|
||||
if (mVariant == SMALL) {
|
||||
// clang-format off
|
||||
static const dCcD_SrcUnk s3 = {{
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {7, 0x407}, 0, 0},
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {7, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x0}},
|
||||
{0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f},
|
||||
};
|
||||
@@ -1090,8 +1090,8 @@ int dAcTbox_c::create() {
|
||||
} else {
|
||||
// clang-format off
|
||||
static const dCcD_SrcUnk s4 = {{
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {6, 0x407}, 0, 0},
|
||||
/* mObjAt */ {0, 0, {0, 0, 0}, 0, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
/* mObjTg */ {~(AT_TYPE_BUGNET | AT_TYPE_BEETLE | AT_TYPE_GLITTERING_SPORES | AT_TYPE_0x8000 | AT_TYPE_WIND), 0x1010111, {6, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
/* mObjCo */ {0x0}},
|
||||
{0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f},
|
||||
};
|
||||
|
||||
@@ -486,12 +486,12 @@ bool cCcD_Obj::ChkTgBit25() const {
|
||||
return mTg.MskAtHitSPrm(0x2000000);
|
||||
}
|
||||
|
||||
s32 cCcD_Obj::GetTgSoundID() const {
|
||||
return mTg.mAtHitSrc.field_0x10;
|
||||
s32 cCcD_Obj::GetTgAtCutDir() const {
|
||||
return mTg.mAtHitSrc.mCutDir;
|
||||
}
|
||||
|
||||
s16 cCcD_Obj::GetTg_0x6A() const {
|
||||
return mTg.mAtHitSrc.field_0x12;
|
||||
s16 cCcD_Obj::GetTgAtCutAng() const {
|
||||
return mTg.mAtHitSrc.mCutAng;
|
||||
}
|
||||
|
||||
bool cCcD_Obj::ChkTgBit8() const {
|
||||
|
||||
@@ -874,9 +874,9 @@ bool dTgMassObjInstance::checkForHit(
|
||||
}
|
||||
hitPosition = link->mPosition;
|
||||
distance = mGroundHeight.distance(hitPosition);
|
||||
if ((s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_DOWN ||
|
||||
(s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_UP ||
|
||||
(s32)link->getSpecificAttackDirection() == dAcPy_c::ATTACK_DIRECTION_STAB) {
|
||||
if ((s32)link->getSpecificAttackDirection() == CUT_DIR_U ||
|
||||
(s32)link->getSpecificAttackDirection() == CUT_DIR_D ||
|
||||
(s32)link->getSpecificAttackDirection() == CUT_DIR_STAB) {
|
||||
if (distance < fVar20) {
|
||||
isNotCut = 0;
|
||||
} else {
|
||||
@@ -893,8 +893,8 @@ bool dTgMassObjInstance::checkForHit(
|
||||
hitPosition = dAcPy_c::GetLink()->getSwordPos();
|
||||
|
||||
distance = mGroundHeight.distance(hitPosition);
|
||||
if ((s32)link->getSpecificAttackDirection() != dAcPy_c::ATTACK_DIRECTION_DOWNRIGHT &&
|
||||
(s32)link->getSpecificAttackDirection() != dAcPy_c::ATTACK_DIRECTION_DOWNLEFT) {
|
||||
if ((s32)link->getSpecificAttackDirection() != CUT_DIR_LU &&
|
||||
(s32)link->getSpecificAttackDirection() != CUT_DIR_RU) {
|
||||
return true;
|
||||
}
|
||||
if (distance >= fVar21) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "toBeSorted/d_enemy_sword_mdl.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/col/c/c_cc_d.h"
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_sc_game.h"
|
||||
#include "m/m3d/m_shadow.h"
|
||||
@@ -11,8 +12,8 @@
|
||||
|
||||
dCcD_SrcCps sCcSrc = {
|
||||
{
|
||||
{AT_TYPE_DAMAGE, 0x8D, {1, 0, 0}, 1, 0, 0, 0, 0, 0},
|
||||
{0, 0, {0, 0, 0x407}, 0, 0},
|
||||
{AT_TYPE_DAMAGE, 0x8D, {1, 0, 0}, 1, 0, 0, 0, CUT_DIR_NONE, 0},
|
||||
{0, 0, {0, 0, 0x407}, 0, CUT_DIR_NONE},
|
||||
{0},
|
||||
},
|
||||
{30.0f},
|
||||
|
||||
Reference in New Issue
Block a user