mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 05:14:58 -04:00
some actor documentation and cleanup
This commit is contained in:
@@ -111,8 +111,8 @@ public:
|
||||
virtual bool CrossCo(cCcD_AabAttr const&, f32*) const = 0;
|
||||
virtual bool CrossCo(cCcD_CylAttr const&, f32*) const = 0;
|
||||
virtual bool CrossCo(cCcD_SphAttr const&, f32*) const = 0;
|
||||
virtual const cXyz& GetCoCP() const { return m_virtual_center; }
|
||||
virtual cXyz& GetCoCP() { return m_virtual_center; }
|
||||
virtual const cXyz* GetCoCP() const { return &m_virtual_center; }
|
||||
virtual cXyz* GetCoCP() { return &m_virtual_center; }
|
||||
virtual void CalcAabBox() = 0;
|
||||
virtual bool GetNVec(cXyz const&, cXyz*) const = 0;
|
||||
|
||||
@@ -214,8 +214,8 @@ public:
|
||||
}
|
||||
|
||||
virtual ~cCcD_SphAttr() {}
|
||||
virtual const cXyz& GetCoCP() const { return mCenter; }
|
||||
virtual cXyz& GetCoCP() { return mCenter; }
|
||||
virtual const cXyz* GetCoCP() const { return &mCenter; }
|
||||
virtual cXyz* GetCoCP() { return &mCenter; }
|
||||
virtual bool CrossAtTg(cCcD_ShapeAttr const& shape, cXyz* xyz) const {
|
||||
return shape.CrossAtTg(*this, xyz);
|
||||
}
|
||||
@@ -249,7 +249,7 @@ public:
|
||||
}
|
||||
|
||||
virtual ~cCcD_CylAttr() {}
|
||||
virtual const cXyz& GetCoCP() const { return mCenter; }
|
||||
virtual const cXyz* GetCoCP() const { return &mCenter; }
|
||||
virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const;
|
||||
virtual bool CrossAtTg(cCcD_CylAttr const&, cXyz*) const;
|
||||
virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const;
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
virtual bool CrossCo(cCcD_TriAttr const&, f32*) const { return false; }
|
||||
virtual bool CrossCo(cCcD_AabAttr const&, f32*) const { return false; }
|
||||
virtual bool CrossCo(cCcD_SphAttr const&, f32*) const;
|
||||
virtual cXyz& GetCoCP() { return mCenter; }
|
||||
virtual cXyz* GetCoCP() { return &mCenter; }
|
||||
virtual void CalcAabBox();
|
||||
virtual bool GetNVec(cXyz const&, cXyz*) const;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define D_A_DUMMY_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
|
||||
namespace daDummy {
|
||||
class Act_c : public fopAc_ac_c {
|
||||
@@ -17,10 +18,9 @@ namespace daDummy {
|
||||
virtual ~Act_c() {}
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x290 */ // vtable
|
||||
/* 0x294 */ u8 field_0x294[0x29c - 0x294];
|
||||
/* 0x29c */ Mtx field_0x29c;
|
||||
/* 0x294 */ request_of_phase_process_class mPhase;
|
||||
/* 0x29c */ Mtx mMtx;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -11,8 +11,11 @@ public:
|
||||
typedef void (daItem_c::*ModeFunc)();
|
||||
|
||||
enum State {
|
||||
STATUS_UNK0 = 0x0,
|
||||
STATUS_UNK1 = 0x1,
|
||||
STATUS_WAIT_MAIN = 0x2,
|
||||
STATUS_BRING_NEZUMI = 0x3,
|
||||
STATUS_UNK4 = 0x4,
|
||||
STATUS_INIT_NORMAL = 0x5,
|
||||
STATUS_MAIN_NORMAL = 0x6,
|
||||
STATUS_INIT_GET_DEMO = 0x7,
|
||||
@@ -22,6 +25,15 @@ public:
|
||||
STATUS_WAIT_BOSS2 = 0xB,
|
||||
};
|
||||
|
||||
enum Flag {
|
||||
FLAG_UNK02 = 0x02,
|
||||
FLAG_UNK04 = 0x04,
|
||||
FLAG_BOOMERANG = 0x08,
|
||||
FLAG_UNK10 = 0x10,
|
||||
FLAG_QUAKE = 0x20,
|
||||
FLAG_HOOK = 0x40,
|
||||
};
|
||||
|
||||
float getYOffset();
|
||||
void set_mtx();
|
||||
void set_mtx_base(J3DModel*, cXyz, csXyz);
|
||||
@@ -87,8 +99,8 @@ public:
|
||||
|
||||
public:
|
||||
/* 0x63C */ cXyz mScaleTarget;
|
||||
/* 0x648 */ s32 mSwitchId;
|
||||
/* 0x64C */ s32 mActivationSwitch;
|
||||
/* 0x648 */ s32 mSpawnSwitchNo;
|
||||
/* 0x64C */ s32 mCollideSwitchNo;
|
||||
/* 0x650 */ f32 field_0x650;
|
||||
/* 0x654 */ s16 field_0x654;
|
||||
/* 0x656 */ s16 mTargetAngleX;
|
||||
|
||||
@@ -8,7 +8,7 @@ public:
|
||||
/* 0x290 */ u8 mState;
|
||||
/* 0x291 */ u8 mOffColPat;
|
||||
/* 0x292 */ u8 mOnColPat;
|
||||
/* 0x293 */ u8 mSwitchId;
|
||||
/* 0x293 */ u8 mSwitchNo;
|
||||
/* 0x294 */ int mTimer;
|
||||
/* 0x298 */ int mTimerThreshold;
|
||||
/* 0x29C */ f32 mScaleX;
|
||||
|
||||
@@ -51,13 +51,13 @@ public:
|
||||
/* 0x2B4 */ s16 field_0x2b4;
|
||||
/* 0x2B6 */ u8 field_0x2b6;
|
||||
/* 0x2B7 */ u8 field_0x2B7[0x2B8 - 0x2B7];
|
||||
/* 0x2B8 */ s16 field_0x2b8;
|
||||
/* 0x2B8 */ s16 mAdjustmentTimer;
|
||||
/* 0x2BA */ u8 field_0x2BA[0x2BC - 0x2BA];
|
||||
/* 0x2BC */ s32 field_0x2bc;
|
||||
/* 0x2C0 */ s32 mEvtStaffId;
|
||||
/* 0x2C4 */ cXyz field_0x2c4;
|
||||
/* 0x2D0 */ cXyz field_0x2d0;
|
||||
/* 0x2DC */ cXyz field_0x2dc;
|
||||
/* 0x2D0 */ cXyz mGoalPos;
|
||||
/* 0x2DC */ cXyz mGoal2Pos;
|
||||
};
|
||||
|
||||
#endif /* D_A_MBDOOR_H */
|
||||
|
||||
@@ -33,9 +33,9 @@ namespace daObjKanat {
|
||||
public:
|
||||
/* 0x2C8 */ request_of_phase_process_class mPhs;
|
||||
/* 0x2D0 */ J3DModel* mpModel;
|
||||
/* 0x2D4 */ dPa_smokeEcallBack m2D4;
|
||||
/* 0x2F4 */ u8 m2F4;
|
||||
/* 0x2F5 */ u8 m2F5;
|
||||
/* 0x2D4 */ dPa_smokeEcallBack mSmokeCb;
|
||||
/* 0x2F4 */ bool mIsBroken;
|
||||
/* 0x2F5 */ bool mIsVisible;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -73,12 +73,12 @@ namespace daObjMovebox {
|
||||
struct Bgc_c {
|
||||
public:
|
||||
enum State_e {
|
||||
BgcState_UNK01 = 0x01,
|
||||
BgcState_UNK02 = 0x02,
|
||||
BgcState_UNK04 = 0x04,
|
||||
BgcState_UNK08 = 0x08,
|
||||
BgcState_UNK10 = 0x10,
|
||||
BgcState_UNK20 = 0x20,
|
||||
BgcState_ON_GROUND_e = 0x01,
|
||||
BgcState_JUST_LEFT_GROUND_e = 0x02,
|
||||
BgcState_JUST_HIT_GROUND_e = 0x04,
|
||||
BgcState_ABOVE_WATER_e = 0x08,
|
||||
BgcState_IN_WATER_e = 0x10,
|
||||
BgcState_JUST_HIT_WATER_e = 0x20,
|
||||
};
|
||||
|
||||
Bgc_c();
|
||||
@@ -178,12 +178,12 @@ namespace daObjMovebox {
|
||||
s32 prm_get_buoy() const { return daObj::PrmAbstract(this, PRM_BUOY_W, PRM_BUOY_S); }
|
||||
s32 prm_get_dmy() const; // Unused?
|
||||
|
||||
BOOL is_switch1() const { return fopAcM_isSwitch((Act_c*)this, prm_get_swSave1()); };
|
||||
BOOL is_switch2() const { return fopAcM_isSwitch((Act_c*)this, prmZ_get_swSave2()); };
|
||||
void on_switch1() const { fopAcM_onSwitch((Act_c*)this, prm_get_swSave1()); };
|
||||
void on_switch2() const { fopAcM_onSwitch((Act_c*)this, prmZ_get_swSave2()); };
|
||||
void off_switch1() const { fopAcM_offSwitch((Act_c*)this, prm_get_swSave1()); };
|
||||
void off_switch2() const { fopAcM_offSwitch((Act_c*)this, prmZ_get_swSave2()); };
|
||||
BOOL is_switch1() const { return fopAcM_isSwitch(const_cast<Act_c*>(this), prm_get_swSave1()); };
|
||||
BOOL is_switch2() const { return fopAcM_isSwitch(const_cast<Act_c*>(this), prmZ_get_swSave2()); };
|
||||
void on_switch1() const { fopAcM_onSwitch(const_cast<Act_c*>(this), prm_get_swSave1()); };
|
||||
void on_switch2() const { fopAcM_onSwitch(const_cast<Act_c*>(this), prmZ_get_swSave2()); };
|
||||
void off_switch1() const { fopAcM_offSwitch(const_cast<Act_c*>(this), prm_get_swSave1()); };
|
||||
void off_switch2() const { fopAcM_offSwitch(const_cast<Act_c*>(this), prmZ_get_swSave2()); };
|
||||
|
||||
inline void mode_proc_call();
|
||||
bool chk_walk(cXyz*) { /* TODO */ }
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
bool ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; }
|
||||
void SetHeight(f32 height) { m_height = height; }
|
||||
f32 GetHeight() { return m_height; }
|
||||
cXyz& GetPosP() { return m_ground; }
|
||||
cXyz* GetPosP() { return &m_ground; }
|
||||
f32 GetRoof() const { return m_roof; }
|
||||
void Set(cXyz& ground, f32 roof) {
|
||||
m_ground = ground;
|
||||
|
||||
@@ -11,7 +11,7 @@ public:
|
||||
/* 0x0 */ s16 mShapeType;
|
||||
/* 0x2 */ s16 mJointIndex;
|
||||
/* 0x4 */ f32 mRadius;
|
||||
/* 0x8 */ cXyz* mpOffsets;
|
||||
/* 0x8 */ Vec* mpOffsets;
|
||||
};
|
||||
|
||||
class JntHit_c {
|
||||
|
||||
@@ -363,9 +363,9 @@ bool cCcD_CpsAttr::GetNVec(const cXyz& vec, cXyz* dst) const {
|
||||
|
||||
cXyz pt;
|
||||
if (dot < 0.0f) {
|
||||
pt.set(*GetStartP());
|
||||
pt.set(GetStart());
|
||||
} else if (dot > 1.0f) {
|
||||
pt.set(*GetEndP());
|
||||
pt.set(GetEnd());
|
||||
} else {
|
||||
VECScale(&lin, &lin, dot);
|
||||
VECAdd(&lin, GetStartP(), &pt);
|
||||
|
||||
@@ -187,9 +187,7 @@ void cCcS::ChkCo() {
|
||||
continue;
|
||||
f32 cross_len = 0.0f;
|
||||
if (co1ShapeAttr->CrossCo(*co2ShapeAttr, &cross_len)) {
|
||||
cXyz& obj2CoCP = co2ShapeAttr->GetCoCP();
|
||||
cXyz& obj1CoCP = co1ShapeAttr->GetCoCP();
|
||||
SetCoCommonHitInf(*objCo1, &obj1CoCP, *objCo2, &obj2CoCP, cross_len);
|
||||
SetCoCommonHitInf(*objCo1, co1ShapeAttr->GetCoCP(), *objCo2, co2ShapeAttr->GetCoCP(), cross_len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,7 +220,7 @@ bool cM3d_Cross_LinPla(const cM3dGLin* lin, const cM3dGPla* pla, Vec* dst, bool
|
||||
f32 startVal = pla->getPlaneFunc(lin->GetStartP());
|
||||
f32 endVal = pla->getPlaneFunc(lin->GetEndP());
|
||||
if (startVal * endVal > 0.0f) {
|
||||
*dst = *lin->GetEndP();
|
||||
*dst = lin->GetEnd();
|
||||
return false;
|
||||
} else {
|
||||
if (startVal >= 0.0f && endVal <= 0.0f) {
|
||||
@@ -232,7 +232,7 @@ bool cM3d_Cross_LinPla(const cM3dGLin* lin, const cM3dGPla* pla, Vec* dst, bool
|
||||
return cM3d_CrossInfLineVsInfPlane_proc(startVal, endVal, lin->GetStartP(), lin->GetEndP(), dst);
|
||||
}
|
||||
}
|
||||
*dst = *lin->GetEndP();
|
||||
*dst = lin->GetEnd();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1167,7 +1167,7 @@ static BOOL useHeapInit(fopAc_ac_c* i_actor) {
|
||||
/* mShapeType */ 2, // Cylinder
|
||||
/* mJointIndex */ 0x05, // hitomi (pupil) joint
|
||||
/* mRadius */ 5.0f,
|
||||
/* mpOffsets */ (cXyz*)&cyl2_eye_offset,
|
||||
/* mpOffsets */ cyl2_eye_offset,
|
||||
},
|
||||
};
|
||||
i_this->mEyeJntHit = JntHit_create(i_this->mpMorf->getModel(), search_data, ARRAY_SIZE(search_data));
|
||||
|
||||
@@ -1278,13 +1278,13 @@ static BOOL useHeapInit(fopAc_ac_c* i_actor) {
|
||||
/* mShapeType */ 2, // Cylinder
|
||||
/* mJointIndex */ 0x00, // body joint
|
||||
/* mRadius */ 20.0f,
|
||||
/* mpOffsets */ (cXyz*)&cyl_eye_offset,
|
||||
/* mpOffsets */ cyl_eye_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 1, // Sphere
|
||||
/* mJointIndex */ 0x00, // body joint
|
||||
/* mRadius */ 20.0f,
|
||||
/* mpOffsets */ (cXyz*)&sph_offset,
|
||||
/* mpOffsets */ sph_offset,
|
||||
},
|
||||
};
|
||||
i_this->mEyeJntHit = JntHit_create(i_this->mpMorf->getModel(), search_data, ARRAY_SIZE(search_data));
|
||||
|
||||
+15
-16
@@ -24,19 +24,18 @@ static s32 daAndsw0_Draw(andsw0_class*) {
|
||||
}
|
||||
|
||||
static void daAndsw0_check(andsw0_class* i_this) {
|
||||
/* Nonmatching */
|
||||
s32 numToCheck = i_this->mNumSwitchesToCheck;
|
||||
u32 switchIdxToCheck;
|
||||
u32 switchToCheck;
|
||||
if (i_this->mFirstSwitchToCheck) {
|
||||
switchIdxToCheck = i_this->mFirstSwitchToCheck;
|
||||
switchToCheck = i_this->mFirstSwitchToCheck;
|
||||
} else {
|
||||
switchIdxToCheck = i_this->mSwitchToSet + 1;
|
||||
switchToCheck = i_this->mSwitchToSet + 1;
|
||||
}
|
||||
|
||||
switch(i_this->mAction) {
|
||||
case ACT_ON_ALL:
|
||||
for(int i = 0; i < numToCheck; i++) {
|
||||
if(dComIfGs_isSwitch(switchIdxToCheck, fopAcM_GetRoomNo(i_this)) == false) {
|
||||
if(dComIfGs_isSwitch(switchToCheck, fopAcM_GetRoomNo(i_this)) == false) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -59,21 +58,21 @@ static void daAndsw0_check(andsw0_class* i_this) {
|
||||
}
|
||||
}
|
||||
|
||||
switchIdxToCheck += 1;
|
||||
switchToCheck += 1;
|
||||
}
|
||||
|
||||
break;
|
||||
case ACT_OFF_ALL:
|
||||
u32 switchIdxToCheck2 = i_this->mFirstSwitchToCheck ? i_this->mFirstSwitchToCheck : i_this->mSwitchToSet + 1;
|
||||
u32 switchToCheck2 = i_this->mFirstSwitchToCheck ? i_this->mFirstSwitchToCheck : i_this->mSwitchToSet + 1;
|
||||
|
||||
for(int i = 0; i < numToCheck; i++) {
|
||||
if(dComIfGs_isSwitch(switchIdxToCheck2, fopAcM_GetRoomNo(i_this)) == false) {
|
||||
if(dComIfGs_isSwitch(switchToCheck2, fopAcM_GetRoomNo(i_this)) == false) {
|
||||
dComIfGs_offSwitch(i_this->mSwitchToSet, fopAcM_GetRoomNo(i_this));
|
||||
i_this->mAction = ACT_ON_ALL;
|
||||
break;
|
||||
}
|
||||
|
||||
switchIdxToCheck2 += 1;
|
||||
switchToCheck2 += 1;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -84,12 +83,12 @@ static void daAndsw0_check(andsw0_class* i_this) {
|
||||
}
|
||||
else {
|
||||
for(int i = 0; i < numToCheck; i++) {
|
||||
if(fopAcM_isSwitch(i_this, switchIdxToCheck)) {
|
||||
if(fopAcM_isSwitch(i_this, switchToCheck)) {
|
||||
i_this->mAction += 1;
|
||||
break;
|
||||
}
|
||||
|
||||
switchIdxToCheck += 1;
|
||||
switchToCheck += 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,17 +97,17 @@ static void daAndsw0_check(andsw0_class* i_this) {
|
||||
i_this->mTimer -= 1;
|
||||
if(i_this->mTimer == 0) {
|
||||
for(int i = 0; i < numToCheck; i++) {
|
||||
fopAcM_offSwitch(i_this, switchIdxToCheck);
|
||||
switchIdxToCheck += 1;
|
||||
fopAcM_offSwitch(i_this, switchToCheck);
|
||||
switchToCheck += 1;
|
||||
}
|
||||
|
||||
i_this->mAction = ACT_TIMER;
|
||||
}
|
||||
else {
|
||||
switchIdxToCheck = i_this->mFirstSwitchToCheck ? i_this->mFirstSwitchToCheck : i_this->mSwitchToSet + 1;
|
||||
switchToCheck = i_this->mFirstSwitchToCheck ? i_this->mFirstSwitchToCheck : i_this->mSwitchToSet + 1;
|
||||
|
||||
for(int i = 0; i < numToCheck; i++) {
|
||||
if(fopAcM_isSwitch(i_this, switchIdxToCheck) == false) {
|
||||
if(fopAcM_isSwitch(i_this, switchToCheck) == false) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -117,7 +116,7 @@ static void daAndsw0_check(andsw0_class* i_this) {
|
||||
i_this->mAction = ACT_WAIT;
|
||||
}
|
||||
|
||||
switchIdxToCheck += 1;
|
||||
switchToCheck += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,10 +22,10 @@ bool daDummy::Act_c::create_heap() {
|
||||
s32 daDummy::Act_c::_create() {
|
||||
fopAcM_SetupActor(this, Act_c);
|
||||
|
||||
if (fopAcM_entrySolidHeap(this, solidHeapCB, 0) != 0) {
|
||||
if (fopAcM_entrySolidHeap(this, solidHeapCB, 0)) {
|
||||
set_mtx();
|
||||
fopAcM_SetMtx(this, field_0x29c);
|
||||
fopAcM_setCullSizeBox(this, -100.0, -1000.0, -100.0, 100.0, 100.0, 100.0);
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
fopAcM_setCullSizeBox(this, -100.0f, -1000.0f, -100.0f, 100.0f, 100.0f, 100.0f);
|
||||
}
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
@@ -39,7 +39,7 @@ bool daDummy::Act_c::_delete() {
|
||||
void daDummy::Act_c::set_mtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), field_0x29c);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
|
||||
}
|
||||
|
||||
/* 000001CC-000001D4 .text _execute__Q27daDummy5Act_cFv */
|
||||
@@ -67,12 +67,13 @@ namespace daDummy {
|
||||
}
|
||||
|
||||
BOOL Mthd_Draw(void* i_this) {
|
||||
return ((Act_c*)i_this)->_draw();
|
||||
return static_cast<Act_c*>(i_this)->_draw();
|
||||
}
|
||||
|
||||
BOOL Mthd_IsDelete(void* i_this) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static actor_method_class Mthd_Table = {
|
||||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
@@ -99,5 +100,3 @@ actor_process_profile_definition g_profile_Dummy = {
|
||||
/* Group */ fopAc_ACTOR_e,
|
||||
/* CullType */ fopAc_CULLBOX_CUSTOM_e,
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -68,18 +68,18 @@ static Vec l_pos[0xC] = {
|
||||
};
|
||||
|
||||
static cXy l_texCoord[0xC] = {
|
||||
{0.02736, 0.041406},
|
||||
{0.97264, 0.041406},
|
||||
{0.830848, 0.40324},
|
||||
{0.169152, 0.40324},
|
||||
{0.03125, 0.0},
|
||||
{0.96875, 0.0},
|
||||
{0.767857, 0.494086},
|
||||
{0.232143, 0.494086},
|
||||
{0.038462, 0.48226},
|
||||
{0.038462, 0.983522},
|
||||
{0.961538, 0.48226},
|
||||
{0.961538, 0.983522},
|
||||
{0.02736f, 0.041406f},
|
||||
{0.97264f, 0.041406f},
|
||||
{0.830848f, 0.40324f},
|
||||
{0.169152f, 0.40324f},
|
||||
{0.03125f, 0.0f},
|
||||
{0.96875f, 0.0f},
|
||||
{0.767857f, 0.494086f},
|
||||
{0.232143f, 0.494086f},
|
||||
{0.038462f, 0.48226f},
|
||||
{0.038462f, 0.983522f},
|
||||
{0.961538f, 0.48226f},
|
||||
{0.961538f, 0.983522f},
|
||||
};
|
||||
|
||||
static u8 l_chainDL[] ALIGN_DECL(32) = {
|
||||
|
||||
+46
-46
@@ -158,17 +158,17 @@ void daItem_c::CreateInit() {
|
||||
mDisappearTimer = getData()->mDuration;
|
||||
field_0x65a = getData()->field_0x18;
|
||||
field_0x650 = fopAcM_GetSpeed(this).y;
|
||||
mItemStatus = 0;
|
||||
mItemStatus = STATUS_UNK0;
|
||||
|
||||
mType = daItem_prm::getType(this);
|
||||
if (daItem_prm::getType(this) == 3 || daItem_prm::getType(this) == 1) {
|
||||
setFlag(0x02);
|
||||
setFlag(FLAG_UNK02);
|
||||
}
|
||||
mAction = daItem_prm::getAction(this);
|
||||
|
||||
show();
|
||||
|
||||
if (dItem_data::checkSpecialEffect(m_itemNo) && (m_itemNo != SMALL_KEY || (m_itemNo == SMALL_KEY && checkFlag(0x02)))) {
|
||||
if (dItem_data::checkSpecialEffect(m_itemNo) && (m_itemNo != SMALL_KEY || (m_itemNo == SMALL_KEY && checkFlag(FLAG_UNK02)))) {
|
||||
u16 particleID = dItem_data::getSpecialEffect(m_itemNo);
|
||||
dComIfGp_particle_set(particleID, ¤t.pos, NULL, NULL, 0xFF, &mPtclFollowCb);
|
||||
}
|
||||
@@ -185,12 +185,12 @@ void daItem_c::CreateInit() {
|
||||
break;
|
||||
}
|
||||
|
||||
mSwitchId = daItem_prm::getSwitchNo2(this);
|
||||
if (mSwitchId != 0xFF && !fopAcM_isSwitch(this, mSwitchId)) {
|
||||
mSpawnSwitchNo = daItem_prm::getSwitchNo2(this);
|
||||
if (mSpawnSwitchNo != 0xFF && !fopAcM_isSwitch(this, mSpawnSwitchNo)) {
|
||||
hide();
|
||||
setFlag(0x02);
|
||||
}
|
||||
mActivationSwitch = daItem_prm::getSwitchNo(this);
|
||||
mCollideSwitchNo = daItem_prm::getSwitchNo(this);
|
||||
|
||||
current.angle.z = 0;
|
||||
home.angle.z = 0;
|
||||
@@ -250,10 +250,10 @@ s32 daItem_c::_daItem_create() {
|
||||
|
||||
/* 800F5668-800F5834 .text _daItem_execute__8daItem_cFv */
|
||||
BOOL daItem_c::_daItem_execute() {
|
||||
if (mSwitchId != 0xFF && !fopAcM_isSwitch(this, mSwitchId)) {
|
||||
if (mSpawnSwitchNo != 0xFF && !fopAcM_isSwitch(this, mSpawnSwitchNo)) {
|
||||
return TRUE;
|
||||
}
|
||||
if (mSwitchId != 0xFF && fopAcM_isSwitch(this, mSwitchId)) {
|
||||
if (mSpawnSwitchNo != 0xFF && fopAcM_isSwitch(this, mSpawnSwitchNo)) {
|
||||
show();
|
||||
}
|
||||
|
||||
@@ -267,12 +267,12 @@ BOOL daItem_c::_daItem_execute() {
|
||||
case STATUS_BRING_NEZUMI:
|
||||
execBringNezumi();
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case STATUS_UNK0:
|
||||
case STATUS_UNK1:
|
||||
if (checkActionNow()) {
|
||||
mItemStatus = 1;
|
||||
mItemStatus = STATUS_UNK1;
|
||||
} else {
|
||||
mItemStatus = 0;
|
||||
mItemStatus = STATUS_UNK0;
|
||||
}
|
||||
case STATUS_WAIT_MAIN:
|
||||
execWaitMain();
|
||||
@@ -317,25 +317,25 @@ void daItem_c::mode_proc_call() {
|
||||
(this->*mode_proc[mMode])();
|
||||
}
|
||||
|
||||
if (checkFlag(0x08)) {
|
||||
if (checkFlag(FLAG_BOOMERANG)) {
|
||||
fopAc_ac_c* boomerang = (fopAc_ac_c*)fopAcM_SearchByName(PROC_BOOMERANG);
|
||||
if (boomerang) {
|
||||
current.pos = boomerang->current.pos;
|
||||
} else {
|
||||
clrFlag(0x08);
|
||||
clrFlag(FLAG_BOOMERANG);
|
||||
}
|
||||
}
|
||||
|
||||
if (checkFlag(0x40)) {
|
||||
if (checkFlag(FLAG_HOOK)) {
|
||||
fopAc_ac_c* grappling_hook = (fopAc_ac_c*)fopAcM_SearchByName(PROC_HIMO2);
|
||||
if (grappling_hook) {
|
||||
current.pos = grappling_hook->current.pos;
|
||||
} else {
|
||||
clrFlag(0x40);
|
||||
clrFlag(FLAG_HOOK);
|
||||
}
|
||||
}
|
||||
|
||||
if (mType == 1 && (fopAcM_checkHookCarryNow(this) || checkFlag(0x08))) {
|
||||
if (mType == 1 && (fopAcM_checkHookCarryNow(this) || checkFlag(FLAG_BOOMERANG))) {
|
||||
mType = 3;
|
||||
}
|
||||
}
|
||||
@@ -447,13 +447,13 @@ void daItem_c::execWaitMain() {
|
||||
}
|
||||
mode_proc_call();
|
||||
|
||||
if (!checkFlag(0x02)) {
|
||||
f32 temp1 = mScaleTarget.x / getData()->mScaleAnimSpeed;
|
||||
f32 temp2 = mScaleTarget.y / getData()->mScaleAnimSpeed;
|
||||
f32 temp3 = mScaleTarget.z / getData()->mScaleAnimSpeed;
|
||||
cLib_chaseF(&mScale.x, mScaleTarget.x, temp1);
|
||||
cLib_chaseF(&mScale.y, mScaleTarget.y, temp2);
|
||||
cLib_chaseF(&mScale.z, mScaleTarget.z, temp3);
|
||||
if (!checkFlag(FLAG_UNK02)) {
|
||||
f32 scaleStepX = mScaleTarget.x / getData()->mScaleAnimSpeed;
|
||||
f32 scaleStepY = mScaleTarget.y / getData()->mScaleAnimSpeed;
|
||||
f32 scaleStepZ = mScaleTarget.z / getData()->mScaleAnimSpeed;
|
||||
cLib_chaseF(&mScale.x, mScaleTarget.x, scaleStepX);
|
||||
cLib_chaseF(&mScale.y, mScaleTarget.y, scaleStepY);
|
||||
cLib_chaseF(&mScale.z, mScaleTarget.z, scaleStepZ);
|
||||
}
|
||||
|
||||
if (checkItemDisappear() && mDisappearTimer == 0) {
|
||||
@@ -468,7 +468,7 @@ void daItem_c::execWaitMain() {
|
||||
}
|
||||
|
||||
if (!dItem_data::chkFlag(m_itemNo, 2)) {
|
||||
if (mActivationSwitch == 0xFF || (mActivationSwitch != 0xFF && fopAcM_isSwitch(this, mActivationSwitch))) {
|
||||
if (mCollideSwitchNo == 0xFF || (mCollideSwitchNo != 0xFF && fopAcM_isSwitch(this, mCollideSwitchNo))) {
|
||||
mCyl.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
}
|
||||
@@ -761,7 +761,7 @@ void daItem_c::itemGetExecute() {
|
||||
|
||||
fopAcM_onItemForIb(mItemBitNo, m_itemNo, current.roomNo);
|
||||
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
|
||||
mCyl.SetTgType(0);
|
||||
mCyl.OffCoSetBit();
|
||||
@@ -783,10 +783,10 @@ BOOL daItem_c::checkItemDisappear() {
|
||||
disappearing = FALSE;
|
||||
show();
|
||||
}
|
||||
if (checkFlag(0x02)) {
|
||||
if (checkFlag(FLAG_UNK02)) {
|
||||
disappearing = FALSE;
|
||||
}
|
||||
if (checkFlag(0x10)) {
|
||||
if (checkFlag(FLAG_UNK10)) {
|
||||
disappearing = FALSE;
|
||||
}
|
||||
if (dItem_data::chkFlag(m_itemNo, 0x01)) {
|
||||
@@ -795,10 +795,10 @@ BOOL daItem_c::checkItemDisappear() {
|
||||
if (dComIfGp_event_runCheck()) {
|
||||
disappearing = FALSE;
|
||||
}
|
||||
if (mItemStatus == 4) {
|
||||
if (mItemStatus == STATUS_UNK4) {
|
||||
disappearing = FALSE;
|
||||
}
|
||||
if (checkFlag(0x08) || checkFlag(0x40) || fopAcM_checkStatus(this, fopAcStts_HOOK_CARRY_e)) {
|
||||
if (checkFlag(FLAG_BOOMERANG) || checkFlag(FLAG_HOOK) || fopAcM_checkStatus(this, fopAcStts_HOOK_CARRY_e)) {
|
||||
disappearing = FALSE;
|
||||
show();
|
||||
}
|
||||
@@ -808,7 +808,7 @@ BOOL daItem_c::checkItemDisappear() {
|
||||
/* 800F6E54-800F6E74 .text setItemTimer__8daItem_cFi */
|
||||
void daItem_c::setItemTimer(int timer) {
|
||||
if (timer == -1) {
|
||||
setFlag(0x10);
|
||||
setFlag(FLAG_UNK10);
|
||||
return;
|
||||
}
|
||||
mDisappearTimer = timer;
|
||||
@@ -840,14 +840,14 @@ BOOL daItem_c::itemActionForRupee() {
|
||||
|
||||
mOnGroundTimer++;
|
||||
if (mOnGroundTimer >= 2) {
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
}
|
||||
|
||||
set_bound_se();
|
||||
} else if (mAcch.ChkGroundHit()) {
|
||||
itemDefaultRotateY();
|
||||
speedF = 0.0f;
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
mOnGroundTimer = 1;
|
||||
}
|
||||
|
||||
@@ -863,7 +863,7 @@ BOOL daItem_c::itemActionForRupee() {
|
||||
mTargetAngleX = 0;
|
||||
}
|
||||
|
||||
if (!checkFlag(0x02)) {
|
||||
if (!checkFlag(FLAG_UNK02)) {
|
||||
cLib_chaseAngleS(¤t.angle.x, mTargetAngleX, field_0x654);
|
||||
}
|
||||
|
||||
@@ -881,7 +881,7 @@ BOOL daItem_c::itemActionForHeart() {
|
||||
mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
|
||||
if (mAcch.ChkGroundLanding() || mAcch.ChkGroundHit()) {
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
mExtraZRot = 0;
|
||||
speed.set(0.0f, -1.0f, 0.0f);
|
||||
speedF = 0.0f;
|
||||
@@ -913,13 +913,13 @@ BOOL daItem_c::itemActionForKey() {
|
||||
|
||||
mOnGroundTimer++;
|
||||
if (mOnGroundTimer >= 2) {
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
}
|
||||
} else if (mAcch.ChkGroundHit()) {
|
||||
mOnGroundTimer = 1;
|
||||
mTargetAngleX = 0;
|
||||
current.angle.x = 0;
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
itemDefaultRotateY();
|
||||
}
|
||||
|
||||
@@ -973,7 +973,7 @@ BOOL daItem_c::itemActionForSword() {
|
||||
mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
|
||||
bool isQuake = dComIfGp_getDetect().chk_quake(¤t.pos);
|
||||
if (isQuake && !checkFlag(0x20) && mAcch.ChkGroundHit()) {
|
||||
if (isQuake && !checkFlag(FLAG_QUAKE) && mAcch.ChkGroundHit()) {
|
||||
speed.set(0.0f, 21.0f, 0.0f);
|
||||
mGravity = -3.5f;
|
||||
}
|
||||
@@ -1027,9 +1027,9 @@ BOOL daItem_c::itemActionForSword() {
|
||||
}
|
||||
|
||||
if (isQuake) {
|
||||
setFlag(0x20);
|
||||
setFlag(FLAG_QUAKE);
|
||||
} else {
|
||||
clrFlag(0x20);
|
||||
clrFlag(FLAG_QUAKE);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@@ -1178,7 +1178,7 @@ BOOL daItem_c::checkGetItem() {
|
||||
itemGetExecute();
|
||||
return TRUE;
|
||||
} else if (atType & AT_TYPE_BOOMERANG) {
|
||||
setFlag(0x08);
|
||||
setFlag(FLAG_BOOMERANG);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1233,7 +1233,7 @@ void daItem_c::mode_water_init() {
|
||||
current.angle.x = 0;
|
||||
mExtraZRot = 0;
|
||||
field_0x654 = 0;
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
mScale.set(mScaleTarget.x, mScaleTarget.y, mScaleTarget.z);
|
||||
|
||||
cXyz scale;
|
||||
@@ -1248,7 +1248,7 @@ void daItem_c::mode_water_init() {
|
||||
|
||||
/* 800F80CC-800F844C .text mode_wait__8daItem_cFv */
|
||||
void daItem_c::mode_wait() {
|
||||
if (checkFlag(0x04) && dItem_data::checkAppearEffect(m_itemNo)) {
|
||||
if (checkFlag(FLAG_UNK04) && dItem_data::checkAppearEffect(m_itemNo)) {
|
||||
u16 appearEffect = dItem_data::getAppearEffect(m_itemNo);
|
||||
dComIfGp_particle_setSimple(appearEffect, ¤t.pos, 0xFF, g_whiteColor, g_whiteColor, 0);
|
||||
}
|
||||
@@ -1335,7 +1335,7 @@ void daItem_c::mode_water() {
|
||||
|
||||
/* 800F8528-800F8950 .text initAction__8daItem_cFv */
|
||||
BOOL daItem_c::initAction() {
|
||||
if (checkFlag(0x02)) {
|
||||
if (checkFlag(FLAG_UNK02)) {
|
||||
mScale.set(mScaleTarget.x, mScaleTarget.y, mScaleTarget.z);
|
||||
|
||||
switch (mAction) {
|
||||
@@ -1362,7 +1362,7 @@ BOOL daItem_c::initAction() {
|
||||
}
|
||||
|
||||
mGravity = getData()->mFieldItemGravity;
|
||||
clrFlag(0x04);
|
||||
clrFlag(FLAG_UNK04);
|
||||
mMode = 0;
|
||||
|
||||
return TRUE;
|
||||
@@ -1435,7 +1435,7 @@ BOOL daItem_c::initAction() {
|
||||
|
||||
mMode = 0;
|
||||
|
||||
setFlag(0x04);
|
||||
setFlag(FLAG_UNK04);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ static BOOL daKytag04_Draw(kytag04_class*) {
|
||||
|
||||
/* 00000080-00000138 .text daKytag04_Execute__FP13kytag04_class */
|
||||
static BOOL daKytag04_Execute(kytag04_class* i_this) {
|
||||
if (i_this->mSwitchId != 0xff && dComIfGs_isSwitch(i_this->mSwitchId, dComIfGp_roomControl_getStayNo())) {
|
||||
if (i_this->mSwitchNo != 0xff && dComIfGs_isSwitch(i_this->mSwitchNo, dComIfGp_roomControl_getStayNo())) {
|
||||
if (i_this->mState == 0) {
|
||||
if (i_this->mTimer >= i_this->mTimerThreshold) {
|
||||
i_this->mTimer = 0;
|
||||
@@ -50,7 +50,7 @@ static int daKytag04_Create(fopAc_ac_c* i_this) {
|
||||
a_this->mState = 0;
|
||||
a_this->mOffColPat = a_this->mBase.mParameters;
|
||||
a_this->mOnColPat = a_this->mBase.mParameters >> 8;
|
||||
a_this->mSwitchId = a_this->current.angle.x;
|
||||
a_this->mSwitchNo = a_this->current.angle.x;
|
||||
a_this->mScaleX = a_this->mScale.x * 100.0f;
|
||||
a_this->mScaleY = a_this->mScale.y * 100.0f;
|
||||
a_this->mTimer = 0;
|
||||
|
||||
+20
-20
@@ -179,18 +179,18 @@ void daMbdoor_c::calcMtx() {
|
||||
// Transform the door's frame.
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(home.angle.y);
|
||||
mpFuModel->setBaseTRMtx(mDoMtx_stack_c::now);
|
||||
mpFuModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
cXyz offset;
|
||||
offset.set(0.0f, 0.0f, -150.0f);
|
||||
mDoMtx_stack_c::multVec(&offset, &field_0x2d0);
|
||||
mDoMtx_stack_c::multVec(&offset, &mGoalPos);
|
||||
offset.set(0.0f, 0.0f, -400.0f);
|
||||
mDoMtx_stack_c::multVec(&offset, &field_0x2dc);
|
||||
mDoMtx_stack_c::multVec(&offset, &mGoal2Pos);
|
||||
|
||||
// Transform door's right half.
|
||||
if (field_0x2ad == 0) {
|
||||
mpLModel->setBaseTRMtx(mDoMtx_stack_c::now);
|
||||
if (field_0x2b2) {
|
||||
mpLModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
if (field_0x2b2 != 0) {
|
||||
mDoMtx_stack_c::transM(getROffset(), 0.0f, 0.0f);
|
||||
mDoMtx_stack_c::YrotM(field_0x2b2);
|
||||
mDoMtx_stack_c::transM(-getROffset(), 0.0f, 0.0f);
|
||||
@@ -198,18 +198,18 @@ void daMbdoor_c::calcMtx() {
|
||||
offset.set(80.0f, 0.0f, 75.0f);
|
||||
mDoMtx_stack_c::multVec(&offset, &field_0x2c4);
|
||||
}
|
||||
mpRModel->setBaseTRMtx(mDoMtx_stack_c::now);
|
||||
mpRModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
// Transform door's left half.
|
||||
if (field_0x2ad == 1) {
|
||||
if (field_0x2b2) {
|
||||
if (field_0x2b2 != 0) {
|
||||
mDoMtx_stack_c::transM(getLOffset(), 0.0f, 0.0f);
|
||||
mDoMtx_stack_c::YrotM(-field_0x2b2);
|
||||
mDoMtx_stack_c::transM(-getLOffset(), 0.0f, 0.0f);
|
||||
}
|
||||
offset.set(-80.0f, 0.0f, 75.0f);
|
||||
mDoMtx_stack_c::multVec(&offset, &field_0x2c4);
|
||||
mpLModel->setBaseTRMtx(mDoMtx_stack_c::now);
|
||||
mpLModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
// Transform door's bar.
|
||||
@@ -220,7 +220,7 @@ void daMbdoor_c::calcMtx() {
|
||||
mDoMtx_stack_c::ZrotM(field_0x2b0);
|
||||
mDoMtx_stack_c::transM(-getToOffset(), -231.0f, 0.0f);
|
||||
}
|
||||
mpToModel->setBaseTRMtx(mDoMtx_stack_c::now);
|
||||
mpToModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 00000898-00000A44 .text CreateInit__10daMbdoor_cFv */
|
||||
@@ -324,28 +324,28 @@ void daMbdoor_c::demoProc() {
|
||||
field_0x2b6 = 1;
|
||||
break;
|
||||
case 6: // SET_GOAL
|
||||
goal = field_0x2d0;
|
||||
goal = mGoalPos;
|
||||
dComIfGp_evmng_setGoal(&goal);
|
||||
break;
|
||||
case 7: // SET_GOAL2
|
||||
goal = field_0x2dc;
|
||||
goal = mGoal2Pos;
|
||||
dComIfGp_evmng_setGoal(&goal);
|
||||
break;
|
||||
case 8: // ADJUSTMENT
|
||||
calcMtx();
|
||||
field_0x2b8 = 0;
|
||||
mAdjustmentTimer = 0;
|
||||
u32* timerP = dComIfGp_evmng_getMyIntegerP(mEvtStaffId, "Timer");
|
||||
if (timerP) {
|
||||
field_0x2b8 = *timerP;
|
||||
mAdjustmentTimer = *timerP;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (actIdx) {
|
||||
case 3:
|
||||
case 3: // END
|
||||
break;
|
||||
case 4:
|
||||
case 4: // OPEN
|
||||
if (field_0x2b4 < 250) {
|
||||
field_0x2b4 += 50;
|
||||
}
|
||||
@@ -357,14 +357,14 @@ void daMbdoor_c::demoProc() {
|
||||
field_0x2b2 = temp;
|
||||
}
|
||||
calcMtx();
|
||||
if (field_0x2ad) {
|
||||
if (field_0x2ad != 0) {
|
||||
angle = current.angle.y + 0x7FFF - field_0x2b2;
|
||||
} else {
|
||||
angle = current.angle.y + 0x7FFF + field_0x2b2;
|
||||
}
|
||||
player->setPlayerPosAndAngle(&field_0x2c4, angle);
|
||||
break;
|
||||
case 5:
|
||||
case 5: // STOP_OPEN
|
||||
if (field_0x2b6) {
|
||||
if (field_0x2b4 < 400) {
|
||||
field_0x2b4 += 40;
|
||||
@@ -383,15 +383,15 @@ void daMbdoor_c::demoProc() {
|
||||
dComIfGp_evmng_cutEnd(mEvtStaffId);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
case 8: // ADJUSTMENT
|
||||
angle = player->shape_angle.y;
|
||||
cLib_addCalcAngleS2(&angle, current.angle.y + 0x7FFF, 10, 0x800);
|
||||
goal = player->current.pos;
|
||||
goal.x = goal.x*0.9f + field_0x2c4.x*0.1f;
|
||||
goal.z = goal.z*0.9f + field_0x2c4.z*0.1f;
|
||||
player->setPlayerPosAndAngle(&goal, angle);
|
||||
if (field_0x2b8 > 0) {
|
||||
field_0x2b8--;
|
||||
if (mAdjustmentTimer > 0) {
|
||||
mAdjustmentTimer--;
|
||||
} else {
|
||||
dComIfGp_evmng_cutEnd(mEvtStaffId);
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ static dCcD_SrcCyl l_cyl_src = {
|
||||
|
||||
/* 000000EC-000001A8 .text __ct__17daNpc_Btsw2_HIO_cFv */
|
||||
daNpc_Btsw2_HIO_c::daNpc_Btsw2_HIO_c() {
|
||||
mNpc.m04 = 0.0;
|
||||
mNpc.m04 = 0.0f;
|
||||
mNpc.m08 = 0x1F40;
|
||||
mNpc.mMaxHeadRot = 0x1F40;
|
||||
mNpc.m0A = 0x0;
|
||||
@@ -129,14 +129,14 @@ daNpc_Btsw2_HIO_c::daNpc_Btsw2_HIO_c() {
|
||||
mNpc.mMinBackBoneRot = -0x1F40;
|
||||
mNpc.m18 = 0x3E8;
|
||||
mNpc.mMaxHeadTurnVel = 0x640;
|
||||
mNpc.m1C = 40.0;
|
||||
mNpc.m1C = 40.0f;
|
||||
mNpc.m20 = 0x2000;
|
||||
mNpc.m22 = 0x0;
|
||||
mNpc.m24 = 200.0;
|
||||
mNpc.m24 = 200.0f;
|
||||
m30 = 0x258;
|
||||
m32 = 0x5;
|
||||
m34 = 0.8;
|
||||
m38 = 0.95;
|
||||
m34 = 0.8f;
|
||||
m38 = 0.95f;
|
||||
m3C = 0x5A;
|
||||
m3E = 0x5A;
|
||||
mChildID = -1;
|
||||
|
||||
+24
-24
@@ -250,40 +250,40 @@ daNpc_Md_HIO_c::daNpc_Md_HIO_c() {
|
||||
m0C4 = 90.0f;
|
||||
m0C8 = 400.0f;
|
||||
m0CC = 600.0f;
|
||||
m0D0 = 0.05;
|
||||
m0D0 = 0.05f;
|
||||
m0D4 = 17.0f;
|
||||
m0D8 = 0.0f;
|
||||
m0DC = 0.5;
|
||||
m0E0 = 0.3;
|
||||
m0E4 = 0.9;
|
||||
m0DC = 0.5f;
|
||||
m0E0 = 0.3f;
|
||||
m0E4 = 0.9f;
|
||||
m0E8 = 15.0f;
|
||||
m0EC = 22.0f;
|
||||
m0F0 = 9.0f;
|
||||
m0F4 = 4.0f;
|
||||
m0F8 = -1.51367;
|
||||
m0FC = -1.09863;
|
||||
m100 = -0.56152;
|
||||
m104 = 0.1;
|
||||
m108 = 0.2;
|
||||
m0F8 = -1.51367f;
|
||||
m0FC = -1.09863f;
|
||||
m100 = -0.56152f;
|
||||
m104 = 0.1f;
|
||||
m108 = 0.2f;
|
||||
m10C = 10.0f;
|
||||
m110 = -50.0f;
|
||||
m114 = 1.3;
|
||||
m114 = 1.3f;
|
||||
m128 = 1200.0f;
|
||||
m12C = 1500.0f;
|
||||
m118 = 1.0f;
|
||||
m11C = 1.5;
|
||||
m11C = 1.5f;
|
||||
m120 = 2.0f;
|
||||
m124 = 1.6;
|
||||
m124 = 1.6f;
|
||||
m130 = 3.0f;
|
||||
m134 = 1.25;
|
||||
m138 = 0.2;
|
||||
m134 = 1.25f;
|
||||
m138 = 0.2f;
|
||||
m13C = 100.0f;
|
||||
m140 = 50.0f;
|
||||
m144 = 9.0f;
|
||||
m1B4 = 0x17;
|
||||
m1B6 = 0x14;
|
||||
m1C7 = 0x0;
|
||||
m148 = 0.9;
|
||||
m148 = 0.9f;
|
||||
m1C6 = 0x1;
|
||||
m14C = 6.0f;
|
||||
m1B8 = 0x4000;
|
||||
@@ -291,16 +291,16 @@ daNpc_Md_HIO_c::daNpc_Md_HIO_c() {
|
||||
m1BA = 0x78;
|
||||
m1BC = 0x1F4;
|
||||
m154 = 5.0f;
|
||||
m158 = 2.2;
|
||||
m15C = -11.681;
|
||||
m160 = 1.3;
|
||||
m164 = 88.692;
|
||||
m168 = 57.066;
|
||||
m16C = 179.286;
|
||||
m158 = 2.2f;
|
||||
m15C = -11.681f;
|
||||
m160 = 1.3f;
|
||||
m164 = 88.692f;
|
||||
m168 = 57.066f;
|
||||
m16C = 179.286f;
|
||||
m1C8 = 0x0;
|
||||
m170 = 0.0f;
|
||||
m174 = 1.0f;
|
||||
m178 = 1.5;
|
||||
m178 = 1.5f;
|
||||
m17C = -100.0f;
|
||||
m180 = 100.0f;
|
||||
m184 = 10.0f;
|
||||
@@ -311,8 +311,8 @@ daNpc_Md_HIO_c::daNpc_Md_HIO_c() {
|
||||
m1C2 = 0x1C2;
|
||||
m1C4 = 0x96;
|
||||
m190 = 43.0f;
|
||||
m194 = 14.65;
|
||||
m198 = 13.99;
|
||||
m194 = 14.65f;
|
||||
m198 = 13.99f;
|
||||
m19C = 0.0f;
|
||||
m1A0 = -98.0f;
|
||||
m1A4 = 0.0f;
|
||||
|
||||
@@ -31,10 +31,10 @@ int daObjKanat::Act_c::CreateHeap() {
|
||||
int daObjKanat::Act_c::Create() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
init_mtx();
|
||||
fopAcM_setCullSizeBox(this, -500.0, -100.0f, -500.0f, 500.0f, 200.0f, 500.0f);
|
||||
m2F4 = 0;
|
||||
m2F5 = 1;
|
||||
m2D4.setRateOff(0);
|
||||
fopAcM_setCullSizeBox(this, -500.0f, -100.0f, -500.0f, 500.0f, 200.0f, 500.0f);
|
||||
mIsBroken = false;
|
||||
mIsVisible = true;
|
||||
mSmokeCb.setRateOff(0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ s32 daObjKanat::Act_c::Mthd_Create() {
|
||||
|
||||
/* 000002EC-0000031C .text Delete__Q210daObjKanat5Act_cFv */
|
||||
BOOL daObjKanat::Act_c::Delete() {
|
||||
m2D4.end();
|
||||
mSmokeCb.end();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -86,9 +86,9 @@ void daObjKanat::Act_c::init_mtx() {
|
||||
|
||||
/* 00000430-00000590 .text Execute__Q210daObjKanat5Act_cFPPA3_A4_f */
|
||||
BOOL daObjKanat::Act_c::Execute(Mtx** pMtx) {
|
||||
if (m2F4 == 0) {
|
||||
if (!mIsBroken) {
|
||||
if (fopAcM_isSwitch(this, prm_get_swSave())) {
|
||||
m2F4 = 1;
|
||||
mIsBroken = true;
|
||||
GXColor color;
|
||||
color.r = mTevStr.mColorC0.r;
|
||||
color.g = mTevStr.mColorC0.g;
|
||||
@@ -100,12 +100,12 @@ BOOL daObjKanat::Act_c::Execute(Mtx** pMtx) {
|
||||
);
|
||||
dComIfGp_particle_setToon(
|
||||
0xA2A3, ¤t.pos, ¤t.angle, NULL, 0xB4,
|
||||
&m2D4, current.roomNo, &mTevStr.mColorK0, &color
|
||||
&mSmokeCb, current.roomNo, &mTevStr.mColorK0, &color
|
||||
);
|
||||
}
|
||||
} else {
|
||||
m2F5 = 0;
|
||||
if (m2D4.isEnd()) {
|
||||
mIsVisible = false;
|
||||
if (mSmokeCb.isEnd()) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
}
|
||||
@@ -118,7 +118,7 @@ BOOL daObjKanat::Act_c::Execute(Mtx** pMtx) {
|
||||
BOOL daObjKanat::Act_c::Draw() {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType(mpModel, &mTevStr);
|
||||
if (m2F5 == 0) {
|
||||
if (!mIsVisible) {
|
||||
return TRUE;
|
||||
}
|
||||
dComIfGd_setListBG();
|
||||
|
||||
@@ -305,8 +305,7 @@ s32 daObjMknjD::Act_c::Mthd_Create() {
|
||||
|
||||
m043E = prm_get_Type();
|
||||
|
||||
int switchIdx = prm_get_swSave();
|
||||
if (fopAcM_isSwitch(this, switchIdx)) {
|
||||
if (fopAcM_isSwitch(this, prm_get_swSave())) {
|
||||
mEmitters[2] = NULL;
|
||||
mEmitters[3] = NULL;
|
||||
|
||||
@@ -465,8 +464,7 @@ void daObjMknjD::Act_c::privateCut() {
|
||||
case ACT_BREAK:
|
||||
mDoAud_seStart(JA_SE_READ_RIDDLE_1);
|
||||
|
||||
int switchId = prm_get_swSave();
|
||||
fopAcM_onSwitch(this, switchId);
|
||||
fopAcM_onSwitch(this, prm_get_swSave());
|
||||
|
||||
mBreakTimer = 0;
|
||||
|
||||
|
||||
@@ -222,9 +222,9 @@ namespace daObjMovebox {
|
||||
M_wrt_work.Set(groundPos, roofY);
|
||||
if (dComIfG_Bgsp()->SplGrpChk(&M_wrt_work)) {
|
||||
mWaterY = M_wrt_work.GetHeight();
|
||||
cLib_onBit(mStateFlags, BgcState_UNK08);
|
||||
cLib_onBit(mStateFlags, BgcState_ABOVE_WATER_e);
|
||||
if (mWaterY > pos.y) {
|
||||
cLib_onBit(mStateFlags, BgcState_UNK10);
|
||||
cLib_onBit(mStateFlags, BgcState_IN_WATER_e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -232,8 +232,8 @@ namespace daObjMovebox {
|
||||
/* 00000474-00000748 .text wall_pos__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cisf */
|
||||
void Bgc_c::wall_pos(const Act_c* movebox, const BgcSrc_c* bgcSrc, int bgcSrcCount, s16 param_4, f32 param_5) {
|
||||
s16 angle;
|
||||
cXyz temp_44;
|
||||
cXyz temp_38;
|
||||
cXyz startPos;
|
||||
cXyz endPos;
|
||||
cXyz temp_2c;
|
||||
cXyz temp_20;
|
||||
|
||||
@@ -255,14 +255,14 @@ namespace daObjMovebox {
|
||||
mDoMtx_stack_c::transM(0.0f, 0.5f, 0.0f);
|
||||
mDoMtx_stack_c::XrotM(0x4000);
|
||||
temp_14.set(bgcSrc->m04, 0.0f, bgcSrc->m00);
|
||||
mDoMtx_stack_c::multVec(&temp_14, &temp_44);
|
||||
temp_44 += movebox->current.pos;
|
||||
temp_38 = temp_44 + temp_20;
|
||||
M_wall_work[i].Set(&temp_44, &temp_38, (fopAc_ac_c*)movebox);
|
||||
mDoMtx_stack_c::multVec(&temp_14, &startPos);
|
||||
startPos += movebox->current.pos;
|
||||
endPos = startPos + temp_20;
|
||||
M_wall_work[i].Set(&startPos, &endPos, const_cast<Act_c*>(movebox));
|
||||
M_wall_work[i].SetActorPid(movebox->mBase.mBsPcId);
|
||||
if (dComIfG_Bgsp()->LineCross(&M_wall_work[i])) {
|
||||
mWallPos[i] = M_wall_work[i].GetCross();
|
||||
f32 dist = temp_44.abs2(mWallPos[i]);
|
||||
f32 dist = startPos.abs2(mWallPos[i]);
|
||||
if (dist < mNearestWallDist) {
|
||||
mNearestWallDist = dist;
|
||||
mWallIdx = i;
|
||||
@@ -288,27 +288,27 @@ namespace daObjMovebox {
|
||||
if (mMaxGroundIdx >= 0) {
|
||||
if (mGroundY[mMaxGroundIdx] > movebox->current.pos.y) {
|
||||
movebox->current.pos.y = mGroundY[mMaxGroundIdx];
|
||||
cLib_onBit(mStateFlags, BgcState_UNK01);
|
||||
cLib_onBit(mStateFlags, BgcState_ON_GROUND_e);
|
||||
movebox->speed.y = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
wrt_pos(movebox->current.pos);
|
||||
|
||||
if (cLib_checkBit(mStateFlags, BgcState_UNK08) && mWaterY > movebox->current.pos.y) {
|
||||
cLib_onBit(mStateFlags, BgcState_UNK10);
|
||||
if (cLib_checkBit(mStateFlags, BgcState_ABOVE_WATER_e) && mWaterY > movebox->current.pos.y) {
|
||||
cLib_onBit(mStateFlags, BgcState_IN_WATER_e);
|
||||
}
|
||||
if (!cLib_checkBit(mStateFlags, BgcState_UNK01) && cLib_checkBit(prevStateFlags, BgcState_UNK01)) {
|
||||
cLib_onBit(mStateFlags, BgcState_UNK02);
|
||||
if (!cLib_checkBit(mStateFlags, BgcState_ON_GROUND_e) && cLib_checkBit(prevStateFlags, BgcState_ON_GROUND_e)) {
|
||||
cLib_onBit(mStateFlags, BgcState_JUST_LEFT_GROUND_e);
|
||||
movebox->speed.y = movebox->attr()->m20;
|
||||
}
|
||||
if (cLib_checkBit(mStateFlags, BgcState_UNK01) && !cLib_checkBit(prevStateFlags, BgcState_UNK01)) {
|
||||
cLib_onBit(mStateFlags, BgcState_UNK04);
|
||||
if (cLib_checkBit(mStateFlags, BgcState_ON_GROUND_e) && !cLib_checkBit(prevStateFlags, BgcState_ON_GROUND_e)) {
|
||||
cLib_onBit(mStateFlags, BgcState_JUST_HIT_GROUND_e);
|
||||
}
|
||||
if (cLib_checkBit(mStateFlags, BgcState_UNK10) && !cLib_checkBit(prevStateFlags, BgcState_UNK10)) {
|
||||
cLib_onBit(mStateFlags, BgcState_UNK20);
|
||||
if (cLib_checkBit(mStateFlags, BgcState_IN_WATER_e) && !cLib_checkBit(prevStateFlags, BgcState_IN_WATER_e)) {
|
||||
cLib_onBit(mStateFlags, BgcState_JUST_HIT_WATER_e);
|
||||
}
|
||||
if (cLib_checkBit(mStateFlags, BgcState_UNK01) && mMaxGroundIdx >= 0) {
|
||||
if (cLib_checkBit(mStateFlags, BgcState_ON_GROUND_e) && mMaxGroundIdx >= 0) {
|
||||
dComIfG_Bgsp()->RideCallBack(M_gnd_work[mMaxGroundIdx], movebox);
|
||||
}
|
||||
}
|
||||
@@ -320,7 +320,7 @@ namespace daObjMovebox {
|
||||
}
|
||||
|
||||
/* 00000928-00000CCC .text chk_wall_touch__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cs */
|
||||
bool Bgc_c::chk_wall_touch(const Act_c* movebox, const BgcSrc_c* bgcSrc, s16 param_3) {
|
||||
bool Bgc_c::chk_wall_touch(const Act_c* movebox, const BgcSrc_c* bgcSrc, s16 dirAngle) {
|
||||
static dBgS_ObjLinChk touch_work;
|
||||
cXyz startPos;
|
||||
cXyz endPos;
|
||||
@@ -328,7 +328,7 @@ namespace daObjMovebox {
|
||||
cXyz temp_20;
|
||||
cXyz direction;
|
||||
|
||||
s16 angle = movebox->home.angle.y + param_3;
|
||||
s16 angle = movebox->home.angle.y + dirAngle;
|
||||
mDoMtx_stack_c::YrotS((s16)angle);
|
||||
mDoMtx_stack_c::XrotM(0x4000);
|
||||
offset.set(bgcSrc->m0C, 0.0f, bgcSrc->m08);
|
||||
@@ -349,15 +349,15 @@ namespace daObjMovebox {
|
||||
endPos = startPos + direction;
|
||||
|
||||
touch_work.SetActorPid(movebox->mBase.mBsPcId);
|
||||
touch_work.Set(&startPos, &endPos, (Act_c*)movebox);
|
||||
touch_work.Set(&startPos, &endPos, const_cast<Act_c*>(movebox));
|
||||
return dComIfG_Bgsp()->LineCross(&touch_work);
|
||||
}
|
||||
|
||||
/* 00001258-000012E0 .text chk_wall_touch2__Q212daObjMovebox5Bgc_cFPCQ212daObjMovebox5Act_cPCQ212daObjMovebox8BgcSrc_cis */
|
||||
bool Bgc_c::chk_wall_touch2(const Act_c* movebox, const BgcSrc_c* bgcSrc, int param_3, s16 param_4) {
|
||||
bool Bgc_c::chk_wall_touch2(const Act_c* movebox, const BgcSrc_c* bgcSrc, int bgcSrcCount, s16 dirAngle) {
|
||||
bool touch = false;
|
||||
for (int i = 0; i < param_3; i++) {
|
||||
if (chk_wall_touch(movebox, &bgcSrc[i], param_4)) {
|
||||
for (int i = 0; i < bgcSrcCount; i++) {
|
||||
if (chk_wall_touch(movebox, &bgcSrc[i], dirAngle)) {
|
||||
touch = true;
|
||||
break;
|
||||
}
|
||||
@@ -1150,7 +1150,7 @@ namespace daObjMovebox {
|
||||
if (mpModel) {
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
MTXCopy(mDoMtx_stack_c::get(), mMtx);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
|
||||
|
||||
if (mChildPID == fpcM_ERROR_PROCESS_ID_e) {
|
||||
return;
|
||||
@@ -1177,14 +1177,15 @@ namespace daObjMovebox {
|
||||
mkie->setup(&targetPos);
|
||||
}
|
||||
} else {
|
||||
cXyz temp_18(0.0f, i_attr()->m68 - 5.0f, 0.0f);
|
||||
cXyz temp_0C;
|
||||
mDoMtx_stack_c::multVecSR(&temp_18, &temp_0C);
|
||||
mDoMtx_stack_c::now[0][3] += temp_0C.x;
|
||||
mDoMtx_stack_c::now[1][3] += temp_0C.y;
|
||||
mDoMtx_stack_c::now[2][3] += temp_0C.z;
|
||||
cXyz buoyOffset(0.0f, i_attr()->m68 - 5.0f, 0.0f);
|
||||
cXyz buoyOffsetSR;
|
||||
MtxP mtx = mDoMtx_stack_c::get();
|
||||
cMtx_multVecSR(mtx, &buoyOffset, &buoyOffsetSR);
|
||||
mtx[0][3] += buoyOffsetSR.x;
|
||||
mtx[1][3] += buoyOffsetSR.y;
|
||||
mtx[2][3] += buoyOffsetSR.z;
|
||||
daObjBuoyflag::Act_c* buoyflag = (daObjBuoyflag::Act_c*)childActor;
|
||||
buoyflag->setup(mDoMtx_stack_c::get());
|
||||
buoyflag->setup(mtx);
|
||||
}
|
||||
} else {
|
||||
mChildPID = fpcM_ERROR_PROCESS_ID_e;
|
||||
@@ -1330,12 +1331,10 @@ namespace daObjMovebox {
|
||||
}
|
||||
|
||||
/* 00001C64-00001DD4 .text PPCallBack__Q212daObjMovebox5Act_cFP10fopAc_ac_cP10fopAc_ac_csQ24dBgW13PushPullLabel */
|
||||
fopAc_ac_c* Act_c::PPCallBack(fopAc_ac_c* actor, fopAc_ac_c*, s16 rot, dBgW::PushPullLabel pp_label) {
|
||||
fopAc_ac_c* Act_c::PPCallBack(fopAc_ac_c* actor, fopAc_ac_c*, s16 rot, dBgW::PushPullLabel orig_pp_label) {
|
||||
Act_c* i_this = (Act_c*)actor;
|
||||
|
||||
cLib_checkBit(pp_label, static_cast<dBgW::PushPullLabel>(dBgW::PP_UNK1_e | dBgW::PP_UNK2_e));
|
||||
dBgW::PushPullLabel orig_pp_label = pp_label;
|
||||
pp_label = static_cast<dBgW::PushPullLabel>(pp_label & (dBgW::PP_UNK1_e | dBgW::PP_UNK2_e));
|
||||
dBgW::PushPullLabel pp_label = static_cast<dBgW::PushPullLabel>(orig_pp_label & (dBgW::PP_UNK1_e | dBgW::PP_UNK2_e));
|
||||
if (pp_label) {
|
||||
bool unk;
|
||||
if (!i_this->i_attr()->m9A) {
|
||||
@@ -1363,7 +1362,7 @@ namespace daObjMovebox {
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i == whichSide) {
|
||||
i_this->mMomentCnt[i] += 1;
|
||||
i_this->mMomentCnt[i]++;
|
||||
} else {
|
||||
i_this->mMomentCnt[i] = 0;
|
||||
}
|
||||
@@ -1417,7 +1416,7 @@ namespace daObjMovebox {
|
||||
mGravity = i_attr()->m14;
|
||||
fopAcM_posMoveF(this, NULL);
|
||||
mBgc.proc_vertical(this);
|
||||
cLib_offBit(mBgc.mStateFlags, static_cast<Bgc_c::State_e>(Bgc_c::BgcState_UNK02 | Bgc_c::BgcState_UNK04 | Bgc_c::BgcState_UNK20));
|
||||
cLib_offBit(mBgc.mStateFlags, static_cast<Bgc_c::State_e>(Bgc_c::BgcState_JUST_LEFT_GROUND_e | Bgc_c::BgcState_JUST_HIT_GROUND_e | Bgc_c::BgcState_JUST_HIT_WATER_e));
|
||||
|
||||
m64F = true;
|
||||
mReverb = dComIfGp_getReverb(fopAcM_GetHomeRoomNo(this));
|
||||
@@ -1457,30 +1456,20 @@ namespace daObjMovebox {
|
||||
|
||||
/* 00002214-000024D4 .text afl_sway__Q212daObjMovebox5Act_cFv */
|
||||
void Act_c::afl_sway() {
|
||||
bool r30;
|
||||
bool r29;
|
||||
int bgcSrcCount;
|
||||
BgcSrc_c* bgcSrc;
|
||||
|
||||
f32 f31 = m60C*m60C + m610*m610;
|
||||
f32 f30 = i_attr()->m4C*i_attr()->m4C;
|
||||
|
||||
int bgcSrcCount;
|
||||
BgcSrc_c* bgcSrc;
|
||||
// fakematch? a cast here seems necessary to get the bgcSrc to temporarily be placed in r0 and then moved
|
||||
bgcSrc = const_cast<BgcSrc_c*>(i_attr()->m9A ? Bgc_c::M_lin20 : Bgc_c::M_lin5);
|
||||
bgcSrcCount = i_attr()->m9A ? ARRAY_SIZE(Bgc_c::M_lin20)-2 : ARRAY_SIZE(Bgc_c::M_lin5);
|
||||
|
||||
r30 = true;
|
||||
if (!mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[0]) &&
|
||||
!mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[2]))
|
||||
{
|
||||
r30 = false;
|
||||
}
|
||||
bool touchedFrontBack = mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[0]) ||
|
||||
mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[2]);
|
||||
|
||||
r29 = true;
|
||||
if (!mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[1]) &&
|
||||
!mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[3]))
|
||||
{
|
||||
r29 = false;
|
||||
}
|
||||
bool touchedLeftRight = mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[1]) ||
|
||||
mBgc.chk_wall_touch2(this, bgcSrc, bgcSrcCount, M_dir_base[3]);
|
||||
|
||||
if (f31 > f30) {
|
||||
f32 temp = i_attr()->m4C / sqrtf(f31);
|
||||
@@ -1497,10 +1486,10 @@ namespace daObjMovebox {
|
||||
m614 += m61C;
|
||||
m618 += m620;
|
||||
|
||||
if (r29) {
|
||||
if (touchedLeftRight) {
|
||||
m614 = 0.0f;
|
||||
}
|
||||
if (r30) {
|
||||
if (touchedFrontBack) {
|
||||
m618 = 0.0f;
|
||||
}
|
||||
|
||||
@@ -1513,7 +1502,7 @@ namespace daObjMovebox {
|
||||
int r30 = -1;
|
||||
bool r29 = true;
|
||||
|
||||
if (m64A && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK01) && (mType != TYPE_BLACK_BOX_WITH_MKIE || mChildPID == fpcM_ERROR_PROCESS_ID_e)) {
|
||||
if (m64A && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_ON_GROUND_e) && (mType != TYPE_BLACK_BOX_WITH_MKIE || mChildPID == fpcM_ERROR_PROCESS_ID_e)) {
|
||||
BOOL temp = cLib_checkBit(mPPLabel, dBgW::PP_UNK2_e);
|
||||
BOOL r3 = cLib_checkBit(mPPLabel, dBgW::PP_UNK4_e);
|
||||
s16 r0;
|
||||
@@ -1533,7 +1522,7 @@ namespace daObjMovebox {
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_SIZE(mMomentCnt); i++) {
|
||||
if (mMomentCnt[i] >= r0) {
|
||||
BgcSrc_c* bgcSrc = const_cast<BgcSrc_c*>(i_attr()->m9A ? Bgc_c::M_lin20 : Bgc_c::M_lin5);
|
||||
const BgcSrc_c* bgcSrc = i_attr()->m9A ? Bgc_c::M_lin20 : Bgc_c::M_lin5;
|
||||
int bgcSrcCount = i_attr()->m9A ? (mType == TYPE_MIRROR ? ARRAY_SIZE(Bgc_c::M_lin20) : ARRAY_SIZE(Bgc_c::M_lin20)-2) : ARRAY_SIZE(Bgc_c::M_lin5);
|
||||
if (!mBgc.chk_wall_pre(this, bgcSrc, bgcSrcCount, M_dir_base[i])) {
|
||||
r30 = i;
|
||||
@@ -1649,7 +1638,7 @@ namespace daObjMovebox {
|
||||
|
||||
int r31 = check_to_walk();
|
||||
|
||||
if (!m64F && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK01)) {
|
||||
if (!m64F && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_ON_GROUND_e)) {
|
||||
m64F = true;
|
||||
path_save();
|
||||
}
|
||||
@@ -1713,7 +1702,7 @@ namespace daObjMovebox {
|
||||
sound_slip();
|
||||
|
||||
if (r28) {
|
||||
BgcSrc_c* bgcSrc = const_cast<BgcSrc_c*>(i_attr()->m9A ? Bgc_c::M_lin20 : Bgc_c::M_lin5);
|
||||
const BgcSrc_c* bgcSrc = i_attr()->m9A ? Bgc_c::M_lin20 : Bgc_c::M_lin5;
|
||||
int bgcSrcCount = i_attr()->m9A ? (mType == TYPE_MIRROR ? ARRAY_SIZE(Bgc_c::M_lin20) : ARRAY_SIZE(Bgc_c::M_lin20)-2) : ARRAY_SIZE(Bgc_c::M_lin5);
|
||||
if (mBgc.chk_wall_pre(this, bgcSrc, bgcSrcCount, M_dir_base[m634])) {
|
||||
sound_limit();
|
||||
@@ -1885,13 +1874,13 @@ namespace daObjMovebox {
|
||||
sound_break();
|
||||
fopAcM_delete(this);
|
||||
} else {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK20)) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_JUST_HIT_WATER_e)) {
|
||||
mDoAud_seStart(i_attr()->mWaterFallSE, &mEyePos, 0, mReverb);
|
||||
}
|
||||
|
||||
if (mMode == MODE_WAIT) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK10) && m646 == 0) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK01)) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_IN_WATER_e) && m646 == 0) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_ON_GROUND_e)) {
|
||||
if (i_attr()->m28 + i_attr()->m14 > 0.0f) {
|
||||
mode_afl_init();
|
||||
}
|
||||
@@ -1899,7 +1888,7 @@ namespace daObjMovebox {
|
||||
mode_afl_init();
|
||||
}
|
||||
}
|
||||
} else if (mMode == MODE_AFLOAT && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK01)) {
|
||||
} else if (mMode == MODE_AFLOAT && cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_ON_GROUND_e)) {
|
||||
mode_wait_init();
|
||||
m646 = 20;
|
||||
}
|
||||
@@ -1914,10 +1903,10 @@ namespace daObjMovebox {
|
||||
if (m648 > 0) {
|
||||
m648--;
|
||||
} else {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK04)) {
|
||||
if (cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_JUST_HIT_GROUND_e)) {
|
||||
sound_land();
|
||||
vib_land();
|
||||
if (!cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_UNK10)) {
|
||||
if (!cLib_checkBit(mBgc.mStateFlags, Bgc_c::BgcState_IN_WATER_e)) {
|
||||
eff_land_smoke();
|
||||
}
|
||||
}
|
||||
@@ -1971,27 +1960,27 @@ namespace daObjMovebox {
|
||||
namespace {
|
||||
/* 000042A0-000044E0 .text Mthd_Create__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
|
||||
s32 Mthd_Create(void* i_this) {
|
||||
return ((Act_c*)i_this)->Mthd_Create();
|
||||
return static_cast<Act_c*>(i_this)->Mthd_Create();
|
||||
}
|
||||
|
||||
/* 000044E0-00004544 .text Mthd_Delete__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
|
||||
BOOL Mthd_Delete(void* i_this) {
|
||||
return ((Act_c*)i_this)->Mthd_Delete();
|
||||
return static_cast<Act_c*>(i_this)->Mthd_Delete();
|
||||
}
|
||||
|
||||
/* 00004544-00004564 .text Mthd_Execute__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
|
||||
BOOL Mthd_Execute(void* i_this) {
|
||||
return ((Act_c*)i_this)->MoveBGExecute();
|
||||
return static_cast<Act_c*>(i_this)->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 00004564-00004590 .text Mthd_Draw__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
|
||||
BOOL Mthd_Draw(void* i_this) {
|
||||
return ((Act_c*)i_this)->MoveBGDraw();
|
||||
return static_cast<Act_c*>(i_this)->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 00004590-000045BC .text Mthd_IsDelete__Q212daObjMovebox29@unnamed@d_a_obj_movebox_cpp@FPv */
|
||||
BOOL Mthd_IsDelete(void* i_this) {
|
||||
return ((Act_c*)i_this)->MoveBGIsDelete();
|
||||
return static_cast<Act_c*>(i_this)->MoveBGIsDelete();
|
||||
}
|
||||
|
||||
static actor_method_class Mthd_Table = {
|
||||
|
||||
@@ -157,7 +157,7 @@ BOOL daRaceItem_c::execute() {
|
||||
mCyl.ClrCoSet();
|
||||
mCyl.ClrTgSet();
|
||||
|
||||
field_0x645 &= 0xFE;
|
||||
cLib_offBit(field_0x645, (u8)0x01);
|
||||
field_0x640 = 2;
|
||||
case 2:
|
||||
field_0x63C -= 1;
|
||||
@@ -187,7 +187,7 @@ BOOL daRaceItem_c::execute() {
|
||||
fopAcM_posMoveF(this, mStts.GetCCMoveP());
|
||||
mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
|
||||
if(!(field_0x645 & 1) && !fopAcM_checkHookCarryNow(this)) { // looks like !checkOffsetPos() but that isn't an inline
|
||||
if(!cLib_checkBit(field_0x645, (u8)0x01) && !fopAcM_checkHookCarryNow(this)) {
|
||||
if(mAcch.ChkWaterIn()) {
|
||||
fopAcM_seStart(this, JA_SE_OBJ_FALL_WATER_S, 0);
|
||||
fopAcM_delete(this);
|
||||
@@ -214,7 +214,7 @@ BOOL daRaceItem_c::execute() {
|
||||
if (hitObj) {
|
||||
u32 atType = hitObj->GetAtType();
|
||||
if (atType & AT_TYPE_BOOMERANG) {
|
||||
field_0x645 |= 1;
|
||||
cLib_onBit(field_0x645, (u8)0x01);
|
||||
} else if (atType & AT_TYPE_HOOKSHOT) {
|
||||
cXyz pos(0.0f, dItem_data::getH(m_itemNo) / 2.0f, 0.0f);
|
||||
daPy_getPlayerActorClass()->setHookshotCarryOffset(fopAcM_GetID(this), &pos);
|
||||
@@ -222,13 +222,13 @@ BOOL daRaceItem_c::execute() {
|
||||
}
|
||||
}
|
||||
|
||||
if(field_0x645 & 1) {
|
||||
if(cLib_checkBit(field_0x645, (u8)0x01)) {
|
||||
fopAc_ac_c* boomerang = (fopAc_ac_c*)fopAcM_SearchByName(PROC_BOOMERANG);
|
||||
if(boomerang) {
|
||||
current.pos = boomerang->current.pos;
|
||||
}
|
||||
else {
|
||||
field_0x645 &= 0xFE;
|
||||
cLib_offBit(field_0x645, (u8)0x01);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+26
-26
@@ -113,10 +113,10 @@ daRd_HIO_c::daRd_HIO_c() {
|
||||
m5C = 10.0f;
|
||||
m60 = 50.0f;
|
||||
m64 = 30.0f;
|
||||
m68 = 1.8;
|
||||
m68 = 1.8f;
|
||||
mReturnWalkSpeed = 2.0f;
|
||||
m70 = 1.25;
|
||||
m74 = 0.9;
|
||||
m70 = 1.25f;
|
||||
m74 = 0.9f;
|
||||
m50 = 0x28;
|
||||
m78 = 0x2D;
|
||||
m54 = 0x87;
|
||||
@@ -277,7 +277,7 @@ BOOL daRd_c::_createHeap() {
|
||||
bool daRd_c::createArrowHeap() {
|
||||
static Vec sebone_cyl_offset[] = {{0.0f, 0.0f, 0.0f}, {30.0f, 0.0f, 0.0f}};
|
||||
static Vec muneA_cyl_offset[] = {{5.0f, -5.0f, 0.0f}, {20.0f, -5.0f, 0.0f}};
|
||||
static Vec muneB1_cyl_offset[] = {{15.0, 0.0, -15.0}, {50.0, 0.0, -15.0}};
|
||||
static Vec muneB1_cyl_offset[] = {{15.0f, 0.0f, -15.0f}, {50.0f, 0.0f, -15.0f}};
|
||||
static Vec muneB2_cyl_offset[] = {{15.0f, 0.0f, 0.0f}, {50.0f, 0.0f, 0.0f}};
|
||||
static Vec muneB3_cyl_offset[] = {{15.0f, 0.0f, 15.0f}, {50.0f, 0.0f, 15.0f}};
|
||||
static Vec kosi1_cyl_offset[] = {{0.0f, 0.0f, -10.0f}, {20.0f, 0.0f, -10.0f}};
|
||||
@@ -296,133 +296,133 @@ bool daRd_c::createArrowHeap() {
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x01,
|
||||
/* mRadius */ 4.0f,
|
||||
/* mpOffsets */ (cXyz*)&kosi1_cyl_offset,
|
||||
/* mpOffsets */ kosi1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x01,
|
||||
/* mRadius */ 4.0f,
|
||||
/* mpOffsets */ (cXyz*)&kosi2_cyl_offset,
|
||||
/* mpOffsets */ kosi2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x01,
|
||||
/* mRadius */ 4.0f,
|
||||
/* mpOffsets */ (cXyz*)&kosi3_cyl_offset,
|
||||
/* mpOffsets */ kosi3_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x02,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi1_cyl_offset,
|
||||
/* mpOffsets */ asi1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x03,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi2_cyl_offset,
|
||||
/* mpOffsets */ asi2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x04,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi3_cyl_offset,
|
||||
/* mpOffsets */ asi3_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x05,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi1_cyl_offset,
|
||||
/* mpOffsets */ asi1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x06,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi2_cyl_offset,
|
||||
/* mpOffsets */ asi2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x07,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&asi3_cyl_offset,
|
||||
/* mpOffsets */ asi3_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x08,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&sebone_cyl_offset,
|
||||
/* mpOffsets */ sebone_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x09,
|
||||
/* mRadius */ 10.0f,
|
||||
/* mpOffsets */ (cXyz*)&muneA_cyl_offset,
|
||||
/* mpOffsets */ muneA_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x09,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&muneB1_cyl_offset,
|
||||
/* mpOffsets */ muneB1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x09,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&muneB2_cyl_offset,
|
||||
/* mpOffsets */ muneB2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x09,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&muneB3_cyl_offset,
|
||||
/* mpOffsets */ muneB3_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x0F,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&ude1_cyl_offset,
|
||||
/* mpOffsets */ ude1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x10,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&ude2_cyl_offset,
|
||||
/* mpOffsets */ ude2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x11,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&te_cyl_offset,
|
||||
/* mpOffsets */ te_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x12,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&yubi_cyl_offset,
|
||||
/* mpOffsets */ yubi_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x13,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&ude1_cyl_offset,
|
||||
/* mpOffsets */ ude1_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x14,
|
||||
/* mRadius */ 2.0f,
|
||||
/* mpOffsets */ (cXyz*)&ude2_cyl_offset,
|
||||
/* mpOffsets */ ude2_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x15,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&te_cyl_offset,
|
||||
/* mpOffsets */ te_cyl_offset,
|
||||
},
|
||||
{
|
||||
/* mShapeType */ 0, // Cylinder
|
||||
/* mJointIndex */ 0x16,
|
||||
/* mRadius */ 6.0f,
|
||||
/* mpOffsets */ (cXyz*)&yubi_cyl_offset,
|
||||
/* mpOffsets */ yubi_cyl_offset,
|
||||
},
|
||||
};
|
||||
mpJntHit = JntHit_create(mpMorf->getModel(), search_data, ARRAY_SIZE(search_data));
|
||||
|
||||
@@ -18,7 +18,7 @@ s32 daSpotbox_c::create() {
|
||||
mScale.z *= (baseScale * 1.2f);
|
||||
current.pos.y += mScale.y * 0.5f;
|
||||
fopAcM_SetMtx(this, mMtx);
|
||||
fopAcM_setCullSizeBox(this, -0.5, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
|
||||
fopAcM_setCullSizeBox(this, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
|
||||
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ BOOL daItem_c::checkControl() {
|
||||
if (checkActionNow()) {
|
||||
return FALSE;
|
||||
}
|
||||
if (mItemStatus == 4) {
|
||||
if (mItemStatus == STATUS_UNK4) {
|
||||
return FALSE;
|
||||
}
|
||||
if (mItemStatus == STATUS_INIT_NORMAL || mItemStatus == STATUS_MAIN_NORMAL) {
|
||||
@@ -34,7 +34,7 @@ BOOL daItem_c::startControl() {
|
||||
|
||||
/* 800688E8-800688F8 .text endControl__8daItem_cFv */
|
||||
BOOL daItem_c::endControl() {
|
||||
mItemStatus = 0;
|
||||
mItemStatus = STATUS_UNK0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -43,10 +43,10 @@ BOOL daItem_c::checkLock() {
|
||||
if (checkActionNow()) {
|
||||
return FALSE;
|
||||
}
|
||||
if (mItemStatus == 4) {
|
||||
if (mItemStatus == STATUS_UNK4) {
|
||||
return FALSE;
|
||||
}
|
||||
return mItemStatus == 0 ? TRUE : FALSE;
|
||||
return mItemStatus == STATUS_UNK0 ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
/* 80068950-80068998 .text setLock__8daItem_cFv */
|
||||
@@ -60,7 +60,7 @@ BOOL daItem_c::setLock() {
|
||||
|
||||
/* 80068998-800689A8 .text releaseLock__8daItem_cFv */
|
||||
BOOL daItem_c::releaseLock() {
|
||||
mItemStatus = 0;
|
||||
mItemStatus = STATUS_UNK0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -71,4 +71,3 @@ BOOL daItem_c::checkActionNow() {
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "d/d_item_data.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
/* 80068A58-80068AA4 .text raceItemForceGet__12daRaceItem_cFv */
|
||||
void daRaceItem_c::raceItemForceGet() {
|
||||
field_0x640 = 1;
|
||||
switch(field_0x644) {
|
||||
@@ -21,6 +22,7 @@ void daRaceItem_c::raceItemForceGet() {
|
||||
}
|
||||
}
|
||||
|
||||
/* 80068AA4-80068D48 .text raceItemGet__12daRaceItem_cFv */
|
||||
void daRaceItem_c::raceItemGet() {
|
||||
switch(m_itemNo) {
|
||||
case GREEN_RUPEE:
|
||||
@@ -54,6 +56,7 @@ void daRaceItem_c::raceItemGet() {
|
||||
}
|
||||
}
|
||||
|
||||
/* 80068D48-80068FD0 .text normalItemGet__12daRaceItem_cFv */
|
||||
void daRaceItem_c::normalItemGet() {
|
||||
field_0x640 = 1;
|
||||
execItemGet(m_itemNo);
|
||||
@@ -104,11 +107,13 @@ void daRaceItem_c::normalItemGet() {
|
||||
}
|
||||
}
|
||||
|
||||
/* 80068FD0-80068FE0 .text startOffsetPos__12daRaceItem_cFv */
|
||||
BOOL daRaceItem_c::startOffsetPos() {
|
||||
field_0x640 = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80068FE0-8006903C .text endOffsetPos__12daRaceItem_cFfP4cXyzffP5csXyz */
|
||||
BOOL daRaceItem_c::endOffsetPos(f32 param_1, cXyz* param_2, f32 param_3, f32 param_4, csXyz* param_5) {
|
||||
if(param_5) {
|
||||
current.angle = *param_5;
|
||||
@@ -125,19 +130,20 @@ BOOL daRaceItem_c::endOffsetPos(f32 param_1, cXyz* param_2, f32 param_3, f32 par
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8006903C-80069064 .text checkOffsetPos__12daRaceItem_cFv */
|
||||
BOOL daRaceItem_c::checkOffsetPos() {
|
||||
BOOL ret = true;
|
||||
if(field_0x645 & 0x1 || fopAcM_checkHookCarryNow(this)) {
|
||||
if(cLib_checkBit(field_0x645, (u8)0x01) || fopAcM_checkHookCarryNow(this)) {
|
||||
ret = false;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80069064-800690E4 .text set_mtx__12daRaceItem_cFP4cXyz */
|
||||
void daRaceItem_c::set_mtx(cXyz* param_1) {
|
||||
mpModel->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(*param_1);
|
||||
mDoMtx_stack_c::YrotM(current.angle.y);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ dBgS_SplGrpChk::dBgS_SplGrpChk() {
|
||||
void dBgS_SplGrpChk::Init() {
|
||||
OffIn();
|
||||
OffFind();
|
||||
SetHeight(m_ground.y);
|
||||
SetHeight(GetPosP()->y);
|
||||
ClearPi();
|
||||
}
|
||||
|
||||
|
||||
+46
-13
@@ -26,7 +26,40 @@ public:
|
||||
static Vec dummy0 = { 1.0f, 1.0f, 1.0f };
|
||||
static Vec dummy1 = { 1.0f, 1.0f, 1.0f };
|
||||
|
||||
static u8 l_chainS3TCTex[] ALIGN_DECL(32) = { 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00 };
|
||||
static u8 l_chainS3TCTex[] ALIGN_DECL(32) = {
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE, 0xDB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55, 0xDE, 0xDB, 0xB5, 0xB6, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB5, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55,
|
||||
0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55,
|
||||
0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55,
|
||||
0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55, 0xB5, 0xB6, 0x94, 0x92, 0x00, 0x55, 0x55, 0x55,
|
||||
0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55, 0x8C, 0x31, 0x6B, 0x2D, 0x00, 0x55, 0x55, 0x55,
|
||||
0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00,
|
||||
0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00,
|
||||
0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00,
|
||||
0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00, 0x94, 0x92, 0x6B, 0x2D, 0x55, 0x55, 0xAA, 0x00,
|
||||
0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00, 0xB5, 0xB6, 0x94, 0x92, 0x55, 0x55, 0x00, 0x00
|
||||
};
|
||||
static Vec l_pos[12] = {
|
||||
{ -2.0f, 1.522254f, -0.0f },
|
||||
{ -2.0f, 1.522254f, 7.0f },
|
||||
@@ -43,18 +76,18 @@ static Vec l_pos[12] = {
|
||||
|
||||
};
|
||||
static f32 l_texCoord[24] = {
|
||||
0.02736, 0.041406,
|
||||
0.97264, 0.041406,
|
||||
0.830848, 0.40324,
|
||||
0.169152, 0.40324,
|
||||
0.03125, 0.0,
|
||||
0.96875, 0.0,
|
||||
0.767857, 0.494086,
|
||||
0.232143, 0.494086,
|
||||
0.038462, 0.48226,
|
||||
0.038462, 0.983522,
|
||||
0.961538, 0.48226,
|
||||
0.961538, 0.983522,
|
||||
0.02736f, 0.041406f,
|
||||
0.97264f, 0.041406f,
|
||||
0.830848f, 0.40324f,
|
||||
0.169152f, 0.40324f,
|
||||
0.03125f, 0.0f,
|
||||
0.96875f, 0.0f,
|
||||
0.767857f, 0.494086f,
|
||||
0.232143f, 0.494086f,
|
||||
0.038462f, 0.48226f,
|
||||
0.038462f, 0.983522f,
|
||||
0.961538f, 0.48226f,
|
||||
0.961538f, 0.983522f,
|
||||
};
|
||||
|
||||
#define CONST_U32(v) ((u8)((v) >> 16)), ((u8)((v) >> 8)), ((u8)((v) >> 0))
|
||||
|
||||
@@ -1422,7 +1422,7 @@ void dDlst_shadowControl_c::draw(Mtx drawMtx) {
|
||||
GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE);
|
||||
GXColor alpha = { 0x00, 0x00, 0x00, 0x20 };
|
||||
GXSetChanMatColor(GX_ALPHA0, alpha);
|
||||
GXSetArray(GX_VA_POS, l_shadowVolPos, 0xc);
|
||||
GXSetArray(GX_VA_POS, l_shadowVolPos, sizeof(*l_shadowVolPos));
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
@@ -1437,7 +1437,7 @@ void dDlst_shadowControl_c::draw(Mtx drawMtx) {
|
||||
real->draw();
|
||||
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_S8, 0);
|
||||
GXSetArray(GX_VA_POS, l_simpleShadowPos, 0xc);
|
||||
GXSetArray(GX_VA_POS, l_simpleShadowPos, sizeof(*l_simpleShadowPos));
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
@@ -1556,10 +1556,10 @@ void dDlst_alphaVolPacket::draw() {
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
|
||||
GXSetArray(GX_VA_POS, (void*)l_simpleShadowPos, 0x0C);
|
||||
GXSetArray(GX_VA_POS, (void*)l_simpleShadowPos, sizeof(*l_simpleShadowPos));
|
||||
GXLoadPosMtxImm(mtx, GX_PNMTX0);
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXCallDisplayList(l_frontMat, 0x40)
|
||||
GXCallDisplayList(l_frontMat, 0x40);
|
||||
GXCallDisplayList(l_shadowVolumeDL, 0x40);
|
||||
GXCallDisplayList(l_backSubMat, 0x20);
|
||||
GXCallDisplayList(l_shadowVolumeDL, 0x40);
|
||||
@@ -1576,7 +1576,7 @@ void dDlst_alphaInvVolPacket::draw() {
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX8);
|
||||
GXSetArray(GX_VA_POS, (void*)l_simpleShadowPos, 0x0C);
|
||||
GXSetArray(GX_VA_POS, (void*)l_simpleShadowPos, sizeof(*l_simpleShadowPos));
|
||||
GXLoadPosMtxImm(mtx, GX_PNMTX0);
|
||||
GXSetCurrentMtx(GX_PNMTX0);
|
||||
GXSetTevColor(GX_TEVREG0, g_whiteColor);
|
||||
|
||||
@@ -29,9 +29,9 @@ void vectle_calc(DOUBLE_POS* i_pos, cXyz* o_out) {
|
||||
o_out->y = i_pos->y / s;
|
||||
o_out->z = i_pos->z / s;
|
||||
} else {
|
||||
o_out->x = 0.0;
|
||||
o_out->y = 0.0;
|
||||
o_out->z = 0.0;
|
||||
o_out->x = 0.0f;
|
||||
o_out->y = 0.0f;
|
||||
o_out->z = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1127,7 +1127,7 @@ BOOL stealItem_CB(void* actor) {
|
||||
if (actor) {
|
||||
daItem_c* item = (daItem_c*)actor;
|
||||
item->mScale.setall(1.0f);
|
||||
item->setFlag(0x40);
|
||||
item->setFlag(daItem_c::FLAG_HOOK);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user