mirror of https://github.com/zeldaret/tp.git
e_pm, e_fs, obj_sm_door, obj_smw_stone (#2244)
This commit is contained in:
parent
7c20cdb8b3
commit
f4ee3b5ec2
|
|
@ -1985,12 +1985,12 @@ config.libs = [
|
|||
ActorRel(Matching, "d_a_obj_sekizo"),
|
||||
ActorRel(NonMatching, "d_a_obj_sekizoa"),
|
||||
ActorRel(NonMatching, "d_a_obj_shield"),
|
||||
ActorRel(NonMatching, "d_a_obj_sm_door"),
|
||||
ActorRel(Equivalent, "d_a_obj_sm_door"),
|
||||
ActorRel(NonMatching, "d_a_obj_smallkey"),
|
||||
ActorRel(NonMatching, "d_a_obj_smgdoor"),
|
||||
ActorRel(Matching, "d_a_obj_smoke"),
|
||||
ActorRel(NonMatching, "d_a_obj_smtile"),
|
||||
ActorRel(NonMatching, "d_a_obj_smw_stone"),
|
||||
ActorRel(Matching, "d_a_obj_smw_stone"),
|
||||
ActorRel(Matching, "d_a_obj_snowEffTag"),
|
||||
ActorRel(Matching, "d_a_obj_snow_soup"),
|
||||
ActorRel(NonMatching, "d_a_obj_so"),
|
||||
|
|
|
|||
|
|
@ -3511,6 +3511,7 @@ public:
|
|||
u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); }
|
||||
s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); }
|
||||
SongNote getCorrectLine(u8 param_0) { return mZ2WolfHowlMgr.getCorrectLine(param_0); }
|
||||
void startWindStoneSound(s8 id, Vec* pos) { mZ2WolfHowlMgr.startWindStoneSound(id, pos); }
|
||||
J3DModelData* getItemModelData() { return mpItemModelData; }
|
||||
|
||||
cXyz* getIronBallChainPos() const { return mIronBallChainPos; }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
#ifndef D_A_E_FS_H
|
||||
#define D_A_E_FS_H
|
||||
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
|
@ -11,16 +16,64 @@
|
|||
*
|
||||
*/
|
||||
class e_fs_class : public fopEn_enemy_c {
|
||||
private:
|
||||
/* 0x5ac */ u8 field_0x5ac[0xb9c - 0x5ac];
|
||||
public:
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ u8 field_0x5b4;
|
||||
/* 0x5B5 */ u8 field_0x5b5;
|
||||
/* 0x5B6 */ u8 field_0x5b6;
|
||||
/* 0x5B7 */ u8 field_0x5b7;
|
||||
/* 0x5B8 */ cXyz mPlayerPos;
|
||||
/* 0x5C4 */ s16 mTargetAngleY;
|
||||
/* 0x5C6 */ s16 mPlayerAngleY;
|
||||
/* 0x5C8 */ f32 mPlayerDistXZ;
|
||||
/* 0x5CC */ u8 field_0x5cc[0x5D0 - 0x5CC];
|
||||
/* 0x5D0 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x5D4 */ Z2CreatureEnemy mCreatureSound;
|
||||
/* 0x678 */ u32 mAnm;
|
||||
/* 0x67C */ s16 mFrameCounter;
|
||||
/* 0x67E */ s16 mAction;
|
||||
/* 0x680 */ s16 mMode;
|
||||
/* 0x684 */ u32 mShadowKey;
|
||||
/* 0x688 */ s16 mTimer[4];
|
||||
/* 0x690 */ s16 mIFrameTimer;
|
||||
/* 0x692 */ s8 field_0x692;
|
||||
/* 0x694 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x6D4 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x8AC */ dCcD_Stts mCcStts;
|
||||
/* 0x8E8 */ dCcD_Cyl mCcCyl;
|
||||
/* 0xA24 */ dCcD_Sph mAtSph;
|
||||
/* 0xB5C */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xB80 */ u32 mSmokeKey1;
|
||||
/* 0xB84 */ u32 mSmokeKey2;
|
||||
/* 0xB88 */ u32 mParticleKey[4];
|
||||
/* 0xB98 */ bool mHIOInit;
|
||||
|
||||
enum Action {
|
||||
/* 0x0 */ ACT_APPEAR,
|
||||
/* 0x1 */ ACT_WAIT,
|
||||
/* 0x2 */ ACT_MOVE,
|
||||
/* 0x3 */ ACT_ATTACK,
|
||||
/* 0x4 */ ACT_DAMAGE,
|
||||
/* 0x5 */ ACT_END,
|
||||
/* 0xA */ ACT_DEMOWAIT = 10,
|
||||
};
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(e_fs_class) == 0xb9c);
|
||||
STATIC_ASSERT(sizeof(e_fs_class) == 0xB9C);
|
||||
|
||||
class daE_Fs_HIO_c {
|
||||
public:
|
||||
/* 806BBACC */ daE_Fs_HIO_c();
|
||||
/* 806BDF94 */ ~daE_Fs_HIO_c();
|
||||
/* 806BDF94 */ virtual ~daE_Fs_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 mScale;
|
||||
/* 0x0C */ f32 mAttackRange;
|
||||
/* 0x10 */ f32 mAttackDistance;
|
||||
/* 0x14 */ f32 mMoveSpeedRatio;
|
||||
/* 0x18 */ f32 mDeleteRange;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_Fs_HIO_c) == 0x1C);
|
||||
|
||||
#endif /* D_A_E_FS_H */
|
||||
|
|
|
|||
|
|
@ -1,7 +1,15 @@
|
|||
#ifndef D_A_E_PM_H
|
||||
#define D_A_E_PM_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "d/d_msg_flow.h"
|
||||
|
||||
class dPath;
|
||||
|
||||
/**
|
||||
* @ingroup actors-enemies
|
||||
|
|
@ -14,20 +22,20 @@
|
|||
class daE_PM_c : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 80741FB4 */ void DemoSkip(int);
|
||||
/* 80742004 */ void DemoSkipCallBack(void*, int);
|
||||
/* 80742038 */ void CreateHeap();
|
||||
/* 80742004 */ static int DemoSkipCallBack(void*, int);
|
||||
/* 80742038 */ int CreateHeap();
|
||||
/* 80742448 */ void initCcCylinder();
|
||||
/* 807424C0 */ void setCcCylinder();
|
||||
/* 80742508 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80742508 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80742600 */ void Particle_Set(u16, cXyz);
|
||||
/* 80742674 */ void SetAnm(int, int, f32, f32);
|
||||
/* 80742810 */ void Yazirushi();
|
||||
/* 807428A8 */ void SearchRndP();
|
||||
/* 80742958 */ void SearchFarP();
|
||||
/* 80742C94 */ void SearchNearP();
|
||||
/* 80742E1C */ void SearchNextPos();
|
||||
/* 80742E1C */ BOOL SearchNextPos();
|
||||
/* 80742FB4 */ void SetGakkiEffect();
|
||||
/* 807430C4 */ void CameraSet();
|
||||
/* 807430C4 */ bool CameraSet();
|
||||
/* 80743210 */ void SetStopingCam();
|
||||
/* 80743294 */ void SetStopCam(cXyz, f32, f32, s16);
|
||||
/* 807433E8 */ void SetMoveCam2(f32, f32);
|
||||
|
|
@ -52,7 +60,7 @@ public:
|
|||
/* 80747F38 */ void BossWaitAction();
|
||||
/* 807480A4 */ void BossDeathAction();
|
||||
/* 80748964 */ void BossAction();
|
||||
/* 80748B18 */ void Execute();
|
||||
/* 80748B18 */ int Execute();
|
||||
/* 80748D74 */ void StartAction();
|
||||
/* 8074954C */ void GakkiLoopAction(cXyz, f32);
|
||||
/* 807499C0 */ void DemoCreateAction();
|
||||
|
|
@ -63,28 +71,116 @@ public:
|
|||
/* 8074A210 */ void At_Check();
|
||||
/* 8074A3DC */ void ObjHit();
|
||||
/* 8074A644 */ void EyeMove();
|
||||
/* 8074A6CC */ void Draw();
|
||||
/* 8074AAC0 */ void Delete();
|
||||
/* 8074A6CC */ int Draw();
|
||||
/* 8074AAC0 */ int Delete();
|
||||
/* 8074AB28 */ void setBaseMtx();
|
||||
/* 8074ABA8 */ void setGakkiBaseMtx();
|
||||
/* 8074AC10 */ void setLampBaseMtx();
|
||||
/* 8074AEF8 */ void SkipChk();
|
||||
/* 8074B4DC */ void Create();
|
||||
/* 8074B4DC */ cPhs__Step Create();
|
||||
|
||||
void AppearSet() { mAppear = true; }
|
||||
u8 ActionChk() { return mPuppetDelete; }
|
||||
u8 SwitchChk() { return mStage; }
|
||||
u8 DoorChk() { return mDoorAction; }
|
||||
|
||||
private:
|
||||
/* 0x5AC */ u8 field_0x5ac[0x619 - 0x5AC];
|
||||
/* 0x5AC */ fpc_ProcID mPuppetID[4];
|
||||
/* 0x5BC */ u8 field_0x5bc[0x5DC - 0x5BC];
|
||||
/* 0x5DC */ u8 mDoorAction;
|
||||
/* 0x5E0 */ dPath* mpPath;
|
||||
/* 0x5E4 */ cXyz mPoint;
|
||||
/* 0x5F0 */ u8 mPathIndex;
|
||||
/* 0x5F4 */ int mPointIndex;
|
||||
/* 0x5F8 */ u8 mBossHealth;
|
||||
/* 0x5FC */ f32 field_0x5fc;
|
||||
/* 0x600 */ u8 mPuppetNum;
|
||||
/* 0x602 */ s16 mTargetAngleY;
|
||||
/* 0x604 */ s16 mHeadAngleX;
|
||||
/* 0x606 */ s16 mHeadAngleZ;
|
||||
/* 0x608 */ s16 mTargetHeadAngleX;
|
||||
/* 0x60C */ f32 mTargetSpeed;
|
||||
/* 0x610 */ u8 mAction;
|
||||
/* 0x611 */ u8 mMode;
|
||||
/* 0x612 */ u8 mDemoMode;
|
||||
/* 0x613 */ u8 field_0x613;
|
||||
/* 0x614 */ u8 mPuppetDelete;
|
||||
/* 0x616 */ s16 mIFrameTimer;
|
||||
/* 0x618 */ u8 field_0x618;
|
||||
/* 0x619 */ bool mAppear;
|
||||
/* 0x61A */ u8 field_0x61a[0xb7c - 0x61a];
|
||||
/* 0x61A */ u8 mStage;
|
||||
/* 0x61B */ u8 mSwBit;
|
||||
/* 0x61C */ int mAnm;
|
||||
/* 0x620 */ s16 mTimer[4];
|
||||
/* 0x628 */ u32 mParticleKey;
|
||||
/* 0x62C */ u32 mGakkiParticleKey[3];
|
||||
/* 0x638 */ u32 mLampParticleKey;
|
||||
/* 0x63C */ dMsgFlow_c mMsgFlow;
|
||||
/* 0x688 */ u8 mEyeAnmTimer;
|
||||
/* 0x689 */ u8 mEyeAnmFrame;
|
||||
/* 0x68C */ cXyz mCamCenter;
|
||||
/* 0x698 */ cXyz mCamEye;
|
||||
/* 0x6A4 */ cXyz mCamCenterTarget;
|
||||
/* 0x6B0 */ cXyz mCamEyeTarget;
|
||||
/* 0x6BC */ cXyz mCamCenterTarget2;
|
||||
/* 0x6C8 */ cXyz mCamEyeTarget2;
|
||||
/* 0x6D4 */ f32 mCamFovY;
|
||||
/* 0x6D8 */ bool mSecondEncounter;
|
||||
/* 0x6DC */ cXyz mOldLampPosition;
|
||||
/* 0x6E8 */ cXyz mLampPosition;
|
||||
/* 0x6F4 */ csXyz mLampAngle;
|
||||
/* 0x6FA */ s16 field_0x6fa;
|
||||
/* 0x6FC */ s16 field_0x6fc;
|
||||
/* 0x6FE */ bool mBossLightOn;
|
||||
/* 0x6FF */ bool field_0x6ff;
|
||||
/* 0x700 */ mDoExt_btpAnm* mpEyeAnm;
|
||||
/* 0x704 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x708 */ mDoExt_McaMorf* mpTrumpetMorf;
|
||||
/* 0x70C */ J3DModel* mpLampModel;
|
||||
/* 0x710 */ mDoExt_McaMorf* mpGlowEffectMorf;
|
||||
/* 0x714 */ request_of_phase_process_class mPhase;
|
||||
/* 0x71C */ u32 mShadowKey;
|
||||
/* 0x720 */ Z2CreatureEnemy mCreatureSound;
|
||||
/* 0x7C4 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x804 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x9DC */ dCcD_Stts mCcStts;
|
||||
/* 0xA18 */ dCcD_Cyl mCcCyl;
|
||||
/* 0xB54 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0xB78 */ bool mHIOInit;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_PM_c) == 0xb7c);
|
||||
STATIC_ASSERT(sizeof(daE_PM_c) == 0xB7C);
|
||||
|
||||
class daE_PM_HIO_c {
|
||||
public:
|
||||
/* 80741EEC */ daE_PM_HIO_c();
|
||||
/* 8074BA68 */ ~daE_PM_HIO_c();
|
||||
/* 8074BA68 */ virtual ~daE_PM_HIO_c() {}
|
||||
|
||||
/* 0x04 */ s8 field_0x4;
|
||||
/* 0x08 */ f32 mLampParticleScale;
|
||||
/* 0x0C */ f32 mGlowEffectScale;
|
||||
/* 0x10 */ f32 mEscapeRange;
|
||||
/* 0x14 */ s16 mGlowColor1R;
|
||||
/* 0x16 */ s16 mGlowColor1G;
|
||||
/* 0x18 */ s16 mGlowColor1B;
|
||||
/* 0x1A */ s16 mGlowColor2R;
|
||||
/* 0x1C */ s16 mGlowColor2G;
|
||||
/* 0x1E */ s16 mGlowColor2B;
|
||||
/* 0x20 */ s16 mGlowColor1A;
|
||||
/* 0x22 */ s16 mBossEscapeTimer;
|
||||
/* 0x24 */ s16 field_0x24;
|
||||
/* 0x26 */ s16 mAdditionalPuppetNum;
|
||||
/* 0x28 */ f32 mCreateTimer;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 mBossLightR;
|
||||
/* 0x3C */ f32 mBossLightG;
|
||||
/* 0x40 */ f32 mBossLightB;
|
||||
/* 0x44 */ f32 field_0x44;
|
||||
/* 0x48 */ f32 field_0x48;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_PM_HIO_c) == 0x4C);
|
||||
|
||||
#endif /* D_A_E_PM_H */
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
#ifndef D_A_OBJ_SM_DOOR_H
|
||||
#define D_A_OBJ_SM_DOOR_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_cc_uty.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
|
@ -11,24 +15,41 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjSM_DOOR_c : public fopAc_ac_c {
|
||||
class daObjSM_DOOR_c : public dBgS_MoveBgActor {
|
||||
public:
|
||||
/* 80CD8784 */ void ChangeModel();
|
||||
/* 80CD8790 */ void Action();
|
||||
/* 80CD8A40 */ void SetDzb();
|
||||
/* 80CD8A90 */ void ReleaceDzb();
|
||||
/* 80CD8A40 */ int SetDzb();
|
||||
/* 80CD8A90 */ int ReleaceDzb();
|
||||
/* 80CD8AF8 */ void DrawChk1();
|
||||
/* 80CD8BBC */ void DrawChk2();
|
||||
/* 80CD8C80 */ void setBaseMtx();
|
||||
/* 80CD8D4C */ void create();
|
||||
/* 80CD90A4 */ void CreateHeap();
|
||||
/* 80CD9258 */ void Create();
|
||||
/* 80CD929C */ void Execute(f32 (**)[3][4]);
|
||||
/* 80CD930C */ void Draw();
|
||||
/* 80CD9544 */ void Delete();
|
||||
/* 80CD8D4C */ cPhs__Step create();
|
||||
/* 80CD90A4 */ int CreateHeap();
|
||||
/* 80CD9258 */ int Create();
|
||||
/* 80CD929C */ int Execute(Mtx**);
|
||||
/* 80CD930C */ int Draw();
|
||||
/* 80CD9544 */ int Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x858 - 0x568];
|
||||
/* 0x5A0 */ bool mUseAlphaModel;
|
||||
/* 0x5A1 */ u8 field_0x5a1[0x5AC - 0x5A1];
|
||||
/* 0x5AC */ s16 mMode;
|
||||
/* 0x5AE */ u8 field_0x5ae[0x5B8 - 0x5AE];
|
||||
/* 0x5B8 */ u8 mAlpha;
|
||||
/* 0x5B9 */ u8 mType;
|
||||
/* 0x5BA */ u8 mSwType;
|
||||
/* 0x5BB */ u8 mSwBit;
|
||||
/* 0x5BC */ bool mActive;
|
||||
/* 0x5BD */ u8 field_0x5bd[0x5CC - 0x5BD];
|
||||
/* 0x5CC */ J3DModel* mpModel;
|
||||
/* 0x5D0 */ J3DModel* mpAlphaModel;
|
||||
/* 0x5D4 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5DC */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x61C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x7F4 */ dCcD_Stts mCcStts;
|
||||
/* 0x830 */ dCcU_AtInfo mAtInfo;
|
||||
/* 0x854 */ u8 field_0x854[0x858 - 0x854];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjSM_DOOR_c) == 0x858);
|
||||
|
|
|
|||
|
|
@ -11,24 +11,33 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daSmWStone_c : public fopAc_ac_c {
|
||||
class daSmWStone_c : public fopAc_ac_c, public request_of_phase_process_class {
|
||||
public:
|
||||
/* 80CDE538 */ daSmWStone_c();
|
||||
/* 80CDE588 */ ~daSmWStone_c();
|
||||
/* 80CDE614 */ void create();
|
||||
/* 80CDE8D8 */ void execute();
|
||||
/* 80CDE92C */ void draw();
|
||||
/* 80CDEA2C */ void Delete();
|
||||
/* 80CDE588 */ virtual ~daSmWStone_c();
|
||||
/* 80CDE614 */ cPhs__Step create();
|
||||
/* 80CDE8D8 */ int execute();
|
||||
/* 80CDE92C */ int draw();
|
||||
/* 80CDEA2C */ int Delete();
|
||||
/* 80CDEAA4 */ void exeModeHowl();
|
||||
/* 80CDEBA0 */ void setModelMtx();
|
||||
/* 80CDEC04 */ void createHeap();
|
||||
/* 80CDEC04 */ int createHeap();
|
||||
/* 80CDED30 */ void init();
|
||||
/* 80CDED9C */ void chkWlfInRange();
|
||||
/* 80CDED9C */ bool chkWlfInRange();
|
||||
|
||||
int getTuneId() { return 2; }
|
||||
u8 getSwBit0() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
void deleteStone() { mDelete = true; }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x5c8 - 0x568];
|
||||
/* 0x574 */ cBgS_PolyInfo mPolyInfo;
|
||||
/* 0x584 */ J3DModel* mpModel;
|
||||
/* 0x588 */ dBgW* mpBgW;
|
||||
/* 0x58C */ Mtx mBgMtx;
|
||||
/* 0x5BC */ f32 mGroundH;
|
||||
/* 0x5C0 */ u32 mShadowKey;
|
||||
/* 0x5C4 */ u8 mMode;
|
||||
/* 0x5C5 */ bool mDelete;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daSmWStone_c) == 0x5c8);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public:
|
|||
public:
|
||||
cBgS() {}
|
||||
bool Regist(dBgW_Base*, fpc_ProcID, void*);
|
||||
int Release(dBgW_Base*);
|
||||
bool Release(dBgW_Base*);
|
||||
bool LineCross(cBgS_LinChk*);
|
||||
f32 GroundCross(cBgS_GndChk*);
|
||||
static void* ConvDzb(void*);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
// NONMATCHING ?
|
||||
static int setMidnaBindEffect(fopEn_enemy_c* i_actorP, Z2CreatureEnemy* i_creatureP, cXyz* i_effPos,
|
||||
cXyz* i_effSize) {
|
||||
static GXColor e_prim[] = {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,304 +1,316 @@
|
|||
/**
|
||||
* @file d_a_obj_sm_door.cpp
|
||||
*
|
||||
* Object - Sacred Meadow Door
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_sm_door.h"
|
||||
#include "dol2asm.h"
|
||||
#include "JSystem/J3DGraphBase/J3DMaterial.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/actor/d_a_e_pm.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daObjSM_DOOR_Create__FP10fopAc_ac_c();
|
||||
extern "C" static void daObjSM_DOOR_Delete__FP14daObjSM_DOOR_c();
|
||||
extern "C" static void s_obj_sub__FPvPv();
|
||||
extern "C" void ChangeModel__14daObjSM_DOOR_cFv();
|
||||
extern "C" void Action__14daObjSM_DOOR_cFv();
|
||||
extern "C" void SetDzb__14daObjSM_DOOR_cFv();
|
||||
extern "C" void ReleaceDzb__14daObjSM_DOOR_cFv();
|
||||
extern "C" void DrawChk1__14daObjSM_DOOR_cFv();
|
||||
extern "C" void DrawChk2__14daObjSM_DOOR_cFv();
|
||||
extern "C" void setBaseMtx__14daObjSM_DOOR_cFv();
|
||||
extern "C" static void daObjSM_DOOR_Draw__FP14daObjSM_DOOR_c();
|
||||
extern "C" static void daObjSM_DOOR_Execute__FP14daObjSM_DOOR_c();
|
||||
extern "C" void create__14daObjSM_DOOR_cFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" static bool daObjSM_DOOR_IsDelete__FP14daObjSM_DOOR_c();
|
||||
extern "C" void CreateHeap__14daObjSM_DOOR_cFv();
|
||||
extern "C" void Create__14daObjSM_DOOR_cFv();
|
||||
extern "C" void Execute__14daObjSM_DOOR_cFPPA3_A4_f();
|
||||
extern "C" void Draw__14daObjSM_DOOR_cFv();
|
||||
extern "C" void Delete__14daObjSM_DOOR_cFv();
|
||||
extern "C" static void func_80CD9578();
|
||||
extern "C" static void func_80CD9580();
|
||||
extern "C" extern char const* const d_a_obj_sm_door__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
|
||||
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void fopAc_IsActor__FPv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
|
||||
extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz();
|
||||
extern "C" void fpcEx_Search__FPFPvPv_PvPv();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void getObjectResName2Index__14dRes_control_cFPCcPCc();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void __ct__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
|
||||
extern "C" void
|
||||
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
|
||||
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" f32 mGroundY__11fopAcM_gc_c;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
/* 80CD968C-80CD9690 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
static char* l_arcName = "sm_door";
|
||||
|
||||
/* 80CD85B8-80CD85D8 000078 0020+00 1/0 0/0 0/0 .text daObjSM_DOOR_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
static void daObjSM_DOOR_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
static cPhs__Step daObjSM_DOOR_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjSM_DOOR_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 80CD85D8-80CD85FC 000098 0024+00 1/0 0/0 0/0 .text daObjSM_DOOR_Delete__FP14daObjSM_DOOR_c */
|
||||
static void daObjSM_DOOR_Delete(daObjSM_DOOR_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjSM_DOOR_Delete(daObjSM_DOOR_c* i_this) {
|
||||
i_this->MoveBGDelete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CD9590-80CD9598 000000 0004+04 4/4 0/0 0/0 .rodata @3697 */
|
||||
SECTION_RODATA static u8 const lit_3697[4 + 4 /* padding */] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CD9590, &lit_3697);
|
||||
|
||||
/* 80CD9598-80CD95A0 000008 0008+00 0/2 0/0 0/0 .rodata @3698 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3698[8] = {
|
||||
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CD9598, &lit_3698);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95A0-80CD95A8 000010 0008+00 0/2 0/0 0/0 .rodata @3699 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3699[8] = {
|
||||
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CD95A0, &lit_3699);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95A8-80CD95B0 000018 0008+00 0/2 0/0 0/0 .rodata @3700 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3700[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CD95A8, &lit_3700);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95B0-80CD95B4 000020 0004+00 0/1 0/0 0/0 .rodata @3701 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3701 = 800.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95B0, &lit_3701);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD85FC-80CD8784 0000BC 0188+00 1/1 0/0 0/0 .text s_obj_sub__FPvPv */
|
||||
static void s_obj_sub(void* param_0, void* param_1) {
|
||||
// NONMATCHING
|
||||
static void* s_obj_sub(void* i_actor, void* i_this) {
|
||||
fopAc_ac_c* actor = static_cast<fopAc_ac_c*>(i_actor);
|
||||
fopAc_ac_c* _this = static_cast<fopAc_ac_c*>(i_this);
|
||||
cXyz& actor_pos = fopAcM_GetPosition(actor);
|
||||
cXyz& pos = fopAcM_GetPosition(_this);
|
||||
if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_PM
|
||||
&& actor_pos.absXZ(pos) < 800.0f)
|
||||
{
|
||||
return i_actor;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80CD8784-80CD8790 000244 000C+00 1/1 0/0 0/0 .text ChangeModel__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::ChangeModel() {
|
||||
// NONMATCHING
|
||||
mUseAlphaModel = true;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CD95B4-80CD95B8 000024 0004+00 0/2 0/0 0/0 .rodata @3753 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3753 = 1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95B4, &lit_3753);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95B8-80CD95BC 000028 0004+00 0/1 0/0 0/0 .rodata @3829 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3829 = 600.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95B8, &lit_3829);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95BC-80CD95C0 00002C 0004+00 0/1 0/0 0/0 .rodata @3830 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3830 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95BC, &lit_3830);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95C0-80CD95C4 000030 0004+00 0/1 0/0 0/0 .rodata @3831 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3831 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95C0, &lit_3831);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95C4-80CD95C8 000034 0004+00 0/1 0/0 0/0 .rodata @3832 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3832 = 3.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95C4, &lit_3832);
|
||||
#pragma pop
|
||||
|
||||
/* 80CD95C8-80CD95D0 000038 0008+00 0/1 0/0 0/0 .rodata @3834 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3834[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CD95C8, &lit_3834);
|
||||
#pragma pop
|
||||
f32 dummy_literal() {
|
||||
return 1000.0f;
|
||||
}
|
||||
|
||||
/* 80CD8790-80CD8A40 000250 02B0+00 1/1 0/0 0/0 .text Action__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::Action() {
|
||||
// NONMATCHING
|
||||
switch (mMode) {
|
||||
case 0: {
|
||||
daE_PM_c* skullkid = (daE_PM_c*)fpcM_Search(s_obj_sub, this);
|
||||
if (skullkid != NULL) {
|
||||
if (skullkid->DoorChk() == 2) {
|
||||
ChangeModel();
|
||||
mMode++;
|
||||
}
|
||||
if (skullkid->DoorChk() == 5) {
|
||||
fopAcM_delete(this);
|
||||
fopAcM_delete(skullkid);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 1: {
|
||||
daE_PM_c* skullkid = (daE_PM_c*)fpcM_Search(s_obj_sub, this);
|
||||
if (skullkid != NULL) {
|
||||
if (current.pos.absXZ(fopAcM_GetPosition(skullkid)) < 600.0f) {
|
||||
Z2GetAudioMgr()->seStart(Z2SE_OBJ_PM_WALL_FADEAWAY, ¤t.pos,
|
||||
0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
|
||||
mMode++;
|
||||
ReleaceDzb();
|
||||
}
|
||||
if (skullkid->DoorChk() == 5) {
|
||||
fopAcM_delete(this);
|
||||
fopAcM_delete(skullkid);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
mAlpha -= 3.0f;
|
||||
if (mAlpha < 4) {
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CD8A40-80CD8A90 000500 0050+00 2/2 0/0 0/0 .text SetDzb__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::SetDzb() {
|
||||
// NONMATCHING
|
||||
int daObjSM_DOOR_c::SetDzb() {
|
||||
if (mpBgW != NULL && dComIfG_Bgsp().Regist(mpBgW, this)) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD8A90-80CD8AF8 000550 0068+00 3/3 0/0 0/0 .text ReleaceDzb__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::ReleaceDzb() {
|
||||
// NONMATCHING
|
||||
int daObjSM_DOOR_c::ReleaceDzb() {
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed() && dComIfG_Bgsp().Release(mpBgW)) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD8AF8-80CD8BBC 0005B8 00C4+00 1/1 0/0 0/0 .text DrawChk1__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::DrawChk1() {
|
||||
// NONMATCHING
|
||||
if (mSwBit != 0xff && dComIfGs_isSwitch(mSwBit, fopAcM_GetRoomNo(this)) && mActive == false) {
|
||||
if (SetDzb()) {
|
||||
mActive = true;
|
||||
}
|
||||
} else if (mSwBit != 0xff && !dComIfGs_isSwitch(mSwBit, fopAcM_GetRoomNo(this))
|
||||
&& mActive == true) {
|
||||
if (ReleaceDzb()) {
|
||||
mActive = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CD8BBC-80CD8C80 00067C 00C4+00 1/1 0/0 0/0 .text DrawChk2__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::DrawChk2() {
|
||||
// NONMATCHING
|
||||
if (mSwBit != 0xff && !dComIfGs_isSwitch(mSwBit, fopAcM_GetRoomNo(this)) && mActive == false) {
|
||||
if (SetDzb()) {
|
||||
mActive = true;
|
||||
}
|
||||
} else if (mSwBit != 0xff && dComIfGs_isSwitch(mSwBit, fopAcM_GetRoomNo(this))
|
||||
&& mActive == true) {
|
||||
if (ReleaceDzb()) {
|
||||
mActive = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CD8C80-80CD8D00 000740 0080+00 1/1 0/0 0/0 .text setBaseMtx__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
if (!mUseAlphaModel) {
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
} else {
|
||||
mpAlphaModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80CD8D00-80CD8D2C 0007C0 002C+00 1/0 0/0 0/0 .text daObjSM_DOOR_Draw__FP14daObjSM_DOOR_c */
|
||||
static void daObjSM_DOOR_Draw(daObjSM_DOOR_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjSM_DOOR_Draw(daObjSM_DOOR_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 80CD8D2C-80CD8D4C 0007EC 0020+00 2/1 0/0 0/0 .text daObjSM_DOOR_Execute__FP14daObjSM_DOOR_c */
|
||||
static void daObjSM_DOOR_Execute(daObjSM_DOOR_c* param_0) {
|
||||
// NONMATCHING
|
||||
static int daObjSM_DOOR_Execute(daObjSM_DOOR_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CD95D0-80CD95D4 000040 0004+00 0/1 0/0 0/0 .rodata @4060 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4060 = -9.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95D0, &lit_4060);
|
||||
#pragma pop
|
||||
/* 80CD8D4C-80CD902C 00080C 02E0+00 1/1 0/0 0/0 .text create__14daObjSM_DOOR_cFv */
|
||||
cPhs__Step daObjSM_DOOR_c::create() {
|
||||
fopAcM_SetupActor(this, daObjSM_DOOR_c);
|
||||
cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhase, l_arcName);
|
||||
|
||||
/* 80CD95D4-80CD95D8 000044 0004+00 0/1 0/0 0/0 .rodata @4061 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4061 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95D4, &lit_4061);
|
||||
#pragma pop
|
||||
if (step == cPhs_COMPLEATE_e) {
|
||||
gravity = -9.0f;
|
||||
mActive = true;
|
||||
mType = fopAcM_GetParam(this) & 0xF;
|
||||
mSwType = (fopAcM_GetParam(this) >> 4) & 0xF;
|
||||
mUseAlphaModel = false;
|
||||
|
||||
/* 80CD95D8-80CD95DC 000048 0004+00 0/2 0/0 0/0 .rodata @4062 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4062 = -1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95D8, &lit_4062);
|
||||
#pragma pop
|
||||
int dzb_id;
|
||||
if (mType == 0) {
|
||||
mType = 0;
|
||||
dzb_id = dComIfG_getObjctResName2Index(l_arcName, "A_SM_DoorA.dzb");
|
||||
} else if (mType == 1) {
|
||||
mType = 1;
|
||||
dzb_id = dComIfG_getObjctResName2Index(l_arcName, "A_SM_DoorBl.dzb");
|
||||
} else if (mType == 2) {
|
||||
mType = 2;
|
||||
dzb_id = dComIfG_getObjctResName2Index(l_arcName, "A_SM_DoorWo.dzb");
|
||||
} else {
|
||||
mType = 0;
|
||||
dzb_id = dComIfG_getObjctResName2Index(l_arcName, "A_SM_DoorA.dzb");
|
||||
}
|
||||
|
||||
/* 80CD95DC-80CD95E0 00004C 0004+00 0/2 0/0 0/0 .rodata @4063 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4063 = -500.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95DC, &lit_4063);
|
||||
#pragma pop
|
||||
mSwBit = fopAcM_GetParam(this) >> 8;
|
||||
|
||||
/* 80CD95E0-80CD95E4 000050 0004+00 0/2 0/0 0/0 .rodata @4064 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4064 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80CD95E0, &lit_4064);
|
||||
#pragma pop
|
||||
step = (cPhs__Step)MoveBGCreate(l_arcName, dzb_id, dBgS_MoveBGProc_TypicalRotY,
|
||||
0x1F20, NULL);
|
||||
if (step == cPhs_ERROR_e) {
|
||||
return step;
|
||||
}
|
||||
|
||||
/* 80CD95E4-80CD95E4 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CD95E4 = "sm_door";
|
||||
SECTION_DEAD static char const* const stringBase_80CD95EC = "A_SM_DoorA.dzb";
|
||||
SECTION_DEAD static char const* const stringBase_80CD95FB = "A_SM_DoorBl.dzb";
|
||||
SECTION_DEAD static char const* const stringBase_80CD960B = "A_SM_DoorWo.dzb";
|
||||
#pragma pop
|
||||
fopAcM_SetMtx(this, mpAlphaModel->getBaseTRMtx());
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
mAlpha = 0xff;
|
||||
cXyz pos(current.pos.x, current.pos.y + 100.0f, current.pos.z);
|
||||
if (fopAcM_gc_c::gndCheck(&pos)) {
|
||||
current.pos.y = fopAcM_gc_c::getGroundY();
|
||||
}
|
||||
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f);
|
||||
|
||||
/* 80CD968C-80CD9690 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_sm_door__stringBase0;
|
||||
daObjSM_DOOR_Execute(this);
|
||||
}
|
||||
|
||||
return step;
|
||||
}
|
||||
|
||||
/* 80CD909C-80CD90A4 000B5C 0008+00 1/0 0/0 0/0 .text daObjSM_DOOR_IsDelete__FP14daObjSM_DOOR_c */
|
||||
static int daObjSM_DOOR_IsDelete(daObjSM_DOOR_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */
|
||||
int daObjSM_DOOR_c::CreateHeap() {
|
||||
J3DModelData* model_data;
|
||||
J3DModelData* alpha_model_data;
|
||||
|
||||
if (mType == 0) {
|
||||
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA.bmd");
|
||||
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA_Alpha.bmd");
|
||||
} else if (mType == 1) {
|
||||
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl.bmd");
|
||||
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl_Alpha.bmd");
|
||||
} else if (mType == 2) {
|
||||
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo.bmd");
|
||||
alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo_Alpha.bmd");
|
||||
}
|
||||
|
||||
mpAlphaModel = mDoExt_J3DModel__create(alpha_model_data, 0x80000, 0x11000084);
|
||||
if (mpAlphaModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD9258-80CD929C 000D18 0044+00 1/0 0/0 0/0 .text Create__14daObjSM_DOOR_cFv */
|
||||
int daObjSM_DOOR_c::Create() {
|
||||
fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f);
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 80CD929C-80CD930C 000D5C 0070+00 1/0 0/0 0/0 .text Execute__14daObjSM_DOOR_cFPPA3_A4_f
|
||||
*/
|
||||
int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) {
|
||||
if (mSwType == 0xF) {
|
||||
DrawChk1();
|
||||
} else if (mSwType == 0) {
|
||||
DrawChk2();
|
||||
}
|
||||
|
||||
Action();
|
||||
*i_mtxP = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD930C-80CD9544 000DCC 0238+00 1/0 0/0 0/0 .text Draw__14daObjSM_DOOR_cFv */
|
||||
int daObjSM_DOOR_c::Draw() {
|
||||
if (mActive) {
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr);
|
||||
|
||||
if (!mUseAlphaModel) {
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
dComIfGd_setListDarkBG();
|
||||
J3DModelData* model_data = mpModel->getModelData();
|
||||
for (u16 i = 0; i < model_data->getMaterialNum(); i++) {
|
||||
model_data->getMaterialNodePointer(i)->getTevKColor(3)->a = mAlpha;
|
||||
}
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
for (u16 i = 0; i < model_data->getMaterialNum(); i++) {
|
||||
model_data->getMaterialNodePointer(i)->getTevKColor(0)->a = 0xFF;
|
||||
}
|
||||
} else {
|
||||
g_env_light.setLightTevColorType_MAJI(mpAlphaModel, &tevStr);
|
||||
dComIfGd_setListDarkBG();
|
||||
J3DModelData* model_data = mpAlphaModel->getModelData();
|
||||
for (u16 i = 0; i < model_data->getMaterialNum(); i++) {
|
||||
model_data->getMaterialNodePointer(i)->getTevKColor(3)->a = mAlpha;
|
||||
}
|
||||
mDoExt_modelUpdateDL(mpAlphaModel);
|
||||
for (u16 i = 0; i < model_data->getMaterialNum(); i++) {
|
||||
model_data->getMaterialNodePointer(i)->getTevKColor(0)->a = 0xFF;
|
||||
}
|
||||
}
|
||||
|
||||
dComIfGd_setList();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD9544-80CD9578 001004 0034+00 1/0 0/0 0/0 .text Delete__14daObjSM_DOOR_cFv */
|
||||
int daObjSM_DOOR_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CD9690-80CD96B0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSM_DOOR_Method */
|
||||
static actor_method_class l_daObjSM_DOOR_Method = {
|
||||
(process_method_func)daObjSM_DOOR_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjSM_DOOR_Delete__FP14daObjSM_DOOR_c,
|
||||
(process_method_func)daObjSM_DOOR_Execute__FP14daObjSM_DOOR_c,
|
||||
(process_method_func)daObjSM_DOOR_IsDelete__FP14daObjSM_DOOR_c,
|
||||
(process_method_func)daObjSM_DOOR_Draw__FP14daObjSM_DOOR_c,
|
||||
(process_method_func)daObjSM_DOOR_Create,
|
||||
(process_method_func)daObjSM_DOOR_Delete,
|
||||
(process_method_func)daObjSM_DOOR_Execute,
|
||||
(process_method_func)daObjSM_DOOR_IsDelete,
|
||||
(process_method_func)daObjSM_DOOR_Draw,
|
||||
};
|
||||
|
||||
/* 80CD96B0-80CD96E0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_SM_DOOR */
|
||||
|
|
@ -318,96 +330,3 @@ extern actor_process_profile_definition g_profile_Obj_SM_DOOR = {
|
|||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CD96E0-80CD9704 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80CD9580,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80CD9578,
|
||||
};
|
||||
|
||||
/* 80CD9704-80CD972C 000078 0028+00 1/1 0/0 0/0 .data __vt__14daObjSM_DOOR_c */
|
||||
SECTION_DATA extern void* __vt__14daObjSM_DOOR_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__14daObjSM_DOOR_cFv,
|
||||
(void*)Create__14daObjSM_DOOR_cFv,
|
||||
(void*)Execute__14daObjSM_DOOR_cFPPA3_A4_f,
|
||||
(void*)Draw__14daObjSM_DOOR_cFv,
|
||||
(void*)Delete__14daObjSM_DOOR_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80CD8D4C-80CD902C 00080C 02E0+00 1/1 0/0 0/0 .text create__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD902C-80CD909C 000AEC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD909C-80CD90A4 000B5C 0008+00 1/0 0/0 0/0 .text daObjSM_DOOR_IsDelete__FP14daObjSM_DOOR_c */
|
||||
static bool daObjSM_DOOR_IsDelete(daObjSM_DOOR_c* param_0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CD95E4-80CD95E4 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CD961B = "A_SM_DoorA.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CD962A = "A_SM_DoorA_Alpha.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CD963F = "A_SM_DoorBl.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CD964F = "A_SM_DoorBl_Alpha.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CD9665 = "A_SM_DoorWo.bmd";
|
||||
SECTION_DEAD static char const* const stringBase_80CD9675 = "A_SM_DoorWo_Alpha.bmd";
|
||||
#pragma pop
|
||||
|
||||
/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD9258-80CD929C 000D18 0044+00 1/0 0/0 0/0 .text Create__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::Create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD929C-80CD930C 000D5C 0070+00 1/0 0/0 0/0 .text Execute__14daObjSM_DOOR_cFPPA3_A4_f
|
||||
*/
|
||||
void daObjSM_DOOR_c::Execute(f32 (**param_0)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD930C-80CD9544 000DCC 0238+00 1/0 0/0 0/0 .text Draw__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD9544-80CD9578 001004 0034+00 1/0 0/0 0/0 .text Delete__14daObjSM_DOOR_cFv */
|
||||
void daObjSM_DOOR_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD9578-80CD9580 001038 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80CD9578() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD9580-80CD9588 001040 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80CD9580() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CD95E4-80CD95E4 000054 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
@ -1,110 +1,218 @@
|
|||
/**
|
||||
* @file d_a_obj_smw_stone.cpp
|
||||
*
|
||||
* Object - Sacred Meadow Howling Stone
|
||||
*/
|
||||
|
||||
#include "d/actor/d_a_obj_smw_stone.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daSmWStone_c_createHeap__FP10fopAc_ac_c();
|
||||
extern "C" void __ct__12daSmWStone_cFv();
|
||||
extern "C" void __dt__12daSmWStone_cFv();
|
||||
extern "C" void create__12daSmWStone_cFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void __dt__12dBgS_AcchCirFv();
|
||||
extern "C" void execute__12daSmWStone_cFv();
|
||||
extern "C" void draw__12daSmWStone_cFv();
|
||||
extern "C" void Delete__12daSmWStone_cFv();
|
||||
extern "C" void exeModeHowl__12daSmWStone_cFv();
|
||||
extern "C" void setModelMtx__12daSmWStone_cFv();
|
||||
extern "C" void createHeap__12daSmWStone_cFv();
|
||||
extern "C" void init__12daSmWStone_cFv();
|
||||
extern "C" void chkWlfInRange__12daSmWStone_cFv();
|
||||
extern "C" static void daSmWStone_create__FP12daSmWStone_c();
|
||||
extern "C" static void daSmWStone_Delete__FP12daSmWStone_c();
|
||||
extern "C" static void daSmWStone_execute__FP12daSmWStone_c();
|
||||
extern "C" static void daSmWStone_draw__FP12daSmWStone_c();
|
||||
extern "C" static void func_80CDEEDC();
|
||||
extern "C" static void func_80CDEEE4();
|
||||
extern "C" extern char const* const d_a_obj_smw_stone__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void __dt__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void
|
||||
dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void SetWall__12dBgS_AcchCirFff();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __ct__13cBgS_PolyInfoFv();
|
||||
extern "C" void __dt__13cBgS_PolyInfoFv();
|
||||
extern "C" void ChkUsed__9cBgW_BgIdCFv();
|
||||
extern "C" void __dt__8cM3dGCirFv();
|
||||
extern "C" void startWindStoneSound__13Z2WolfHowlMgrFScP3Vec();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80CDE518-80CDE538 000078 0020+00 1/1 0/0 0/0 .text daSmWStone_c_createHeap__FP10fopAc_ac_c */
|
||||
static void daSmWStone_c_createHeap(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDEF14-80CDEF14 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80CDEF14 = "WStoneF";
|
||||
#pragma pop
|
||||
#include "d/actor/d_a_alink.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
/* 80CDEF1C-80CDEF20 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_smw_stone__stringBase0;
|
||||
static char* l_arcName = "WStoneF";
|
||||
|
||||
/* 80CDE518-80CDE538 000078 0020+00 1/1 0/0 0/0 .text daSmWStone_c_createHeap__FP10fopAc_ac_c */
|
||||
static int daSmWStone_c_createHeap(fopAc_ac_c* i_this) {
|
||||
return static_cast<daSmWStone_c*>(i_this)->createHeap();
|
||||
}
|
||||
|
||||
/* 80CDE538-80CDE588 000098 0050+00 2/2 0/0 0/0 .text __ct__12daSmWStone_cFv */
|
||||
daSmWStone_c::daSmWStone_c() {
|
||||
mpBgW = NULL;
|
||||
mMode = 0;
|
||||
}
|
||||
|
||||
/* 80CDE588-80CDE614 0000E8 008C+00 1/0 0/0 0/0 .text __dt__12daSmWStone_cFv */
|
||||
daSmWStone_c::~daSmWStone_c() {
|
||||
dComIfG_resDelete(this, l_arcName);
|
||||
}
|
||||
|
||||
/* 80CDEEF4-80CDEF00 000000 000C+00 1/1 0/0 0/0 .rodata @3776 */
|
||||
static u8 const lit_3776[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80CDE614-80CDE7F8 000174 01E4+00 1/1 0/0 0/0 .text create__12daSmWStone_cFv */
|
||||
cPhs__Step daSmWStone_c::create() {
|
||||
fopAcM_SetupActor(this, daSmWStone_c);
|
||||
cPhs__Step step = (cPhs__Step)dComIfG_resLoad(this, l_arcName);
|
||||
|
||||
if (step == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, daSmWStone_c_createHeap, 0x1000)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (dComIfG_Bgsp().Regist(mpBgW, this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
init();
|
||||
setModelMtx();
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
|
||||
dBgS_AcchCir acch_cir;
|
||||
dBgS_ObjAcch acch;
|
||||
acch_cir.SetWall(0.0f, 10.0f);
|
||||
acch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
|
||||
&acch_cir, fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
acch.CrrPos(dComIfG_Bgsp());
|
||||
mGroundH = acch.GetGroundH();
|
||||
mPolyInfo = acch.m_gnd;
|
||||
}
|
||||
|
||||
return step;
|
||||
}
|
||||
|
||||
/* 80CDE8D8-80CDE92C 000438 0054+00 1/1 0/0 0/0 .text execute__12daSmWStone_cFv */
|
||||
int daSmWStone_c::execute() {
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
exeModeHowl();
|
||||
// fallthrough
|
||||
case 1:
|
||||
default:
|
||||
setModelMtx();
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDE92C-80CDEA2C 00048C 0100+00 1/1 0/0 0/0 .text draw__12daSmWStone_cFv */
|
||||
int daSmWStone_c::draw() {
|
||||
g_env_light.settingTevStruct(8, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
cXyz pos(current.pos.x, current.pos.y, current.pos.z);
|
||||
mShadowKey = dComIfGd_setShadow(mShadowKey, 1, mpModel, &pos, 500.0f, 0.0f, pos.y,
|
||||
mGroundH, mPolyInfo, &tevStr, 0, 1.0f,
|
||||
dDlst_shadowControl_c::getSimpleTex());
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDEA2C-80CDEAA4 00058C 0078+00 1/1 0/0 0/0 .text Delete__12daSmWStone_cFv */
|
||||
int daSmWStone_c::Delete() {
|
||||
attention_info.flags = 0;
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
this->~daSmWStone_c();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDEAA4-80CDEBA0 000604 00FC+00 1/1 0/0 0/0 .text exeModeHowl__12daSmWStone_cFv */
|
||||
void daSmWStone_c::exeModeHowl() {
|
||||
u8 swbit;
|
||||
if (mDelete || (swbit = getSwBit0(), fopAcM_isSwitch(this, swbit))) {
|
||||
attention_info.flags = 0;
|
||||
mMode = 1;
|
||||
} else {
|
||||
if (!dComIfGp_event_runCheck()) {
|
||||
daAlink_getAlinkActorClass()->startWindStoneSound(2, ¤t.pos);
|
||||
}
|
||||
attention_info.flags = 0;
|
||||
if (chkWlfInRange()) {
|
||||
attention_info.flags |= 0x80;
|
||||
attention_info.distances[fopAc_attn_ETC_e] = 0x41;
|
||||
daAlink_c* link = daAlink_getAlinkActorClass();
|
||||
if (link != NULL && link->checkWolfHowlSuccessAnime()) {
|
||||
attention_info.flags = 0;
|
||||
mMode = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80CDEBA0-80CDEC04 000700 0064+00 2/2 0/0 0/0 .text setModelMtx__12daSmWStone_cFv */
|
||||
void daSmWStone_c::setModelMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 80CDEC04-80CDED30 000764 012C+00 1/1 0/0 0/0 .text createHeap__12daSmWStone_cFv */
|
||||
int daSmWStone_c::createHeap() {
|
||||
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, 7);
|
||||
if (mpBgW->Set(dzb, 1, &mBgMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CDED30-80CDED9C 000890 006C+00 1/1 0/0 0/0 .text init__12daSmWStone_cFv */
|
||||
void daSmWStone_c::init() {
|
||||
u8 swbit = getSwBit0();
|
||||
if (fopAcM_isSwitch(this, swbit)) {
|
||||
mMode = 1;
|
||||
} else {
|
||||
mMode = 0;
|
||||
}
|
||||
mDelete = false;
|
||||
mShadowKey = 0;
|
||||
}
|
||||
|
||||
/* 80CDED9C-80CDEE28 0008FC 008C+00 1/1 0/0 0/0 .text chkWlfInRange__12daSmWStone_cFv */
|
||||
bool daSmWStone_c::chkWlfInRange() {
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
if (player == NULL) {
|
||||
return false;
|
||||
}
|
||||
if (daPy_py_c::i_checkNowWolf()) {
|
||||
cXyz pos = player->current.pos;
|
||||
if (pos.abs2(current.pos) < 40000.0f) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 80CDEE28-80CDEE7C 000988 0054+00 1/0 0/0 0/0 .text daSmWStone_create__FP12daSmWStone_c
|
||||
*/
|
||||
static cPhs__Step daSmWStone_create(daSmWStone_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, daSmWStone_c);
|
||||
return i_this->create();
|
||||
}
|
||||
|
||||
/* 80CDEE7C-80CDEE9C 0009DC 0020+00 1/0 0/0 0/0 .text daSmWStone_Delete__FP12daSmWStone_c
|
||||
*/
|
||||
static int daSmWStone_Delete(daSmWStone_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
|
||||
/* 80CDEE9C-80CDEEBC 0009FC 0020+00 1/0 0/0 0/0 .text daSmWStone_execute__FP12daSmWStone_c */
|
||||
static int daSmWStone_execute(daSmWStone_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
|
||||
/* 80CDEEBC-80CDEEDC 000A1C 0020+00 1/0 0/0 0/0 .text daSmWStone_draw__FP12daSmWStone_c
|
||||
*/
|
||||
static int daSmWStone_draw(daSmWStone_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
|
||||
/* 80CDEF20-80CDEF40 -00001 0020+00 1/0 0/0 0/0 .data daSmWStone_METHODS */
|
||||
static actor_method_class daSmWStone_METHODS = {
|
||||
(process_method_func)daSmWStone_create__FP12daSmWStone_c,
|
||||
(process_method_func)daSmWStone_Delete__FP12daSmWStone_c,
|
||||
(process_method_func)daSmWStone_execute__FP12daSmWStone_c,
|
||||
0,
|
||||
(process_method_func)daSmWStone_draw__FP12daSmWStone_c,
|
||||
(process_method_func)daSmWStone_create,
|
||||
(process_method_func)daSmWStone_Delete,
|
||||
(process_method_func)daSmWStone_execute,
|
||||
NULL,
|
||||
(process_method_func)daSmWStone_draw,
|
||||
};
|
||||
|
||||
/* 80CDEF40-80CDEF70 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_SmWStone */
|
||||
|
|
@ -124,172 +232,3 @@ extern actor_process_profile_definition g_profile_Obj_SmWStone = {
|
|||
fopAc_ENV_e, // mActorType
|
||||
fopAc_CULLBOX_0_e, // cullType
|
||||
};
|
||||
|
||||
/* 80CDEF70-80CDEF7C 000054 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */
|
||||
SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_AcchCirFv,
|
||||
};
|
||||
|
||||
/* 80CDEF7C-80CDEFA0 000060 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80CDEEE4,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80CDEEDC,
|
||||
};
|
||||
|
||||
/* 80CDEFA0-80CDEFAC 000084 000C+00 2/2 0/0 0/0 .data __vt__12daSmWStone_c */
|
||||
SECTION_DATA extern void* __vt__12daSmWStone_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12daSmWStone_cFv,
|
||||
};
|
||||
|
||||
/* 80CDE538-80CDE588 000098 0050+00 2/2 0/0 0/0 .text __ct__12daSmWStone_cFv */
|
||||
daSmWStone_c::daSmWStone_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE588-80CDE614 0000E8 008C+00 1/0 0/0 0/0 .text __dt__12daSmWStone_cFv */
|
||||
daSmWStone_c::~daSmWStone_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDEEF4-80CDEF00 000000 000C+00 1/1 0/0 0/0 .rodata @3776 */
|
||||
SECTION_RODATA static u8 const lit_3776[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDEEF4, &lit_3776);
|
||||
|
||||
/* 80CDEF00-80CDEF04 00000C 0004+00 1/2 0/0 0/0 .rodata @4191 */
|
||||
SECTION_RODATA static u8 const lit_4191[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80CDEF00, &lit_4191);
|
||||
|
||||
/* 80CDEF04-80CDEF08 000010 0004+00 1/1 0/0 0/0 .rodata @4192 */
|
||||
SECTION_RODATA static f32 const lit_4192 = 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDEF04, &lit_4192);
|
||||
|
||||
/* 80CDE614-80CDE7F8 000174 01E4+00 1/1 0/0 0/0 .text create__12daSmWStone_cFv */
|
||||
void daSmWStone_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE7F8-80CDE868 000358 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE868-80CDE8D8 0003C8 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */
|
||||
// dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
extern "C" void __dt__12dBgS_AcchCirFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDE8D8-80CDE92C 000438 0054+00 1/1 0/0 0/0 .text execute__12daSmWStone_cFv */
|
||||
void daSmWStone_c::execute() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDEF08-80CDEF0C 000014 0004+00 0/1 0/0 0/0 .rodata @4238 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4238 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDEF08, &lit_4238);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDEF0C-80CDEF10 000018 0004+00 0/1 0/0 0/0 .rodata @4239 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4239 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDEF0C, &lit_4239);
|
||||
#pragma pop
|
||||
|
||||
/* 80CDE92C-80CDEA2C 00048C 0100+00 1/1 0/0 0/0 .text draw__12daSmWStone_cFv */
|
||||
void daSmWStone_c::draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEA2C-80CDEAA4 00058C 0078+00 1/1 0/0 0/0 .text Delete__12daSmWStone_cFv */
|
||||
void daSmWStone_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEAA4-80CDEBA0 000604 00FC+00 1/1 0/0 0/0 .text exeModeHowl__12daSmWStone_cFv */
|
||||
void daSmWStone_c::exeModeHowl() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEBA0-80CDEC04 000700 0064+00 2/2 0/0 0/0 .text setModelMtx__12daSmWStone_cFv */
|
||||
void daSmWStone_c::setModelMtx() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEC04-80CDED30 000764 012C+00 1/1 0/0 0/0 .text createHeap__12daSmWStone_cFv */
|
||||
void daSmWStone_c::createHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDED30-80CDED9C 000890 006C+00 1/1 0/0 0/0 .text init__12daSmWStone_cFv */
|
||||
void daSmWStone_c::init() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80CDEF10-80CDEF14 00001C 0004+00 1/1 0/0 0/0 .rodata @4350 */
|
||||
SECTION_RODATA static f32 const lit_4350 = 40000.0f;
|
||||
COMPILER_STRIP_GATE(0x80CDEF10, &lit_4350);
|
||||
|
||||
/* 80CDED9C-80CDEE28 0008FC 008C+00 1/1 0/0 0/0 .text chkWlfInRange__12daSmWStone_cFv */
|
||||
void daSmWStone_c::chkWlfInRange() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEE28-80CDEE7C 000988 0054+00 1/0 0/0 0/0 .text daSmWStone_create__FP12daSmWStone_c
|
||||
*/
|
||||
static void daSmWStone_create(daSmWStone_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEE7C-80CDEE9C 0009DC 0020+00 1/0 0/0 0/0 .text daSmWStone_Delete__FP12daSmWStone_c
|
||||
*/
|
||||
static void daSmWStone_Delete(daSmWStone_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEE9C-80CDEEBC 0009FC 0020+00 1/0 0/0 0/0 .text daSmWStone_execute__FP12daSmWStone_c */
|
||||
static void daSmWStone_execute(daSmWStone_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEEBC-80CDEEDC 000A1C 0020+00 1/0 0/0 0/0 .text daSmWStone_draw__FP12daSmWStone_c
|
||||
*/
|
||||
static void daSmWStone_draw(daSmWStone_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEEDC-80CDEEE4 000A3C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80CDEEDC() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEEE4-80CDEEEC 000A44 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80CDEEE4() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80CDEF14-80CDEF14 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
@ -70,7 +70,7 @@ bool cBgS::Regist(dBgW_Base* p_data, fpc_ProcID actor_id, void* p_actor) {
|
|||
}
|
||||
|
||||
/* 80074250-800742E4 06EB90 0094+00 0/0 2/2 187/187 .text Release__4cBgSFP9dBgW_Base */
|
||||
int cBgS::Release(dBgW_Base* p_data) {
|
||||
bool cBgS::Release(dBgW_Base* p_data) {
|
||||
if (p_data == NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue