some actor documentation and cleanup

This commit is contained in:
LagoLunatic
2024-01-18 18:55:47 -05:00
parent e724cdf62e
commit fa5010b1dd
35 changed files with 358 additions and 325 deletions
+6 -6
View File
@@ -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;
+3 -3
View File
@@ -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;
};
};
+14 -2
View File
@@ -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;
+1 -1
View File
@@ -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;
+3 -3
View File
@@ -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 */
+3 -3
View File
@@ -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;
};
};
+12 -12
View File
@@ -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 */ }
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -11,7 +11,7 @@ public:
/* 0x0 */ s16 mShapeType;
/* 0x2 */ s16 mJointIndex;
/* 0x4 */ f32 mRadius;
/* 0x8 */ cXyz* mpOffsets;
/* 0x8 */ Vec* mpOffsets;
};
class JntHit_c {
+2 -2
View File
@@ -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);
+1 -3
View File
@@ -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);
}
}
}
+2 -2
View File
@@ -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;
}
}
+1 -1
View File
@@ -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));
+2 -2
View File
@@ -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
View File
@@ -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;
}
}
+6 -7
View File
@@ -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,
};
+12 -12
View File
@@ -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
View File
@@ -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, &current.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(&current.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(&current.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, &current.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;
}
+2 -2
View File
@@ -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
View File
@@ -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);
}
+5 -5
View File
@@ -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
View File
@@ -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;
+11 -11
View File
@@ -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, &current.pos, &current.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, &current.pos, &mTevStr);
g_env_light.setLightTevColorType(mpModel, &mTevStr);
if (m2F5 == 0) {
if (!mIsVisible) {
return TRUE;
}
dComIfGd_setListBG();
+2 -4
View File
@@ -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;
+62 -73
View File
@@ -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 = {
+5 -5
View File
@@ -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
View File
@@ -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));
+1 -1
View File
@@ -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;
}
+5 -6
View File
@@ -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;
}
+8 -2
View File
@@ -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());
}
+1 -1
View File
@@ -22,7 +22,7 @@ dBgS_SplGrpChk::dBgS_SplGrpChk() {
void dBgS_SplGrpChk::Init() {
OffIn();
OffFind();
SetHeight(m_ground.y);
SetHeight(GetPosP()->y);
ClearPi();
}
+46 -13
View File
@@ -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))
+5 -5
View File
@@ -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);
+3 -3
View File
@@ -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;
}
}
+1 -1
View File
@@ -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;
}