mirror of
https://github.com/zeldaret/ss
synced 2026-08-25 15:45:41 -04:00
dAcObjBase var -> mVar
This commit is contained in:
@@ -236,7 +236,7 @@ public:
|
||||
|
||||
/* vt 0x080 */ virtual bool giveItem(u8 param, ITEM_ID item_id);
|
||||
/* vt 0x084 */ virtual void getPosCopy3(mVec3_c &outResult) {
|
||||
outResult.copyFrom(poscopy3);
|
||||
outResult.copyFrom(mPositionCopy3);
|
||||
}
|
||||
/* vt 0x088 */ virtual void acNpc_vt_0x88() {}
|
||||
/* vt 0x08C */ virtual void acNpc_vt_0x8C() {}
|
||||
|
||||
@@ -25,22 +25,22 @@
|
||||
// non-official name
|
||||
class dAcObjBase_c : public dAcBase_c {
|
||||
public:
|
||||
/* 0x0FC */ f32 yoffset;
|
||||
/* 0x0FC */ f32 mYOffset;
|
||||
/* 0x100 */ f32 field_0x100;
|
||||
/* 0x104 */ f32 unkfloat;
|
||||
/* 0x108 */ char _1[12];
|
||||
/* 0x114 */ u16 targetFiTextId;
|
||||
/* 0x116 */ u8 unkByteTargetFiRelated;
|
||||
/* 0x108 */ char field_0x108[12];
|
||||
/* 0x114 */ u16 mTargetFiTextID;
|
||||
/* 0x116 */ u8 mTargetFiRelated;
|
||||
/* 0x118 */ mVec3_c mOldPosition;
|
||||
/* 0x124 */ mVec3_c poscopy2;
|
||||
/* 0x130 */ mVec3_c poscopy3;
|
||||
/* 0x13C */ mAng3_c angle;
|
||||
/* 0x144 */ f32 forwardSpeed;
|
||||
/* 0x148 */ f32 forwardAccel;
|
||||
/* 0x14C */ f32 forwardMaxSpeed;
|
||||
/* 0x150 */ mVec3_c velocity;
|
||||
/* 0x124 */ mVec3_c mPositionCopy2;
|
||||
/* 0x130 */ mVec3_c mPositionCopy3;
|
||||
/* 0x13C */ mAng3_c mAngle;
|
||||
/* 0x144 */ f32 mSpeed;
|
||||
/* 0x148 */ f32 mAcceleration;
|
||||
/* 0x14C */ f32 mMaxSpeed;
|
||||
/* 0x150 */ mVec3_c mVelocity;
|
||||
/* 0x15C */ mMtx_c mWorldMtx;
|
||||
/* 0x18C */ cM3dGAab boundingBox;
|
||||
/* 0x18C */ cM3dGAab mBoundingBox;
|
||||
/* 0x1A4 */ f32 mCullingDistance;
|
||||
/* 0x1A8 */ f32 field_0x1A8;
|
||||
/* 0x1AC */ u32 mObjectActorFlags;
|
||||
@@ -55,41 +55,41 @@ public:
|
||||
/* 0x32C */ dSalvageIf_c *mpSalvageIf;
|
||||
|
||||
public:
|
||||
mVec3_c &GetOldPosition() {
|
||||
mVec3_c &getOldPosition() {
|
||||
return mOldPosition;
|
||||
}
|
||||
mVec3_c &GetVelocity() {
|
||||
return velocity;
|
||||
mVec3_c &getVelocity() {
|
||||
return mVelocity;
|
||||
}
|
||||
mAng3_c &GetAngle() {
|
||||
return angle;
|
||||
mAng3_c &getAngle() {
|
||||
return mAngle;
|
||||
}
|
||||
|
||||
f32 getVelocityMag() const {
|
||||
return fabsf(nw4r::math::VEC3LenSq(velocity));
|
||||
return fabsf(nw4r::math::VEC3LenSq(mVelocity));
|
||||
}
|
||||
|
||||
f32 GetSpeed() const {
|
||||
return forwardSpeed;
|
||||
f32 getSpeed() const {
|
||||
return mSpeed;
|
||||
}
|
||||
|
||||
f32 GetYOffset() const {
|
||||
return yoffset;
|
||||
f32 getYOffset() const {
|
||||
return mYOffset;
|
||||
}
|
||||
|
||||
bool isStopped() const {
|
||||
bool checkStopped() const {
|
||||
return getVelocityMag() <= EGG::Math<f32>::epsilon();
|
||||
}
|
||||
|
||||
bool isSlowerThan(f32 speed) const {
|
||||
return fabsf(forwardSpeed) <= speed;
|
||||
bool checkSlower(f32 speed) const {
|
||||
return fabsf(mSpeed) <= speed;
|
||||
}
|
||||
|
||||
bool checkYOffsetField_0x100() const {
|
||||
return yoffset <= field_0x100;
|
||||
return mYOffset <= field_0x100;
|
||||
}
|
||||
|
||||
void clearObjectProperty(u32 property) {
|
||||
void unsetObjectProperty(u32 property) {
|
||||
mObjectActorFlags &= ~property;
|
||||
}
|
||||
void setObjectProperty(u32 property) {
|
||||
@@ -99,88 +99,87 @@ public:
|
||||
return mObjectActorFlags & property;
|
||||
}
|
||||
|
||||
dLinkage_c &GetLinkage() {
|
||||
dLinkage_c &getLinkage() {
|
||||
return mLinkage;
|
||||
}
|
||||
const dLinkage_c &GetLinkage() const {
|
||||
const dLinkage_c &getLinkage() const {
|
||||
return mLinkage;
|
||||
}
|
||||
|
||||
void SetJntCol(dJntCol_c *pCol) {
|
||||
void setJntCol(dJntCol_c *pCol) {
|
||||
mLinkage.field_0xA0 = pCol;
|
||||
}
|
||||
|
||||
// could be their own thing?
|
||||
/* 8002de40 */ static void *getOarcFile(const char *oarcName, const char *fileName);
|
||||
/* 8002de60 */ static void *getOarcSubEntry(const char *oarcName, const char *fileName);
|
||||
/* 8002de80 */ static void *getOarcResFile(const char *oarcName);
|
||||
/* 8002de90 */ static void *getOarcModelFile(const char *oarcName);
|
||||
/* 8002dea0 */ static void *getOarcZev(const char *oarcName);
|
||||
/* 8002deb0 */ static void *getOarcDZB(const char *dzbName, const char *dzbName2);
|
||||
/* 8002ded0 */ static void *getOarcPLC(const char *plcName, const char *plcName2);
|
||||
static void *getOarcFile(const char *oarcName, const char *fileName);
|
||||
static void *getOarcSubEntry(const char *oarcName, const char *fileName);
|
||||
static void *getOarcResFile(const char *oarcName);
|
||||
static void *getOarcModelFile(const char *oarcName);
|
||||
static void *getOarcZev(const char *oarcName);
|
||||
static void *getOarcDZB(const char *dzbName, const char *dzbName2);
|
||||
static void *getOarcPLC(const char *plcName, const char *plcName2);
|
||||
|
||||
public:
|
||||
/* 8002def0 */ dAcObjBase_c();
|
||||
/* 8002e050 */ virtual ~dAcObjBase_c();
|
||||
/* 8002e0e0 */ virtual int preCreate() override;
|
||||
/* 8002e150 */ virtual int preExecute() override;
|
||||
/* 8002e2a0 */ virtual void postExecute(MAIN_STATE_e state) override;
|
||||
/* 8002e330 */ virtual int preDraw() override;
|
||||
/* 8002e5b0 */ virtual void *getObjectListEntry();
|
||||
/* 8002e5c0 */ virtual bool restorePosRotFromCopy() override;
|
||||
/* 8002ea10 */ virtual bool canBeLinkedToWoodTag();
|
||||
/* 8002ea20 */ virtual bool drop();
|
||||
dAcObjBase_c();
|
||||
virtual ~dAcObjBase_c();
|
||||
virtual int preCreate() override;
|
||||
virtual int preExecute() override;
|
||||
virtual void postExecute(MAIN_STATE_e state) override;
|
||||
virtual int preDraw() override;
|
||||
virtual void *getObjectListEntry();
|
||||
virtual bool restorePosRotFromCopy() override;
|
||||
virtual bool canBeLinkedToWoodTag();
|
||||
virtual bool drop();
|
||||
|
||||
public:
|
||||
/* 8002e630 */ static dAcObjBase_c *create(
|
||||
static dAcObjBase_c *create(
|
||||
fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot,
|
||||
const mVec3_c *scale, u32 params2
|
||||
);
|
||||
/* 8002e6d0 */ static dAcObjBase_c *create(
|
||||
static dAcObjBase_c *create(
|
||||
const char *name, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, const mVec3_c *scale,
|
||||
u32 params2, u16 id, s8 viewclipId
|
||||
);
|
||||
/* 8002e770 */ static dAcObjBase_c *
|
||||
findObject(fProfile::PROFILE_NAME_e actorId, fLiNdBa_c *refList, dAcObjBase_c *parent);
|
||||
/* 8002e7f0 */ static dAcObjBase_c *getNextObject(fLiMgBa_c *ref, dAcObjBase_c *parent);
|
||||
/* 8002e850 */ bool isPlayer();
|
||||
/* 8002e870 */ void calcVelocity(mVec3_c &pos, f32 speed);
|
||||
/* 8002e8e0 */ void calcVelocity();
|
||||
/* 8002e9a0 */ void updateMatrix();
|
||||
/* 8002ea00 */ void setDefaultCullDistance();
|
||||
/* 8002ea30 */ void fn_8002EA30(f32, f32, f32, f32, f32, void *);
|
||||
/* 8002ea60 */ void fn_8002EA60(void *);
|
||||
/* 8002eb30 */ void fn_8002EB30(void *);
|
||||
/* 8002eb90 */ void putInODesert(f32 depth, mVec3_c *position);
|
||||
static dAcObjBase_c *findObject(fProfile::PROFILE_NAME_e actorId, fLiNdBa_c *refList, dAcObjBase_c *parent);
|
||||
static dAcObjBase_c *getNextObject(fLiMgBa_c *ref, dAcObjBase_c *parent);
|
||||
bool isPlayer();
|
||||
void calcVelocity(mVec3_c &pos, f32 speed);
|
||||
void calcVelocity();
|
||||
void updateMatrix();
|
||||
void setDefaultCullDistance();
|
||||
void fn_8002EA30(f32, f32, f32, f32, f32, void *);
|
||||
void fn_8002EA60(void *);
|
||||
void fn_8002EB30(void *);
|
||||
void putInODesert(f32 depth, mVec3_c *position);
|
||||
// Disabling makes Items and Link Disappear
|
||||
/* 8002ec70 */ void drawModelType1(m3d::smdl_c *smdl);
|
||||
void drawModelType1(m3d::smdl_c *smdl);
|
||||
// Disabling make Lava and other objects Disappear
|
||||
/* 8002ecd0 */ void drawModel2();
|
||||
/* 8002ed20 */ void fn_8002ed20();
|
||||
/* 8002edb0 */ void fn_8002edb0(m3d::mShadowCircle_c &shadow, m3d::smdl_c &smdl, const mQuat_c *rot, s32, s32, f32);
|
||||
/* 8002ee40 */ void drawShadow(
|
||||
void drawModel2();
|
||||
void fn_8002ed20();
|
||||
void fn_8002edb0(m3d::mShadowCircle_c &shadow, m3d::smdl_c &smdl, const mQuat_c *rot, s32, s32, f32);
|
||||
void drawShadow(
|
||||
m3d::mShadowCircle_c &shadow, void *, const mMtx_c &mtx, const mQuat_c *rot, s32, s32, s32, s32, s32, f32
|
||||
);
|
||||
/* 8002ef40 */ void createChildAttached(
|
||||
void createChildAttached(
|
||||
fProfile::PROFILE_NAME_e actorId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2,
|
||||
u32 roomId
|
||||
);
|
||||
/* 8002ef40 */ void createChildNonAttached(
|
||||
void createChildNonAttached(
|
||||
fProfile::PROFILE_NAME_e actorId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2,
|
||||
u32 roomId
|
||||
);
|
||||
/* 8002efa0 */ void fn_8002efa0();
|
||||
/* 8002eff0 */ bool fn_8002eff0(f32 *, s16 *, f32 *, f32 *, f32 *);
|
||||
/* 8002f190 */ void createChildAttached2(
|
||||
void fn_8002efa0();
|
||||
bool fn_8002eff0(f32 *, s16 *, f32 *, f32 *, f32 *);
|
||||
void createChildAttached2(
|
||||
fProfile::PROFILE_NAME_e actorId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale, u32 params2,
|
||||
u32 roomId
|
||||
);
|
||||
// These may not belong here
|
||||
/* 8002f1c0 */ static dAcBase_c *createActorUnkGroup3(
|
||||
static dAcBase_c *createActorUnkGroup3(
|
||||
fProfile::PROFILE_NAME_e actorId, u32 roomId, u32 params1, mVec3_c *pos, mAng3_c *rot, mVec3_c *scale,
|
||||
u32 params2
|
||||
);
|
||||
/* 8002f260 */ static dAcBase_c *createActorUnkGroup3(
|
||||
static dAcBase_c *createActorUnkGroup3(
|
||||
const char *name, u32 roomId, u32 params1, const mVec3_c *pos, const mAng3_c *rot, const mVec3_c *scale,
|
||||
u32 params2, u16 id, s8 viewclipId
|
||||
);
|
||||
|
||||
@@ -228,10 +228,10 @@ public:
|
||||
return 0.0f;
|
||||
}
|
||||
/* vt 0x1A4 */ virtual const mVec3_c &vt_0x1A4() {
|
||||
return poscopy3;
|
||||
return mPositionCopy3;
|
||||
}
|
||||
/* vt 0x1A8 */ virtual f32 vt_0x1A8() {
|
||||
return yoffset;
|
||||
return mYOffset;
|
||||
}
|
||||
/* vt 0x1AC */ virtual f32 vt_0x1AC() {
|
||||
return 0.0f;
|
||||
|
||||
+13
-13
@@ -20,18 +20,18 @@
|
||||
class fBase_c {
|
||||
public:
|
||||
/* 0x00 */ fBaseID_e mID;
|
||||
/* 0x04 */ u32 mParams; // params1
|
||||
/* 0x08 */ ProfileName profile_name; // Actor Id
|
||||
/* 0x0A */ u8 lifecycle_state;
|
||||
/* 0x0B */ bool delete_request;
|
||||
/* 0x0C */ s8 update_request;
|
||||
/* 0x0D */ bool create_request;
|
||||
/* 0x0E */ u8 group_type;
|
||||
/* 0x04 */ u32 mParams;
|
||||
/* 0x08 */ ProfileName mProfileName;
|
||||
/* 0x0A */ u8 mLifecycleState;
|
||||
/* 0x0B */ bool mDeleteRequest;
|
||||
/* 0x0C */ s8 mUpdateRequest;
|
||||
/* 0x0D */ bool mCreateRequest;
|
||||
/* 0x0E */ u8 mGroupType;
|
||||
/* 0x0F */ u8 mProcControl;
|
||||
/* 0x10 */ fManager_c manager;
|
||||
/* 0x50 */ fBaHelper_c *p_helper;
|
||||
/* 0x54 */ cListMg_c actor_list;
|
||||
/* 0x5C */ EGG::FrmHeap *p_heap;
|
||||
/* 0x10 */ fManager_c mManager;
|
||||
/* 0x50 */ fBaHelper_c *mpHelper;
|
||||
/* 0x54 */ cListMg_c mActorList;
|
||||
/* 0x5C */ EGG::FrmHeap *mpHeap;
|
||||
/* 0x60 */ // vtable
|
||||
public:
|
||||
enum UPDATE_STATUS_e {
|
||||
@@ -85,8 +85,8 @@ public:
|
||||
void setParams() {
|
||||
mID = m_rootUniqueID;
|
||||
mParams = m_tmpCtData.params;
|
||||
profile_name = m_tmpCtData.prof_name;
|
||||
group_type = m_tmpCtData.group_type;
|
||||
mProfileName = m_tmpCtData.prof_name;
|
||||
mGroupType = m_tmpCtData.group_type;
|
||||
}
|
||||
|
||||
u32 getFromParams(u8 shift, u32 mask) {
|
||||
|
||||
@@ -36,11 +36,11 @@ int dAcBombf_c::actorCreate() {
|
||||
}
|
||||
|
||||
mStts.SetDefaultRank();
|
||||
forwardAccel = -2.0f;
|
||||
forwardMaxSpeed = -80.0f;
|
||||
mAcceleration = -2.0f;
|
||||
mMaxSpeed = -80.0f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-80.0, -50.0f, -80.0f), mVec3_c(80.0, 60.0f, 80.0f));
|
||||
angle = mRotation;
|
||||
mBoundingBox.Set(mVec3_c(-80.0, -50.0f, -80.0f), mVec3_c(80.0, 60.0f, 80.0f));
|
||||
mAngle = mRotation;
|
||||
if (mDespawnSceneFlag < 0xFF) {
|
||||
unsetActorProperty(AC_PROP_0x1);
|
||||
setActorProperty(AC_PROP_0x4);
|
||||
@@ -111,20 +111,20 @@ int dAcBombf_c::actorExecute() {
|
||||
bomb->setTransformFromFlower(mtx);
|
||||
}
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
poscopy2 = mPosition;
|
||||
poscopy3 = mPosition;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy3 = mPosition;
|
||||
field_0x3D3 = 0;
|
||||
} else {
|
||||
if (dBgS::GetInstance()->ChkMoveBG(field_0x398, true)) {
|
||||
dBgS::GetInstance()->MoveBgTransPos(field_0x398, true, &mPosition, &angle, &mRotation);
|
||||
dBgS::GetInstance()->MoveBgTransPos(field_0x398, true, &mPosition, &mAngle, &mRotation);
|
||||
updateMatrix();
|
||||
dAcBomb_c *bomb = mBombRef.get();
|
||||
if (bomb != nullptr) {
|
||||
bomb->setTransformFromFlower(mWorldMtx);
|
||||
}
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
poscopy2 = mPosition;
|
||||
poscopy3 = mPosition;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy3 = mPosition;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,10 +16,10 @@ int dAcInvisible::create() {
|
||||
mStts.SetRank(9);
|
||||
mSph.SetStts(mStts);
|
||||
mCps.SetStts(mStts);
|
||||
forwardAccel = 0.0;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = 0.0;
|
||||
mMaxSpeed = -40.0f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ int dAcKnightLeaderBird_c::create() {
|
||||
dAcBirdBase_c::resetBird();
|
||||
field_0xF40 = 0.15f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-300.0f, 0.0f, -300.0f), mVec3_c(300.0f, 200.0f, 300.0f));
|
||||
mBoundingBox.Set(mVec3_c(-300.0f, 0.0f, -300.0f), mVec3_c(300.0f, 200.0f, 300.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -51,7 +51,7 @@ int dAcKnightLeaderBird_c::actorExecute() {
|
||||
fn_80176D30();
|
||||
fn_80176F80();
|
||||
updateMatrixBird();
|
||||
|
||||
|
||||
updateSpineMtx();
|
||||
|
||||
fn_80177EA0();
|
||||
@@ -72,7 +72,6 @@ int dAcKnightLeaderBird_c::draw() {
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
void dAcKnightLeaderBird_c::updateSpineMtx() {
|
||||
static const char *sBirdLordSpineName = "Spine";
|
||||
u32 id = mMdl.getModel().getNodeID(sBirdLordSpineName);
|
||||
@@ -85,9 +84,9 @@ void dAcKnightLeaderBird_c::updateSpineMtx() {
|
||||
}
|
||||
|
||||
void dAcKnightLeaderBird_c::initializeState_Wait() {
|
||||
forwardSpeed = 0.0f;
|
||||
velocity.set(0.0f, 0.0f, 0.0f);
|
||||
forwardAccel = 0.0f;
|
||||
mSpeed = 0.0f;
|
||||
mVelocity.set(0.0f, 0.0f, 0.0f);
|
||||
mAcceleration = 0.0f;
|
||||
changeBirdAction(sBirdLordAnmName, BIRD_ACTION_GLIDE, m3d::PLAY_MODE_4, 8.0f);
|
||||
}
|
||||
void dAcKnightLeaderBird_c::executeState_Wait() {}
|
||||
|
||||
@@ -15,8 +15,8 @@ STATE_DEFINE(dAcTWoodArea_c, Wait);
|
||||
int dAcTWoodArea_c::actorCreate() {
|
||||
mStateMgr.changeState(StateID_Init);
|
||||
PSMTXTrans(mWorldMtx.m, mPosition.x, mPosition.y, mPosition.z);
|
||||
boundingBox.mMin = mVec3_c(-0.0f, -0.0f, -0.0f);
|
||||
boundingBox.mMax = mVec3_c(0.0f, 0.0f, 0.0f);
|
||||
mBoundingBox.mMin = mVec3_c(-0.0f, -0.0f, -0.0f);
|
||||
mBoundingBox.mMax = mVec3_c(0.0f, 0.0f, 0.0f);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ bool dAcEhb_leaf_c::createHeap() {
|
||||
int dAcEhb_leaf_c::create() {
|
||||
CREATE_ALLOCATOR(dAcEhb_leaf_c);
|
||||
|
||||
boundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
mBoundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
|
||||
mRotation.y = cM::rndF(65535.0f);
|
||||
someRot = mRotation.y.mVal;
|
||||
|
||||
+66
-65
@@ -129,7 +129,7 @@ int dAcEsm_c::actorCreate() {
|
||||
|
||||
CREATE_ALLOCATOR(dAcEsm_c);
|
||||
|
||||
mRotation.z = angle.x = 0;
|
||||
mRotation.z = mAngle.x = 0;
|
||||
|
||||
mBombRef.unlink();
|
||||
|
||||
@@ -138,19 +138,19 @@ int dAcEsm_c::actorCreate() {
|
||||
switch ((int)mScale.x) {
|
||||
default:
|
||||
case SM_SMALL: {
|
||||
boundingBox.Set(mVec3_c(-250.f, -250.f, -250.f), mVec3_c(250.f, 375.f, 250.f));
|
||||
mBoundingBox.Set(mVec3_c(-250.f, -250.f, -250.f), mVec3_c(250.f, 375.f, 250.f));
|
||||
mScale.set(0.8f, 0.8f, 0.8f);
|
||||
} break;
|
||||
case SM_LARGE: {
|
||||
boundingBox.Set(mVec3_c(-500.f, -500.f, -500.f), mVec3_c(500.f, 750.f, 500.f));
|
||||
mBoundingBox.Set(mVec3_c(-500.f, -500.f, -500.f), mVec3_c(500.f, 750.f, 500.f));
|
||||
mScale.set(0.4f, 0.4f, 0.4f);
|
||||
} break;
|
||||
case SM_MASSIVE: {
|
||||
boundingBox.Set(mVec3_c(-800.f, -800.f, -800.f), mVec3_c(800.f, 1200.f, 800.f));
|
||||
mBoundingBox.Set(mVec3_c(-800.f, -800.f, -800.f), mVec3_c(800.f, 1200.f, 800.f));
|
||||
mScale.set(0.25f, 0.25f, 0.25f);
|
||||
} break;
|
||||
case SM_TINY: {
|
||||
boundingBox.Set(mVec3_c(-150.f, -150.f, -150.f), mVec3_c(150.f, 225.f, 150.f));
|
||||
mBoundingBox.Set(mVec3_c(-150.f, -150.f, -150.f), mVec3_c(150.f, 225.f, 150.f));
|
||||
mScale.set(1.2f, 1.2f, 1.2f);
|
||||
} break;
|
||||
}
|
||||
@@ -166,16 +166,16 @@ int dAcEsm_c::actorCreate() {
|
||||
mObjAcch.SetGndThinCellingOff();
|
||||
mObjAcch.mField_0x390 = 1;
|
||||
|
||||
forwardMaxSpeed = -40.f;
|
||||
mMaxSpeed = -40.f;
|
||||
|
||||
mSph.Set(sSphSrc);
|
||||
|
||||
mSph.SetStts(mStts);
|
||||
|
||||
mPosition.CopyTo(poscopy2);
|
||||
mPosition.CopyTo(mPositionCopy2);
|
||||
mPosition.CopyTo(mPosCopy1);
|
||||
mPosition.CopyTo(poscopy3);
|
||||
poscopy3.y += 50.f;
|
||||
mPosition.CopyTo(mPositionCopy3);
|
||||
mPositionCopy3.y += 50.f;
|
||||
|
||||
mRotCopy.set(mRotation);
|
||||
|
||||
@@ -220,10 +220,10 @@ int dAcEsm_c::actorCreate() {
|
||||
mHealth = 100;
|
||||
|
||||
if (field_0xBBF != 1) {
|
||||
forwardAccel = -3.f;
|
||||
mAcceleration = -3.f;
|
||||
}
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
|
||||
mObjAcch.CrrPos(*dBgS::GetInstance());
|
||||
@@ -233,27 +233,27 @@ int dAcEsm_c::actorCreate() {
|
||||
switch (mType) {
|
||||
// SM_RED
|
||||
default: {
|
||||
targetFiTextId = 59;
|
||||
mTargetFiTextID = 59;
|
||||
anim_frame = 0.f;
|
||||
mSph.SetAtModifier(AT_MOD_FIRE);
|
||||
mType = SM_RED;
|
||||
} break;
|
||||
case SM_GREEN_ALT:
|
||||
case SM_GREEN: {
|
||||
targetFiTextId = 62;
|
||||
mTargetFiTextID = 62;
|
||||
anim_frame = 3.f;
|
||||
mType = SM_GREEN;
|
||||
} break;
|
||||
case SM_YELLOW_ALT:
|
||||
case SM_YELLOW: {
|
||||
targetFiTextId = 61;
|
||||
mTargetFiTextID = 61;
|
||||
anim_frame = 2.f;
|
||||
mSph.SetAtModifier(AT_MOD_ELECTRIC);
|
||||
mType = SM_YELLOW;
|
||||
} break;
|
||||
|
||||
case SM_BLUE: {
|
||||
targetFiTextId = 60;
|
||||
mTargetFiTextID = 60;
|
||||
anim_frame = 1.f;
|
||||
} break;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ int dAcEsm_c::actorExecute() {
|
||||
target.y += mScaleTarget.y * 60.f;
|
||||
}
|
||||
|
||||
cLib::addCalcPos2(&bomb->getPosition(), target, 0.8f, 20.f + GetSpeed() * 1.5f);
|
||||
cLib::addCalcPos2(&bomb->getPosition(), target, 0.8f, 20.f + getSpeed() * 1.5f);
|
||||
|
||||
field_0xB6C = 0.5f;
|
||||
|
||||
@@ -412,11 +412,11 @@ int dAcEsm_c::actorExecute() {
|
||||
fillUpperParams2Byte();
|
||||
deleteRequest();
|
||||
}
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
|
||||
// TODO: Maybe Inline - Common Pattern. Check GetCcMove
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
|
||||
mObjAcch.CrrPos(*dBgS::GetInstance());
|
||||
@@ -443,7 +443,7 @@ int dAcEsm_c::actorExecute() {
|
||||
field_0xBBF = 0;
|
||||
setBattleBgmRelated(2);
|
||||
fn_80030700();
|
||||
mRotation.y = angle.y = getXZAngleToPlayer();
|
||||
mRotation.y = mAngle.y = getXZAngleToPlayer();
|
||||
}
|
||||
if (field_0xBBF == 3) {
|
||||
return SUCCEEDED;
|
||||
@@ -468,7 +468,7 @@ int dAcEsm_c::actorExecute() {
|
||||
|
||||
if (0 == sLib::calcTimer(&mTimer_0xBC4)) {
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
}
|
||||
|
||||
@@ -517,7 +517,7 @@ int dAcEsm_c::actorExecute() {
|
||||
if (mSph.ChkTgHit()) {
|
||||
if (field_0xB94 == 7) {
|
||||
field_0xB6C = 0.5f;
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
} else {
|
||||
int val = 0; // IDK what this would have been
|
||||
field_0xB6C = 1.5f + 0.1f * val;
|
||||
@@ -550,7 +550,7 @@ int dAcEsm_c::actorExecute() {
|
||||
break;
|
||||
default: {
|
||||
dAcObjBase_c *tgActor = mSph.GetTgActor();
|
||||
if (tgActor->profile_name == fProfile::OBJ_FIRE_PILLAR) {
|
||||
if (tgActor->mProfileName == fProfile::OBJ_FIRE_PILLAR) {
|
||||
mHealth = 0;
|
||||
fn_187_4540(2);
|
||||
} else {
|
||||
@@ -581,12 +581,13 @@ int dAcEsm_c::actorExecute() {
|
||||
|
||||
if (mHealth != 0 && field_0xBC8 == 0 && field_0xBA0 == 0 && field_0xB90 < 0) {
|
||||
// Check to make sure the chu is slow enough/or on the ground
|
||||
if ((!mStateMgr.isState(StateID_BirthJump) || mObjAcch.ChkGndHit() || velocity.y <= -6.f) && field_0xBB6 == 0) {
|
||||
if ((!mStateMgr.isState(StateID_BirthJump) || mObjAcch.ChkGndHit() || mVelocity.y <= -6.f) &&
|
||||
field_0xBB6 == 0) {
|
||||
// Check to make sure chu isnt in a "death"-like state.
|
||||
if (!(mStateMgr.isState(StateID_Absorption) || mStateMgr.isState(StateID_Dead) ||
|
||||
mStateMgr.isState(StateID_Fusion))) {
|
||||
// CHECK FOR FUSION - Another ESm
|
||||
if (mSph.ChkCoHit() && mSph.GetCoActor()->profile_name == fProfile::E_SM) {
|
||||
if (mSph.ChkCoHit() && mSph.GetCoActor()->mProfileName == fProfile::E_SM) {
|
||||
// The other chu to interact with
|
||||
dAcEsm_c *pOther = static_cast<dAcEsm_c *>(mSph.GetCoActor());
|
||||
|
||||
@@ -594,7 +595,7 @@ int dAcEsm_c::actorExecute() {
|
||||
if (!fn_187_4B50() && pOther->field_0xBC8 == 0 && pOther->mHealth != 0 &&
|
||||
pOther->field_0xBA0 == 0 && pOther->field_0xB90 < 0 && pOther->field_0xBB6 == 0) {
|
||||
if (!pOther->mStateMgr.isState(StateID_BirthJump) || pOther->mObjAcch.ChkGndHit() ||
|
||||
pOther->velocity.y <= -6.f) {
|
||||
pOther->mVelocity.y <= -6.f) {
|
||||
// Check for non-fusion/absorption status and if the other Chu is smaller than [this] chu
|
||||
if (!(pOther->mStateMgr.isState(StateID_Absorption) ||
|
||||
pOther->mStateMgr.isState(StateID_Fusion)) &&
|
||||
@@ -632,7 +633,7 @@ int dAcEsm_c::actorExecute() {
|
||||
dAcBomb_c *bomb = getBombWithinRadius(lookRadius);
|
||||
|
||||
if (bomb != nullptr && std::abs(bomb->getPosition().y - mHomePos1.y) < 0.7f * lookRadius) {
|
||||
if (bomb->GetLinkage().tryAttach(bomb, this, &mBombRef, dLinkage_c::CONNECTION_1, false)) {
|
||||
if (bomb->getLinkage().tryAttach(bomb, this, &mBombRef, dLinkage_c::CONNECTION_1, false)) {
|
||||
mTimer_0xBAE = 160;
|
||||
startSound(SE_ESm_BRING_IN);
|
||||
unsetActorProperty(AC_PROP_0x1);
|
||||
@@ -657,10 +658,10 @@ int dAcEsm_c::actorExecute() {
|
||||
|
||||
MTXMultVec(nodeMtx, center, mHomePos1);
|
||||
|
||||
mPosition.CopyTo(poscopy3);
|
||||
mPosition.CopyTo(poscopy2);
|
||||
poscopy2.y += 130.f * mScaleTarget.y;
|
||||
poscopy3.y += 260.f * mScaleTarget.y;
|
||||
mPosition.CopyTo(mPositionCopy3);
|
||||
mPosition.CopyTo(mPositionCopy2);
|
||||
mPositionCopy2.y += 130.f * mScaleTarget.y;
|
||||
mPositionCopy3.y += 260.f * mScaleTarget.y;
|
||||
|
||||
mSph.SetC(mHomePos1);
|
||||
if (mSph.ChkTgElectric()) {
|
||||
@@ -674,12 +675,12 @@ int dAcEsm_c::actorExecute() {
|
||||
mSph.SetR(radius);
|
||||
dCcS::GetInstance()->Set(&mSph);
|
||||
|
||||
f32 speedTarget = forwardSpeed;
|
||||
f32 speedTarget = mSpeed;
|
||||
speedTarget -= field_0xB80;
|
||||
if (speedTarget < 0.f) {
|
||||
speedTarget = 0.f;
|
||||
}
|
||||
sLib::addCalcScaledDiff(&forwardSpeed, speedTarget, 0.3f, 1.f);
|
||||
sLib::addCalcScaledDiff(&mSpeed, speedTarget, 0.3f, 1.f);
|
||||
sLib::addCalcScaled(&field_0xB80, 0.3f, 1.f);
|
||||
|
||||
if (field_0xBCB == 0) {
|
||||
@@ -768,10 +769,10 @@ void dAcEsm_c::initializeState_Walk() {
|
||||
mRotation.x = 0;
|
||||
|
||||
Set_0xBBC(2);
|
||||
field_0xBAA = angle.y;
|
||||
field_0xBAA = mAngle.y;
|
||||
field_0xBA8 = 0;
|
||||
field_0xBCB = 0;
|
||||
forwardAccel = -3.f;
|
||||
mAcceleration = -3.f;
|
||||
}
|
||||
void dAcEsm_c::executeState_Walk() {
|
||||
field_0xBA6 += (s16)(1000.f + field_0xB70 / mScaleTarget.x);
|
||||
@@ -797,7 +798,7 @@ void dAcEsm_c::initializeState_BirthJump() {
|
||||
field_0xB54 = 0.1f;
|
||||
field_0xB68 = 0.f;
|
||||
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
field_0xBB8 = 3;
|
||||
field_0xB90 = -1;
|
||||
|
||||
@@ -855,8 +856,8 @@ void dAcEsm_c::fn_187_3F60() {
|
||||
|
||||
bool dAcEsm_c::fn_187_4090() {
|
||||
mVec3_c pos(mPosition.x, mPosition.y + 20.f, mPosition.z);
|
||||
if (velocity.y <= 0.f && dBgS_ObjGndChk::CheckPos(pos) && dBgS_ObjGndChk::GetGroundHeight() + 5.f > mPosition.y) {
|
||||
forwardSpeed = 0.f;
|
||||
if (mVelocity.y <= 0.f && dBgS_ObjGndChk::CheckPos(pos) && dBgS_ObjGndChk::GetGroundHeight() + 5.f > mPosition.y) {
|
||||
mSpeed = 0.f;
|
||||
field_0xB6C = 1.5f;
|
||||
if (field_0xB84) {
|
||||
field_0xB6C = field_0xB84 * 0.1f + 0.7f;
|
||||
@@ -903,7 +904,7 @@ bool dAcEsm_c::fn_187_42C0() {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mSph.ChkAtHit() && mSph.GetAtActor()->profile_name == fProfile::PLAYER) {
|
||||
if (mSph.ChkAtHit() && mSph.GetAtActor()->mProfileName == fProfile::PLAYER) {
|
||||
if (fn_187_4B50()) {
|
||||
return true;
|
||||
}
|
||||
@@ -942,7 +943,7 @@ void dAcEsm_c::fn_187_44C0() {
|
||||
|
||||
void dAcEsm_c::fn_187_4540(int param0) {
|
||||
const dAcPy_c *player = dAcPy_c::GetLink();
|
||||
mAng3_c rot = GetAngle();
|
||||
mAng3_c rot = getAngle();
|
||||
|
||||
fn_187_44C0();
|
||||
if (mStateMgr.isState(StateID_Dead)) {
|
||||
@@ -1024,24 +1025,24 @@ void dAcEsm_c::fn_187_4540(int param0) {
|
||||
rot.y = fn_187_51F0(true);
|
||||
const f32 y = sSmDataArr[field_0xB98].field_0x04.y;
|
||||
if (y != v) {
|
||||
pChild->velocity.y = y;
|
||||
pChild->mVelocity.y = y;
|
||||
|
||||
pChild->velocity.y *= mScaleTarget.y;
|
||||
pChild->mVelocity.y *= mScaleTarget.y;
|
||||
if (field_0xB98 != 2) {
|
||||
if (pChild->velocity.y < lower) {
|
||||
pChild->velocity.y = lower;
|
||||
if (pChild->mVelocity.y < lower) {
|
||||
pChild->mVelocity.y = lower;
|
||||
}
|
||||
} else {
|
||||
if (pChild->velocity.y < upper) {
|
||||
pChild->velocity.y = upper;
|
||||
if (pChild->mVelocity.y < upper) {
|
||||
pChild->mVelocity.y = upper;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pChild->field_0xB84 = pChild->velocity.y;
|
||||
pChild->forwardSpeed = mScaleTarget.x * sSmDataArr[field_0xB98].field_0x04.x;
|
||||
if (pChild->forwardSpeed != v && pChild->forwardSpeed < lowest) {
|
||||
pChild->forwardSpeed = lowest;
|
||||
pChild->field_0xB84 = pChild->mVelocity.y;
|
||||
pChild->mSpeed = mScaleTarget.x * sSmDataArr[field_0xB98].field_0x04.x;
|
||||
if (pChild->mSpeed != v && pChild->mSpeed < lowest) {
|
||||
pChild->mSpeed = lowest;
|
||||
}
|
||||
pChild->field_0xBB8 = bb8;
|
||||
}
|
||||
@@ -1049,7 +1050,7 @@ void dAcEsm_c::fn_187_4540(int param0) {
|
||||
|
||||
mSph.OnCoSet();
|
||||
if (field_0xB98 != 2) {
|
||||
angle.y = rot.y;
|
||||
mAngle.y = rot.y;
|
||||
}
|
||||
if (field_0xB98 != 0) {
|
||||
field_0xBCE = 1;
|
||||
@@ -1059,23 +1060,23 @@ void dAcEsm_c::fn_187_4540(int param0) {
|
||||
fn_187_6C20(1);
|
||||
if (field_0xB98 != 0) {
|
||||
if (sSmDataArr[field_0xB98].field_0x10.y) {
|
||||
velocity.y = sSmDataArr[field_0xB98].field_0x10.y;
|
||||
velocity.y *= mScaleTarget.y;
|
||||
mVelocity.y = sSmDataArr[field_0xB98].field_0x10.y;
|
||||
mVelocity.y *= mScaleTarget.y;
|
||||
if (field_0xB98 != 2) {
|
||||
if (velocity.y < 20.f) {
|
||||
velocity.y = 20.f;
|
||||
if (mVelocity.y < 20.f) {
|
||||
mVelocity.y = 20.f;
|
||||
}
|
||||
} else {
|
||||
if (velocity.y < 30.f) {
|
||||
velocity.y = 30.f;
|
||||
if (mVelocity.y < 30.f) {
|
||||
mVelocity.y = 30.f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
field_0xB84 = velocity.y;
|
||||
forwardSpeed = sSmDataArr[field_0xB98].field_0x10.y * mScaleTarget.x;
|
||||
if (forwardSpeed && forwardSpeed < 10.f) {
|
||||
forwardSpeed = 10.f;
|
||||
field_0xB84 = mVelocity.y;
|
||||
mSpeed = sSmDataArr[field_0xB98].field_0x10.y * mScaleTarget.x;
|
||||
if (mSpeed && mSpeed < 10.f) {
|
||||
mSpeed = 10.f;
|
||||
}
|
||||
field_0xBB8 = 0;
|
||||
if (field_0xB98 == 2) {
|
||||
@@ -1126,9 +1127,9 @@ void dAcEsm_c::fn_187_4CC0() {
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkWallHit(nullptr)) {
|
||||
sLib::addCalcAngle(angle.y.ref(), mAcchCir.GetWallAngleY(), 4, 0x200);
|
||||
sLib::addCalcAngle(mAngle.y.ref(), mAcchCir.GetWallAngleY(), 4, 0x200);
|
||||
}
|
||||
sLib::addCalcAngle(mRotation.y.ref(), angle.y, 2, 0x800);
|
||||
sLib::addCalcAngle(mRotation.y.ref(), mAngle.y, 2, 0x800);
|
||||
sLib::addCalcAngle(mRotUnk.x.ref(), mTargetRotX, 4, 0x800);
|
||||
sLib::addCalcAngle(mRotUnk.z.ref(), mTargetRotZ, 4, 0x800);
|
||||
|
||||
@@ -1235,7 +1236,7 @@ void dAcEsm_c::fn_187_5940() {
|
||||
void dAcEsm_c::updateBoundingBox() {
|
||||
f32 min = -200.f / mScale.x;
|
||||
f32 max = 200.f / mScale.x;
|
||||
boundingBox.Set(mVec3_c(min, min, min), mVec3_c(max, 250.f / mScale.x, max));
|
||||
mBoundingBox.Set(mVec3_c(min, min, min), mVec3_c(max, 250.f / mScale.x, max));
|
||||
}
|
||||
|
||||
void dAcEsm_c::fn_187_61B0(u8 param0) {
|
||||
@@ -1436,8 +1437,8 @@ void dAcEsm_c::fn_187_6C20(bool param0) {
|
||||
|
||||
if (!param0) {
|
||||
dCamera_c *cam = dScGame_c::getCamera(0);
|
||||
angle.y = cLib::targetAngleY(cam->getPositionMaybe(), cam->getField_0x78());
|
||||
angle.addY(cM::rndFX(16384.f));
|
||||
mAngle.y = cLib::targetAngleY(cam->getPositionMaybe(), cam->getField_0x78());
|
||||
mAngle.addY(cM::rndFX(16384.f));
|
||||
}
|
||||
|
||||
field_0xBCE = 1;
|
||||
|
||||
@@ -18,10 +18,10 @@ int dAcNpcRivalLOD_c::create() {
|
||||
return FAILED;
|
||||
}
|
||||
0.0f; // float order, cool
|
||||
forwardAccel = -1.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -1.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
setState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-110.0f, -30.0f, -130.0f), mVec3_c(130.0f, 190.0f, 110.0f));
|
||||
mBoundingBox.Set(mVec3_c(-110.0f, -30.0f, -130.0f), mVec3_c(130.0f, 190.0f, 110.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ int dAcNpcSltk_c::actorCreate() {
|
||||
|
||||
field_0x76C = 0;
|
||||
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -37,8 +37,8 @@ bool dAcOF302Light_c::createHeap() {
|
||||
int dAcOF302Light_c::actorCreate() {
|
||||
field_0x440 = getFromParams(0, 0xFF);
|
||||
CREATE_ALLOCATOR(dAcOF302Light_c);
|
||||
forwardAccel = 0.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = 0.f;
|
||||
mMaxSpeed = -40.f;
|
||||
updateMatrix();
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
if (field_0x440 < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, field_0x440)) {
|
||||
@@ -46,7 +46,7 @@ int dAcOF302Light_c::actorCreate() {
|
||||
} else {
|
||||
mStateMgr.changeState(StateID_SwitchOn);
|
||||
}
|
||||
boundingBox.Set(mVec3_c(-660.f, -40.f, -660.f), mVec3_c(660.f, 0.f, 660.f));
|
||||
mBoundingBox.Set(mVec3_c(-660.f, -40.f, -660.f), mVec3_c(660.f, 0.f, 660.f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ int dAcOF400GateLeaf_c::create() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ int dAcOF400GateSeal_c::actorPostCreate() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ int dAcOF400GateSeal_c::actorExecute() {
|
||||
if (mAnmClr.isStop(0)) {
|
||||
setObjectProperty(0x200);
|
||||
} else {
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
}
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ int dAcOAmber_c::actorPostCreate() {
|
||||
}
|
||||
}
|
||||
mMdl.getBounds(&mMin, &mMax);
|
||||
boundingBox.Set(mMin, mMax);
|
||||
mBoundingBox.Set(mMin, mMax);
|
||||
mShadowRot.v = (mMin + mMax) * 0.5f;
|
||||
mShadowRot.w = ((mMax - mMin) * 0.5f).mag();
|
||||
updateMatrix();
|
||||
|
||||
@@ -50,7 +50,7 @@ int dAcOappearBridge_c::create() {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
|
||||
boundingBox.Set(mVec3_c(-3000.0f, -200.0f, -600.0f), mVec3_c(50.0f, 800.0f, 600.0f));
|
||||
mBoundingBox.Set(mVec3_c(-3000.0f, -200.0f, -600.0f), mVec3_c(50.0f, 800.0f, 600.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ int dAcObambooIsland_c::create() {
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
mModels[0].setPriorityDraw(0x1C, 9);
|
||||
mModels[1].setPriorityDraw(0x22, 9);
|
||||
boundingBox.Set(mVec3_c(-2400.0f, -1600.0f, -2300.0f), mVec3_c(2400.0f, 3900.0f, 2400.0f));
|
||||
mBoundingBox.Set(mVec3_c(-2400.0f, -1600.0f, -2300.0f), mVec3_c(2400.0f, 3900.0f, 2400.0f));
|
||||
mCullingDistance = 500000.0f;
|
||||
mCollision.SetRideCallback(rideCallback);
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -27,7 +27,7 @@ bool dAcObjBirdSp_c::createHeap() {
|
||||
int dAcObjBirdSp_c::create() {
|
||||
CREATE_ALLOCATOR(dAcObjBirdSp_c);
|
||||
|
||||
boundingBox.Set(mVec3_c(-2000, -2000, -2000), mVec3_c(2000, 2000, 2000));
|
||||
mBoundingBox.Set(mVec3_c(-2000, -2000, -2000), mVec3_c(2000, 2000, 2000));
|
||||
mCollider.Set(sCcSrc);
|
||||
mCollider.SetStts(mStts);
|
||||
mCollider.SetR(mScale.x * 1000.0f);
|
||||
@@ -37,8 +37,8 @@ int dAcObjBirdSp_c::create() {
|
||||
int dAcObjBirdSp_c::actorExecute() {
|
||||
/* if its colliding with Bird or Player */
|
||||
if (mCollider.ChkCoHit() && mCollider.GetCoActor() != nullptr &&
|
||||
(mCollider.GetCoActor()->profile_name == fProfile::BIRD ||
|
||||
mCollider.GetCoActor()->profile_name == fProfile::PLAYER)) {
|
||||
(mCollider.GetCoActor()->mProfileName == fProfile::BIRD ||
|
||||
mCollider.GetCoActor()->mProfileName == fProfile::PLAYER)) {
|
||||
mVec3_c posChange(0, -0.2, 1.0);
|
||||
mMtx_c matrix;
|
||||
matrix.ZXYrotS(mRotation);
|
||||
|
||||
@@ -29,7 +29,7 @@ int dAcOBirdStatue_c::create() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ int dAcOblade_c::create() {
|
||||
mMdl.setAnm("StageF000Blade", m3d::PLAY_MODE_4);
|
||||
updateMatrix();
|
||||
mMdl.getModel().setLocalMtx(mWorldMtx);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ int dAcOBlockUnderground::actorCreate() {
|
||||
mBgW.Move();
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -43,9 +43,9 @@ int dAcObstonec::create() {
|
||||
mBg.SetUnkBase(1);
|
||||
}
|
||||
|
||||
forwardAccel = -1.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
boundingBox.Set(mVec3_c(-350.0f, -60.0f, -240.0f), mVec3_c(350.0f, 600.0f, 240.0f));
|
||||
mAcceleration = -1.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
mBoundingBox.Set(mVec3_c(-350.0f, -60.0f, -240.0f), mVec3_c(350.0f, 600.0f, 240.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -101,8 +101,8 @@ int dAcOChair_c::create() {
|
||||
mObjAcch.CrrPos(*dBgS::GetInstance());
|
||||
}
|
||||
|
||||
forwardAccel = -2.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = -2.f;
|
||||
mMaxSpeed = -40.f;
|
||||
|
||||
field_0xB1B = 1;
|
||||
field_0xB1A = 1;
|
||||
@@ -110,7 +110,7 @@ int dAcOChair_c::create() {
|
||||
mChairRot = mRotation.y;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-60.f, -0.f, -60.f), mVec3_c(60.f, 160.f, 60.f));
|
||||
mBoundingBox.Set(mVec3_c(-60.f, -0.f, -60.f), mVec3_c(60.f, 160.f, 60.f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -207,7 +207,7 @@ void dAcOChair_c::executeState_Wait() {
|
||||
return;
|
||||
}
|
||||
if (field_0xB1C && mChairType == CHAIR_E) {
|
||||
const f32 mag = (mChairPos - poscopy2).squareMagXZ();
|
||||
const f32 mag = (mChairPos - mPositionCopy2).squareMagXZ();
|
||||
if (mag < 10000.f) {
|
||||
return;
|
||||
}
|
||||
@@ -244,11 +244,11 @@ dAcOChair_c::ChairType dAcOChair_c::getChairType(u8 ¶m) {
|
||||
void dAcOChair_c::updateChairPos() {
|
||||
if (mChairType != CHAIR_E) {
|
||||
if (isBench()) {
|
||||
poscopy2 = mPosition;
|
||||
mPositionCopy2 = mPosition;
|
||||
} else {
|
||||
mMdl.getNodeWorldMtxMultVecZero(mSeatNodeID, poscopy2);
|
||||
mMdl.getNodeWorldMtxMultVecZero(mSeatNodeID, mPositionCopy2);
|
||||
}
|
||||
poscopy3 = poscopy2;
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
} else {
|
||||
field_0xB1A = true;
|
||||
if (!checkObjectProperty(0x8000)) {
|
||||
@@ -256,13 +256,13 @@ void dAcOChair_c::updateChairPos() {
|
||||
work.rotY(getRelativeYRotationToPlayer());
|
||||
work.z = 0.f;
|
||||
work.rotY(mRotation.y);
|
||||
poscopy2 = mPosition;
|
||||
mPositionCopy2 = mPosition;
|
||||
if (work.squareMagXZ() < 10000.f) {
|
||||
poscopy2 += work;
|
||||
mPositionCopy2 += work;
|
||||
} else {
|
||||
field_0xB1A = false;
|
||||
}
|
||||
}
|
||||
poscopy3 = poscopy2;
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,18 +116,18 @@ int dAcOChest_c::create() {
|
||||
dBgS::GetInstance()->Regist(&mBgW, this);
|
||||
dBgS::GetInstance()->RegistBg(&mBgW, this);
|
||||
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = 0.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = 0.0f;
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-200.0f, -0.0f, -100.0f), mVec3_c(200.0f, 500.0f, 100.0f));
|
||||
mBoundingBox.Set(mVec3_c(-200.0f, -0.0f, -100.0f), mVec3_c(200.0f, 500.0f, 100.0f));
|
||||
|
||||
mAnmMdl.setAnm(getOpenOrClose(0), m3d::PLAY_MODE_4);
|
||||
mAnmMdl.setRate(0.0f);
|
||||
|
||||
poscopy2.y = mPosition.y + 150.0f;
|
||||
poscopy3 = poscopy2;
|
||||
mPositionCopy2.y = mPosition.y + 150.0f;
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
if ((s32)getFromParams(0x10, 0xFF) != 0xFF) {
|
||||
mInsideMdl.setLocalMtx(mWorldMtx);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ int dAcOcloudDive_c::create() {
|
||||
}
|
||||
updateMatrix();
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@ int dAcODecoB_c::create() {
|
||||
if (!initAllocatorWork1Heap(0x1000, "dAcODecoB_c::m_allocator", 0x20)) {
|
||||
return FAILED;
|
||||
}
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = 0.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = 0.0f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-350.0f, 100.0f, -100.0f), mVec3_c(350.0f, -300.0f, 100.0f));
|
||||
mBoundingBox.Set(mVec3_c(-350.0f, 100.0f, -100.0f), mVec3_c(350.0f, -300.0f, 100.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ int dAcOdesertDebris_c::create() {
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 50000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ int dAcOdistantShip_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOdistantShip_c);
|
||||
updateMatrix();
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
}
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -129,9 +129,9 @@ int dAcODungeonShip_c::create() {
|
||||
mStts.SetRank(2);
|
||||
mCc.Set(sCcSrc);
|
||||
mCc.SetStts(mStts);
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = 0.0f;
|
||||
boundingBox.Set(mVec3_c(-6000.0f, -500.0f, -2000.0f), mVec3_c(5000.0f, 4000.0f, 2000.0f));
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = 0.0f;
|
||||
mBoundingBox.Set(mVec3_c(-6000.0f, -500.0f, -2000.0f), mVec3_c(5000.0f, 4000.0f, 2000.0f));
|
||||
if (SceneflagManager::sInstance->checkBoolFlag(mRoomID, (mParams >> 0x10) & 0xFF)) {
|
||||
dBgS::GetInstance()->RegistBg(&mBg, this);
|
||||
mStateMgr.changeState(StateID_End);
|
||||
@@ -309,7 +309,7 @@ void dAcODungeonShip_c::executeState_Transparency() {
|
||||
field_0x858 *= -1;
|
||||
}
|
||||
}
|
||||
sLib::addCalc(&forwardSpeed, field_0x858, 0.02f, 1.0f, 0.1f);
|
||||
sLib::addCalc(&mSpeed, field_0x858, 0.02f, 1.0f, 0.1f);
|
||||
fn_485_1720();
|
||||
}
|
||||
void dAcODungeonShip_c::finalizeState_Transparency() {}
|
||||
@@ -440,7 +440,7 @@ static u32 rot_7fff = 0x7FFF;
|
||||
static u32 rot_4000 = 0x4000;
|
||||
|
||||
void dAcODungeonShip_c::fn_485_1720() {
|
||||
mPath.setSpeed(forwardSpeed);
|
||||
mPath.setSpeed(mSpeed);
|
||||
mPath.execute();
|
||||
// TODO
|
||||
mPosition = mPath.getPosition();
|
||||
@@ -452,7 +452,7 @@ void dAcODungeonShip_c::fn_485_1720() {
|
||||
mRotation.y += rot_7fff;
|
||||
}
|
||||
mRotation.y += rot_4000;
|
||||
angle.y = mRotation.y;
|
||||
mAngle.y = mRotation.y;
|
||||
|
||||
int factor = 0x12C;
|
||||
f32 tmp2 = nw4r::math::SinIdx((field_0x850 * 800));
|
||||
@@ -478,7 +478,7 @@ u32 dAcODungeonShip_c::fn_485_1960() {
|
||||
return 0;
|
||||
}
|
||||
mVec3_c v = mVec3_c::Ez;
|
||||
v.rotY(angle.y + mAng(-0x4000));
|
||||
v.rotY(mAngle.y + mAng(-0x4000));
|
||||
mVec3_c dist = link->mPosition - mPosition;
|
||||
dist.y = 0.0f;
|
||||
dist.normalizeRS();
|
||||
@@ -510,7 +510,7 @@ void dAcODungeonShip_c::fn_485_1DF0() {
|
||||
mVec3_c dist = mPosition - link->mPosition;
|
||||
fn_485_1960();
|
||||
field_0x858 = 30.0f;
|
||||
sLib::addCalc(&forwardSpeed, 30.0f, 0.02f, 1.0f, 0.1f);
|
||||
sLib::addCalc(&mSpeed, 30.0f, 0.02f, 1.0f, 0.1f);
|
||||
fn_485_1720();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ int dAcOfenceBoko_c::create() {
|
||||
mCollision.mRoomId = dStage_c::GetInstance()->getCurrRoomId();
|
||||
mRoomID = mCollision.mRoomId;
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f));
|
||||
mBoundingBox.Set(mVec3_c(-210.0f, -10.0f, -20.0f), mVec3_c(210.0f, 340.0f, 20.0f));
|
||||
mCullingDistance = 50000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ int dAcOfenceBoko2_c::create() {
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
dBgS::GetInstance()->RegistBg(&mCollision, this);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-160.0f, -40.0f, -70.0f), mVec3_c(180.0f, 300.0f, 60.0f));
|
||||
mBoundingBox.Set(mVec3_c(-160.0f, -40.0f, -70.0f), mVec3_c(180.0f, 300.0f, 60.0f));
|
||||
mCullingDistance = 50000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ int dAcOfenceKonsai_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOfenceKonsai_c);
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-100.0f, -10.0f, -30.0f), mVec3_c(100.0f, 270.0f, 40.0f));
|
||||
mBoundingBox.Set(mVec3_c(-100.0f, -10.0f, -30.0f), mVec3_c(100.0f, 270.0f, 40.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ int dAcOFlyingClawshotTarget_c::actorCreate() {
|
||||
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ int dAcOFruitGutsLeaf_c::actorCreate() {
|
||||
mMdl.setPriorityDraw(0x7F, 0x7F);
|
||||
}
|
||||
|
||||
boundingBox.Set(bbMin, bbMax);
|
||||
mBoundingBox.Set(bbMin, bbMax);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -33,13 +33,13 @@ int dAcOgirahimFoot_c::create() {
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
poscopy2.x = 13275.0f;
|
||||
poscopy2.y = 2370.0f;
|
||||
poscopy2.z = -11780.0f;
|
||||
mPositionCopy2.x = 13275.0f;
|
||||
mPositionCopy2.y = 2370.0f;
|
||||
mPositionCopy2.z = -11780.0f;
|
||||
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ int dAcOhole_c::create() {
|
||||
u8 params2 = getFromParams(2, 0xF);
|
||||
field_0x799 = params2 != (s8)0xF ? params2 : 0xFF;
|
||||
|
||||
boundingBox.Set(mVec3_c(-200.0f, -200.0f, -200.0f), mVec3_c(200.0f, 200.0f, 200.0f));
|
||||
mBoundingBox.Set(mVec3_c(-200.0f, -200.0f, -200.0f), mVec3_c(200.0f, 200.0f, 200.0f));
|
||||
mObjAcch.Set(this, 1, &mAcchCir);
|
||||
mAcchCir.SetWall(100.0f, 100.0f);
|
||||
mObjAcch.CrrPos(*dBgS::GetInstance());
|
||||
|
||||
@@ -25,7 +25,7 @@ int dAcOimpaDoor_c::create() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-250.0f, 0.0f, -30.0f), mVec3_c(250.0f, 940.0f, 30.0f));
|
||||
mBoundingBox.Set(mVec3_c(-250.0f, 0.0f, -30.0f), mVec3_c(250.0f, 940.0f, 30.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ int dAcOironStage_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOironStage_c);
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-460.0f, -210.0f, -260.0f), mVec3_c(460.0f, 210.0f, 260.0f));
|
||||
mBoundingBox.Set(mVec3_c(-460.0f, -210.0f, -260.0f), mVec3_c(460.0f, 210.0f, 260.0f));
|
||||
mCullingDistance = 15000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ int dAcOislandLOD_c::create() {
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 500000.0;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ int dAcOislandNusi_c::create() {
|
||||
|
||||
mMdls[0].setPriorityDraw(0x1C, 9);
|
||||
mMdls[1].setPriorityDraw(0x22, 9);
|
||||
boundingBox.Set(mVec3_c(-4000.0f, -1200.0f, -2700.0f), mVec3_c(4800.0f, 3400.0f, 1700.0f));
|
||||
mBoundingBox.Set(mVec3_c(-4000.0f, -1200.0f, -2700.0f), mVec3_c(4800.0f, 3400.0f, 1700.0f));
|
||||
|
||||
mCullingDistance = 500000.0f;
|
||||
|
||||
|
||||
@@ -721,7 +721,7 @@ void dAcOivyRope_c::fn_256_C980(f32 f0, f32 f1) {
|
||||
UNKTYPE dAcOivyRope_c::fn_256_C9B0(UNKTYPE) {}
|
||||
|
||||
void dAcOivyRope_c::fn_256_CD40() {
|
||||
mPosition = poscopy3 = poscopy2 = fn_256_D730(mSegmentCount - 1);
|
||||
mPosition = mPositionCopy3 = mPositionCopy2 = fn_256_D730(mSegmentCount - 1);
|
||||
|
||||
mCps1.Set(sCpsSrc);
|
||||
mCps1.SetStts(mStts);
|
||||
|
||||
@@ -34,12 +34,12 @@ bool dAcOJunkRep_c::createHeap() {
|
||||
int dAcOJunkRep_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOJunkRep_c);
|
||||
|
||||
forwardAccel = -1.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -1.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-30.0f, -0.0f, -20.0f), mVec3_c(30.0f, 120.0f, 20.0f));
|
||||
mBoundingBox.Set(mVec3_c(-30.0f, -0.0f, -20.0f), mVec3_c(30.0f, 120.0f, 20.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ int dAcOlavaF200_c::create() {
|
||||
|
||||
mModels[0].setPriorityDraw(0x1C, 9);
|
||||
mModels[1].setPriorityDraw(0x22, 9);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ int dAcOmegamiIsland_c::create() {
|
||||
mMdls[0].setPriorityDraw(0x1C, 9);
|
||||
mMdls[1].setPriorityDraw(0x22, 9);
|
||||
|
||||
boundingBox.Set(mVec3_c(-5000.0f, -5000.0f, -23000.0f), mVec3_c(5000.0f, 10000.0f, -9000.0f));
|
||||
mBoundingBox.Set(mVec3_c(-5000.0f, -5000.0f, -23000.0f), mVec3_c(5000.0f, 10000.0f, -9000.0f));
|
||||
mCullingDistance = 500000.0f;
|
||||
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -32,7 +32,7 @@ int dAcOmoleCover_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOmoleCover_c);
|
||||
dBgS::GetInstance()->Regist(&mBgW, this);
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-1900.0f, 1100.0f, -5500.0f), mVec3_c(100.0f, 1700.0f, -1800.0f));
|
||||
mBoundingBox.Set(mVec3_c(-1900.0f, 1100.0f, -5500.0f), mVec3_c(100.0f, 1700.0f, -1800.0f));
|
||||
mCullingDistance = FLOAT_MAX;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ int dAcOmoleSoil_c::create() {
|
||||
dAcBase_c::mScale.set(sHalfScale, sHalfScale, sHalfScale);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-100.0f, -0.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
mBoundingBox.Set(mVec3_c(-100.0f, -0.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,19 +41,19 @@ bool dAcOOctGrass_c::createHeap() {
|
||||
|
||||
int dAcOOctGrass_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOOctGrass_c);
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
if ((mParams & 0xF) != 0) {
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
}
|
||||
updateMatrix();
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
spawnOcGrsL();
|
||||
poscopy2 = mPosition;
|
||||
poscopy3 = mPosition;
|
||||
poscopy3.y += 20.0f;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy3 = mPosition;
|
||||
mPositionCopy3.y += 20.0f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 100.0f, 50.0f));
|
||||
mBoundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 100.0f, 50.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ bool dAcOPoolCock_c::createHeap() {
|
||||
int dAcOPoolCock_c::actorCreate() {
|
||||
CREATE_ALLOCATOR(dAcOPoolCock_c);
|
||||
|
||||
forwardAccel = -0.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -0.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
mOpenSceneflag = mParams & 0xFF;
|
||||
mOpenDirection = mVec3_c::Ez;
|
||||
mOpenDirection.rotY(mRotation.y);
|
||||
@@ -34,7 +34,7 @@ int dAcOPoolCock_c::actorCreate() {
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-300.0f, -100.0f, -300.0f), mVec3_c(300.0f, 100.0f, 300.0f));
|
||||
mBoundingBox.Set(mVec3_c(-300.0f, -100.0f, -300.0f), mVec3_c(300.0f, 100.0f, 300.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ int dAcOPoolCock_c::doDelete() {
|
||||
int dAcOPoolCock_c::actorExecute() {
|
||||
mStateMgr.executeState();
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.mCcMove;
|
||||
updateMatrix();
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ int dAcOpumpkinBar_c::create() {
|
||||
// This also works if a separate variable is used but I
|
||||
// think it's more likely that mCullingDistance got set twice.
|
||||
mCullingDistance = 100000.0f;
|
||||
boundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f));
|
||||
mBoundingBox.Set(mVec3_c(-2790.0f, -1450.0f, -8270.0f), mVec3_c(2880.0f, 2120.0f, 1370.0f));
|
||||
mCullingDistance = 500000.0f;
|
||||
mBarCollision.SetRideCallback(barCollisionRideCallback);
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -19,11 +19,11 @@ int dAcOPumpkinLeaf_c::create() {
|
||||
return FAILED;
|
||||
}
|
||||
|
||||
forwardAccel = -1.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -1.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
updateMatrix();
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 50.0f, 50.0f));
|
||||
mBoundingBox.Set(mVec3_c(-50.0f, -10.0f, -50.0f), mVec3_c(50.0f, 50.0f, 50.0f));
|
||||
dAcObjBase_c::create(
|
||||
"PmpknBd", getRoomId(), 0, &mPosition, &mRotation, &mScale, getParams2_ignoreLower(), -1, mViewClipIdx
|
||||
);
|
||||
|
||||
@@ -43,7 +43,7 @@ int dAcOpuzzleIsland_c::create() {
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 500000.0f;
|
||||
mBgW.SetRideCallback(rideCallback);
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -46,7 +46,7 @@ int dAcORailPost::create() {
|
||||
CREATE_ALLOCATOR(dAcORailPost);
|
||||
|
||||
mMdl.getBounds(&boundsMin, &boundsMax);
|
||||
boundingBox.Set(boundsMin, boundsMax);
|
||||
mBoundingBox.Set(boundsMin, boundsMax);
|
||||
mCullingDistance = 25000.0f;
|
||||
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -21,12 +21,12 @@ int dAcOring_c::create() {
|
||||
|
||||
field_0x388 = getArgFromParams();
|
||||
|
||||
boundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
mBoundingBox.Set(mVec3_c(-100.0f, -100.0f, -100.0f), mVec3_c(100.0f, 100.0f, 100.0f));
|
||||
updateMatrix();
|
||||
mModel.setScale(mScale);
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
forwardAccel = -5.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -5.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
field_0x38C = dAcPy_c::LINK->mPosition.y;
|
||||
mStateMgr.changeState(StateID_Move);
|
||||
return SUCCEEDED;
|
||||
@@ -39,7 +39,7 @@ int dAcOring_c::doDelete() {
|
||||
int dAcOring_c::actorExecute() {
|
||||
mStateMgr.executeState();
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.mCcMove;
|
||||
updateMatrix();
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
@@ -54,7 +54,7 @@ int dAcOring_c::draw() {
|
||||
void dAcOring_c::initializeState_Move() {}
|
||||
|
||||
void dAcOring_c::executeState_Move() {
|
||||
if (GetLinkage().checkConnection(dLinkage_c::CONNECTION_7)) {
|
||||
if (getLinkage().checkConnection(dLinkage_c::CONNECTION_7)) {
|
||||
return;
|
||||
}
|
||||
mRotation.addX(0x1000);
|
||||
|
||||
@@ -26,7 +26,7 @@ int dAcOropeBase_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOropeBase_c);
|
||||
updateMatrix();
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
boundingBox.Set(mVec3_c(-525.0f, -0.0f, -500.0f), mVec3_c(-325.0f, 700.0f, -300.0f));
|
||||
mBoundingBox.Set(mVec3_c(-525.0f, -0.0f, -500.0f), mVec3_c(-325.0f, 700.0f, -300.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@ int dAcOruinedSave_c::create() {
|
||||
CREATE_ALLOCATOR(dAcOruinedSave_c);
|
||||
updateMatrix();
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
poscopy2 = mPosition;
|
||||
poscopy2.y += 300.0f;
|
||||
poscopy3 = poscopy2;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy2.y += 300.0f;
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
field_0x40C = 0;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
return SUCCEEDED;
|
||||
@@ -77,8 +77,8 @@ void dAcOruinedSave_c::initializeState_Vanish() {
|
||||
void dAcOruinedSave_c::executeState_Vanish() {
|
||||
field_0x40C++;
|
||||
if (((u16)field_0x40C & 0xF) == 3) {
|
||||
poscopy3.z = poscopy2.z + cM::rndFX(50.0f);
|
||||
poscopy3.y = poscopy2.y - cM::rndFX(20.0f);
|
||||
mPositionCopy3.z = mPositionCopy2.z + cM::rndFX(50.0f);
|
||||
mPositionCopy3.y = mPositionCopy2.y - cM::rndFX(20.0f);
|
||||
}
|
||||
mAnmMatClr.play();
|
||||
if (field_0x408 == mAnmMatClr.getFrame(0)) {
|
||||
|
||||
@@ -86,8 +86,8 @@ int dAcOSeatSword_c::create() {
|
||||
mPedestalMdl_s.setPriorityDraw(0x22, 0x9);
|
||||
}
|
||||
|
||||
forwardAccel = 0.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = 0.f;
|
||||
mMaxSpeed = -40.f;
|
||||
|
||||
if (mSubtype == 1) {
|
||||
mField_0x7E8 = l_inGroundRot;
|
||||
@@ -102,7 +102,7 @@ int dAcOSeatSword_c::create() {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
|
||||
boundingBox.Set(mVec3_c(-75.f, -10.f, -75.f), mVec3_c(75.f, 200.f, 75.f));
|
||||
mBoundingBox.Set(mVec3_c(-75.f, -10.f, -75.f), mVec3_c(75.f, 200.f, 75.f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ int dAcOshrineAfter_c::create() {
|
||||
updateMatrix();
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f));
|
||||
mBoundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(5000.0f, 15000.0f, 14000.0f));
|
||||
mCullingDistance = 50000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ int dAcOshrineBefInside_c::create() {
|
||||
dBgS::GetInstance()->Regist(&mCollision, this);
|
||||
mModel[0].setPriorityDraw(0x1C, 0x9);
|
||||
mModel[1].setPriorityDraw(0x22, 0x9);
|
||||
boundingBox.Set(mVec3_c(-2000.0f, 7400.0f, 7200.0f), mVec3_c(4400.0f, 10000.0f, 15800.0f));
|
||||
mBoundingBox.Set(mVec3_c(-2000.0f, 7400.0f, 7200.0f), mVec3_c(4400.0f, 10000.0f, 15800.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ int dAcOshrineBefore_c::create() {
|
||||
updateMatrix();
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
boundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f));
|
||||
mBoundingBox.Set(mVec3_c(-4000.0f, 7000.0f, 5000.0f), mVec3_c(4000.0f, 13000.0f, 14000.0f));
|
||||
mCullingDistance = 50000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ int dAcOsmoke_c::create() {
|
||||
mModel.setLocalMtx(mWorldMtx);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mModel.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ int dAcOspike_c::create() {
|
||||
|
||||
mCollision.cM3dGUnk::Set(tmp2, tmp3);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f));
|
||||
mBoundingBox.Set(mVec3_c(-10.0f, -250.0f, -480.0f), mVec3_c(80.0f, 260.0f, 490.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ int dAcOstageCover_c::create() {
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mModel.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -0.0f, -0.0f), mVec3_c(0.0f, 0.0f, 0.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ int dAcOstreamLava_c::create() {
|
||||
mModel.setPriorityDraw(0x1C, 0x9);
|
||||
mVec3_c min, max;
|
||||
mModel.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 50000.0f;
|
||||
|
||||
int roomId_tmp = mRoomID;
|
||||
@@ -112,7 +112,7 @@ int dAcOstreamLava_c::actorExecute() {
|
||||
setObjectProperty(0x200);
|
||||
return SUCCEEDED;
|
||||
} else {
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
return SUCCEEDED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ int dAcOsunLight_c::create() {
|
||||
mModel.setAnm(mTexAnm);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mModel.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-200.0f, -100.0f, -200.0f), mVec3_c(200.0f, 600.0f, 500.0f));
|
||||
mBoundingBox.Set(mVec3_c(-200.0f, -100.0f, -200.0f), mVec3_c(200.0f, 600.0f, 500.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,8 +55,8 @@ int dAcOTarzanPole_c::create() {
|
||||
mCollider.Set(sCcSrc);
|
||||
mCollider.SetStts(mStts);
|
||||
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
|
||||
mFloat = (s32)(mParams & 0xFF) * 10.0f;
|
||||
if ((s32)(mParams & 0xFF) == 0xFF) {
|
||||
@@ -65,7 +65,7 @@ int dAcOTarzanPole_c::create() {
|
||||
|
||||
mVec = mVec3_c::Ex * 400.0f;
|
||||
mVec.rotY(mRotation.y);
|
||||
boundingBox.Set(mVec3_c(-0.0f, -120.0f, -110.0f), mVec3_c(500.0f, 140.0f, 110.0f));
|
||||
mBoundingBox.Set(mVec3_c(-0.0f, -120.0f, -110.0f), mVec3_c(500.0f, 140.0f, 110.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -87,15 +87,15 @@ int dAcOTarzanPole_c::actorExecute() {
|
||||
|
||||
mVec = mVec3_c::Ex * sXOffset + mVec3_c::Ey * sYOffset;
|
||||
mVec.rotY(mRotation.y);
|
||||
poscopy2 = mPosition + mVec;
|
||||
poscopy3 = poscopy2 + mVec3_c::Ey * 20.0f;
|
||||
mPositionCopy2 = mPosition + mVec;
|
||||
mPositionCopy3 = mPositionCopy2 + mVec3_c::Ey * 20.0f;
|
||||
|
||||
// 0x400000 corresponds to dAcPy_FLG0::FLG0_SWING_ROPE
|
||||
if (player != nullptr && !player->checkActionFlags(0x400000) && dAcItem_c::checkFlag(ITEM_WHIP)) {
|
||||
AttentionManager::GetInstance()->addUnk7Target(*this, 1, 1000.0f, 10.0f, -600.0, 200);
|
||||
}
|
||||
|
||||
mCollider.SetC(poscopy2);
|
||||
mCollider.SetC(mPositionCopy2);
|
||||
|
||||
dCcS::GetInstance()->Set(&mCollider);
|
||||
return SUCCEEDED;
|
||||
|
||||
@@ -53,8 +53,8 @@ int dAcOTimeStageBg_c::actorCreate() {
|
||||
}
|
||||
CREATE_ALLOCATOR(dAcOTimeStageBg_c);
|
||||
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
updateMatrix();
|
||||
mSceneCallback.attach(mMdl1);
|
||||
mMdl1.setLocalMtx(mWorldMtx);
|
||||
@@ -73,7 +73,7 @@ int dAcOTimeStageBg_c::actorCreate() {
|
||||
mVec3_c min, max;
|
||||
mMdl1.getBounds(&min, &max);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -60,13 +60,13 @@ int dAcOtoD3StoneFigure_c::create() {
|
||||
b = getYPos();
|
||||
b += zero;
|
||||
a = mPosition.x;
|
||||
poscopy2.x = a;
|
||||
poscopy2.y = b;
|
||||
poscopy2.z = c;
|
||||
poscopy3.x = a;
|
||||
poscopy3.y = b;
|
||||
poscopy3.z = c;
|
||||
// poscopy3 = poscopy2;
|
||||
mPositionCopy2.x = a;
|
||||
mPositionCopy2.y = b;
|
||||
mPositionCopy2.z = c;
|
||||
mPositionCopy3.x = a;
|
||||
mPositionCopy3.y = b;
|
||||
mPositionCopy3.z = c;
|
||||
// mPositionCopy3 = mPositionCopy2;
|
||||
mCollision.SetTg_0x4C(0x2000);
|
||||
|
||||
if (!mIsSkyKeepAlreadyOpen) {
|
||||
|
||||
@@ -40,12 +40,12 @@ int dAcOTowerGearD101_c::actorCreate() {
|
||||
nw4r::g3d::ResMdl mdl = mMdl.getResMdl();
|
||||
mMdlCallback.init(mdl.GetResNode("model0").GetID());
|
||||
mMdl.setCallback(&mMdlCallback);
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = 0.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = 0.0f;
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
mVec3_c s = field_0x3AC;
|
||||
boundingBox.Set(
|
||||
mBoundingBox.Set(
|
||||
mVec3_c(s.x * -200.0f, s.y * -200.0f, s.z * -50.0f), mVec3_c(s.x * 200.0f, s.y * 200.0f, s.z * 50.0f)
|
||||
);
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ int dAcOTowerHandD101_c::actorCreate() {
|
||||
dBgS::GetInstance()->Regist(bgW, this);
|
||||
}
|
||||
|
||||
boundingBox.Set(getBoundingLower(), getBoundingUpper());
|
||||
mBoundingBox.Set(getBoundingLower(), getBoundingUpper());
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -32,15 +32,15 @@ int dAcOtrapRock1_c::create() {
|
||||
|
||||
mBgW.SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
dBgS::GetInstance()->Regist(&mBgW, this);
|
||||
forwardAccel = 0.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
mStateMgr.changeState(StateID_TrapWait);
|
||||
mVec3_c min, max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
static mVec3_c offset = mVec3_c(50.0f, 50.0f, 50.0f);
|
||||
min -= offset;
|
||||
max += offset;
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ int dAcOtreasureIsland_c::create() {
|
||||
mWater00.setPriorityDraw(0x1C, 0x9);
|
||||
}
|
||||
|
||||
boundingBox.Set(mVec3_c(-1850.0f, -2050.0f, -1900.0f), mVec3_c(1950.0f, 2500.0f, 1850.0f));
|
||||
mBoundingBox.Set(mVec3_c(-1850.0f, -2050.0f, -1900.0f), mVec3_c(1950.0f, 2500.0f, 1850.0f));
|
||||
mCullingDistance = 500000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -80,8 +80,8 @@ int dAcOtubo_c::actorCreate() {
|
||||
mSph.SetStts(mStts);
|
||||
mSph.ClrAtSet();
|
||||
|
||||
forwardAccel = -4.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = -4.f;
|
||||
mMaxSpeed = -40.f;
|
||||
mbMovingForward = 0;
|
||||
mField_0x9D8 = 2.f;
|
||||
|
||||
@@ -104,12 +104,12 @@ int dAcOtubo_c::actorCreate() {
|
||||
}
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
boundingBox.Set(mVec3_c(-100.f, -40.f, -100.f), mVec3_c(100.f, 80.f, 100.f));
|
||||
GetLinkage().set(0xC8A0, 28.f, 50.f, 28.f, nullptr); // TODO (ActorCarry Flags)
|
||||
GetLinkage().field_0x8C = 26.f;
|
||||
GetLinkage().field_0x90 = 46.f;
|
||||
GetLinkage().field_0x94 = 28.f;
|
||||
GetLinkage().field_0x98 = 0.f;
|
||||
mBoundingBox.Set(mVec3_c(-100.f, -40.f, -100.f), mVec3_c(100.f, 80.f, 100.f));
|
||||
getLinkage().set(0xC8A0, 28.f, 50.f, 28.f, nullptr); // TODO (ActorCarry Flags)
|
||||
getLinkage().field_0x8C = 26.f;
|
||||
getLinkage().field_0x90 = 46.f;
|
||||
getLinkage().field_0x94 = 28.f;
|
||||
getLinkage().field_0x98 = 0.f;
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -162,12 +162,12 @@ int dAcOtubo_c::actorExecute() {
|
||||
if (!bOffGround) {
|
||||
if (!checkCarryType()) {
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
mField_0x9DC += mPosition.y - mOldPosition.y;
|
||||
adjustRoll();
|
||||
}
|
||||
GetLinkage().bushTpFunc(mObjAcch);
|
||||
getLinkage().bushTpFunc(mObjAcch);
|
||||
}
|
||||
|
||||
if (mStateMgr.isState(StateID_Wait) || mStateMgr.isState(StateID_Slope)) {
|
||||
@@ -176,15 +176,15 @@ int dAcOtubo_c::actorExecute() {
|
||||
mSph.SetC(getCenter());
|
||||
dCcS::GetInstance()->Set(&mSph);
|
||||
|
||||
GetLinkage().fn_800511E0(this);
|
||||
getLinkage().fn_800511E0(this);
|
||||
mField_0x8F0.modifyMtx();
|
||||
calcRoll();
|
||||
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mMdl.calc(false);
|
||||
poscopy2 = mPosition + mVec3_c(0.f, 28.f, 0.f);
|
||||
poscopy3 = poscopy2;
|
||||
poscopy3.y += 48.f;
|
||||
mPositionCopy2 = mPosition + mVec3_c(0.f, 28.f, 0.f);
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
mPositionCopy3.y += 48.f;
|
||||
mbField_0x9EB = 0;
|
||||
|
||||
return SUCCEEDED;
|
||||
@@ -203,7 +203,7 @@ int dAcOtubo_c::draw() {
|
||||
|
||||
static mQuat_c quat(0.f, 30.f, 0.f, 40.f);
|
||||
|
||||
if (yoffset >= 0.f) {
|
||||
if (mYOffset >= 0.f) {
|
||||
drawShadow(mShdw, nullptr, mWorldMtx, &quat, -1, -1, -1, -1, -1, mPosition.y - mObjAcch.GetGroundH());
|
||||
}
|
||||
return SUCCEEDED;
|
||||
@@ -244,9 +244,9 @@ void dAcOtubo_c::executeState_Wait() {
|
||||
}
|
||||
|
||||
adjustSpeed();
|
||||
if (forwardSpeed < 1.f) {
|
||||
if (mSpeed < 1.f) {
|
||||
mbMovingForward = 0;
|
||||
sLib::chase(&forwardSpeed, 0.f, 0.05f);
|
||||
sLib::chase(&mSpeed, 0.f, 0.05f);
|
||||
mField_0x9D8 = 2.f;
|
||||
}
|
||||
|
||||
@@ -269,8 +269,8 @@ void dAcOtubo_c::executeState_Wait() {
|
||||
void dAcOtubo_c::finalizeState_Wait() {}
|
||||
|
||||
void dAcOtubo_c::initializeState_Grab() {
|
||||
velocity = mVec3_c::Zero;
|
||||
angle = mAng3_c::Zero;
|
||||
mVelocity = mVec3_c::Zero;
|
||||
mAngle = mAng3_c::Zero;
|
||||
mbMovingForward = 0;
|
||||
mSph.SetCo_0x400();
|
||||
unsetActorProperty(AC_PROP_0x1);
|
||||
@@ -286,23 +286,23 @@ void dAcOtubo_c::executeState_Grab() {
|
||||
dAcNpcCeLady_c *lady = mCeLady.get();
|
||||
dAcNpcCeFriend_c *ceFriend = mCeFriend.get();
|
||||
if (ceFriend && ceFriend->fn_11_17C0(this)) {
|
||||
GetLinkage().fn_80050EA0(this);
|
||||
getLinkage().fn_80050EA0(this);
|
||||
} else if (lady && lady->fn_12_1C20(this)) {
|
||||
GetLinkage().fn_80050EA0(this);
|
||||
getLinkage().fn_80050EA0(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (GetLinkage().checkConnection(dLinkage_c::CONNECTION_5) && sLib::calcTimer(&mTimer_0x9F5) == 0 &&
|
||||
if (getLinkage().checkConnection(dLinkage_c::CONNECTION_5) && sLib::calcTimer(&mTimer_0x9F5) == 0 &&
|
||||
(mObjAcch.ChkGndHit() || mObjAcch.ChkWallHit(nullptr) || mObjAcch.ChkRoofHit())) {
|
||||
destroy();
|
||||
} else if (dAcPy_c::GetLink()->getCurrentAction() == 66 /* Put Down Medium */) { // TODO (Link Action ID)
|
||||
mStateMgr.changeState(StateID_Put);
|
||||
} else {
|
||||
if (!GetLinkage().checkState(dLinkage_c::STATE_DELETE)) {
|
||||
if (GetLinkage().checkConnection(dLinkage_c::CONNECTION_5)) {
|
||||
if (!getLinkage().checkState(dLinkage_c::STATE_DELETE)) {
|
||||
if (getLinkage().checkConnection(dLinkage_c::CONNECTION_5)) {
|
||||
mField_0x9F6 = dLinkage_c::STATE_0;
|
||||
} else {
|
||||
mField_0x9F6 = GetLinkage().getState();
|
||||
mField_0x9F6 = getLinkage().getState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,12 +313,12 @@ void dAcOtubo_c::executeState_Grab() {
|
||||
}
|
||||
void dAcOtubo_c::finalizeState_Grab() {
|
||||
mField_0x9DC = 0.f;
|
||||
if (forwardSpeed > 0.f) {
|
||||
if (mSpeed > 0.f) {
|
||||
mbMovingForward = 1;
|
||||
}
|
||||
mField_0x9D4 = cM::rndF(40.f);
|
||||
mSph.ClrCo_0x400();
|
||||
if ((u8)GetLinkage().mState == 2) {
|
||||
if ((u8)getLinkage().mState == 2) {
|
||||
mSph.OnAtSet();
|
||||
}
|
||||
mObjAcch.ClrRoofNone();
|
||||
@@ -343,18 +343,18 @@ void dAcOtubo_c::finalizeState_Put() {
|
||||
nw4r::math::FAbs(mPosition.y - dBgS_ObjGndChk::GetGroundHeight()) < 100.f)) {
|
||||
mSph.OnAtSet();
|
||||
}
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
}
|
||||
|
||||
void dAcOtubo_c::initializeState_Slope() {
|
||||
cM3dGPla pla;
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.GetGnd(), &pla);
|
||||
if (cM::isZero(forwardSpeed)) {
|
||||
angle.y = pla.GetAngleY();
|
||||
if (cM::isZero(mSpeed)) {
|
||||
mAngle.y = pla.GetAngleY();
|
||||
}
|
||||
mAng plaAng = pla.GetAngleY();
|
||||
mField_0x9C4 = (plaAng - angle.y);
|
||||
mAng other = labs((s16)(angle.y - mField_0x9C4));
|
||||
mField_0x9C4 = (plaAng - mAngle.y);
|
||||
mAng other = labs((s16)(mAngle.y - mField_0x9C4));
|
||||
mField_0x9C6 = nw4r::math::FSqrt(other.degree2() / 180.f) * 910.f;
|
||||
}
|
||||
void dAcOtubo_c::executeState_Slope() {
|
||||
@@ -367,11 +367,11 @@ void dAcOtubo_c::executeState_Slope() {
|
||||
adjustAngle();
|
||||
} else {
|
||||
mbMovingForward = 0;
|
||||
forwardSpeed = 0.f;
|
||||
velocity = mVec3_c::Zero;
|
||||
mSpeed = 0.f;
|
||||
mVelocity = mVec3_c::Zero;
|
||||
cM3dGPla pla;
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.GetGnd(), &pla);
|
||||
angle.y = cM::atan2s(pla.GetN().x, pla.GetN().z);
|
||||
mAngle.y = cM::atan2s(pla.GetN().x, pla.GetN().z);
|
||||
}
|
||||
adjustSpeed();
|
||||
if (mSph.ChkAtSet()) {
|
||||
@@ -398,14 +398,14 @@ void dAcOtubo_c::initializeState_Rebirth() {
|
||||
|
||||
mQuat_0x98C.set(1.f, 0.f, 0.f, 0.f);
|
||||
|
||||
forwardSpeed = 0.f;
|
||||
velocity.y = 0.f;
|
||||
mSpeed = 0.f;
|
||||
mVelocity.y = 0.f;
|
||||
mField_0x9DC = 0.f;
|
||||
|
||||
mSph.ClrCoSet();
|
||||
mSph.ClrTgSet();
|
||||
setObjectProperty(0x200);
|
||||
GetLinkage().fn_80050EA0(this);
|
||||
getLinkage().fn_80050EA0(this);
|
||||
|
||||
int item_drop_table = getParams2UpperByte();
|
||||
switch (item_drop_table) {
|
||||
@@ -438,7 +438,7 @@ void dAcOtubo_c::finalizeState_Rebirth() {
|
||||
mSph.OnCoSet();
|
||||
mSph.OnTgSet();
|
||||
mpPosition = &mPosition;
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
setActorProperty(AC_PROP_0x1);
|
||||
}
|
||||
|
||||
@@ -454,10 +454,10 @@ void dAcOtubo_c::destroy() {
|
||||
return;
|
||||
}
|
||||
fn_80022BE0(dLightEnv_c::GetPInstance(), mPosition);
|
||||
GetLinkage().fn_80050EA0(this);
|
||||
getLinkage().fn_80050EA0(this);
|
||||
|
||||
dEmitterBase_c *fx_thing = dJEffManager_c::spawnEffect(
|
||||
PARTICLE_RESOURCE_ID_MAPPING_211_, poscopy2, nullptr, nullptr, nullptr, nullptr, 0, 0
|
||||
PARTICLE_RESOURCE_ID_MAPPING_211_, mPositionCopy2, nullptr, nullptr, nullptr, nullptr, 0, 0
|
||||
);
|
||||
if (fx_thing) {
|
||||
fx_thing->attachEmitterCallbackId(mSubtype != 0 ? dJEffManager_c::TsuboB : dJEffManager_c::TsuboA);
|
||||
@@ -486,14 +486,14 @@ void dAcOtubo_c::calcRoll() {
|
||||
bool onLog = checkOnLog_0xE4E();
|
||||
if (mbMovingForward || onLog) {
|
||||
if (onLog) {
|
||||
velocity = mPosition - mOldPosition;
|
||||
forwardSpeed = EGG::Math<f32>::sqrt(velocity.x * velocity.x + velocity.z * velocity.z);
|
||||
angle.y = cM::atan2s(velocity.x, velocity.z);
|
||||
mVelocity = mPosition - mOldPosition;
|
||||
mSpeed = EGG::Math<f32>::sqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
mAngle.y = cM::atan2s(mVelocity.x, mVelocity.z);
|
||||
}
|
||||
f32 vel_mag = VEC3Len(velocity);
|
||||
f32 vel_mag = VEC3Len(mVelocity);
|
||||
f32 f1 = mAng(vel_mag * (mField_0x9D4 + 200.f)).radian();
|
||||
f32 f2 = mAng(vel_mag * 182.0f * 0.2f).radian();
|
||||
f32 f0 = mAng(angle.y - mRotation.y).radian();
|
||||
f32 f0 = mAng(mAngle.y - mRotation.y).radian();
|
||||
|
||||
mQuat_c q0, q1, q2, q3;
|
||||
q1.setAxisRotation(mVec3_c::Ey, f0);
|
||||
@@ -504,8 +504,8 @@ void dAcOtubo_c::calcRoll() {
|
||||
mQuat_0x98C = q1 * q3 * q2 * q0 * mQuat_0x98C;
|
||||
|
||||
if (onLog) {
|
||||
velocity = mVec3_c::Zero;
|
||||
forwardSpeed = 0.f;
|
||||
mVelocity = mVec3_c::Zero;
|
||||
mSpeed = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,13 +522,13 @@ void dAcOtubo_c::adjustRoll() {
|
||||
if (!mObjAcch.ChkGndHit()) {
|
||||
return;
|
||||
}
|
||||
if (cM::isZero(forwardSpeed)) {
|
||||
if (cM::isZero(mSpeed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
s32 adj = forwardSpeed * 182;
|
||||
s32 adj = mSpeed * 182;
|
||||
|
||||
mVec3_c vel = velocity;
|
||||
mVec3_c vel = mVelocity;
|
||||
vel.y = 0.f;
|
||||
|
||||
vel.normalize();
|
||||
@@ -565,12 +565,12 @@ void dAcOtubo_c::fn_272_2670() {
|
||||
}
|
||||
} else {
|
||||
if (mbField_0x9F1 && mField_0x8F0.fn_80051780(mSph)) {
|
||||
velocity += mField_0x9B8;
|
||||
mVelocity += mField_0x9B8;
|
||||
mbField_0x9F1 = false;
|
||||
}
|
||||
static const s16 unk = {0}; // needed for rodata ordering
|
||||
if (!cM::isZero(mField_0x9CA)) {
|
||||
angle.y = (*(s16 *)((u8 *)this + 0x9CA)); // HACK to force load again
|
||||
mAngle.y = (*(s16 *)((u8 *)this + 0x9CA)); // HACK to force load again
|
||||
mField_0x9CA.set(0);
|
||||
} else {
|
||||
mQuat_c q;
|
||||
@@ -580,10 +580,10 @@ void dAcOtubo_c::fn_272_2670() {
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkGndHit()) {
|
||||
if (yoffset >= 0.f && !checkCarryType()) {
|
||||
if (mYOffset >= 0.f && !checkCarryType()) {
|
||||
mField_0x9DC = 0.f;
|
||||
} else if (checkInvalidGround()) {
|
||||
forwardSpeed = 0.0f;
|
||||
mSpeed = 0.0f;
|
||||
mbMovingForward = 0;
|
||||
}
|
||||
}
|
||||
@@ -603,18 +603,18 @@ void dAcOtubo_c::fn_272_2670() {
|
||||
mEff_0x91C.execute(waterH, groundH);
|
||||
|
||||
if (checkSubmerged()) {
|
||||
forwardAccel = -0.8f;
|
||||
forwardMaxSpeed = -7.f;
|
||||
mAcceleration = -0.8f;
|
||||
mMaxSpeed = -7.f;
|
||||
mField_0x9DC = 0.f;
|
||||
cLib::addCalcPosXZ(&velocity, mVec3_c::Zero, 0.05f, 1.0f, 0.2f);
|
||||
forwardSpeed = EGG::Math<f32>::sqrt(velocity.x * velocity.x + velocity.z * velocity.z);
|
||||
cLib::addCalcPosXZ(&mVelocity, mVec3_c::Zero, 0.05f, 1.0f, 0.2f);
|
||||
mSpeed = EGG::Math<f32>::sqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
if (!noSound) {
|
||||
startSound(SE_O_FALL_WATER_S);
|
||||
}
|
||||
mbSubmerged = true;
|
||||
} else {
|
||||
forwardAccel = -4.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = -4.f;
|
||||
mMaxSpeed = -40.f;
|
||||
mbSubmerged = false;
|
||||
if (checkCarryType()) {
|
||||
mStateMgr.changeState(StateID_Grab);
|
||||
@@ -623,15 +623,15 @@ void dAcOtubo_c::fn_272_2670() {
|
||||
}
|
||||
|
||||
void dAcOtubo_c::attemptDestroy() {
|
||||
if (mbField_0x9EF && mSph.ChkCoHit() && mSph.GetCoActor()->profile_name == fProfile::B_MG) {
|
||||
if (mbField_0x9EF && mSph.ChkCoHit() && mSph.GetCoActor()->mProfileName == fProfile::B_MG) {
|
||||
destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkWallHit(nullptr) && sLib::absDiff(mAcchCir.GetWallAngleY(), angle.y) > mAng::deg2short(70.f)) {
|
||||
if (mObjAcch.ChkWallHit(nullptr) && sLib::absDiff(mAcchCir.GetWallAngleY(), mAngle.y) > mAng::deg2short(70.f)) {
|
||||
attemptDestroyOnWall();
|
||||
angle.y = mAcchCir.GetWallAngleY();
|
||||
forwardSpeed *= 0.5f;
|
||||
mAngle.y = mAcchCir.GetWallAngleY();
|
||||
mSpeed *= 0.5f;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -641,7 +641,7 @@ void dAcOtubo_c::attemptDestroy() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mObjAcch.ChkGndHit() && yoffset >= 0.f && !checkCarryType()) {
|
||||
if (mObjAcch.ChkGndHit() && mYOffset >= 0.f && !checkCarryType()) {
|
||||
if ((mField_0x9DC < -100.f && !mbField_0x9EE) || fn_272_3660()) {
|
||||
destroy();
|
||||
return;
|
||||
@@ -649,8 +649,8 @@ void dAcOtubo_c::attemptDestroy() {
|
||||
mField_0x9DC = 0.f;
|
||||
}
|
||||
if (!mObjAcch.ChkGndHit() && mSph.ChkCoHit()) {
|
||||
if (GetLinkage().mState != 1 && forwardSpeed > 0.f) {
|
||||
if (mSph.GetCoActor()->unkByteTargetFiRelated == 4) {
|
||||
if (getLinkage().mState != 1 && mSpeed > 0.f) {
|
||||
if (mSph.GetCoActor()->mTargetFiRelated == 4) {
|
||||
destroy();
|
||||
return;
|
||||
}
|
||||
@@ -674,7 +674,7 @@ void dAcOtubo_c::attemptDestroy() {
|
||||
}
|
||||
|
||||
void dAcOtubo_c::attemptDestroyOnWall(const u32 ¶m0, const bool ¶m1) {
|
||||
if (param1 && sLib::absDiff(mAcchCir.GetWallAngleY(), angle.y) > mAng::deg2short(70.f) && 15.f < forwardSpeed) {
|
||||
if (param1 && sLib::absDiff(mAcchCir.GetWallAngleY(), mAngle.y) > mAng::deg2short(70.f) && 15.f < mSpeed) {
|
||||
destroy();
|
||||
}
|
||||
}
|
||||
@@ -694,16 +694,16 @@ void dAcOtubo_c::fn_272_2E60(const mVec3_c &vel) {
|
||||
mPosition += mStts.GetCcMove();
|
||||
mField_0x8F0.fn_800051630();
|
||||
}
|
||||
forwardSpeed = 0.f;
|
||||
velocity = mVec3_c::Zero;
|
||||
mSpeed = 0.f;
|
||||
mVelocity = mVec3_c::Zero;
|
||||
mbField_0x9F1 = 1;
|
||||
mField_0x9B8 = vel * 2.f;
|
||||
} else if (mSph.ChkTgAtHitType(AT_TYPE_BELLOWS)) {
|
||||
velocity.x += vel.x * 0.06f;
|
||||
velocity.y += vel.y * 0.2f;
|
||||
velocity.z += vel.z * 0.06f;
|
||||
mVelocity.x += vel.x * 0.06f;
|
||||
mVelocity.y += vel.y * 0.2f;
|
||||
mVelocity.z += vel.z * 0.06f;
|
||||
mField_0x9CA = cM::atan2s(vel.x, vel.z);
|
||||
forwardSpeed = mField_0x9D0 * EGG::Math<f32>::sqrt(velocity.x * velocity.x + velocity.z * velocity.z);
|
||||
mSpeed = mField_0x9D0 * EGG::Math<f32>::sqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
}
|
||||
|
||||
mbMovingForward = 1;
|
||||
@@ -728,7 +728,7 @@ void dAcOtubo_c::fn_272_3020() {
|
||||
}
|
||||
|
||||
void dAcOtubo_c::addPickupTarget() {
|
||||
if (cM::isZero(forwardSpeed)) {
|
||||
if (cM::isZero(mSpeed)) {
|
||||
AttentionManager *ins = AttentionManager::GetInstance();
|
||||
ins->addPickUpTarget(*this, 120.f);
|
||||
ins->addUnk3Target(*this, 1, 500.f, -200.f, 200.f);
|
||||
@@ -741,18 +741,18 @@ void dAcOtubo_c::adjustAngle() {
|
||||
|
||||
// ??
|
||||
f32 mult = 1.f;
|
||||
velocity.x += pla.mNormal.x * mult;
|
||||
velocity.z += pla.mNormal.z * mult;
|
||||
mVelocity.x += pla.mNormal.x * mult;
|
||||
mVelocity.z += pla.mNormal.z * mult;
|
||||
|
||||
velocity.y = -(velocity.x * pla.GetN().x + velocity.z * pla.GetN().z) / pla.GetN().y;
|
||||
forwardSpeed = nw4r::math::FSqrt(velocity.x * velocity.x + velocity.z * velocity.z);
|
||||
forwardSpeed = cM::minMaxLimit(forwardSpeed, -30.f, 30.f);
|
||||
mVelocity.y = -(mVelocity.x * pla.GetN().x + mVelocity.z * pla.GetN().z) / pla.GetN().y;
|
||||
mSpeed = nw4r::math::FSqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
mSpeed = cM::minMaxLimit(mSpeed, -30.f, 30.f);
|
||||
|
||||
mAng a = mAng::fromVec(pla.GetN()); // Probably mean to be angle from Ey
|
||||
if (sLib::absDiff(a, angle.y) < mAng::deg2short(90.f)) {
|
||||
sLib::addCalcAngle(angle.y.ref(), pla.GetAngleY(), 5, 0x71C, 0x100);
|
||||
if (sLib::absDiff(a, mAngle.y) < mAng::deg2short(90.f)) {
|
||||
sLib::addCalcAngle(mAngle.y.ref(), pla.GetAngleY(), 5, 0x71C, 0x100);
|
||||
} else {
|
||||
angle.y = mAng::fromVec(velocity);
|
||||
mAngle.y = mAng::fromVec(mVelocity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -764,17 +764,17 @@ void dAcOtubo_c::adjustSpeed() {
|
||||
step *= gndAngle.cos();
|
||||
|
||||
if (gndAngle < mAng::deg2short(5) ||
|
||||
sLib::absDiff(cM::atan2s(pla.mNormal.x, pla.mNormal.z), angle.y) > mAng::deg2short(90)) {
|
||||
f32 stepSize = yoffset;
|
||||
sLib::chase(&forwardSpeed, 0.f, step + stepSize * -0.05f);
|
||||
sLib::absDiff(cM::atan2s(pla.mNormal.x, pla.mNormal.z), mAngle.y) > mAng::deg2short(90)) {
|
||||
f32 stepSize = mYOffset;
|
||||
sLib::chase(&mSpeed, 0.f, step + stepSize * -0.05f);
|
||||
} else {
|
||||
if (!mbMovingForward) {
|
||||
step *= -1.f;
|
||||
}
|
||||
forwardSpeed = cM::minMaxLimit(forwardSpeed + step, 0.f, 30.f);
|
||||
mSpeed = cM::minMaxLimit(mSpeed + step, 0.f, 30.f);
|
||||
}
|
||||
|
||||
mbMovingForward = forwardSpeed > 0.f;
|
||||
mbMovingForward = mSpeed > 0.f;
|
||||
}
|
||||
|
||||
bool dAcOtubo_c::checkSlope() {
|
||||
@@ -805,7 +805,7 @@ bool dAcOtubo_c::checkOnLava() {
|
||||
}
|
||||
|
||||
bool dAcOtubo_c::checkCarryType() const {
|
||||
const dLinkage_c &linkage = GetLinkage();
|
||||
const dLinkage_c &linkage = getLinkage();
|
||||
return linkage.checkConnection(dLinkage_c::CONNECTION_1) || linkage.checkConnection(dLinkage_c::CONNECTION_7) ||
|
||||
linkage.checkConnection(dLinkage_c::CONNECTION_5);
|
||||
}
|
||||
@@ -825,7 +825,7 @@ bool dAcOtubo_c::fn_272_38C0() {
|
||||
bool dAcOtubo_c::checkOnLog_0xE4E() const {
|
||||
if (mObjAcch.ChkGndHit() && dBgS::GetInstance()->ChkMoveBG(mObjAcch.mGnd, true)) {
|
||||
const dAcObjBase_c *obj = dBgS::GetInstance()->GetActorPointer(mObjAcch.mGnd);
|
||||
if (obj && obj->profile_name == fProfile::OBJ_LOG) {
|
||||
if (obj && obj->mProfileName == fProfile::OBJ_LOG) {
|
||||
return static_cast<const dAcOlog_c *>(obj)->getField_0xE4E() >= 4;
|
||||
}
|
||||
}
|
||||
@@ -833,13 +833,13 @@ bool dAcOtubo_c::checkOnLog_0xE4E() const {
|
||||
}
|
||||
|
||||
bool dAcOtubo_c::checkRollHitMaybe() {
|
||||
if (15.f < forwardSpeed) {
|
||||
if (15.f < mSpeed) {
|
||||
return true;
|
||||
}
|
||||
if (mObjAcch.ChkWallHit(nullptr)) {
|
||||
mVec3_c a = mVec3_c::Ez * 60.f;
|
||||
mVec3_c start = getCenter();
|
||||
a.rotY(mAng::fromVec(velocity));
|
||||
a.rotY(mAng::fromVec(mVelocity));
|
||||
mVec3_c end = start + a;
|
||||
if (dBgS_ObjLinChk::LineCross(&start, &end, this)) {
|
||||
return false;
|
||||
@@ -849,7 +849,7 @@ bool dAcOtubo_c::checkRollHitMaybe() {
|
||||
}
|
||||
|
||||
void dAcOtubo_c::playRollSound() {
|
||||
if (!(forwardSpeed > 0.f)) {
|
||||
if (!(mSpeed > 0.f)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -857,7 +857,7 @@ void dAcOtubo_c::playRollSound() {
|
||||
return;
|
||||
}
|
||||
|
||||
holdSoundWithFloatParam(SE_Tubo_ROLL_LV, forwardSpeed);
|
||||
holdSoundWithFloatParam(SE_Tubo_ROLL_LV, mSpeed);
|
||||
}
|
||||
|
||||
void float_order() {
|
||||
|
||||
@@ -62,8 +62,8 @@ int dAcOTumbleWeed_c::actorCreate() {
|
||||
mDowsingTarget.initialize(DowsingTarget::SLOT_TREASURE, 0, nullptr, 0.0f);
|
||||
mDowsingTarget.doRegister();
|
||||
|
||||
forwardAccel = -2.f;
|
||||
forwardMaxSpeed = -40.f;
|
||||
mAcceleration = -2.f;
|
||||
mMaxSpeed = -40.f;
|
||||
|
||||
mField_0x974 = 0.0f;
|
||||
mField_0x98B = true;
|
||||
@@ -80,7 +80,7 @@ int dAcOTumbleWeed_c::actorCreate() {
|
||||
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
|
||||
boundingBox.Set(mVec3_c(-50.f, -20.f, -50.f), mVec3_c(50.f, 60.f, 50.f));
|
||||
mBoundingBox.Set(mVec3_c(-50.f, -20.f, -50.f), mVec3_c(50.f, 60.f, 50.f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -94,8 +94,8 @@ int dAcOTumbleWeed_c::doDelete() {
|
||||
}
|
||||
|
||||
int dAcOTumbleWeed_c::actorExecute() {
|
||||
if (!mField_0x98C && !isStopped()) {
|
||||
mField_0x968 = velocity;
|
||||
if (!mField_0x98C && !checkStopped()) {
|
||||
mField_0x968 = mVelocity;
|
||||
mField_0x968.y = 0.0f;
|
||||
mField_0x968.normalize();
|
||||
mField_0x98C = true;
|
||||
@@ -108,7 +108,7 @@ int dAcOTumbleWeed_c::actorExecute() {
|
||||
dLightEnv_c::GetInstance().setWind(mField_0x968, mField_0x980);
|
||||
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
|
||||
mObjAcch.CrrPos(*dBgS::GetInstance());
|
||||
@@ -177,15 +177,15 @@ void dAcOTumbleWeed_c::executeState_Wait() {
|
||||
return;
|
||||
}
|
||||
|
||||
velocity.y = 0.f;
|
||||
mVelocity.y = 0.f;
|
||||
mField_0x974 = 0.f;
|
||||
if (checkSlope()) {
|
||||
mStateMgr.changeState(StateID_Slope);
|
||||
} else {
|
||||
adjustSpeed();
|
||||
if (forwardSpeed < 0.1f) {
|
||||
if (mSpeed < 0.1f) {
|
||||
mField_0x98B = false;
|
||||
sLib::chase(&forwardSpeed, 0.f, 0.05f);
|
||||
sLib::chase(&mSpeed, 0.f, 0.05f);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -204,7 +204,7 @@ void dAcOTumbleWeed_c::executeState_Slope() {
|
||||
return;
|
||||
}
|
||||
|
||||
velocity.y = 0.f;
|
||||
mVelocity.y = 0.f;
|
||||
adjustAngle();
|
||||
adjustSpeed();
|
||||
if (!checkSlope()) {
|
||||
@@ -215,7 +215,7 @@ void dAcOTumbleWeed_c::executeState_Slope() {
|
||||
void dAcOTumbleWeed_c::finalizeState_Slope() {}
|
||||
|
||||
bool dAcOTumbleWeed_c::checkBreak() {
|
||||
if (mObjAcch.ChkWallHit(nullptr) && forwardSpeed > 5.f) {
|
||||
if (mObjAcch.ChkWallHit(nullptr) && mSpeed > 5.f) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -270,10 +270,10 @@ void dAcOTumbleWeed_c::doBreak() {
|
||||
|
||||
void dAcOTumbleWeed_c::calcMatrix() {
|
||||
if (mField_0x98B) {
|
||||
f32 vel_mag = VEC3Len(velocity);
|
||||
f32 vel_mag = VEC3Len(mVelocity);
|
||||
f32 f1 = mAng(vel_mag * (mField_0x978 + 200.f)).radian();
|
||||
f32 f2 = mAng(vel_mag * 182.0f * 0.2f).radian();
|
||||
f32 f0 = mAng(angle.y - mRotation.y).radian();
|
||||
f32 f0 = mAng(mAngle.y - mRotation.y).radian();
|
||||
|
||||
mQuat_c q0, q1, q2, q3;
|
||||
q1.setAxisRotation(mVec3_c::Ey, f0);
|
||||
@@ -297,8 +297,8 @@ void dAcOTumbleWeed_c::calcMatrix() {
|
||||
void dAcOTumbleWeed_c::adjustAngle() {
|
||||
cM3dGPla pla;
|
||||
dBgS::GetInstance()->GetTriPla(mObjAcch.mGnd, &pla);
|
||||
mVec3_c vel = velocity; // ok?
|
||||
angle.y = mAng::fromVec(velocity);
|
||||
mVec3_c vel = mVelocity; // ok?
|
||||
mAngle.y = mAng::fromVec(mVelocity);
|
||||
}
|
||||
|
||||
void dAcOTumbleWeed_c::adjustSpeed() {
|
||||
@@ -320,27 +320,27 @@ void dAcOTumbleWeed_c::adjustSpeed() {
|
||||
// Flat Ground or not in the direction of the slope
|
||||
// Slows down
|
||||
if (gndAngle < mAng::deg2short(1) ||
|
||||
sLib::absDiff(cM::atan2s(pla.GetN().x, pla.GetN().z), GetAngle().y) > mAng::deg2short(90)) {
|
||||
sLib::chase(&forwardSpeed, mSpeedTarget, step);
|
||||
sLib::absDiff(cM::atan2s(pla.GetN().x, pla.GetN().z), getAngle().y) > mAng::deg2short(90)) {
|
||||
sLib::chase(&mSpeed, mSpeedTarget, step);
|
||||
}
|
||||
// Sloped Ground and in the direction of the slope
|
||||
// Speeds up
|
||||
else {
|
||||
forwardSpeed = cM::minMaxLimit(forwardSpeed + step, mSpeedTarget, mSpeedTarget + 5.0f);
|
||||
mSpeed = cM::minMaxLimit(mSpeed + step, mSpeedTarget, mSpeedTarget + 5.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void dAcOTumbleWeed_c::tumbleBounceMaybe() {
|
||||
velocity.y *= -0.75f;
|
||||
forwardSpeed *= 0.9f;
|
||||
mVelocity.y *= -0.75f;
|
||||
mSpeed *= 0.9f;
|
||||
|
||||
if (forwardSpeed < 15.f) {
|
||||
forwardSpeed = mSpeedTarget;
|
||||
if (mSpeed < 15.f) {
|
||||
mSpeed = mSpeedTarget;
|
||||
}
|
||||
|
||||
mbOnGround = false;
|
||||
if (velocity.y < 5.f) {
|
||||
velocity.y = 0.f;
|
||||
if (mVelocity.y < 5.f) {
|
||||
mVelocity.y = 0.f;
|
||||
mbOnGround = true;
|
||||
}
|
||||
}
|
||||
@@ -361,11 +361,11 @@ void dAcOTumbleWeed_c::adjustTimeScale() {
|
||||
void dAcOTumbleWeed_c::adjustTumble(const mVec3_c &dir) {
|
||||
mField_0x98B = true;
|
||||
|
||||
velocity.x += dir.x;
|
||||
velocity.z += dir.z;
|
||||
mVelocity.x += dir.x;
|
||||
mVelocity.z += dir.z;
|
||||
|
||||
forwardSpeed = mField_0x97C * EGG::Math<f32>::sqrt(velocity.x * velocity.x + velocity.z * velocity.z);
|
||||
angle.y = mAng::fromVec(dir);
|
||||
mSpeed = mField_0x97C * EGG::Math<f32>::sqrt(mVelocity.x * mVelocity.x + mVelocity.z * mVelocity.z);
|
||||
mAngle.y = mAng::fromVec(dir);
|
||||
}
|
||||
|
||||
void dAcOTumbleWeed_c::setWind(const mVec3_c &wind) {
|
||||
@@ -375,8 +375,8 @@ void dAcOTumbleWeed_c::setWind(const mVec3_c &wind) {
|
||||
|
||||
void dAcOTumbleWeed_c::calcWind() {
|
||||
if (!isWindStop() && sLib::calcTimer(&mWindTimer) == 0) {
|
||||
velocity.y = cM::rndFX(3.0f) + 15.f;
|
||||
forwardSpeed = cM::rndFX(5.0f) + 15.f;
|
||||
mVelocity.y = cM::rndFX(3.0f) + 15.f;
|
||||
mSpeed = cM::rndFX(5.0f) + 15.f;
|
||||
|
||||
mWind = mVec3_c::Zero;
|
||||
mField_0x980 = 0.f;
|
||||
|
||||
@@ -29,7 +29,7 @@ int dAcOunderCloud_c::create() {
|
||||
updateMatrix();
|
||||
mMdl.setLocalMtx(mWorldMtx);
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-550000.0f, -30000.0f, -500000.0f), mVec3_c(500000.0f, -10000.0f, 500000.0f));
|
||||
mBoundingBox.Set(mVec3_c(-550000.0f, -30000.0f, -500000.0f), mVec3_c(500000.0f, -10000.0f, 500000.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ int dAcOUgSwitch_c::create() {
|
||||
} else {
|
||||
mStateMgr.changeState(StateID_On);
|
||||
}
|
||||
boundingBox.Set(mVec3_c(-50.0f, -20.0f, -50.0f), mVec3_c(50.0f, 20.0f, 50.0f));
|
||||
mBoundingBox.Set(mVec3_c(-50.0f, -20.0f, -50.0f), mVec3_c(50.0f, 20.0f, 50.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ int dAcOutaDemoPedest_c::create() {
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
mVec3_c l, u;
|
||||
mMdl.getBounds(&l, &u);
|
||||
boundingBox.Set(l, u);
|
||||
mBoundingBox.Set(l, u);
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ int dAcOutajima_c::create() {
|
||||
mVec3_c min;
|
||||
mVec3_c max;
|
||||
mMdls[0].getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 500000.0f;
|
||||
mBgW.SetRideCallback(rideCallback);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ int dAcOutajimaIsland_c::actorCreate() {
|
||||
mVec3_c min;
|
||||
mVec3_c max;
|
||||
mMdl.getBounds(&min, &max);
|
||||
boundingBox.Set(min, max);
|
||||
mBoundingBox.Set(min, max);
|
||||
mCullingDistance = 500000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ int dAcOutajimaLv2_c::create() {
|
||||
dBgS::GetInstance()->Regist(&mBgW, this);
|
||||
dBgS::GetInstance()->RegistBg(&mBgW, this);
|
||||
mMdl.setPriorityDraw(0x1C, 9);
|
||||
boundingBox.Set(mVec3_c(-2800.0f, -4000.0f, -2600.0f), mVec3_c(2600.0f, 1900.0f, 2700.0f));
|
||||
mBoundingBox.Set(mVec3_c(-2800.0f, -4000.0f, -2600.0f), mVec3_c(2600.0f, 1900.0f, 2700.0f));
|
||||
mCullingDistance = 500000.0f;
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ int dAcOwaterShield_c::create() {
|
||||
|
||||
mMdl.setPriorityDraw(0x1C, 0x9);
|
||||
|
||||
boundingBox.Set(mVec3_c(-12000.0f, -2000.0f, -14000.0f), mVec3_c(12000.0f, 11000.0f, 12000.0f));
|
||||
mBoundingBox.Set(mVec3_c(-12000.0f, -2000.0f, -14000.0f), mVec3_c(12000.0f, 11000.0f, 12000.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ int dTgAction_c::actorExecute() {
|
||||
if (pObj == nullptr) {
|
||||
break;
|
||||
}
|
||||
if (pObj->profile_name == fProfile::BOMB) {
|
||||
if (pObj->mProfileName == fProfile::BOMB) {
|
||||
if (checkIfVec3fInMatrix(mActiveMtx, pObj->getPosition())) {
|
||||
reinterpret_cast<dAcBomb_c *>(pObj)->On_0xA3C(0x20000000);
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ int dTgReaction_c::create() {
|
||||
}
|
||||
|
||||
field_0x4E0 = mRotation.x & 0xFF;
|
||||
mRotation.x = angle.x = 0;
|
||||
mRotation.x = mAngle.x = 0;
|
||||
|
||||
if (field_0x4E0 < 0xFF && !SceneflagManager::sInstance->checkBoolFlag(mRoomID, field_0x4E0)) {
|
||||
return FAILED;
|
||||
|
||||
@@ -77,10 +77,10 @@ dAcBase_c::dAcBase_c()
|
||||
setActorRef(s_Create_Parent);
|
||||
}
|
||||
|
||||
fProfile::fActorProfile_c *profile = (fProfile::fActorProfile_c *)((*fProfile::sProfileList)[profile_name]);
|
||||
fProfile::fActorProfile_c *profile = (fProfile::fActorProfile_c *)((*fProfile::sProfileList)[mProfileName]);
|
||||
mActorProperties = profile->mActorProperties;
|
||||
if (mpActorInfo == nullptr) {
|
||||
mpActorInfo = getActorInfoByProfileAndSubtype(profile_name, mActorSubtype);
|
||||
mpActorInfo = getActorInfoByProfileAndSubtype(mProfileName, mActorSubtype);
|
||||
}
|
||||
someStr[0] = '\0';
|
||||
}
|
||||
@@ -194,7 +194,7 @@ int dAcBase_c::preDelete() {
|
||||
}
|
||||
|
||||
if (!checkActorProperty(AC_PROP_0x800) && checkActorProperty(AC_PROP_0x10000000) &&
|
||||
fBase_c::getConnectParent()->lifecycle_state != TO_BE_DELETED) {
|
||||
fBase_c::getConnectParent()->mLifecycleState != TO_BE_DELETED) {
|
||||
if (itemDroppingAndGivingRelated(nullptr, 0) != 0) {
|
||||
setEnemyDefeatFlag();
|
||||
}
|
||||
@@ -382,9 +382,9 @@ dAcBase_c *dAcBase_c::findActor(char *objName, dAcBase_c *parent) {
|
||||
FORCE_INLINE dAcBase_c *findActor(dAcBase_c *parent) {
|
||||
dAcBase_c *foundActor;
|
||||
if (!parent) {
|
||||
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, nullptr);
|
||||
} else if (parent->group_type == 2) {
|
||||
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(dBase_c::ACTOR, parent);
|
||||
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(fBase_c::ACTOR, nullptr);
|
||||
} else if (parent->mGroupType == fBase_c::ACTOR) {
|
||||
foundActor = (dAcBase_c *)fManager_c::searchBaseByGroupType(fBase_c::ACTOR, parent);
|
||||
} else {
|
||||
foundActor = nullptr;
|
||||
}
|
||||
@@ -498,7 +498,7 @@ f32 dAcBase_c::getSquareDistToPlayer() {
|
||||
// Some weirdness with the float registers being used
|
||||
// 8002d4b0
|
||||
void dAcBase_c::updateRoomId(f32 yOffset) {
|
||||
if (getConnectParent()->profile_name != fProfile::ROOM) {
|
||||
if (getConnectParent()->mProfileName != fProfile::ROOM) {
|
||||
mVec3_c actorPos(mPosition.x, mPosition.y + yOffset, mPosition.z);
|
||||
|
||||
if (dBgS_ObjGndChk::CheckPos(actorPos)) {
|
||||
@@ -750,8 +750,8 @@ void dAcBase_c::roundAngleToNearest90(s16 *dst_angle, s16 *src_angle) {
|
||||
void dAcBase_c::incrementKillCounter() {
|
||||
dAcObjBase_c *object = (dAcObjBase_c *)this; // Probably wrong
|
||||
|
||||
if (group_type == ACTOR && object->unkByteTargetFiRelated == 1) {
|
||||
int killCounterId = object->targetFiTextId;
|
||||
if (mGroupType == ACTOR && object->mTargetFiRelated == 1) {
|
||||
int killCounterId = object->mTargetFiTextID;
|
||||
|
||||
if (killCounterId < 91 && (killCounterId & 0x300) == 0) {
|
||||
FileManager *fileMgr = FileManager::GetInstance();
|
||||
|
||||
@@ -30,7 +30,7 @@ bool dAcOInsect_c::checkForLinkScare() {
|
||||
mLinkNearby = 1;
|
||||
return true;
|
||||
}
|
||||
} else if (dAcPy_c::LINK->forwardSpeed > 1.f) {
|
||||
} else if (dAcPy_c::LINK->mSpeed > 1.f) {
|
||||
if (dAcPy_c::LINK->getDistanceTo(mPosition) < 30.f) {
|
||||
mLinkNearby = 1;
|
||||
return true;
|
||||
@@ -62,7 +62,7 @@ bool dAcOInsect_c::isLinkUsingBugNet() {
|
||||
|
||||
s32 dAcOInsect_c::getLinkSpeedLevel() {
|
||||
if (dAcPy_c::LINK != nullptr) {
|
||||
f32 speed = fabsf(dAcPy_c::LINK->forwardSpeed);
|
||||
f32 speed = fabsf(dAcPy_c::LINK->mSpeed);
|
||||
if (speed < 0.1f) {
|
||||
return 0;
|
||||
} else if (speed < 10.0f) {
|
||||
@@ -139,9 +139,9 @@ void dAcOInsect_c::addAttentionTarget() {
|
||||
}
|
||||
|
||||
void dAcOInsect_c::preAttention() {
|
||||
poscopy2 = mPosition;
|
||||
poscopy2.y += 20.f;
|
||||
poscopy3 = poscopy2;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy2.y += 20.f;
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
}
|
||||
|
||||
f32 dAcOInsect_c::dAcOInsect_0x80() {
|
||||
@@ -200,15 +200,15 @@ bool dAcOInsect_c::fn_8018FAA0() {
|
||||
}
|
||||
|
||||
bool dAcOInsect_c::fn_8018FAD0() {
|
||||
f32 speed = fabsf(forwardSpeed);
|
||||
f32 speed = fabsf(mSpeed);
|
||||
if (cM::isLessThanZero(speed)) {
|
||||
fn_8018FDF0(mPlane_0x3A8.GetN());
|
||||
return true;
|
||||
} else {
|
||||
f32 clampSpeed = speed < 5.0f ? forwardSpeed > 0.f ? forwardSpeed : -5.f : 5.f;
|
||||
f32 clampSpeed = speed < 5.0f ? mSpeed > 0.f ? mSpeed : -5.f : 5.f;
|
||||
|
||||
mVec3_c pos0 = mPosition + field_0x360;
|
||||
mVec3_c pos1 = pos0 + field_0x36C * forwardSpeed;
|
||||
mVec3_c pos1 = pos0 + field_0x36C * mSpeed;
|
||||
int linType = fn_801900B0(pos0, pos1);
|
||||
field_0x410[0] = pos0;
|
||||
field_0x434[0] = pos1;
|
||||
|
||||
+14
-4
@@ -320,9 +320,19 @@ STATE_DEFINE(dAcItem_c, WaitTurnOff);
|
||||
STATE_DEFINE(dAcItem_c, WaitSacredDewGetEffect);
|
||||
|
||||
dAcItem_c::dAcItem_c()
|
||||
: mStateMgr(*this, sStateID::null), mEff_0x8F4(this), mEff_0x928(this), mEff_0x95C(this), mEff_0x990(this),
|
||||
mEff_0x9C4(this), mEff_0x9F8(this), mEff_0xA2C(this), mEff_0xA60(this), mNode(this),
|
||||
mEventRelated(*this, nullptr), mDowsingTarget(this, DowsingTarget::SLOT_NONE), mItemQueuePrev(nullptr),
|
||||
: mStateMgr(*this, sStateID::null),
|
||||
mEff_0x8F4(this),
|
||||
mEff_0x928(this),
|
||||
mEff_0x95C(this),
|
||||
mEff_0x990(this),
|
||||
mEff_0x9C4(this),
|
||||
mEff_0x9F8(this),
|
||||
mEff_0xA2C(this),
|
||||
mEff_0xA60(this),
|
||||
mNode(this),
|
||||
mEventRelated(*this, nullptr),
|
||||
mDowsingTarget(this, DowsingTarget::SLOT_NONE),
|
||||
mItemQueuePrev(nullptr),
|
||||
mItemQueueNext(nullptr) {
|
||||
mField_0xCD8 = 1.0f;
|
||||
mBaseScale = 1.0f;
|
||||
@@ -348,7 +358,7 @@ dAcItem_c::dAcItem_c()
|
||||
mField_0xD66 = 0;
|
||||
|
||||
sItemList.append(&mNode);
|
||||
unkByteTargetFiRelated = 3;
|
||||
mTargetFiRelated = 3;
|
||||
}
|
||||
dAcItem_c::~dAcItem_c() {
|
||||
delete mField_0xB3C;
|
||||
|
||||
+20
-20
@@ -51,7 +51,7 @@ void dSalvageIfObj_c::doDemoThrow() {
|
||||
int dAcSalbageObj_c::actorExecute() {
|
||||
executeInternal();
|
||||
calcVelocity();
|
||||
mPosition += velocity;
|
||||
mPosition += mVelocity;
|
||||
mPosition += mStts.GetCcMove();
|
||||
if (isInStateWait()) {
|
||||
updateCc();
|
||||
@@ -155,9 +155,9 @@ void dAcSalbageObj_c::initSalbageObj() {
|
||||
} else {
|
||||
switch (mBehavior) {
|
||||
case BEHAVIOR_CARRY: {
|
||||
forwardSpeed = 0.0f;
|
||||
velocity.set(0.0f, 0.0f, 0.0f);
|
||||
forwardAccel = 0.0f;
|
||||
mSpeed = 0.0f;
|
||||
mVelocity.set(0.0f, 0.0f, 0.0f);
|
||||
mAcceleration = 0.0f;
|
||||
mSalvageIf.setHidden();
|
||||
if (dSalvageMgr_c::sInstance->getCurrentSalvageObjId() != mSalvageIf.getSalvageObjId()) {
|
||||
mStateMgr.changeState(StateID_Kill);
|
||||
@@ -169,9 +169,9 @@ void dAcSalbageObj_c::initSalbageObj() {
|
||||
break;
|
||||
}
|
||||
case BEHAVIOR_FLY: {
|
||||
forwardSpeed = 0.0f;
|
||||
velocity.set(0.0f, 0.0f, 0.0f);
|
||||
forwardAccel = 0.0f;
|
||||
mSpeed = 0.0f;
|
||||
mVelocity.set(0.0f, 0.0f, 0.0f);
|
||||
mAcceleration = 0.0f;
|
||||
mStateMgr.changeState(StateID_Fly);
|
||||
break;
|
||||
}
|
||||
@@ -181,12 +181,12 @@ void dAcSalbageObj_c::initSalbageObj() {
|
||||
return;
|
||||
} else {
|
||||
mBehavior = BEHAVIOR_STATIONARY;
|
||||
forwardAccel = -1.0f;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAcceleration = -1.0f;
|
||||
mMaxSpeed = -40.0f;
|
||||
initCcAndBg();
|
||||
forwardSpeed = 0.0f;
|
||||
forwardAccel = 0.0f;
|
||||
velocity.set(0.0f, 0.0f, 0.0f);
|
||||
mSpeed = 0.0f;
|
||||
mAcceleration = 0.0f;
|
||||
mVelocity.set(0.0f, 0.0f, 0.0f);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
break;
|
||||
@@ -301,10 +301,10 @@ void dAcSalbageObj_c::updateMdl() {
|
||||
}
|
||||
|
||||
f32 scale = mScale.x;
|
||||
poscopy3 = mPosition;
|
||||
poscopy3.y += getPoscopy3YOffset() * scale;
|
||||
poscopy2 = mPosition;
|
||||
poscopy2.y += getPoscopy2YOffset() * scale;
|
||||
mPositionCopy3 = mPosition;
|
||||
mPositionCopy3.y += getPoscopy3YOffset() * scale;
|
||||
mPositionCopy2 = mPosition;
|
||||
mPositionCopy2.y += getPoscopy2YOffset() * scale;
|
||||
}
|
||||
|
||||
void dAcSalbageObj_c::loadBehaviorFromParams() {
|
||||
@@ -367,10 +367,10 @@ void dAcSalbageObj_c::initializeState_DemoThrow() {
|
||||
mRotation.y = result.atan2sX_Z();
|
||||
mRotation.x = -cM::atan2s(result.y, result.absXZ());
|
||||
mRotation.z = field_0x904;
|
||||
angle.x = 0;
|
||||
angle.y = mRotation.y;
|
||||
angle.z = 0;
|
||||
forwardMaxSpeed = -40.0f;
|
||||
mAngle.x = 0;
|
||||
mAngle.y = mRotation.y;
|
||||
mAngle.z = 0;
|
||||
mMaxSpeed = -40.0f;
|
||||
mBgObjAcch.Set(this, 1, &mBgAcchCir);
|
||||
mBgObjAcch.SetWaterNone();
|
||||
mBgObjAcch.SetRoofNone();
|
||||
|
||||
@@ -41,9 +41,9 @@ bool dFlowNpc_c::handleEventInternal(const MsbFlowInfo *element) {
|
||||
extract2xU16Params(element, &exitId, &trial);
|
||||
if (field_0x10) {
|
||||
dAcBase_c *ac = EventManager::getMainActorInEvent();
|
||||
if (ac != nullptr && ac->profile_name == fProfile::NPC_TKE) {
|
||||
if (ac != nullptr && ac->mProfileName == fProfile::NPC_TKE) {
|
||||
static_cast<daNpcTke_c *>(ac)->setFinishFlags();
|
||||
} else if (mpOwner->profile_name == fProfile::NPC_TKE) {
|
||||
} else if (mpOwner->mProfileName == fProfile::NPC_TKE) {
|
||||
static_cast<daNpcTke_c *>(mpOwner)->setFinishFlags();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ int dAcArrow_c::create() {
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
}
|
||||
|
||||
boundingBox.Set(mVec3_c(-6.0f, -6.0f, 0.0f), mVec3_c(6.0f, 6.0f, 110.0f));
|
||||
mBoundingBox.Set(mVec3_c(-6.0f, -6.0f, 0.0f), mVec3_c(6.0f, 6.0f, 110.0f));
|
||||
field_0x684 = -1;
|
||||
field_0x68A = 300;
|
||||
f32 rnd = cM::rndF(20.0f);
|
||||
|
||||
@@ -59,7 +59,7 @@ void dAcBoomerang_c::areaCallback(mVec3_c *param1, u32 param2) {
|
||||
setChrAnimation(dAcBoomerang_c::RB_CUT);
|
||||
}
|
||||
void dAcBoomerang_c::atHitCallback(cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB, cCcD_Obj *i_objInfB) {
|
||||
if (i_actorB != nullptr && i_actorB->GetLinkage().checkFlag(0x80)) {
|
||||
if (i_actorB != nullptr && i_actorB->getLinkage().checkFlag(0x80)) {
|
||||
// Check if beetle can grab things
|
||||
if (dAcPy_c::hasBeetleVariantOrBetter(HOOK_BEETLE)) {
|
||||
// If beetle is already holding the object or is stationary
|
||||
@@ -71,7 +71,7 @@ void dAcBoomerang_c::atHitCallback(cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB,
|
||||
if (tryGrabObject(i_actorB)) {
|
||||
setChrAnimation(RB_HOLD);
|
||||
mAnmChr[BOOMERANG_ANIM_PINCERS].setRate(0.f);
|
||||
mAnmChr[BOOMERANG_ANIM_PINCERS].setFrameOnly(i_actorB->GetLinkage().field_0x24);
|
||||
mAnmChr[BOOMERANG_ANIM_PINCERS].setFrameOnly(i_actorB->getLinkage().field_0x24);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -86,10 +86,10 @@ void dAcBoomerang_c::atHitCallback(cCcD_Obj *i_objInfA, dAcObjBase_c *i_actorB,
|
||||
field_0x8D8.y = 0.f;
|
||||
|
||||
if (cM::isZero(field_0x8D8.normalize())) {
|
||||
field_0x8D8.set(-angle.y.sin(), 0.f, -angle.y.cos());
|
||||
field_0x8D8.set(-mAngle.y.sin(), 0.f, -mAngle.y.cos());
|
||||
}
|
||||
field_0x8D8 *= velocity.absXZ();
|
||||
field_0x8D8.y = -velocity.y;
|
||||
field_0x8D8 *= mVelocity.absXZ();
|
||||
field_0x8D8.y = -mVelocity.y;
|
||||
|
||||
field_0x8D8.normalize();
|
||||
|
||||
@@ -292,7 +292,7 @@ const dAcBoomerang_c::ChrAnimation_t dAcBoomerang_c::sChrAnims[dAcBoomerang_c::R
|
||||
|
||||
bool dAcBoomerang_c::tryGrabObject(dAcObjBase_c *pObj) {
|
||||
dAcPy_c *player = dAcPy_c::GetLink2();
|
||||
if (checkField_0x8CC(FLAG_CONTROLLABLE) && GetLinkage().checkFlag(0x80)) {}
|
||||
if (checkField_0x8CC(FLAG_CONTROLLABLE) && getLinkage().checkFlag(0x80)) {}
|
||||
}
|
||||
|
||||
// ...
|
||||
@@ -370,7 +370,7 @@ void dAcBoomerang_c::initializeState_Wait() {
|
||||
dAcPy_c::GetLink2()->onModelUpdateFlag(dAcPy_c::UPDATE_MODEL_BEETLE);
|
||||
}
|
||||
void dAcBoomerang_c::executeState_Wait() {
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
placeOnArm();
|
||||
if (checkField_0x8CC(FLAG_REQUEST_MOVE)) {
|
||||
mStateMgr.changeState(StateID_Move);
|
||||
@@ -388,7 +388,7 @@ void dAcBoomerang_c::initializeState_ReturnWait() {
|
||||
placeOnArm();
|
||||
}
|
||||
void dAcBoomerang_c::executeState_ReturnWait() {
|
||||
forwardSpeed = 0.f;
|
||||
mSpeed = 0.f;
|
||||
placeOnArm();
|
||||
if (mAnmChr[BOOMERANG_ANIM_PINCERS].isStop() || !dAcPy_c::GetLink2()->checkActionFlagsCont(0x10)) {
|
||||
startSound(SE_BE_CATCH);
|
||||
@@ -409,7 +409,7 @@ void dAcBoomerang_c::initializeState_Move() {
|
||||
field_0x8C8 = 0;
|
||||
|
||||
dAcPy_c *player = dAcPy_c::GetLink2();
|
||||
forwardSpeed = player->getBeetleNormalSpeed();
|
||||
mSpeed = player->getBeetleNormalSpeed();
|
||||
|
||||
mSph0.ClrAtHit();
|
||||
mSph1.ClrTgHit();
|
||||
@@ -420,10 +420,10 @@ void dAcBoomerang_c::initializeState_Move() {
|
||||
unsetField_0x8CC(FLAG_REQUEST_MOVE | FLAG_WING_EFFECT_ACTIVE | FLAG_0x10000);
|
||||
setField_0x8CC(FLAG_CONTROLLABLE | FLAG_0x80000);
|
||||
|
||||
angle.x = 2000 - player->vt_0x198();
|
||||
mAngle.x = 2000 - player->vt_0x198();
|
||||
|
||||
mRotation.x.set(-angle.x);
|
||||
mRotation.y.set(angle.y);
|
||||
mRotation.x.set(-mAngle.x);
|
||||
mRotation.y.set(mAngle.y);
|
||||
mRotation.z.set(0);
|
||||
field_0x8B2 = 0;
|
||||
|
||||
@@ -435,9 +435,9 @@ void dAcBoomerang_c::initializeState_Move() {
|
||||
field_0x8B8 = daPlayerActBase_c::fn_8005BAA0();
|
||||
|
||||
// TODO regswap
|
||||
field_0x8BE = angle.x - dPad::ex_c::m_current_ex->mMPLS.getVerticalAngle();
|
||||
field_0x8BE = mAngle.x - dPad::ex_c::m_current_ex->mMPLS.getVerticalAngle();
|
||||
|
||||
field_0x8E4.fromXY(angle.x, angle.y, forwardSpeed);
|
||||
field_0x8E4.fromXY(mAngle.x, mAngle.y, mSpeed);
|
||||
|
||||
startSound(SE_BE_THROW);
|
||||
dJEffManager_c::spawnUIEffect(PARTICLE_RESOURCE_ID_MAPPING_3_, mVec3_c::Zero, nullptr, nullptr, nullptr, nullptr);
|
||||
@@ -528,14 +528,14 @@ int dAcBoomerang_c::actorExecute() {
|
||||
setRoomId();
|
||||
|
||||
mMdl.calc(false);
|
||||
mMdl.getNodeWorldMtxMultVecZero(0, poscopy2);
|
||||
poscopy3 = poscopy2;
|
||||
mMdl.getNodeWorldMtxMultVecZero(0, mPositionCopy2);
|
||||
mPositionCopy3 = mPositionCopy2;
|
||||
|
||||
if (checkField_0x8CC(FLAG_WING_EFFECT_ACTIVE)) {
|
||||
mEff0.createContinuousEffect(PARTICLE_RESOURCE_ID_MAPPING_6_, mWorldMtx, nullptr, nullptr);
|
||||
mEff1.setTransform(mWorldMtx);
|
||||
|
||||
f32 ang = field_0x8E4.angle(velocity);
|
||||
f32 ang = field_0x8E4.angle(mVelocity);
|
||||
ang = 10.f - mAng::fromRad(ang) * (7.f / 256.f);
|
||||
ang = nw4r::ut::Max(ang, 3.f);
|
||||
mEff1.setAwayFromCenterSpeed(ang);
|
||||
|
||||
@@ -27,7 +27,7 @@ int dAcObjFairy_c::create() {
|
||||
mStateMgr.changeState(StateID_CureStart);
|
||||
mStateMgr.changeState(StateID_Wait);
|
||||
mModel.getModel().setPriorityDraw(0x7F, 0x7F);
|
||||
boundingBox.Set(mVec3_c(-20.0f, -200.0f, -20.0f), mVec3_c(20.0f, 20.0f, 20.0f));
|
||||
mBoundingBox.Set(mVec3_c(-20.0f, -200.0f, -20.0f), mVec3_c(20.0f, 20.0f, 20.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
@@ -96,7 +96,7 @@ void dAcObjFairy_c::executeState_CatchDemo() {
|
||||
}
|
||||
void dAcObjFairy_c::finalizeState_CatchDemo() {
|
||||
field_0xB89 = 0;
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
}
|
||||
|
||||
bool dAcObjFairy_c::shouldAvoidLink() const {
|
||||
@@ -104,7 +104,7 @@ bool dAcObjFairy_c::shouldAvoidLink() const {
|
||||
if (dAcPy_c::LINK->isUsingBugnet()) {
|
||||
mVec3_c dist = dAcPy_c::LINK->getBugNetPos() - mPosition;
|
||||
bool isClose = false;
|
||||
if (dist.mag() < 100.0f && velocity.dot(dist) > 0.0f) {
|
||||
if (dist.mag() < 100.0f && mVelocity.dot(dist) > 0.0f) {
|
||||
isClose = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@ void dAcOswMdlCallback_c::timingB(u32 nodeId, nw4r::g3d::WorldMtxManip *manip, n
|
||||
}
|
||||
|
||||
static bool isPushableBlock(dAcBase_c *actor) {
|
||||
return actor->isActorPlayer() || actor->profile_name == fProfile::OBJ_PUSH_BLOCK ||
|
||||
actor->profile_name == fProfile::OBJ_KIBAKO;
|
||||
return actor->isActorPlayer() || actor->mProfileName == fProfile::OBJ_PUSH_BLOCK ||
|
||||
actor->mProfileName == fProfile::OBJ_KIBAKO;
|
||||
}
|
||||
|
||||
void dAcOsw_c::rideCallback(dBgW *unknown, dAcObjBase_c *actor, dAcObjBase_c *interactor) {
|
||||
@@ -49,12 +49,12 @@ void dAcOsw_c::rideCallback(dBgW *unknown, dAcObjBase_c *actor, dAcObjBase_c *in
|
||||
return;
|
||||
}
|
||||
if (link->checkFlags0x340(0x800000) &&
|
||||
!(link->getCurrentCarriedActor() && link->getCurrentCarriedActor()->GetLinkage().checkFlag(0x04))) {
|
||||
!(link->getCurrentCarriedActor() && link->getCurrentCarriedActor()->getLinkage().checkFlag(0x04))) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (interactor->GetLinkage().checkState(dLinkage_c::STATE_ACTIVE)) {
|
||||
if (interactor->getLinkage().checkState(dLinkage_c::STATE_ACTIVE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ int dAcOsw_c::actorCreate() {
|
||||
} else {
|
||||
mStateMgr.changeState(StateID_OnWait);
|
||||
}
|
||||
boundingBox.Set(mVec3_c(-90.0f, -10.0f, -90.0f), mVec3_c(90.0f, 70.0f, 90.0f));
|
||||
mBoundingBox.Set(mVec3_c(-90.0f, -10.0f, -90.0f), mVec3_c(90.0f, 70.0f, 90.0f));
|
||||
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -823,7 +823,7 @@ dAcTbox_c::dAcTbox_c()
|
||||
field_0x120E = 0;
|
||||
mDoObstructedCheck = false;
|
||||
sTboxActorList.append(&mTboxListNode);
|
||||
unkByteTargetFiRelated = 2;
|
||||
mTargetFiRelated = 2;
|
||||
}
|
||||
|
||||
dAcTbox_c::~dAcTbox_c() {
|
||||
@@ -1125,22 +1125,22 @@ int dAcTbox_c::create() {
|
||||
case NORMAL: {
|
||||
static mVec3_c bbLo = mVec3_c(-65.0f, 0.0f, -100.0f);
|
||||
static mVec3_c bbUp = mVec3_c(65.0f, 150.0f, 45.0f);
|
||||
boundingBox.Set(bbLo, bbUp);
|
||||
mBoundingBox.Set(bbLo, bbUp);
|
||||
} break;
|
||||
case SMALL: {
|
||||
static mVec3_c bbLo = mVec3_c(-38.0f, 0.0f, -70.0f);
|
||||
static mVec3_c bbUp = mVec3_c(38.0f, 110.0f, 35.0f);
|
||||
boundingBox.Set(bbLo, bbUp);
|
||||
mBoundingBox.Set(bbLo, bbUp);
|
||||
} break;
|
||||
case BOSS: {
|
||||
static mVec3_c bbLo = mVec3_c(-90.0f, 0.0f, -140.0f);
|
||||
static mVec3_c bbUp = mVec3_c(90.0f, 170.0f, 60.0f);
|
||||
boundingBox.Set(bbLo, bbUp);
|
||||
mBoundingBox.Set(bbLo, bbUp);
|
||||
} break;
|
||||
case GODDESS: {
|
||||
static mVec3_c bbLo = mVec3_c(-65.0f, 0.0f, -100.0f);
|
||||
static mVec3_c bbUp = mVec3_c(65.0f, 150.0f, 50.0f);
|
||||
boundingBox.Set(bbLo, bbUp);
|
||||
mBoundingBox.Set(bbLo, bbUp);
|
||||
} break;
|
||||
}
|
||||
|
||||
@@ -1194,7 +1194,7 @@ int dAcTbox_c::actorExecute() {
|
||||
if (hasFlags) {
|
||||
setObjectProperty(0x200);
|
||||
} else {
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
}
|
||||
|
||||
if (hasFlags) {
|
||||
@@ -1330,7 +1330,7 @@ int dAcTbox_c::actorExecuteInEvent() {
|
||||
if (hasFlags) {
|
||||
setObjectProperty(0x200);
|
||||
} else {
|
||||
clearObjectProperty(0x200);
|
||||
unsetObjectProperty(0x200);
|
||||
}
|
||||
|
||||
if (hasFlags) {
|
||||
|
||||
@@ -39,7 +39,7 @@ int dAcOwaterSpout_c::create() {
|
||||
mScale.y *= 4.0f;
|
||||
}
|
||||
mMdl.getModel().setScale(mScale);
|
||||
boundingBox.Set(mVec3_c(-400.0f, -250.0f, -400.0f), mVec3_c(400.0f, 250.0f, 400.0f));
|
||||
mBoundingBox.Set(mVec3_c(-400.0f, -250.0f, -400.0f), mVec3_c(400.0f, 250.0f, 400.0f));
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
|
||||
@@ -110,14 +110,14 @@ void dBgS_Acch::Set(dAcObjBase_c *pObj, int tblSize, dBgS_AcchCir *pAcchCir) {
|
||||
mpMyObj = pObj;
|
||||
mActorId = pObj->getID();
|
||||
mpPos = &pObj->getPosition();
|
||||
mpOldPos = &pObj->GetOldPosition();
|
||||
mpSpeed = &pObj->GetVelocity();
|
||||
mpOldPos = &pObj->getOldPosition();
|
||||
mpSpeed = &pObj->getVelocity();
|
||||
if (mpSpeed) {
|
||||
mSpeed = pObj->GetVelocity();
|
||||
mSpeed = pObj->getVelocity();
|
||||
} else {
|
||||
mSpeed.set(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
mpAngle = &pObj->GetAngle();
|
||||
mpAngle = &pObj->getAngle();
|
||||
mpShapeAngle = &pObj->getRotation();
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ void dCcS::Dt() {
|
||||
|
||||
bool dCcS::ChkRemoveActor(dAcObjBase_c *pActor) {
|
||||
bool ret = false;
|
||||
if (pActor && (pActor->delete_request || pActor->lifecycle_state == fBase_c::TO_BE_DELETED)) {
|
||||
if (pActor && (pActor->mDeleteRequest || pActor->mLifecycleState == fBase_c::TO_BE_DELETED)) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@ u32 dBase_c::s_DrawControlFlags;
|
||||
u32 dBase_c::s_NextExecuteControlFlags;
|
||||
|
||||
dBase_c::dBase_c() : fBase_c() {
|
||||
mBaseProperties = (*fProfile::sProfileList)[profile_name]->mBaseProperties;
|
||||
mBaseProperties = (*fProfile::sProfileList)[mProfileName]->mBaseProperties;
|
||||
}
|
||||
|
||||
void dBase_c::postDraw(fBase_c::MAIN_STATE_e status) {
|
||||
@@ -53,7 +53,7 @@ void dBase_c::resetFlags() {
|
||||
}
|
||||
|
||||
bool dBase_c::isActorPlayer() {
|
||||
return profile_name == fProfile::PLAYER;
|
||||
return mProfileName == fProfile::PLAYER;
|
||||
}
|
||||
|
||||
int dBase_c::loadAsyncCallback() {
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ int dJntCol_c::init(dAcObjBase_c *i_actorP, dJntColData_c const *i_jntColP, m3d:
|
||||
field_0x10 = 0;
|
||||
|
||||
if (i_actorP) {
|
||||
i_actorP->SetJntCol(this);
|
||||
i_actorP->setJntCol(this);
|
||||
mpActor = i_actorP;
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -72,8 +72,8 @@ bool dLinkage_c::tryAttach(
|
||||
return false;
|
||||
}
|
||||
}
|
||||
pActor->clearObjectProperty(0x1000);
|
||||
pActor->clearObjectProperty(0x4);
|
||||
pActor->unsetObjectProperty(0x1000);
|
||||
pActor->unsetObjectProperty(0x4);
|
||||
mControllingActor.link(pSrc);
|
||||
mState = STATE_ACTIVE;
|
||||
mType = type;
|
||||
@@ -88,7 +88,7 @@ bool dLinkage_c::tryAttach(
|
||||
pLinkedActor = pRef;
|
||||
pRef->link(pActor);
|
||||
if ((pSrc == dAcPy_c::GetLink2() || type == CONNECTION_5) &&
|
||||
pActor->getConnectParent()->profile_name == fProfile::ROOM) {
|
||||
pActor->getConnectParent()->mProfileName == fProfile::ROOM) {
|
||||
pActor->addActorToRoom(-1);
|
||||
onFlag(0x20000000);
|
||||
pActor->setActorProperty(dAcBase_c::AC_PROP_0x2000000);
|
||||
@@ -110,9 +110,9 @@ void dLinkage_c::fn_80050E00(dAcObjBase_c *pActor, const f32 speed, const f32 ve
|
||||
|
||||
void dLinkage_c::fn_80050E40(dAcObjBase_c *pActor, const f32 speed, const f32 velocityY, mAng rot) {
|
||||
fn_80050EB0(pActor);
|
||||
pActor->forwardSpeed = speed;
|
||||
pActor->velocity.y = velocityY;
|
||||
pActor->angle.y = rot;
|
||||
pActor->mSpeed = speed;
|
||||
pActor->mVelocity.y = velocityY;
|
||||
pActor->mAngle.y = rot;
|
||||
}
|
||||
|
||||
void dLinkage_c::fn_80050EA0(dAcObjBase_c *pActor) {
|
||||
@@ -134,11 +134,11 @@ void dLinkage_c::fn_80050EB0(dAcObjBase_c *pActor) {
|
||||
MTXIdentity(carryTransMtx);
|
||||
} else if (mType == CONNECTION_4) {
|
||||
if (pActor) {
|
||||
pActor->clearObjectProperty(0x4);
|
||||
pActor->unsetObjectProperty(0x4);
|
||||
}
|
||||
} else if (mType == CONNECTION_7) {
|
||||
if (pActor) {
|
||||
pActor->clearObjectProperty(0x1000);
|
||||
pActor->unsetObjectProperty(0x1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ void dLinkage_c::fn_80051190(dAcObjBase_c *pActor) {
|
||||
|
||||
// If the Actor is linked to itself, return?
|
||||
dAcObjBase_c *pLinked = static_cast<dAcObjBase_c *>(pLinkedActor->p_owner);
|
||||
if (pLinked && &pLinked->GetLinkage() == this) {
|
||||
if (pLinked && &pLinked->getLinkage() == this) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -223,7 +223,7 @@ void dLinkage_c::fn_800511E0(dAcObjBase_c *pActor) {
|
||||
}
|
||||
mMtx_c &mtx = pActor->mWorldMtx;
|
||||
f32 y = field_0x1C * pActor->mScale.y;
|
||||
mtx.transS(pActor->getPosition().x, pActor->getPosition().y + pActor->GetYOffset(), pActor->getPosition().z);
|
||||
mtx.transS(pActor->getPosition().x, pActor->getPosition().y + pActor->getYOffset(), pActor->getPosition().z);
|
||||
if (mType == CONNECTION_1) {
|
||||
MTXConcat(mtx, carryTransMtx, mtx);
|
||||
}
|
||||
@@ -247,5 +247,5 @@ void dLinkage_c::fn_800511E0(dAcObjBase_c *pActor) {
|
||||
|
||||
bool dLinkage_c::fn_800513C0() const {
|
||||
return (mState == STATE_ACTIVE && (mType == CONNECTION_1 || mType == CONNECTION_6)) &&
|
||||
!(mControllingActor.p_owner && mControllingActor.p_owner->profile_name == fProfile::E_GEROCK);
|
||||
!(mControllingActor.p_owner && mControllingActor.p_owner->mProfileName == fProfile::E_GEROCK);
|
||||
}
|
||||
|
||||
@@ -80,11 +80,11 @@ void daPlayerActBase_c::setPosRot(const mVec3_c *pos, const mAng3_c *rot, bool f
|
||||
if (pos != nullptr) {
|
||||
mPosition = *pos;
|
||||
mOldPosition = mPosition;
|
||||
velocity.y = 0.0f;
|
||||
mVelocity.y = 0.0f;
|
||||
}
|
||||
if (rot != nullptr) {
|
||||
mRotation = *rot;
|
||||
angle.y = mRotation.y;
|
||||
mAngle.y = mRotation.y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user