diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h index d26ecfce2..6904e8e6d 100644 --- a/include/d/d_resorce.h +++ b/include/d/d_resorce.h @@ -21,7 +21,7 @@ public: static void dump_long(dRes_info_c*, int); static void dump(dRes_info_c*, int); - void* getRes(u32 resIdx) { return *(mRes + resIdx); } + void* getRes(s32 i_index) { return mRes[i_index]; } int getResNum() { return mpArchive->countFile(); } int getCount() { return mCount; } char* getArchiveName() { return mArchiveName; } @@ -32,6 +32,10 @@ public: return --mCount; } + // Debug only + u64 dump(char*, dRes_info_c*, int) {} + u64 getSize() {} + private: /* 0x00 */ char mArchiveName[14]; /* 0x0E */ u16 mCount; diff --git a/src/d/actor/d_a_am.cpp b/src/d/actor/d_a_am.cpp index e20dff582..7dfa12722 100644 --- a/src/d/actor/d_a_am.cpp +++ b/src/d/actor/d_a_am.cpp @@ -100,9 +100,9 @@ static void draw_SUB(am_class* i_this) { J3DModel* model = i_this->mpMorf->getModel(); model->setBaseScale(i_this->scale); mDoMtx_stack_c::transS(i_this->current.pos); - cMtx_YrotM(mDoMtx_stack_c::get(), i_this->shape_angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), i_this->shape_angle.x); - cMtx_ZrotM(mDoMtx_stack_c::get(), i_this->shape_angle.z); + mDoMtx_stack_c::YrotM(i_this->shape_angle.y); + mDoMtx_stack_c::XrotM(i_this->shape_angle.x); + mDoMtx_stack_c::ZrotM(i_this->shape_angle.z); model->setBaseTRMtx(mDoMtx_stack_c::get()); i_this->mpMorf->calc(); diff --git a/src/d/actor/d_a_am2.cpp b/src/d/actor/d_a_am2.cpp index ea9ab2802..c61fdcb45 100644 --- a/src/d/actor/d_a_am2.cpp +++ b/src/d/actor/d_a_am2.cpp @@ -76,9 +76,9 @@ static void draw_SUB(am2_class* i_this) { J3DModel* model = i_this->mpMorf->getModel(); model->setBaseScale(i_this->scale); mDoMtx_stack_c::transS(i_this->current.pos); - cMtx_YrotM(mDoMtx_stack_c::get(), i_this->shape_angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), i_this->shape_angle.x); - cMtx_ZrotM(mDoMtx_stack_c::get(), i_this->shape_angle.z); + mDoMtx_stack_c::YrotM(i_this->shape_angle.y); + mDoMtx_stack_c::XrotM(i_this->shape_angle.x); + mDoMtx_stack_c::ZrotM(i_this->shape_angle.z); model->setBaseTRMtx(mDoMtx_stack_c::get()); i_this->mpMorf->calc(); diff --git a/src/d/actor/d_a_arrow.cpp b/src/d/actor/d_a_arrow.cpp index 2fffdddc8..f587d9e55 100644 --- a/src/d/actor/d_a_arrow.cpp +++ b/src/d/actor/d_a_arrow.cpp @@ -535,9 +535,7 @@ void daArrow_c::setKeepMatrix() { mDoMtx_stack_c::transS(0.7f, -0.07f, -0.2f); mDoMtx_stack_c::XYZrotM(0x238E, 0x2CDF, 0x29BE); - - MtxP handMtx = zelda->getRightHandMatrix(); - cMtx_concat(handMtx, mDoMtx_stack_c::get(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::revConcat(zelda->getRightHandMatrix()); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); MtxP mtx = mDoMtx_stack_c::get(); @@ -554,9 +552,7 @@ void daArrow_c::setKeepMatrix() { // X rotation must be a float literal to force the compiler to pass an unsigned short. // Z rotation must be an int literal to pass a signed short as normal. mDoMtx_stack_c::XYZrotM((248.5f*65536)/360, 0x238E, -0x6333); - - MtxP handMtx = player->getLeftHandMatrix(); - cMtx_concat(handMtx, mDoMtx_stack_c::get(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::revConcat(player->getLeftHandMatrix()); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); MtxP mtx = mDoMtx_stack_c::get(); diff --git a/src/d/actor/d_a_bomb2.cpp b/src/d/actor/d_a_bomb2.cpp index 4d19653d0..38b681715 100644 --- a/src/d/actor/d_a_bomb2.cpp +++ b/src/d/actor/d_a_bomb2.cpp @@ -234,17 +234,15 @@ namespace daBomb2 { } void FuseSparksCB_c::execute(JPABaseEmitter* emitter) { - f32 x = mpPos->x; - f32 y = mpPos->y; - f32 z = mpPos->z; - emitter->mGlobalTranslation.set(x, y, z); + JGeometry::TVec3 pos(*mpPos); + emitter->setGlobalTranslation(pos); JSUPtrLink* link = emitter->getParticleList()->getFirstLink(); while(link != 0) { JSUPtrLink* next = link->getNext(); JPABaseParticle* ptcl = (JPABaseParticle*)link->getObjectPtr(); - ptcl->setOffsetPosition(x, y, z); + ptcl->setOffsetPosition(pos); link = next; } diff --git a/src/d/actor/d_a_bomb3.inc b/src/d/actor/d_a_bomb3.inc index 97c22afd6..efd437ae4 100644 --- a/src/d/actor/d_a_bomb3.inc +++ b/src/d/actor/d_a_bomb3.inc @@ -69,14 +69,14 @@ void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) { vec1.set(*field_0x0C); JGeometry::TVec3 vec2; vec2.set(*mpPos); - emitter->mGlobalTranslation.set(vec2); + emitter->setGlobalTranslation(vec2); f32 temp = mpPos->abs(*field_0x0C); s16 temp2 = (20.0f - temp) * 0.5f + 10.0f; if(temp2 < 10) { temp2 = 10; } - emitter->mLifeTime = temp2; + emitter->setLifeTime(temp2); JGeometry::TVec3 vec3; vec3.z = 0.5f * (vec2.x - vec1.x); @@ -99,7 +99,7 @@ void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) { JGeometry::TVec3 vec5; vec5.cubic(vec1, vec2, vec3, vec4, i); - emitter->mLifeTime = temp8; + emitter->setLifeTime(temp8); JPABaseParticle* particle = emitter->createParticle(); if(particle) { particle->setOffsetPosition(vec5); @@ -112,17 +112,15 @@ void daBomb_fuseSmokeEcallBack::executeAfter(JPABaseEmitter* emitter) { /* 800D977C-800D97C4 .text execute__26daBomb_fuseSparksEcallBackFP14JPABaseEmitter */ void daBomb_fuseSparksEcallBack::execute(JPABaseEmitter* emitter) { - f32 x = mpPos->x; - f32 y = mpPos->y; - f32 z = mpPos->z; - emitter->mGlobalTranslation.set(x, y, z); + JGeometry::TVec3 pos(*mpPos); + emitter->setGlobalTranslation(pos); JSUPtrLink* link = emitter->getParticleList()->getFirstLink(); while(link != 0) { JSUPtrLink* next = link->getNext(); JPABaseParticle* ptcl = (JPABaseParticle*)link->getObjectPtr(); - ptcl->setOffsetPosition(x, y, z); + ptcl->setOffsetPosition(pos); link = next; } @@ -714,7 +712,7 @@ void daBomb_c::eff_explode_normal(const csXyz* rotation) { void daBomb_c::eff_explode_cheap(const csXyz* rotation) { JPABaseEmitter* emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_LIGHT_FLASH, ¤t.pos, rotation, &scale); if(emitter) { - emitter->mLifeTime = 0xC; + emitter->setLifeTime(0xC); JGeometry::TVec3 vec(0.5f, 0.67f, 1.0f); emitter->setGlobalParticleScale(vec); } @@ -722,14 +720,14 @@ void daBomb_c::eff_explode_cheap(const csXyz* rotation) { dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_232A, ¤t.pos, NULL, &scale); emitter = dComIfGp_particle_setBombSmoke(dPa_name::ID_COMMON_SMOKE_CIRCLE, ¤t.pos, NULL, &scale); if(emitter) { - emitter->mLifeTime = 0x46; + emitter->setLifeTime(0x46); } emitter = dComIfGp_particle_setToonP1(dPa_name::ID_COMMON_SMOKE_DEBRIS, ¤t.pos, NULL, &scale); if(emitter) { - emitter->mLifeTime = 0x46; - emitter->mInitialVelAxis = 25.0f; - emitter->mInitialVelDir = 35.0f; + emitter->setLifeTime(0x46); + emitter->setAwayFromAxisSpeed(25.0f); + emitter->setDirectionalSpeed(35.0f); } } diff --git a/src/d/actor/d_a_demo_item.cpp b/src/d/actor/d_a_demo_item.cpp index ccaac77ac..6837566ae 100644 --- a/src/d/actor/d_a_demo_item.cpp +++ b/src/d/actor/d_a_demo_item.cpp @@ -418,9 +418,9 @@ void daDitem_c::set_mtx() { mDoMtx_stack_c::ZrotM(current.angle.z); mDoMtx_stack_c::XrotM(0x12C0); mDoMtx_stack_c::YrotM(current.angle.y); - mDoMtx_stack_c::now[0][3] = current.pos.x; - mDoMtx_stack_c::now[1][3] = current.pos.y; - mDoMtx_stack_c::now[2][3] = current.pos.z; + mDoMtx_stack_c::get()[0][3] = current.pos.x; + mDoMtx_stack_c::get()[1][3] = current.pos.y; + mDoMtx_stack_c::get()[2][3] = current.pos.z; } mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); } diff --git a/src/d/actor/d_a_dr.cpp b/src/d/actor/d_a_dr.cpp index b8c95fb55..493d71e75 100644 --- a/src/d/actor/d_a_dr.cpp +++ b/src/d/actor/d_a_dr.cpp @@ -167,9 +167,9 @@ static void daDr_setMtx(dr_class* i_this) { J3DModel* model = i_this->mpMorf->getModel(); model->setBaseScale(i_this->scale); mDoMtx_stack_c::transS(i_this->current.pos); - cMtx_YrotM(mDoMtx_stack_c::get(), i_this->current.angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), i_this->current.angle.x); - cMtx_ZrotM(mDoMtx_stack_c::get(), i_this->current.angle.z); + mDoMtx_stack_c::YrotM(i_this->current.angle.y); + mDoMtx_stack_c::XrotM(i_this->current.angle.x); + mDoMtx_stack_c::ZrotM(i_this->current.angle.z); model->setBaseTRMtx(mDoMtx_stack_c::get()); i_this->mpMorf->calc(); diff --git a/src/d/actor/d_a_npc_bs1.cpp b/src/d/actor/d_a_npc_bs1.cpp index 9f39c7cdc..3e7565f37 100644 --- a/src/d/actor/d_a_npc_bs1.cpp +++ b/src/d/actor/d_a_npc_bs1.cpp @@ -2094,7 +2094,7 @@ BOOL daNpc_Bs1_c::_execute() { tevStr.mEnvrIdxOverride = dComIfG_Bgsp()->GetPolyColor(mAcch.m_gnd); J3DModel* pModel = mpMorf->getModel(); mDoMtx_stack_c::transS(current.pos); - mDoMtx_YrotM(mDoMtx_stack_c::get(), current.angle.y); + mDoMtx_stack_c::YrotM(current.angle.y); pModel->setBaseTRMtx(mDoMtx_stack_c::get()); for (int i = 0; i < 3; i++) { if (m76C[i] != 0) { diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp index 30786732a..d672ad402 100644 --- a/src/d/actor/d_a_npc_md.cpp +++ b/src/d/actor/d_a_npc_md.cpp @@ -3201,7 +3201,7 @@ BOOL daNpc_Md_c::draw() { mDoExt_modelUpdateDL(mpHarpLightModel); mLightBtkAnm.remove(mpHarpLightModel->getModelData()); - mDoMtx_copy(mpHarpModel->getBaseTRMtx(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::copy(mpHarpModel->getBaseTRMtx()); mDoMtx_stack_c::transM(l_HIO.m034.m0C, l_HIO.m034.m10, l_HIO.m034.m14); Mtx mtx; mDoMtx_copy(mDoMtx_stack_c::get(), mtx); diff --git a/src/d/actor/d_a_obj_ebomzo.cpp b/src/d/actor/d_a_obj_ebomzo.cpp index d68a9d709..a713967ab 100644 --- a/src/d/actor/d_a_obj_ebomzo.cpp +++ b/src/d/actor/d_a_obj_ebomzo.cpp @@ -109,8 +109,8 @@ void daObjEbomzo::Act_c::set_mtx() { mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(shape_angle); - mpModel->setBaseTRMtx(mDoMtx_stack_c::now); - cMtx_copy(mDoMtx_stack_c::now, M_tmp_mtx); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); + cMtx_copy(mDoMtx_stack_c::get(), M_tmp_mtx); } /* 0000062C-00000668 .text init_mtx__Q211daObjEbomzo5Act_cFv */ diff --git a/src/d/actor/d_a_obj_hha.cpp b/src/d/actor/d_a_obj_hha.cpp index 9014d65b0..d4a56c05f 100644 --- a/src/d/actor/d_a_obj_hha.cpp +++ b/src/d/actor/d_a_obj_hha.cpp @@ -127,7 +127,7 @@ void daObjHhaPart_c::init_mtx(cXyz currentPos, csXyz shapeAngle, cXyz scale) { mDoMtx_stack_c::transS(currentPos); mDoMtx_stack_c::ZXYrotM(shapeAngle); mDoMtx_stack_c::transM(mPos); - mpModel->setBaseTRMtx(mDoMtx_stack_c::now); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); mpModel->calc(); } @@ -237,7 +237,7 @@ void daObjHhaYgush_c::init_mtx() { mDoMtx_stack_c::transS(mPos); mDoMtx_stack_c::ZXYrotM(mRot); mDoMtx_stack_c::scaleM(13.0f, 1.0f, 11.0f); - M_mdl->setBaseTRMtx(mDoMtx_stack_c::now); + M_mdl->setBaseTRMtx(mDoMtx_stack_c::get()); } } @@ -411,7 +411,7 @@ void daObjHha_c::init_mtx() { mDoMtx_stack_c::ZXYrotM(shape_angle); mDoMtx_stack_c::transM(mPosOffset); mDoMtx_stack_c::scaleM(1.0f, 1.0f, mWtrScale); - mpModel->setBaseTRMtx(mDoMtx_stack_c::now); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); mpModel->calc(); } diff --git a/src/d/actor/d_a_obj_homensmoke.cpp b/src/d/actor/d_a_obj_homensmoke.cpp index 04cf35624..c12eb2b22 100644 --- a/src/d/actor/d_a_obj_homensmoke.cpp +++ b/src/d/actor/d_a_obj_homensmoke.cpp @@ -19,16 +19,16 @@ namespace daObjHomensmoke { cXyz forwardOffset(0.0f, 0.0f, 200.0f); mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::transM(forwardOffset); - cMtx_ZrotM(mDoMtx_stack_c::get(), shape_angle.z); - cMtx_YrotM(mDoMtx_stack_c::get(), shape_angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), shape_angle.x); + mDoMtx_stack_c::ZrotM(shape_angle.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::XrotM(shape_angle.x); mDoMtx_stack_c::transM(backOffset); mDoMtx_copy(mDoMtx_stack_c::get(), mMtx); } else { mDoMtx_stack_c::transS(current.pos); - cMtx_ZrotM(mDoMtx_stack_c::get(), shape_angle.z); - cMtx_YrotM(mDoMtx_stack_c::get(), shape_angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), shape_angle.x); + mDoMtx_stack_c::ZrotM(shape_angle.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::XrotM(shape_angle.x); mDoMtx_copy(mDoMtx_stack_c::get(), mMtx); } } diff --git a/src/d/actor/d_a_obj_iceisland.cpp b/src/d/actor/d_a_obj_iceisland.cpp index bc9ab4adc..b738551e7 100644 --- a/src/d/actor/d_a_obj_iceisland.cpp +++ b/src/d/actor/d_a_obj_iceisland.cpp @@ -76,8 +76,8 @@ void daObjIceisland_c::CreateInit() { /* 00000588-00000608 .text set_mtx__16daObjIceisland_cFv */ void daObjIceisland_c::set_mtx() { mpModel->setBaseScale(scale); - mDoMtx_trans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z); - mDoMtx_YrotM(mDoMtx_stack_c::now, current.angle.y); + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(current.angle.y); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); } diff --git a/src/d/actor/d_a_obj_mknjd.cpp b/src/d/actor/d_a_obj_mknjd.cpp index 060ae1461..52c30c385 100644 --- a/src/d/actor/d_a_obj_mknjd.cpp +++ b/src/d/actor/d_a_obj_mknjd.cpp @@ -359,7 +359,7 @@ void daObjMknjD::Act_c::setGoal(int i_staffIdx) { cXyz pos = *dComIfGp_evmng_getMyXyzP(i_staffIdx, "Posion"); mDoMtx_stack_c::transS(current.pos); - mDoMtx_YrotM(mDoMtx_stack_c::get(), current.angle.y); + mDoMtx_stack_c::YrotM(current.angle.y); mDoMtx_stack_c::transM(pos); diff --git a/src/d/actor/d_a_obj_smplbg.cpp b/src/d/actor/d_a_obj_smplbg.cpp index 53eee52bf..f97c54d45 100644 --- a/src/d/actor/d_a_obj_smplbg.cpp +++ b/src/d/actor/d_a_obj_smplbg.cpp @@ -87,7 +87,7 @@ void daObjSmplbg::Act_c::set_mtx() { mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(shape_angle); mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); - cMtx_copy(mDoMtx_stack_c::now, M_tmp_mtx); + cMtx_copy(mDoMtx_stack_c::get(), M_tmp_mtx); } /* 00000558-00000594 .text init_mtx__Q211daObjSmplbg5Act_cFv */ diff --git a/src/d/actor/d_a_player_bow.inc b/src/d/actor/d_a_player_bow.inc index 68986b283..db09061ed 100644 --- a/src/d/actor/d_a_player_bow.inc +++ b/src/d/actor/d_a_player_bow.inc @@ -22,9 +22,9 @@ BOOL daPy_lk_c::bowJointCB(int param_0) { } if (param_0 == 6) { - mDoMtx_trans(mDoMtx_stack_c::now, 0.0f, 4.5f, 4.5f); - mDoMtx_concat(mpEquipItemModel->getAnmMtx(6), mDoMtx_stack_c::now, mDoMtx_stack_c::now); - mpEquipItemModel->setAnmMtx(param_0, mDoMtx_stack_c::now); + mDoMtx_stack_c::transS(0.0f, 4.5f, 4.5f); + mDoMtx_stack_c::revConcat(mpEquipItemModel->getAnmMtx(6)); + mpEquipItemModel->setAnmMtx(param_0, mDoMtx_stack_c::get()); } else { mpEquipItemModel->setAnmMtx(11, mpEquipItemModel->getAnmMtx(6)); } diff --git a/src/d/actor/d_a_player_dproc.inc b/src/d/actor/d_a_player_dproc.inc index b54c6b471..0ddbac38e 100644 --- a/src/d/actor/d_a_player_dproc.inc +++ b/src/d/actor/d_a_player_dproc.inc @@ -362,9 +362,9 @@ BOOL daPy_lk_c::dProcOpenTreasure_init() { if (mEquipItem == daPyItem_BOKO_e) { daBoko_c* boko = (daBoko_c*)mActorKeepEquip.getActor(); if (boko != NULL) { - mDoMtx_trans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z); - mDoMtx_YrotM(mDoMtx_stack_c::now, (shape_angle.y + 0x2000)); - MtxP mtx = mDoMtx_stack_c::now; + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y + 0x2000); + MtxP mtx = mDoMtx_stack_c::get(); if (boko->mpModel != NULL) { boko->mpModel->setBaseTRMtx(mtx); } @@ -1059,38 +1059,29 @@ BOOL daPy_lk_c::dProcTalismanWait_init() { mVelocity = 0.0f; setTalismanModel(); m32E4.makeEmitter(dPa_name::ID_COMMON_03E9, mpEquipItemModel->getBaseTRMtx(), ¤t.pos, NULL); - MtxP anmMtx = mpCLModel->getAnmMtx(12); - MtxP baseMtx = mpEquipItemModel->getBaseTRMtx(); - MTXCopy(anmMtx, baseMtx); - MTXCopy(mpCLModel->getAnmMtx(12), mDoMtx_stack_c::now); + mpEquipItemModel->setBaseTRMtx(mpCLModel->getAnmMtx(12)); + mDoMtx_stack_c::copy(mpCLModel->getAnmMtx(12)); f32 adjust = (cM_ssin(g_Counter.mTimer * 1512)); mDoMtx_stack_c::transM(7.0f, 0.0f, 15.0f + 3.0f * adjust); - cXyz* pcVar1 = &m338C.mPos; - pcVar1->x = mDoMtx_stack_c::now[0][3]; - pcVar1->y = mDoMtx_stack_c::now[1][3]; - pcVar1->z = mDoMtx_stack_c::now[2][3]; - dComIfGp_particle_setP1(dPa_name::ID_COMMON_03EA, pcVar1, NULL, NULL, 0xff, &m338C, -1); + mDoMtx_stack_c::multVecZero(&m338C.getPos()); + dComIfGp_particle_setP1(dPa_name::ID_COMMON_03EA, &m338C.getPos(), NULL, NULL, 0xff, &m338C, -1); initShipRideUseItem(iVar2, 1); return true; } /* 8012FE58-8012FFEC .text dProcTalismanWait__9daPy_lk_cFv */ BOOL daPy_lk_c::dProcTalismanWait() { - cXyz* pcVar1; - if (dComIfGp_checkPlayerStatus0(0, daPyStts0_SHIP_RIDE_e)) { setShipRidePos(1); } - pcVar1 = &m338C.mPos; - MTXCopy(mpCLModel->getAnmMtx(12), mDoMtx_stack_c::now); + cXyz* pcVar1 = &m338C.getPos(); + mDoMtx_stack_c::copy(mpCLModel->getAnmMtx(12)); f32 adjust = (cM_ssin(g_Counter.mTimer * 1512)); mDoMtx_stack_c::transM(7.0f, 0.0f, 15.0f + 3.0f * adjust); - pcVar1->x = mDoMtx_stack_c::now[0][3]; - pcVar1->y = mDoMtx_stack_c::now[1][3]; - pcVar1->z = mDoMtx_stack_c::now[2][3]; - mDoMtx_trans(mDoMtx_stack_c::now, pcVar1->x, pcVar1->y, pcVar1->z); - mDoMtx_YrotM(mDoMtx_stack_c::now, (g_Counter.mTimer * 511)); - mpEquipItemModel->setBaseTRMtx(mDoMtx_stack_c::now); + mDoMtx_stack_c::multVecZero(pcVar1); + mDoMtx_stack_c::transS(*pcVar1); + mDoMtx_stack_c::YrotM(g_Counter.mTimer * 511); + mpEquipItemModel->setBaseTRMtx(mDoMtx_stack_c::get()); mSwordAnim.play(); J3DModelData* modelData = mpEquipItemModel->getModelData(); f32 frame = mSwordAnim.getFrameCtrl()->getFrame(); diff --git a/src/d/actor/d_a_player_fan.inc b/src/d/actor/d_a_player_fan.inc index ed17ce6fc..8710074be 100644 --- a/src/d/actor/d_a_player_fan.inc +++ b/src/d/actor/d_a_player_fan.inc @@ -29,13 +29,13 @@ BOOL daPy_lk_c::fanWindCrashEffectDraw() { /* 8014BB38-8014BBE8 .text fanJointCB__9daPy_lk_cFi */ BOOL daPy_lk_c::fanJointCB(int param_0) { if (param_0 == 2) { - mDoMtx_ZrotS(mDoMtx_stack_c::now, m3558); + mDoMtx_stack_c::ZrotS(m3558); } else { - mDoMtx_ZrotS(mDoMtx_stack_c::now, m355A); + mDoMtx_stack_c::ZrotS(m355A); } - mDoMtx_concat(mpEquipItemModel->getAnmMtx(param_0), mDoMtx_stack_c::now, mDoMtx_stack_c::now); - mpEquipItemModel->setAnmMtx(1 * param_0, mDoMtx_stack_c::now); - mDoMtx_copy(mDoMtx_stack_c::now, j3dSys.mCurrentMtx); + mDoMtx_stack_c::revConcat(mpEquipItemModel->getAnmMtx(param_0)); + mpEquipItemModel->setAnmMtx(1 * param_0, mDoMtx_stack_c::get()); + mDoMtx_stack_c::copy(j3dSys.mCurrentMtx); return true; } @@ -54,15 +54,15 @@ BOOL daPy_fanJointCallback(J3DNode* node, int calcTiming) { /* 8014BC2C-8014BD08 .text parachuteJointCB__9daPy_lk_cFi */ BOOL daPy_lk_c::parachuteJointCB(int param_0) { if (param_0 == 3 || param_0 == 9) { - mDoMtx_trans(mDoMtx_stack_c::now, m3600, 0.0f, 0.0f); + mDoMtx_stack_c::transS(m3600, 0.0f, 0.0f); } else if (param_0 == 1 || param_0 == 7) { - mDoMtx_YrotS(mDoMtx_stack_c::now, m355E); + mDoMtx_stack_c::YrotS(m355E); } else { return true; } - mDoMtx_concat(mpEquipItemModel->getAnmMtx(param_0), mDoMtx_stack_c::now, mDoMtx_stack_c::now); - mpEquipItemModel->setAnmMtx(1 * param_0, mDoMtx_stack_c::now); - mDoMtx_copy(mDoMtx_stack_c::now, j3dSys.mCurrentMtx); + mDoMtx_stack_c::revConcat(mpEquipItemModel->getAnmMtx(param_0)); + mpEquipItemModel->setAnmMtx(1 * param_0, mDoMtx_stack_c::get()); + mDoMtx_stack_c::copy(j3dSys.mCurrentMtx); return true; } @@ -290,9 +290,9 @@ BOOL daPy_lk_c::procFanSwing() { local_80.y = shape_angle.y + 0x8000; local_80.x = getGroundAngle(&(mGndChk), local_80.y); local_80.z = getGroundAngle(&(mGndChk), local_80.y + -0x4000); - mDoMtx_trans(mDoMtx_stack_c::now, local_48.x, local_48.y, local_48.z); - mDoMtx_ZXYrotM(mDoMtx_stack_c::now, local_80.x, local_80.y, local_80.z); - JPASetRMtxTVecfromMtx(mDoMtx_stack_c::now, pJVar5->mGlobalRotation, (pJVar5->mGlobalTranslation)); + mDoMtx_stack_c::transS(local_48); + mDoMtx_stack_c::ZXYrotM(local_80.x, local_80.y, local_80.z); + pJVar5->setGlobalRTMatrix(mDoMtx_stack_c::get()); pJVar5->setSpread(0.45f); if (attrib_code == dBgS_Attr_GRASS_e) { pJVar5->setRate(100.0f); @@ -370,7 +370,7 @@ BOOL daPy_lk_c::procFanGlide() { if (frameCtrl.checkPass(4.0f)) { JPABaseEmitter* emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_004B, ¤t.pos); if (emitter) { - JPASetRMtxTVecfromMtx(mpCLModel->getAnmMtx(0xf), emitter->mGlobalRotation, emitter->mGlobalTranslation); + emitter->setGlobalRTMatrix(mpCLModel->getAnmMtx(0xf)); } } if (frameCtrl.getRate() < 0.01f && mProcVar0.m3570 == 0 && m32E4.getEmitter() == NULL) { diff --git a/src/d/actor/d_a_player_grab.inc b/src/d/actor/d_a_player_grab.inc index f29b378ba..e591f43fb 100644 --- a/src/d/actor/d_a_player_grab.inc +++ b/src/d/actor/d_a_player_grab.inc @@ -74,9 +74,9 @@ void daPy_lk_c::setGrabItemPos() { fopAc_ac_c* grab_actor = mActorKeepGrab.getActor(); if (grab_actor != NULL) { if (mCurProc == daPyProc_GRAB_READY_e) { - mDoMtx_trans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z); - mDoMtx_YrotM(mDoMtx_stack_c::now, (int)(short)(shape_angle.y - m34D4)); - mDoMtx_multVec(mDoMtx_stack_c::now, &m370C, &grab_actor->current.pos); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(shape_angle.y - m34D4); + mDoMtx_stack_c::multVec(&m370C, &grab_actor->current.pos); } else { s8 sVar2 = current.roomNo; grab_actor->tevStr.mRoomNo = sVar2; diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 7ad3930d7..1ea118f12 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -6113,7 +6113,7 @@ BOOL daPy_lk_c::playerDelete() { dKy_plight_cut(&mLightInfluence); mDoAud_seDeleteObject(&mSwordTopPos); mDoAud_seDeleteObject(&mRopePos); - mDoAud_seDeleteObject(&m338C.mPos); + mDoAud_seDeleteObject(&m338C.getPos()); mDoAud_seDeleteObject(mFanWindCps.GetEndP()); for (i = 0; i < (int)ARRAY_SIZE(m_anm_heap_under); i++) { diff --git a/src/d/actor/d_a_player_particle.inc b/src/d/actor/d_a_player_particle.inc index 0bec6a85f..614651685 100644 --- a/src/d/actor/d_a_player_particle.inc +++ b/src/d/actor/d_a_player_particle.inc @@ -431,24 +431,23 @@ u16 daPy_dmEcallBack_c::m_type = 3; /* 8012A160-8012A288 .text execute__18daPy_dmEcallBack_cFP14JPABaseEmitter */ void daPy_dmEcallBack_c::execute(JPABaseEmitter* emitter) { if (checkFlame()) { - cXy v; - v.x = emitter->mGlobalTranslation.x; - v.y = emitter->mGlobalTranslation.z; + JGeometry::TVec3 pos; + emitter->getGlobalTranslation(pos); emitter->setGlobalTranslation(mpMtx[0][3], mpMtx[1][3], mpMtx[2][3]); - v.x = (mpMtx[0][3] - v.x) * -0.05f; - v.y = (mpMtx[2][3] - v.y) * -0.05f; - f32 sq = v.x * v.x + v.y * v.y; + pos.x = (mpMtx[0][3] - pos.x) * -0.05f; + pos.z = (mpMtx[2][3] - pos.z) * -0.05f; + f32 sq = pos.x * pos.x + pos.z * pos.z; if (sq > 1.0f) { f32 distFrac = 1.0f / std::sqrtf(sq); - v.x *= distFrac; - v.y *= distFrac; + pos.x *= distFrac; + pos.z *= distFrac; } - emitter->setDirection(JGeometry::TVec3(v.x, 0.6f, v.y)); + emitter->setDirection(JGeometry::TVec3(pos.x, 0.6f, pos.z)); } else { emitter->setGlobalRTMatrix(mpMtx); } diff --git a/src/d/actor/d_a_player_pushpull.inc b/src/d/actor/d_a_player_pushpull.inc index 1fce5a3b7..c448a1029 100644 --- a/src/d/actor/d_a_player_pushpull.inc +++ b/src/d/actor/d_a_player_pushpull.inc @@ -32,9 +32,9 @@ BOOL daPy_lk_c::setPushPullKeepData(dBgW::PushPullLabel pp_label) { if (pp_label != dBgW::PPLABEL_NONE) { if (pp_actor->shape_angle.y != m34D4) { cXyz local_28 = current.pos - m370C; - mDoMtx_trans(mDoMtx_stack_c::now, m370C.x, m370C.y, m370C.z); - mDoMtx_YrotM(mDoMtx_stack_c::now, pp_actor->shape_angle.y - m34D4); - mDoMtx_multVec(mDoMtx_stack_c::now, &local_28, ¤t.pos); + mDoMtx_stack_c::transS(m370C); + mDoMtx_stack_c::YrotM(pp_actor->shape_angle.y - m34D4); + mDoMtx_stack_c::multVec(&local_28, ¤t.pos); s16 var_r28 = pp_actor->shape_angle.y - m34D4; shape_angle.y += var_r28; current.angle.y += var_r28; diff --git a/src/d/actor/d_a_player_ship.inc b/src/d/actor/d_a_player_ship.inc index ec99f1098..e7a9a3a43 100644 --- a/src/d/actor/d_a_player_ship.inc +++ b/src/d/actor/d_a_player_ship.inc @@ -106,7 +106,7 @@ void daPy_lk_c::setShipRideArmAngle(int jnt_no, J3DTransformInfo* param_2) { } mDoMtx_stack_c::ZrotM(uVar5); mDoMtx_stack_c::XrotM(0x4000); - mDoMtx_copy(mDoMtx_stack_c::now, J3DSys::mCurrentMtx); + mDoMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); if (uVar3) { mDoMtx_stack_c::multVec(&armA_offset, &arm_pos); } diff --git a/src/d/actor/d_a_player_sword.inc b/src/d/actor/d_a_player_sword.inc index dd7f66d00..5d7cdf6ab 100644 --- a/src/d/actor/d_a_player_sword.inc +++ b/src/d/actor/d_a_player_sword.inc @@ -200,9 +200,7 @@ void daPy_lk_c::setLightSaver() { dPa_name::ID_COMMON_030A, ¤t.pos, NULL, NULL, 0xFF, NULL, -1, pbVar9, pbVar8, NULL ); if (pJVar7 != 0) { - JPASetRMtxTVecfromMtx( - mpEquipItemModel->getAnmMtx(2), pJVar7->mGlobalRotation, pJVar7->mGlobalTranslation - ); + pJVar7->setGlobalRTMatrix(mpEquipItemModel->getAnmMtx(2)); if (checkMasterSwordEquip()) { pJVar7->setGlobalDynamicsScale(d_scale); pJVar7->setGlobalParticleScale(p_scale); @@ -504,20 +502,20 @@ int daPy_lk_c::changeCutReverseProc(daPy_ANM param_0) { &tevStr.mColorK0 ); if (emitter != 0) { - emitter->mSpread = 0.2f; - emitter->mVolumeSweep = 0.15f; - emitter->mRate = 8.0f; - emitter->mMaxFrame = 1; + emitter->setSpread(0.2f); + emitter->setVolumeSweep(0.15f); + emitter->setRate(8.0f); + emitter->setMaxFrame(1); } } else { local_44.x += 0x4000; emitter = dComIfGp_particle_setP1(dPa_name::ID_COMMON_002C, mLinkLinChk.GetCrossP(), &local_44); if (emitter != 0) { - emitter->mInitialVelAxis = 20.0f; - emitter->mRate = 20.0f; - emitter->mMaxFrame = 1; - emitter->mInitialVelDir = 20.0f; + emitter->setAwayFromAxisSpeed(20.0f); + emitter->setRate(20.0f); + emitter->setMaxFrame(1); + emitter->setDirectionalSpeed(20.0f); } } } diff --git a/src/d/actor/d_a_pw.cpp b/src/d/actor/d_a_pw.cpp index f0e4a6d35..e6c738eb8 100644 --- a/src/d/actor/d_a_pw.cpp +++ b/src/d/actor/d_a_pw.cpp @@ -34,9 +34,9 @@ void draw_SUB(pw_class* i_this) { J3DModel* model = i_this->mpMorf->getModel(); model->setBaseScale(i_this->scale); mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y + i_this->m3A4, i_this->current.pos.z); - cMtx_YrotM(mDoMtx_stack_c::get(), i_this->shape_angle.y); - cMtx_XrotM(mDoMtx_stack_c::get(), i_this->shape_angle.x); - cMtx_ZrotM(mDoMtx_stack_c::get(), i_this->shape_angle.z); + mDoMtx_stack_c::YrotM(i_this->shape_angle.y); + mDoMtx_stack_c::XrotM(i_this->shape_angle.x); + mDoMtx_stack_c::ZrotM(i_this->shape_angle.z); model->setBaseTRMtx(mDoMtx_stack_c::get()); i_this->mpMorf->calc(); diff --git a/src/d/actor/d_a_rd.cpp b/src/d/actor/d_a_rd.cpp index d0dbaa73f..cc308959d 100644 --- a/src/d/actor/d_a_rd.cpp +++ b/src/d/actor/d_a_rd.cpp @@ -135,7 +135,7 @@ static BOOL nodeControl_CB(J3DNode* node, int calcTiming) { void daRd_c::_nodeControl(J3DNode* node, J3DModel* model) { J3DJoint* joint = static_cast(node); int jntNo = joint->getJntNo(); - cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get()); + mDoMtx_stack_c::copy(model->getAnmMtx(jntNo)); if (mJntCtrl.getHeadJntNum() == jntNo) { static cXyz l_offsetAttPos(0.0f, 0.0f, 0.0f); @@ -174,7 +174,7 @@ void daRd_c::_nodeHeadControl(J3DNode* node, J3DModel* model) { int jntNo = joint->getJntNo(); cXyz temp4(mD38, 0.0f, 0.0f); - cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get()); + mDoMtx_stack_c::copy(model->getAnmMtx(jntNo)); mDoMtx_stack_c::transM(temp4); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); diff --git a/src/d/actor/d_a_ship.cpp b/src/d/actor/d_a_ship.cpp index a01f1578f..0e4a5013c 100644 --- a/src/d/actor/d_a_ship.cpp +++ b/src/d/actor/d_a_ship.cpp @@ -73,20 +73,20 @@ BOOL daShip_c::bodyJointCallBack(int jno) { J3DModel *pModel = mpBodyAnm->getModel(); if ((jno == 10) || (jno == 5)) { - cMtx_ZrotS(mDoMtx_stack_c::get(), m0366); + mDoMtx_stack_c::ZrotS(m0366); } else if (jno == 7) { - cMtx_ZrotS(mDoMtx_stack_c::get(), -mSailAngle); + mDoMtx_stack_c::ZrotS(-mSailAngle); } else if (jno == 6) { - cMtx_ZrotS(mDoMtx_stack_c::get(), 0xC000); - cMtx_concat(pModel->getAnmMtx(jno), mDoMtx_stack_c::get(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::ZrotS(0xC000); + mDoMtx_stack_c::revConcat(pModel->getAnmMtx(jno)); mpSalvageArmModel->setBaseTRMtx(mDoMtx_stack_c::get()); - cMtx_YrotM(mDoMtx_stack_c::get(), -0x8000); + mDoMtx_stack_c::YrotM(-0x8000); mpCannonModel->setBaseTRMtx(mDoMtx_stack_c::get()); - cMtx_scale(mDoMtx_stack_c::get(), m03E8, m03E8, m03E8); + mDoMtx_stack_c::scaleS(m03E8, m03E8, m03E8); } - cMtx_concat(pModel->getAnmMtx(jno), mDoMtx_stack_c::get(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::revConcat(pModel->getAnmMtx(jno)); pModel->setAnmMtx(jno, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); return TRUE; @@ -109,12 +109,12 @@ static BOOL daShip_bodyJointCallBack(J3DNode* node, int calcTiming) { /* 00000284-0000033C .text cannonJointCallBack__8daShip_cFi */ BOOL daShip_c::cannonJointCallBack(int jno) { if (jno == 1) { - cMtx_XrotS(mDoMtx_stack_c::get(), m0394); + mDoMtx_stack_c::XrotS(m0394); } else { - cMtx_YrotS(mDoMtx_stack_c::get(), -m0396); + mDoMtx_stack_c::YrotS(-m0396); } - cMtx_concat(mpCannonModel->getAnmMtx(jno), mDoMtx_stack_c::get(), mDoMtx_stack_c::get()); + mDoMtx_stack_c::revConcat(mpCannonModel->getAnmMtx(jno)); mpCannonModel->setAnmMtx(jno, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); return TRUE; @@ -181,7 +181,7 @@ BOOL daShip_c::headJointCallBack1(int jno) { short sVar5 = shape_angle.y + m03A2 * (jno + -2); mDoMtx_stack_c::YrotS(sVar5); - mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), m03A0, m03A2, 0); + mDoMtx_stack_c::ZXYrotM(m03A0, m03A2, 0); mDoMtx_stack_c::YrotM(-sVar5); mDoMtx_stack_c::concat(mpHeadAnm->getModel()->getAnmMtx(jno)); @@ -787,7 +787,7 @@ void daShip_c::setWaveAngle(short* param1, short* param2) { mDoMtx_stack_c::transS(current.pos); - mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), shape_angle.x, shape_angle.y, shape_angle.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); cXyz frontPos; cXyz leftPos; @@ -3241,8 +3241,8 @@ void daShip_c::setRopePos() { s16 z = sVar12 + cM_atan2s(-spBC.x, fVar1); s16 y = shape_angle.y; s16 x = sVar14 + cM_atan2s(spBC.z, spBC.y); - mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), x, y, z); - mDoMtx_XrotM(mDoMtx_stack_c::get(), -0x4000); + mDoMtx_stack_c::ZXYrotM(x, y, z); + mDoMtx_stack_c::XrotM(-0x4000); if (m0392 == SHIP_BCK_FN_MAST_ON2) { J3DTransformInfo sp104; @@ -3913,7 +3913,7 @@ BOOL daShip_c::execute() { mDoMtx_trans(mDoMtx_stack_c::get(), current.pos.x, current.pos.y, current.pos.z); - mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), shape_angle.x, shape_angle.y, shape_angle.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); J3DModel* mModel1; J3DModel* mModel2; @@ -4660,7 +4660,7 @@ cPhs_State daShip_c::create() { } mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); - mDoMtx_ZXYrotM(mDoMtx_stack_c::get(), shape_angle.x, shape_angle.y, shape_angle.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); mpBodyAnm->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); mpBodyAnm->play(NULL, 0, 0); diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp index bc0c22ba3..4f9dca7b9 100644 --- a/src/d/actor/d_a_tbox.cpp +++ b/src/d/actor/d_a_tbox.cpp @@ -740,7 +740,7 @@ void daTbox_c::demoProcAppear() { if (emitter != NULL) { emitter->setRate(100.0f); emitter->setSpread(1.0f); - emitter->mInitialVelDir = 25.0f; + emitter->setDirectionalSpeed(25.0f); } } diff --git a/src/d/d_door.cpp b/src/d/d_door.cpp index e53d4f614..5077b5047 100644 --- a/src/d/d_door.cpp +++ b/src/d/d_door.cpp @@ -390,12 +390,8 @@ void dDoor_smoke_c::smokeInit(dDoor_info_c* door) { if (emtr != NULL) { emtr->setRate(16.0f); emtr->setSpread(0.35f); - emtr->mGlobalDynamicsScale.x = 2.0f; - emtr->mGlobalDynamicsScale.y = 2.0f; - emtr->mGlobalDynamicsScale.z = 2.0f; - emtr->mGlobalParticleScale.x = 2.0f; - emtr->mGlobalParticleScale.y = 2.0f; - emtr->mGlobalParticleScale.z = 2.0f; + JGeometry::TVec3 scale(2.0f, 2.0f, 2.0f); + emtr->setGlobalScale(scale); } } diff --git a/src/d/d_wood.cpp b/src/d/d_wood.cpp index aae8dbb71..6f9116fad 100644 --- a/src/d/d_wood.cpp +++ b/src/d/d_wood.cpp @@ -378,11 +378,11 @@ void dWood::Anm_c::mode_cut(dWood::Packet_c *) { mPosOffsetZ = mPosOffsetZ + L_attr.kCutZVel; mPhaseX[0] = mPhaseX[0] - L_attr.kCutPitchVel; - mDoMtx_YrotS(mDoMtx_stack_c::now, mForceDir); + mDoMtx_stack_c::YrotS(mForceDir); mDoMtx_stack_c::transM(0.0f, mPosOffsetY, mPosOffsetZ); - mDoMtx_XrotM(mDoMtx_stack_c::now, mPhaseX[0]); - mDoMtx_YrotM(mDoMtx_stack_c::now, -mForceDir); - mDoMtx_copy(mDoMtx_stack_c::now, mModelMtx); + mDoMtx_stack_c::XrotM(mPhaseX[0]); + mDoMtx_stack_c::YrotM(-mForceDir); + cMtx_copy(mDoMtx_stack_c::get(), mModelMtx); // Fade out the bush as it falls if (mCountdown < attr().kCutFadeStart) { @@ -638,7 +638,7 @@ bool dWood::Unit_c::set_ground() { mtx[2][3] = mPos.z; mDoMtx_stack_c::scaleM(L_attr.kUncutShadowScale, kGroundHeightBias, L_attr.kUncutShadowScale); - mDoMtx_copy(mDoMtx_stack_c::now, mShadowModelMtx); + cMtx_copy(mDoMtx_stack_c::get(), mShadowModelMtx); return true; } else { return false; @@ -649,16 +649,17 @@ bool dWood::Unit_c::set_ground() { void dWood::Unit_c::set_mtx(dWood::Anm_c *anim) { int anmIdx = mAnmIdx; - mDoMtx_copy(anim[anmIdx].mModelMtx, mDoMtx_stack_c::get()); - mDoMtx_stack_c::now[0][3] = mDoMtx_stack_c::now[0][3] + mPos.x; - mDoMtx_stack_c::now[1][3] = mDoMtx_stack_c::now[1][3] + mPos.y; - mDoMtx_stack_c::now[2][3] = mDoMtx_stack_c::now[2][3] + mPos.z; - mDoMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::now, mModelViewMtx); + mDoMtx_stack_c::copy(anim[anmIdx].mModelMtx); + MtxP mtx = mDoMtx_stack_c::get(); + mtx[0][3] += mPos.x; + mtx[1][3] += mPos.y; + mtx[2][3] += mPos.z; + mDoMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mModelViewMtx); - mDoMtx_copy(anim[anmIdx].mTrunkModelMtx, mDoMtx_stack_c::get()); - mDoMtx_stack_c::now[0][3] = mPos.x; - mDoMtx_stack_c::now[1][3] = mPos.y; - mDoMtx_stack_c::now[2][3] = mPos.z; + mDoMtx_stack_c::copy(anim[anmIdx].mTrunkModelMtx); + mtx[0][3] = mPos.x; + mtx[1][3] = mPos.y; + mtx[2][3] = mPos.z; mDoMtx_concat(j3dSys.getViewMtx(), mDoMtx_stack_c::get(), mTrunkModelViewMtx); mDoMtx_concat(j3dSys.getViewMtx(), mShadowModelMtx, mShadowModelViewMtx); @@ -952,18 +953,6 @@ void dWood::Packet_c::update() { /* 800BF614-800BF900 .text draw__Q25dWood8Packet_cFv */ void dWood::Packet_c::draw() { - u8 bVar1; - int iVar2; - int iVar3; - uint uVar4; - int iVar6; - int iVar7; - GXColor local_48; - GXColor local_44; - GXColor local_40; - GXColor local_38; - GXColorS10 local_30; - static GXVtxDescList l_shadowVtxDescList[] = { {GX_VA_POS, GX_INDEX8}, {GX_VA_TEX0, GX_INDEX8}, diff --git a/tools/project.py b/tools/project.py index 6c5d07af5..6d65daa06 100644 --- a/tools/project.py +++ b/tools/project.py @@ -1444,6 +1444,7 @@ def generate_objdiff_config( "GC/1.3.2": "mwcc_242_81", "GC/1.3.2r": "mwcc_242_81r", "GC/2.0": "mwcc_247_92", + "GC/2.0p1": "mwcc_247_92p1", "GC/2.5": "mwcc_247_105", "GC/2.6": "mwcc_247_107", "GC/2.7": "mwcc_247_108",