mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-11 14:38:38 -04:00
Merge branch 'main' of github.com:zeldaret/tww into d_a_swhit0
This commit is contained in:
+3
-3
@@ -1500,7 +1500,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_nz"),
|
||||
ActorRel(NonMatching, "d_a_obj_Itnak"),
|
||||
ActorRel(NonMatching, "d_a_obj_Vds"),
|
||||
ActorRel(NonMatching, "d_a_obj_Vteng", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(Matching, "d_a_obj_Vteng", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_obj_YLzou"),
|
||||
ActorRel(NonMatching, "d_a_obj_Yboil"),
|
||||
ActorRel(NonMatching, "d_a_obj_adnno"),
|
||||
@@ -1550,7 +1550,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_light"),
|
||||
ActorRel(NonMatching, "d_a_obj_mkie"),
|
||||
ActorRel(NonMatching, "d_a_obj_mkiek"),
|
||||
ActorRel(NonMatching, "d_a_obj_mknjd"),
|
||||
ActorRel(Matching, "d_a_obj_mknjd", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_obj_mmrr"),
|
||||
ActorRel(NonMatching, "d_a_obj_msdan"),
|
||||
ActorRel(NonMatching, "d_a_obj_msdan2"),
|
||||
@@ -1596,7 +1596,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_shutter2"),
|
||||
ActorRel(NonMatching, "d_a_st"),
|
||||
ActorRel(NonMatching, "d_a_steam_tag"),
|
||||
ActorRel(NonMatching, "d_a_swattack", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(Matching, "d_a_swattack", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(Matching, "d_a_switem", extra_cflags=['-pragma "nosyminline on"']),
|
||||
ActorRel(NonMatching, "d_a_swpropeller"),
|
||||
ActorRel(Matching, "d_a_swtact"),
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
s32 GetTriGrp(int, int) const;
|
||||
s32 GetGrpToRoomId(int, int) const;
|
||||
cM3dGPla* GetTriPla(int, int) const;
|
||||
bool GetTriPnt(cBgS_PolyInfo&, cXyz*, cXyz*, cXyz*) const;
|
||||
void GetTriPnt(cBgS_PolyInfo&, cXyz*, cXyz*, cXyz*) const;
|
||||
void ShdwDraw(cBgS_ShdwDraw*);
|
||||
s32 GetGrpInf(cBgS_PolyInfo&, int) const;
|
||||
|
||||
|
||||
@@ -20,11 +20,11 @@ public:
|
||||
void SetNowY(f32 y) { mNowY = y; }
|
||||
cXyz* GetPointP() { return &m_pos; }
|
||||
u32 GetWallPrecheck() const { return mWallPrecheck; }
|
||||
void OffWall() { mFlags &= ~2; }
|
||||
void OffWall() { mFlag &= ~2; }
|
||||
|
||||
private:
|
||||
public:
|
||||
/* 0x24 */ cXyz m_pos;
|
||||
/* 0x30 */ u32 mFlags;
|
||||
/* 0x30 */ u32 mFlag;
|
||||
/* 0x34 */ f32 mNowY;
|
||||
/* 0x38 */ u32 mWallPrecheck;
|
||||
/* 0x3C */ u32 mGndPrecheck;
|
||||
|
||||
@@ -10,7 +10,7 @@ class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo {
|
||||
public:
|
||||
/* 0x024 */ cM3dGLin mLin;
|
||||
/* 0x040 */ cXyz field_0x40;
|
||||
/* 0x04C */ u32 field_0x4c;
|
||||
/* 0x04C */ u32 mFlag;
|
||||
/* 0x050 */ bool mPreWallChk;
|
||||
/* 0x051 */ bool mPreGroundChk;
|
||||
/* 0x052 */ bool mPreRoofChk;
|
||||
@@ -26,10 +26,10 @@ public:
|
||||
|
||||
virtual ~cBgS_LinChk() {}
|
||||
|
||||
void ClrHit() { field_0x4c &= ~0x10; }
|
||||
void SetHit() { field_0x4c |= 0x10; }
|
||||
u32 ChkHit() const { return field_0x4c & 0x10; }
|
||||
void ClrSttsRoofOff() { field_0x4c &= ~0x20000000; }
|
||||
void ClrHit() { mFlag &= ~0x10; }
|
||||
void SetHit() { mFlag |= 0x10; }
|
||||
u32 ChkHit() const { return mFlag & 0x10; }
|
||||
void ClrSttsRoofOff() { mFlag &= ~0x20000000; }
|
||||
void SetCross(const cXyz& pos) { mLin.SetEnd(pos); }
|
||||
cXyz& i_GetCross() { return mLin.GetEnd(); }
|
||||
cM3dGLin* GetLinP() { return &mLin; }
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define C_BG_S_POLY_INFO_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "global.h"
|
||||
|
||||
class cBgW;
|
||||
@@ -25,6 +26,12 @@ public:
|
||||
void SetPolyInfo(const cBgS_PolyInfo& other) {
|
||||
*this = other;
|
||||
}
|
||||
void SetActorInfo(int bg_index, void* bgw, unsigned int actor_id) {
|
||||
JUT_ASSERT(0x59, 0 <= bg_index);
|
||||
mBgIndex = bg_index;
|
||||
mpBgW = (cBgW*)bgw;
|
||||
mActorId = actor_id;
|
||||
}
|
||||
bool ChkSafe(const void* bgw, unsigned int pid) {
|
||||
if (mpBgW == bgw && mActorId == pid)
|
||||
return true;
|
||||
|
||||
@@ -139,12 +139,12 @@ public:
|
||||
bool Set(cBgD_t*, u32, f32(*)[3][4]);
|
||||
void RwgLineCheck(u16, cBgS_LinChk*);
|
||||
void LineCheckRp(cBgS_LinChk*, int);
|
||||
void LineCheckGrpRp(cBgS_LinChk*, int, int);
|
||||
bool LineCheckGrpRp(cBgS_LinChk*, int, int);
|
||||
bool RwgGroundCheckCommon(f32, u16, cBgS_GndChk*);
|
||||
bool RwgGroundCheckGnd(u16, cBgS_GndChk*);
|
||||
bool RwgGroundCheckWall(u16, cBgS_GndChk*);
|
||||
void GroundCrossRp(cBgS_GndChk*, int);
|
||||
void GroundCrossGrpRp(cBgS_GndChk*, int, int);
|
||||
bool GroundCrossGrpRp(cBgS_GndChk*, int, int);
|
||||
void CopyOldMtx();
|
||||
void Move();
|
||||
void RwgShdwDraw(int, cBgS_ShdwDraw*);
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
#ifndef D_A_OBJ_BARRIER_H
|
||||
#define D_A_OBJ_BARRIER_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_a_obj.h"
|
||||
|
||||
class dBgW;
|
||||
|
||||
class daObjBarrier_anm_c {
|
||||
public:
|
||||
daObjBarrier_anm_c() { mBrkFrame = 0.0f; }
|
||||
|
||||
bool init();
|
||||
|
||||
J3DModel* getMdlP() { return mpModel; }
|
||||
mDoExt_btkAnm* getBtkAnmP() { return &mBtk; }
|
||||
mDoExt_brkAnm* getBrkAnmP() { return &mBrk; }
|
||||
|
||||
f32 getBrkFrame() { return mBrkFrame; }
|
||||
void setBrkFrame(f32 i_frame) { mBrkFrame = i_frame; }
|
||||
|
||||
/* 0x00 */ J3DModel* mpModel;
|
||||
/* 0x04 */ mDoExt_btkAnm mBtk;
|
||||
/* 0x18 */ mDoExt_brkAnm mBrk;
|
||||
/* 0x30 */ f32 mBrkFrame;
|
||||
};
|
||||
|
||||
class daObjBarrier_ef_c {
|
||||
public:
|
||||
void setDummyTexture(int);
|
||||
bool checkHitActor(fopAc_ac_c*);
|
||||
void birth(fopAc_ac_c*, f32, cXyz, cXyz, int);
|
||||
bool init();
|
||||
void create();
|
||||
void execute();
|
||||
void draw();
|
||||
|
||||
f32 getBtkFrame(int i_idx) { return mBtk[i_idx].getFrame(); }
|
||||
|
||||
/* 0x000 */ u32 mActiveEffFlags;
|
||||
/* 0x004 */ J3DModel* mpModel[4];
|
||||
/* 0x014 */ mDoExt_btkAnm mBtk[4];
|
||||
/* 0x064 */ mDoExt_bckAnm mBck[4];
|
||||
/* 0x0A4 */ mDoExt_brkAnm mBrk[4];
|
||||
/* 0x104 */ cXyz mPos[4];
|
||||
/* 0x134 */ s16 mAngle[4];
|
||||
/* 0x13C */ fopAc_ac_c* mHitActor[4];
|
||||
};
|
||||
|
||||
class daObjBarrier_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum PROC_e {
|
||||
PROC_BREAK_START_WAIT,
|
||||
PROC_BREAK_ORDER,
|
||||
PROC_BREAK_END_WAIT,
|
||||
};
|
||||
enum Param_e {
|
||||
PRM_DAMAGE_W = 0x01,
|
||||
PRM_DAMAGE_S = 0x10,
|
||||
PRM_MOYA_W = 0x01,
|
||||
PRM_MOYA_S = 0x08,
|
||||
};
|
||||
|
||||
daObjBarrier_c() {
|
||||
mEffect.mActiveEffFlags = 0;
|
||||
}
|
||||
|
||||
void init_mtx();
|
||||
static int solidHeapCB(fopAc_ac_c*);
|
||||
bool create_heap();
|
||||
bool checkCollision_Tg();
|
||||
void checkCollision_At();
|
||||
void registCollisionTable();
|
||||
void brkAnmPlay();
|
||||
void break_start_wait_proc();
|
||||
void break_order_proc();
|
||||
void break_end_wait_proc();
|
||||
bool break_check();
|
||||
int _create();
|
||||
bool _delete();
|
||||
bool _execute();
|
||||
bool _draw();
|
||||
|
||||
bool param_get_damage() const { return daObj::PrmAbstract(this, PRM_DAMAGE_W, PRM_DAMAGE_S); }
|
||||
int param_get_moya() const { return daObj::PrmAbstract(this, PRM_MOYA_W, PRM_MOYA_S); }
|
||||
|
||||
/* 0x290 */ daObjBarrier_anm_c mAnm;
|
||||
/* 0x2C4 */ request_of_phase_process_class mPhase;
|
||||
/* 0x2CC */ dBgW* mpBgW;
|
||||
/* 0x2D0 */ Mtx mBgMtx;
|
||||
/* 0x300 */ dCcD_Stts mAtStts;
|
||||
/* 0x33C */ dCcD_Stts mTgStts;
|
||||
/* 0x378 */ dCcD_Cyl mAtCyl;
|
||||
/* 0x4A8 */ dCcD_Cyl mTgCyl;
|
||||
/* 0x5D8 */ daObjBarrier_ef_c mEffect;
|
||||
/* 0x724 */ u8 mBarrierActive;
|
||||
/* 0x728 */ int mMoya;
|
||||
/* 0x72C */ s16 mEventID;
|
||||
/* 0x730 */ int mBarrierProc;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_BARRIER_H */
|
||||
@@ -4,6 +4,8 @@
|
||||
//
|
||||
|
||||
#include "SSystem/SComponent/c_bg_s.h"
|
||||
#include "SSystem/SComponent/c_bg_s_gnd_chk.h"
|
||||
#include "SSystem/SComponent/c_bg_s_lin_chk.h"
|
||||
#include "SSystem/SComponent/c_bg_w.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "dolphin/types.h"
|
||||
@@ -69,6 +71,10 @@ bool cBgS::Regist(cBgW* bgw, unsigned int pid, void* actor) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static void dummy() {
|
||||
OSReport("c_bg_s_poly_info.h");
|
||||
}
|
||||
|
||||
/* 80246600-8024669C .text Release__4cBgSFP4cBgW */
|
||||
int cBgS::Release(cBgW* bgw) {
|
||||
if (bgw == NULL)
|
||||
@@ -103,13 +109,42 @@ void cBgS::Dt() {
|
||||
}
|
||||
|
||||
/* 8024676C-802468E4 .text LineCross__4cBgSFP11cBgS_LinChk */
|
||||
bool cBgS::LineCross(cBgS_LinChk*) {
|
||||
/* Nonmatching */
|
||||
bool cBgS::LineCross(cBgS_LinChk* chk) {
|
||||
bool ret = false;
|
||||
chk->ClearPi();
|
||||
chk->ClrHit();
|
||||
for (s32 bg_index = 0; bg_index < (s32)ARRAY_SIZE(m_chk_element); bg_index++) {
|
||||
cBgS_ChkElm* elm = &m_chk_element[bg_index];
|
||||
if (elm->ChkUsed() && elm->m_bgw_base_ptr->pm_vtx_tbl != NULL && !chk->ChkSameActorPid(elm->m_actor_id)) {
|
||||
chk->mPreWallChk = !(chk->mFlag & 0x40000000);
|
||||
chk->mPreGroundChk = !(chk->mFlag & 0x80000000);
|
||||
chk->mPreRoofChk = !(chk->mFlag & 0x20000000);
|
||||
if (elm->m_bgw_base_ptr->LineCheckGrpRp(chk, elm->m_bgw_base_ptr->m_rootGrpIdx, 1)) {
|
||||
chk->SetActorInfo(bg_index, elm->m_bgw_base_ptr, elm->m_actor_id);
|
||||
ret = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ret)
|
||||
chk->SetHit();
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 802468E4-80246A14 .text GroundCross__4cBgSFP11cBgS_GndChk */
|
||||
f32 cBgS::GroundCross(cBgS_GndChk*) {
|
||||
/* Nonmatching */
|
||||
f32 cBgS::GroundCross(cBgS_GndChk* chk) {
|
||||
chk->SetNowY(-1e+09);
|
||||
chk->ClearPi();
|
||||
chk->mWallPrecheck = (chk->mFlag & 0x02);
|
||||
chk->mGndPrecheck = (chk->mFlag & 0x01);
|
||||
for (s32 bg_index = 0; bg_index < (s32)ARRAY_SIZE(m_chk_element); bg_index++) {
|
||||
cBgS_ChkElm* elm = &m_chk_element[bg_index];
|
||||
if (elm->ChkUsed() && elm->m_bgw_base_ptr->pm_vtx_tbl != NULL && !chk->ChkSameActorPid(elm->m_actor_id)) {
|
||||
if (elm->m_bgw_base_ptr->GroundCrossGrpRp(chk, elm->m_bgw_base_ptr->m_rootGrpIdx, 1)) {
|
||||
chk->SetActorInfo(bg_index, elm->m_bgw_base_ptr, elm->m_actor_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
return chk->GetNowY();
|
||||
}
|
||||
|
||||
/* 80246A14-80246C98 .text ConvDzb__4cBgSFPv */
|
||||
@@ -203,8 +238,13 @@ cM3dGPla* cBgS::GetTriPla(int bg_index, int poly_index) const {
|
||||
return m_chk_element[bg_index].m_bgw_base_ptr->GetTriPla(poly_index);
|
||||
}
|
||||
|
||||
static void dummy2() {
|
||||
// from c_bg_s_poly_info.h
|
||||
OSReport("0 <= grp_index && grp_index < pm_bgd->m_g_num");
|
||||
}
|
||||
|
||||
/* 802470B8-80247178 .text GetTriPnt__4cBgSCFR13cBgS_PolyInfoP4cXyzP4cXyzP4cXyz */
|
||||
bool cBgS::GetTriPnt(cBgS_PolyInfo& poly, cXyz* p0, cXyz* p1, cXyz* p2) const {
|
||||
void cBgS::GetTriPnt(cBgS_PolyInfo& poly, cXyz* p0, cXyz* p1, cXyz* p2) const {
|
||||
s32 id = poly.GetBgIndex();
|
||||
JUT_ASSERT(0x2f6, 0 <= id && id < 256);
|
||||
if (m_chk_element[id].ChkUsed())
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
cBgS_GndChk::cBgS_GndChk() {
|
||||
m_pos = cXyz::Zero;
|
||||
SetActorPid(0xFFFFFFFF);
|
||||
mFlags = 3;
|
||||
mFlag = 3;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ void cBgS_LinChk::ct() {
|
||||
mLin.mEnd = zero;
|
||||
field_0x40 = zero;
|
||||
SetActorPid(-1);
|
||||
field_0x4c = 0;
|
||||
mFlag = 0;
|
||||
mFrontFlag = 1;
|
||||
mBackFlag = 0;
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ void cBgW::LineCheckRp(cBgS_LinChk*, int) {
|
||||
}
|
||||
|
||||
/* 80248868-8024898C .text LineCheckGrpRp__4cBgWFP11cBgS_LinChkii */
|
||||
void cBgW::LineCheckGrpRp(cBgS_LinChk*, int, int) {
|
||||
bool cBgW::LineCheckGrpRp(cBgS_LinChk*, int, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ void cBgW::GroundCrossRp(cBgS_GndChk*, int) {
|
||||
}
|
||||
|
||||
/* 802491F4-80249368 .text GroundCrossGrpRp__4cBgWFP11cBgS_GndChkii */
|
||||
void cBgW::GroundCrossGrpRp(cBgS_GndChk*, int, int) {
|
||||
bool cBgW::GroundCrossGrpRp(cBgS_GndChk*, int, int) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
|
||||
@@ -176,24 +176,24 @@ BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
|
||||
/* 000002FC-0000060C .text CreateHeap__10daMbdoor_cFv */
|
||||
BOOL daMbdoor_c::CreateHeap() {
|
||||
void* modelData = dComIfG_getObjectRes(getArcName(), getFuBdl());
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(getArcName(), getFuBdl()));
|
||||
JUT_ASSERT(198, modelData != 0)
|
||||
mpFuModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000022);
|
||||
mpFuModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
if (!mpFuModel) { return FALSE; }
|
||||
|
||||
modelData = dComIfG_getObjectRes(getArcName(), getLBdl());
|
||||
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(getArcName(), getLBdl()));
|
||||
JUT_ASSERT(209, modelData != 0)
|
||||
mpLModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000022);
|
||||
mpLModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
if (!mpLModel) { return FALSE; }
|
||||
|
||||
modelData = dComIfG_getObjectRes(getArcName(), getRBdl());
|
||||
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(getArcName(), getRBdl()));
|
||||
JUT_ASSERT(220, modelData != 0)
|
||||
mpRModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000022);
|
||||
mpRModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
if (!mpRModel) { return FALSE; }
|
||||
|
||||
modelData = dComIfG_getObjectRes(getArcName(), getToBdl());
|
||||
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(getArcName(), getToBdl()));
|
||||
JUT_ASSERT(231, modelData != 0)
|
||||
mpToModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000022);
|
||||
mpToModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000022);
|
||||
if (!mpToModel) { return FALSE; }
|
||||
|
||||
mpBgW = new dBgW();
|
||||
|
||||
@@ -41,15 +41,15 @@ BOOL daObjAjavW_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
bool daObjAjavW_c::create_heap() {
|
||||
bool ret = true;
|
||||
|
||||
void* pModelData = dComIfG_getObjectRes(l_arcname, 0x05);
|
||||
J3DModelData* pModelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, 0x05));
|
||||
J3DAnmTextureSRTKey * pBtk = (J3DAnmTextureSRTKey *)dComIfG_getObjectRes(l_arcname, 0x08);
|
||||
|
||||
if (!pModelData || !pBtk) {
|
||||
JUT_ASSERT(0xa7, 0);
|
||||
ret = false;
|
||||
} else {
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)pModelData, 0x80000, 0x11000222);
|
||||
s32 btkRet = mBtkAnm.init((J3DModelData*)pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000222);
|
||||
s32 btkRet = mBtkAnm.init(pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
mpBgW = dBgW_NewSet((cBgD_t*)dComIfG_getObjectRes(l_arcname, 0x0B), cBgW::MOVE_BG_e, &mpModel->getBaseTRMtx());
|
||||
|
||||
if (!mpModel || !btkRet || !mpBgW)
|
||||
|
||||
@@ -54,14 +54,14 @@ BOOL daObjVteng_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
bool daObjVteng_c::create_heap() {
|
||||
bool ret = true;
|
||||
|
||||
void* pModelData = dComIfG_getObjectRes(l_arcname, 0x08);
|
||||
J3DModelData* pModelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, 0x08));
|
||||
J3DAnmTransform * pAnm = (J3DAnmTransform *)dComIfG_getObjectRes(l_arcname, 0x05);
|
||||
|
||||
if (!pModelData || !pAnm) {
|
||||
JUT_ASSERT(0xb7, 0);
|
||||
ret = false;
|
||||
} else {
|
||||
mpMorf = new mDoExt_McaMorf((J3DModelData*)pModelData, NULL, NULL, pAnm, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0x3B, -1, 0, NULL, 0x00, 0x11020203);
|
||||
mpMorf = new mDoExt_McaMorf(pModelData, NULL, NULL, pAnm, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0x3B, -1, 0, NULL, 0x00, 0x11020203);
|
||||
if (!mpMorf) {
|
||||
ret = false;
|
||||
} else {
|
||||
|
||||
@@ -64,17 +64,17 @@ bool daObjYgush00_c::create_heap() {
|
||||
|
||||
bool ret = true;
|
||||
|
||||
void* pModelData = dComIfG_getObjectRes(l_arcname, mdl_table[mType]);
|
||||
J3DAnmTextureSRTKey * pBtk = (J3DAnmTextureSRTKey *)dComIfG_getObjectRes(l_arcname, btk_table[mType]);
|
||||
J3DAnmTransform * pBck = (J3DAnmTransform *)dComIfG_getObjectRes(l_arcname, bck_table[mType]);
|
||||
J3DModelData* pModelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, mdl_table[mType]));
|
||||
J3DAnmTextureSRTKey * pBtk = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, btk_table[mType]));
|
||||
J3DAnmTransform * pBck = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(l_arcname, bck_table[mType]));
|
||||
|
||||
if (!pModelData || !pBtk || !pBck) {
|
||||
JUT_ASSERT(207, 0);
|
||||
ret = false;
|
||||
} else {
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)pModelData, 0x80000, 0x11000222);
|
||||
s32 btkRet = mBtkAnm.init((J3DModelData*)pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
s32 bckRet = mBckAnm.init((J3DModelData*)pModelData, pBck, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
|
||||
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000222);
|
||||
s32 btkRet = mBtkAnm.init(pModelData, pBtk, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
s32 bckRet = mBckAnm.init(pModelData, pBck, 1, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false);
|
||||
|
||||
if (!mpModel || !btkRet || !bckRet)
|
||||
ret = false;
|
||||
|
||||
+47
-142
@@ -3,10 +3,10 @@
|
||||
// Translation Unit: d_a_obj_barrier.cpp
|
||||
//
|
||||
|
||||
#include "d/actor/d_a_obj_barrier.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/actor/d_a_player_main.h"
|
||||
#include "d/d_a_obj.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_item_data.h"
|
||||
#include "d/d_procname.h"
|
||||
@@ -14,93 +14,8 @@
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
class daObjBarrier_anm_c {
|
||||
public:
|
||||
daObjBarrier_anm_c() { mBrkFrame = 0.0f; }
|
||||
|
||||
bool init();
|
||||
|
||||
J3DModel* getMdlP() { return mpModel; }
|
||||
mDoExt_btkAnm* getBtkAnmP() { return &mBtk; }
|
||||
mDoExt_brkAnm* getBrkAnmP() { return &mBrk; }
|
||||
|
||||
f32 getBrkFrame() { return mBrkFrame; }
|
||||
void setBrkFrame(f32 i_frame) { mBrkFrame = i_frame; }
|
||||
|
||||
/* 0x00 */ J3DModel* mpModel;
|
||||
/* 0x04 */ mDoExt_btkAnm mBtk;
|
||||
/* 0x18 */ mDoExt_brkAnm mBrk;
|
||||
/* 0x30 */ f32 mBrkFrame;
|
||||
};
|
||||
|
||||
class daObjBarrier_ef_c {
|
||||
public:
|
||||
void setDummyTexture(int);
|
||||
bool checkHitActor(fopAc_ac_c*);
|
||||
void birth(fopAc_ac_c*, f32, cXyz, cXyz, int);
|
||||
bool init();
|
||||
void create();
|
||||
void execute();
|
||||
void draw();
|
||||
|
||||
f32 getBtkFrame(int i_idx) { return mBtk[i_idx].getFrame(); }
|
||||
|
||||
/* 0x000 */ u32 mActiveEffFlags;
|
||||
/* 0x004 */ J3DModel* mpModel[4];
|
||||
/* 0x014 */ mDoExt_btkAnm mBtk[4];
|
||||
/* 0x064 */ mDoExt_bckAnm mBck[4];
|
||||
/* 0x0A4 */ mDoExt_brkAnm mBrk[4];
|
||||
/* 0x104 */ cXyz mPos[4];
|
||||
/* 0x134 */ s16 mAngle[4];
|
||||
/* 0x13C */ fopAc_ac_c* mHitActor[4];
|
||||
};
|
||||
|
||||
class daObjBarrier_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum PROC_e {
|
||||
PROC_BREAK_START_WAIT,
|
||||
PROC_BREAK_ORDER,
|
||||
PROC_BREAK_END_WAIT,
|
||||
};
|
||||
|
||||
daObjBarrier_c();
|
||||
|
||||
void init_mtx();
|
||||
static int solidHeapCB(fopAc_ac_c*);
|
||||
bool create_heap();
|
||||
bool checkCollision_Tg();
|
||||
void checkCollision_At();
|
||||
void registCollisionTable();
|
||||
void brkAnmPlay();
|
||||
void break_start_wait_proc();
|
||||
void break_order_proc();
|
||||
void break_end_wait_proc();
|
||||
bool break_check();
|
||||
int _create();
|
||||
bool _delete();
|
||||
bool _execute();
|
||||
bool _draw();
|
||||
|
||||
bool param_get_damage() const { return daObj::PrmAbstract(this, 1, 0x10); }
|
||||
int param_get_moya() const { return daObj::PrmAbstract(this, 1, 8); }
|
||||
|
||||
/* 0x290 */ daObjBarrier_anm_c mAnm;
|
||||
/* 0x2C4 */ request_of_phase_process_class mPhase;
|
||||
/* 0x2CC */ dBgW* mpBgW;
|
||||
/* 0x2D0 */ Mtx mBgMtx;
|
||||
/* 0x300 */ dCcD_Stts mAtStts;
|
||||
/* 0x33C */ dCcD_Stts mTgStts;
|
||||
/* 0x378 */ dCcD_Cyl mAtCyl;
|
||||
/* 0x4A8 */ dCcD_Cyl mTgCyl;
|
||||
/* 0x5D8 */ daObjBarrier_ef_c mEffect;
|
||||
/* 0x724 */ u8 mBarrierActive;
|
||||
/* 0x728 */ int mMoya;
|
||||
/* 0x72C */ s16 mEventID;
|
||||
/* 0x730 */ int mBarrierProc;
|
||||
};
|
||||
|
||||
namespace {
|
||||
static const char l_arcName[] = "Ycage";
|
||||
static const char l_arcname[] = "Ycage";
|
||||
|
||||
static const dCcD_SrcCyl l_cyl_at_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
@@ -162,16 +77,15 @@ static const dCcD_SrcCyl l_cyl_tg_src = {
|
||||
},
|
||||
};
|
||||
|
||||
static cXyz l_ef_scale;
|
||||
static cXyz l_ef_scale(1.0f, 1.0f, 1.0f);
|
||||
} // namespace
|
||||
|
||||
/* 000000EC-0000018C .text init_mtx__14daObjBarrier_cFv */
|
||||
// NONMATCHING - load order flipped
|
||||
void daObjBarrier_c::init_mtx() {
|
||||
mAnm.mpModel->setBaseScale(mScale);
|
||||
mAnm.getMdlP()->setBaseScale(mScale);
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mAnm.mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
mAnm.getMdlP()->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::scaleM(mScale);
|
||||
cMtx_copy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
@@ -185,21 +99,19 @@ int daObjBarrier_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
/* 000001B0-00000340 .text init__18daObjBarrier_anm_cFv */
|
||||
bool daObjBarrier_anm_c::init() {
|
||||
bool rt = true;
|
||||
void* modelData = dComIfG_getObjectRes(l_arcName, 10);
|
||||
void* pbtk = dComIfG_getObjectRes(l_arcName, 18);
|
||||
void* pbrk = dComIfG_getObjectRes(l_arcName, 14);
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, 10));
|
||||
J3DAnmTextureSRTKey* pbtk = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, 18));
|
||||
J3DAnmTevRegKey* pbrk = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(l_arcname, 14));
|
||||
|
||||
if (modelData == NULL || pbtk == NULL || pbrk == NULL) {
|
||||
JUT_PANIC(407);
|
||||
rt = false;
|
||||
} else {
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x1000200);
|
||||
BOOL btk_init = mBtk.init(
|
||||
(J3DModelData*)modelData, (J3DAnmTextureSRTKey*)pbtk,
|
||||
TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
BOOL brk_init = mBrk.init(
|
||||
(J3DModelData*)modelData, (J3DAnmTevRegKey*)pbrk,
|
||||
TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x1000200);
|
||||
BOOL btk_init =
|
||||
mBtk.init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
BOOL brk_init =
|
||||
mBrk.init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false, 0);
|
||||
|
||||
if (mpModel == NULL || !btk_init || !brk_init) {
|
||||
rt = false;
|
||||
@@ -218,7 +130,7 @@ bool daObjBarrier_c::create_heap() {
|
||||
if (!anm_init || !eff_init) {
|
||||
rt = false;
|
||||
} else {
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, 22);
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcname, 22);
|
||||
mpBgW = dBgW_NewSet(dzb, cBgW::MOVE_BG_e, &mBgMtx);
|
||||
if (mpBgW == NULL) {
|
||||
rt = false;
|
||||
@@ -415,7 +327,6 @@ bool daObjBarrier_ef_c::checkHitActor(fopAc_ac_c* i_checkActor) {
|
||||
}
|
||||
|
||||
/* 00000D5C-000011B8 .text birth__17daObjBarrier_ef_cFP10fopAc_ac_cf4cXyz4cXyzi */
|
||||
// NONMATCHING
|
||||
void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_center, cXyz i_hitPos,
|
||||
int i_isNoEff) {
|
||||
if (!i_isNoEff || !checkHitActor(i_hitActor)) {
|
||||
@@ -428,8 +339,9 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
|
||||
pos.z = i_center.z + i_radius * -cM_scos(angle.y);
|
||||
pos.y = i_hitPos.y;
|
||||
|
||||
int i;
|
||||
int active_flags = mActiveEffFlags;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (!((active_flags >> i) & 1)) {
|
||||
effect_idx = i;
|
||||
break;
|
||||
@@ -438,7 +350,7 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
|
||||
|
||||
if (effect_idx == -1) {
|
||||
f32 var_f1 = -1.0f;
|
||||
for (int i = 0; i < 4; i++) { // nonmatching
|
||||
for (i = 0; i < 4; i++) {
|
||||
if (mBtk[i].getFrame() > var_f1) {
|
||||
var_f1 = mBtk[i].getFrame();
|
||||
effect_idx = i;
|
||||
@@ -446,7 +358,8 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
active_flags = mActiveEffFlags;
|
||||
for (i = 0; i < 4; i++) {
|
||||
if ((int)((active_flags >> i) & 1) == true) {
|
||||
if (i != effect_idx) {
|
||||
mBtk[i].setPlaySpeed((mBtk[i].getEndFrame() - mBtk[i].getFrame()) / 3.0f);
|
||||
@@ -462,21 +375,21 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
|
||||
|
||||
J3DModelData* modelData = mpModel[effect_idx]->getModelData();
|
||||
|
||||
void* btk_anm_p = dComIfG_getObjectRes(l_arcName, 19);
|
||||
J3DAnmTextureSRTKey* btk_anm_p = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, 19));
|
||||
JUT_ASSERT(937, btk_anm_p != 0);
|
||||
|
||||
void* bck_anm_p = dComIfG_getObjectRes(l_arcName, 7);
|
||||
J3DAnmTransform* bck_anm_p = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(l_arcname, 7));
|
||||
JUT_ASSERT(942, bck_anm_p != 0);
|
||||
|
||||
void* brk_anm_p = dComIfG_getObjectRes(l_arcName, 15);
|
||||
J3DAnmTevRegKey* brk_anm_p = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(l_arcname, 15));
|
||||
JUT_ASSERT(947, brk_anm_p != 0);
|
||||
|
||||
mBtk[effect_idx].init(modelData, (J3DAnmTextureSRTKey*)btk_anm_p, TRUE,
|
||||
J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, true, 0);
|
||||
mBck[effect_idx].init(modelData, (J3DAnmTransform*)bck_anm_p, TRUE,
|
||||
J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, true);
|
||||
mBrk[effect_idx].init(modelData, (J3DAnmTevRegKey*)brk_anm_p, TRUE,
|
||||
J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, true, 0);
|
||||
mBtk[effect_idx].init(modelData, btk_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1,
|
||||
true, 0);
|
||||
mBck[effect_idx].init(modelData, bck_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1,
|
||||
true);
|
||||
mBrk[effect_idx].init(modelData, brk_anm_p, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1,
|
||||
true, 0);
|
||||
|
||||
mDoMtx_stack_c::transS(pos.x, pos.y, pos.z);
|
||||
mDoMtx_stack_c::ZXYrotM(0, angle.y, 0);
|
||||
@@ -489,28 +402,25 @@ void daObjBarrier_ef_c::birth(fopAc_ac_c* i_hitActor, f32 i_radius, cXyz i_cente
|
||||
/* 000011B8-000013E0 .text init__17daObjBarrier_ef_cFv */
|
||||
bool daObjBarrier_ef_c::init() {
|
||||
bool rt = true;
|
||||
void* modelData = dComIfG_getObjectRes(l_arcName, 11);
|
||||
void* pbtk = dComIfG_getObjectRes(l_arcName, 19);
|
||||
void* pbck = dComIfG_getObjectRes(l_arcName, 7);
|
||||
void* pbrk = dComIfG_getObjectRes(l_arcName, 15);
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, 11));
|
||||
J3DAnmTextureSRTKey* pbtk = static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes(l_arcname, 19));
|
||||
J3DAnmTransform* pbck = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(l_arcname, 7));
|
||||
J3DAnmTevRegKey* pbrk = static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes(l_arcname, 15));
|
||||
|
||||
if (modelData == NULL || pbtk == NULL || pbck == NULL || pbrk == NULL) {
|
||||
JUT_PANIC(1016);
|
||||
rt = false;
|
||||
} else {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mpModel[i] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x5020200);
|
||||
mpModel[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x5020200);
|
||||
setDummyTexture(i);
|
||||
|
||||
BOOL btk_init = mBtk[i].init(
|
||||
(J3DModelData*)modelData, (J3DAnmTextureSRTKey*)pbtk,
|
||||
TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1, false, 0);
|
||||
BOOL bck_init = mBck[i].init(
|
||||
(J3DModelData*)modelData, (J3DAnmTransform*)pbck,
|
||||
TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false);
|
||||
BOOL brk_init = mBrk[i].init(
|
||||
(J3DModelData*)modelData, (J3DAnmTevRegKey*)pbrk,
|
||||
TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false, 0);
|
||||
BOOL btk_init = mBtk[i].init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0,
|
||||
-1, false, 0);
|
||||
BOOL bck_init =
|
||||
mBck[i].init(modelData, pbck, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0, -1, false);
|
||||
BOOL brk_init = mBrk[i].init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 0.0f, 0,
|
||||
-1, false, 0);
|
||||
|
||||
if (mpModel[i] == NULL || !btk_init || !bck_init || !brk_init) {
|
||||
rt = false;
|
||||
@@ -584,7 +494,7 @@ int daObjBarrier_c::_create() {
|
||||
}
|
||||
|
||||
if (mBarrierActive == true) {
|
||||
phase = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
phase = dComIfG_resLoad(&mPhase, l_arcname);
|
||||
}
|
||||
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
@@ -594,7 +504,7 @@ int daObjBarrier_c::_create() {
|
||||
} else {
|
||||
mpBgW->SetCrrFunc(NULL);
|
||||
mScale.z = mScale.x;
|
||||
fopAcM_SetMtx(this, mAnm.mpModel->getBaseTRMtx());
|
||||
fopAcM_SetMtx(this, mAnm.getMdlP()->getBaseTRMtx());
|
||||
init_mtx();
|
||||
|
||||
mAtStts.Init(0xFF, 0xFF, this);
|
||||
@@ -621,15 +531,10 @@ int daObjBarrier_c::_create() {
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 0000182C-00001A38 .text __ct__14daObjBarrier_cFv */
|
||||
daObjBarrier_c::daObjBarrier_c() {
|
||||
mEffect.mActiveEffFlags = 0;
|
||||
}
|
||||
|
||||
/* 00001A38-00001AD8 .text _delete__14daObjBarrier_cFv */
|
||||
bool daObjBarrier_c::_delete() {
|
||||
if (mBarrierActive == true) {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
dComIfG_resDelete(&mPhase, l_arcname);
|
||||
|
||||
if (heap != NULL && mpBgW != NULL) {
|
||||
if (mpBgW->ChkUsed()) {
|
||||
@@ -681,27 +586,27 @@ bool daObjBarrier_c::_draw() {
|
||||
}
|
||||
|
||||
/* 00001C1C-00001C3C .text daObjBarrier_Create__FP10fopAc_ac_c */
|
||||
int daObjBarrier_Create(fopAc_ac_c* i_this) {
|
||||
static int daObjBarrier_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjBarrier_c*>(i_this)->_create();
|
||||
}
|
||||
|
||||
/* 00001C3C-00001C60 .text daObjBarrier_Delete__FP14daObjBarrier_c */
|
||||
int daObjBarrier_Delete(daObjBarrier_c* i_this) {
|
||||
static int daObjBarrier_Delete(daObjBarrier_c* i_this) {
|
||||
return static_cast<daObjBarrier_c*>(i_this)->_delete();
|
||||
}
|
||||
|
||||
/* 00001C60-00001C84 .text daObjBarrier_Execute__FP14daObjBarrier_c */
|
||||
int daObjBarrier_Execute(daObjBarrier_c* i_this) {
|
||||
static int daObjBarrier_Execute(daObjBarrier_c* i_this) {
|
||||
return static_cast<daObjBarrier_c*>(i_this)->_execute();
|
||||
}
|
||||
|
||||
/* 00001C84-00001CA8 .text daObjBarrier_Draw__FP14daObjBarrier_c */
|
||||
int daObjBarrier_Draw(daObjBarrier_c* i_this) {
|
||||
static int daObjBarrier_Draw(daObjBarrier_c* i_this) {
|
||||
return static_cast<daObjBarrier_c*>(i_this)->_draw();
|
||||
}
|
||||
|
||||
/* 00001CA8-00001CB0 .text daObjBarrier_IsDelete__FP14daObjBarrier_c */
|
||||
int daObjBarrier_IsDelete(daObjBarrier_c* i_this) {
|
||||
static int daObjBarrier_IsDelete(daObjBarrier_c* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ BOOL CheckCreateHeap(fopAc_ac_c* i_this) {
|
||||
|
||||
/* 00000098-0000015C .text CreateHeap__14daObjCafelmp_cFv */
|
||||
BOOL daObjCafelmp_c::CreateHeap() {
|
||||
void* modelData = dComIfG_getObjectRes("Cafelmp", 0x03);
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("Cafelmp", 0x03));
|
||||
JUT_ASSERT(0x51, modelData != 0);
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x00, 0x11020203);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x00, 0x11020203);
|
||||
if (!mpModel)
|
||||
return FALSE;
|
||||
else
|
||||
|
||||
@@ -49,13 +49,13 @@ BOOL daObjGbed_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
bool daObjGbed_c::create_heap() {
|
||||
bool ret = true;
|
||||
|
||||
void* pModelData = dComIfG_getObjectRes(l_arcname, 0x04);
|
||||
J3DModelData* pModelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_arcname, 0x04));
|
||||
|
||||
if (!pModelData) {
|
||||
JUT_ASSERT(0xb1, 0);
|
||||
ret = false;
|
||||
} else {
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)pModelData, 0x80000, 0x11000022);
|
||||
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000, 0x11000022);
|
||||
mpBgW = dBgW_NewSet((cBgD_t*)dComIfG_getObjectRes(l_arcname, 0x07), cBgW::MOVE_BG_e, &mpModel->getBaseTRMtx());
|
||||
|
||||
if (!mpModel || !mpBgW)
|
||||
|
||||
@@ -263,15 +263,15 @@ s16 daObjMknjD::Act_c::XyEventCB(int) {
|
||||
|
||||
/* 0000031C-00000620 .text CreateHeap__Q210daObjMknjD5Act_cFv */
|
||||
int daObjMknjD::Act_c::CreateHeap() {
|
||||
/* Nonmatching */
|
||||
J3DModelData* model_data_d;
|
||||
const void* temp_r26; // Fakematch to get it to use the same register for model_data_d and jntName
|
||||
if (m043E == true) {
|
||||
model_data_d = (J3DModelData*)dComIfG_getObjectRes(M_arcname, ID_WIND_MDL);
|
||||
temp_r26 = dComIfG_getObjectRes(M_arcname, ID_WIND_MDL);
|
||||
}
|
||||
else {
|
||||
model_data_d = (J3DModelData*)dComIfG_getObjectRes(M_arcname, ID_EARTH_MDL);
|
||||
temp_r26 = dComIfG_getObjectRes(M_arcname, ID_EARTH_MDL);
|
||||
}
|
||||
|
||||
J3DModelData* model_data_d = (J3DModelData*)temp_r26;
|
||||
J3DModelData* model_data_h = (J3DModelData*)dComIfG_getObjectRes(M_arcname, ID_BREAK_MDL);
|
||||
|
||||
JUT_ASSERT(0x123, model_data_d != 0)
|
||||
@@ -284,12 +284,13 @@ int daObjMknjD::Act_c::CreateHeap() {
|
||||
JUTNameTab* nameTable = mMainMdl->getModelData()->getJointName();
|
||||
|
||||
for (u16 i = 0; i < mMainMdl->getModelData()->getJointNum(); i++) {
|
||||
const char* jntName = nameTable->getName(i);
|
||||
// const char* jntName = nameTable->getName(i);
|
||||
temp_r26 = nameTable->getName(i);
|
||||
|
||||
if (strcmp("MknjL", jntName) == 0) {
|
||||
if (strcmp("MknjL", (const char*)temp_r26) == 0) {
|
||||
mMainMdl->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBackL);
|
||||
}
|
||||
else if (strcmp("MknjR", jntName) == 0) {
|
||||
else if (strcmp("MknjR", (const char*)temp_r26) == 0) {
|
||||
mMainMdl->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBackR);
|
||||
}
|
||||
}
|
||||
@@ -300,10 +301,11 @@ int daObjMknjD::Act_c::CreateHeap() {
|
||||
nameTable = mBreakMdl->getModelData()->getJointName();
|
||||
|
||||
for (u16 i = 0; i < mBreakMdl->getModelData()->getJointNum(); i++) {
|
||||
const char* jntName = nameTable->getName(i);
|
||||
// const char* jntName = nameTable->getName(i);
|
||||
temp_r26 = nameTable->getName(i);
|
||||
|
||||
for (u16 j = 0; j < 20; j++) {
|
||||
if (strcmp(daObjMknjD_jointName[j], jntName) == 0) {
|
||||
if (strcmp(daObjMknjD_jointName[j], (const char*)temp_r26) == 0) {
|
||||
mBreakMdl->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack_Hahen);
|
||||
joint_number_table[curTblIdx++] = j;
|
||||
|
||||
@@ -944,7 +946,9 @@ int daObjMknjD::Act_c::Execute(Mtx** i_mtx) {
|
||||
m0500 = 0;
|
||||
m043F = 9;
|
||||
|
||||
#if VERSION != VERSION_JPN
|
||||
fopAcM_seStart(this, JA_SE_PRE_TAKT, 0);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
m0500 = 1;
|
||||
|
||||
@@ -76,10 +76,10 @@ BOOL daObjMonument::Act_c::solidHeapCB(fopAc_ac_c* i_this) {
|
||||
bool daObjMonument::Act_c::create_heap() {
|
||||
bool ret = true;
|
||||
|
||||
void* modelData = dComIfG_getObjectRes(M_arcname, attr(mType).mModelId);
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(M_arcname, attr(mType).mModelId));
|
||||
JUT_ASSERT(0x81, modelData != 0);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x00, 0x11020203);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x00, 0x11020203);
|
||||
if (!mpModel)
|
||||
return false;
|
||||
|
||||
|
||||
+8
-8
@@ -537,8 +537,8 @@ bool dNpc_setAnmIDRes(mDoExt_McaMorf* pMorf, int loopMode, float morf, float spe
|
||||
pSoundAnimRes = dComIfG_getObjectIDRes(arcName, soundResId);
|
||||
}
|
||||
|
||||
void* pAnimRes = dComIfG_getObjectIDRes(arcName, animResId);
|
||||
pMorf->setAnm((J3DAnmTransform*)pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
J3DAnmTransform* pAnimRes = static_cast<J3DAnmTransform*>(dComIfG_getObjectIDRes(arcName, animResId));
|
||||
pMorf->setAnm(pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
@@ -575,8 +575,8 @@ bool dNpc_setAnm(mDoExt_McaMorf* pMorf, int loopMode, f32 morf, f32 speed, int a
|
||||
pSoundAnimRes = dComIfG_getObjectRes(arcName, soundFileIdx);
|
||||
}
|
||||
|
||||
void* pAnimRes = dComIfG_getObjectRes(arcName, animFileIdx);
|
||||
pMorf->setAnm((J3DAnmTransform*)pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
J3DAnmTransform* pAnimRes = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(arcName, animFileIdx));
|
||||
pMorf->setAnm(pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
|
||||
ret = true;
|
||||
}
|
||||
@@ -682,14 +682,14 @@ u16 fopNpc_npc_c::talk(int param_1) {
|
||||
bool dNpc_setAnm_2(mDoExt_McaMorf* pMorf, int loopMode, f32 morf, f32 speed, int animFileIdx, int soundFileIdx, const char* arcName) {
|
||||
if(0 <= soundFileIdx) {
|
||||
void* pSoundAnimRes = dComIfG_getObjectRes(arcName, soundFileIdx);
|
||||
void* pAnimRes = dComIfG_getObjectRes(arcName, animFileIdx);
|
||||
J3DAnmTransform* pAnimRes = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(arcName, animFileIdx));
|
||||
|
||||
pMorf->setAnm((J3DAnmTransform*)pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
pMorf->setAnm(pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, pSoundAnimRes);
|
||||
}
|
||||
else {
|
||||
void* pAnimRes = dComIfG_getObjectRes(arcName, animFileIdx);
|
||||
J3DAnmTransform* pAnimRes = static_cast<J3DAnmTransform*>(dComIfG_getObjectRes(arcName, animFileIdx));
|
||||
|
||||
pMorf->setAnm((J3DAnmTransform*)pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, 0);
|
||||
pMorf->setAnm(pAnimRes, loopMode, morf, speed, 0.0f, -1.0f, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user