From f38b962a5844502889ec00a98d0c9ed2a1151695 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Thu, 17 Sep 2026 10:05:55 -0400 Subject: demo d_file_error OK, fmap/fmap2 work, misc (#1208) * d_file_error OK, use J2DPane inlines everywhere * d_menu_fmap demo work * fmap and fmap2 work * fix demo regression with ternary fakematch * inline cleanup, f_pc_profile OK for demo * fix min/max bss order * lstair almost for demo --- src/d/actor/d_a_lstair.cpp | 73 +++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 37 deletions(-) (limited to 'src/d/actor') diff --git a/src/d/actor/d_a_lstair.cpp b/src/d/actor/d_a_lstair.cpp index 7e5060a5..91a0ddfa 100644 --- a/src/d/actor/d_a_lstair.cpp +++ b/src/d/actor/d_a_lstair.cpp @@ -8,15 +8,22 @@ #include "d/d_stage.h" #include "res/Object/Gkai00.h" +namespace daLStair_prm { + inline int getSwitchNo(daLStair_c* actor) { return fopAcM_GetParam(actor) & 0xFF; } +} + const char daLStair_c::m_arcname[] = "Gkai00"; /* 00000078-000000D4 .text _delete__10daLStair_cFv */ bool daLStair_c::_delete() { - if (heap != NULL) { +#if VERSION > VERSION_DEMO + if (heap != NULL) +#endif + { dComIfG_Bgsp()->Release(mpBgW); } - dComIfG_resDelete(&mPhase, m_arcname); + dComIfG_resDeleteDemo(&mPhase, m_arcname); return TRUE; } @@ -29,7 +36,7 @@ static BOOL CheckCreateHeap(fopAc_ac_c* i_this) { /* 000000F4-000004F8 .text CreateHeap__10daLStair_cFv */ BOOL daLStair_c::CreateHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BDL_GKAI00_e); - JUT_ASSERT(0xD8, modelData != NULL); + JUT_ASSERT(DEMO_SELECT(209, 216), modelData != NULL); mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000223); if (mpModel == NULL) { @@ -37,35 +44,35 @@ BOOL daLStair_c::CreateHeap() { } J3DAnmTransform* pbck = (J3DAnmTransform*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BCK_GKAI00_e); - JUT_ASSERT(0xE9, pbck != NULL); + JUT_ASSERT(DEMO_SELECT(226, 233), pbck != NULL); if (!mBckAnm.init(modelData, pbck, true, J3DFrameCtrl::EMode_NONE, 1.0f, 0, -1, false)) { return FALSE; } J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BTK_GKAI00_e); - JUT_ASSERT(0xF4, pbtk != NULL); + JUT_ASSERT(DEMO_SELECT(237, 244), pbtk != NULL); if (!mBtkAnm.init(modelData, pbtk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0)) { return FALSE; } J3DAnmColor* pbpk = (J3DAnmColor*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BPK_GKAI00_01_e); - JUT_ASSERT(0xFF, pbpk != NULL); + JUT_ASSERT(DEMO_SELECT(248, 255), pbpk != NULL); if (!mBpkAnm0.init(modelData, pbpk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0)) { return FALSE; } pbpk = (J3DAnmColor*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BPK_GKAI00_02_e); - JUT_ASSERT(0x10A, pbpk != NULL); + JUT_ASSERT(DEMO_SELECT(259, 266), pbpk != NULL); if (!mBpkAnm1.init(modelData, pbpk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0)) { return FALSE; } J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(m_arcname, dRes_INDEX_GKAI00_BRK_GKAI00_e); - JUT_ASSERT(0x116, pbrk != NULL); + JUT_ASSERT(DEMO_SELECT(271, 278), pbrk != NULL); if (!mBrkAnm.init(modelData, pbrk, true, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false, 0)) { return FALSE; @@ -87,11 +94,11 @@ BOOL daLStair_c::CreateHeap() { /* 000004F8-00000638 .text CreateInit__10daLStair_cFv */ void daLStair_c::CreateInit() { - cullMtx = mpModel->getBaseTRMtx(); + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); fopAcM_setCullSizeBox(this, -200.0f, -300.0f, -100.0f, 200.0f, 100.0f, 700.0f); - cullSizeFar = 1.5f; - mSwitchNo = fopAcM_GetParam(this) & 0xFF; - mSwitchStatus = dComIfGs_isSwitch(mSwitchNo, fopAcM_GetHomeRoomNo(this)) != 0; + fopAcM_setCullSizeFar(this, 1.5f); + mSwitchNo = daLStair_prm::getSwitchNo(this); + mSwitchStatus = fopAcM_isSwitch(this, mSwitchNo); mEnemyGone = fopAcM_myRoomSearchEnemy(fopAcM_GetRoomNo(this)) == NULL; mEventIdx = dComIfGp_evmng_getEventIdx("STAIRAPPEAR", 0xFF); mStairYOffset = -330.0f; @@ -140,24 +147,20 @@ void daLStair_c::set_mtx() { /* 00000998-00000A1C .text setMoveBGMtx__10daLStair_cFv */ void daLStair_c::setMoveBGMtx() { - f32 y = current.pos.y; - f32 h = mStairYOffset; - f32 c = -300.0f; - + f32 f3 = -300.0f; mDoMtx_stack_c::transS( current.pos.x, - h + (y + c), + current.pos.y + f3 + mStairYOffset, current.pos.z ); - mDoMtx_stack_c::YrotM(shape_angle.y); mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z); - mDoMtx_copy(mDoMtx_stack_c::get(), mBgMtx); + MTXCopy(mDoMtx_stack_c::get(), mBgMtx); } /* 00000A1C-00000ACC .text _execute__10daLStair_cFv */ bool daLStair_c::_execute() { - bool switch_status = dComIfGs_isSwitch(mSwitchNo, fopAcM_GetHomeRoomNo(this)); + bool switch_status = fopAcM_isSwitch(this, mSwitchNo); bool enemy_gone = fopAcM_myRoomSearchEnemy(fopAcM_GetRoomNo(this)) == NULL; checkAppear(); @@ -195,10 +198,7 @@ void daLStair_c::demoMove() { /* 00000B8C-00000C88 .text checkAppear__10daLStair_cFv */ void daLStair_c::checkAppear() { - bool switch_status = dComIfGs_isSwitch( - mSwitchNo, - fopAcM_GetHomeRoomNo(this) - ); + bool switch_status = fopAcM_isSwitch(this, mSwitchNo); bool enemy_gone = fopAcM_myRoomSearchEnemy(current.roomNo) == NULL; if (mSwitchNo != 0xFF) { @@ -230,9 +230,11 @@ void daLStair_c::checkAppear() { /* 00000C88-00000D78 .text moveBG__10daLStair_cFv */ void daLStair_c::moveBG() { - bool switch_status = dComIfGs_isSwitch(mSwitchNo, home.roomNo); + bool switch_status = fopAcM_isSwitch(this, mSwitchNo); bool enemy_gone = fopAcM_myRoomSearchEnemy(current.roomNo) == NULL; + f32 maxStep = 10.0f; + f32 minStep = 5.0f; f32 target; if ((mSwitchNo != 0xFF && switch_status) || (mSwitchNo == 0xFF && enemy_gone)) { @@ -243,7 +245,8 @@ void daLStair_c::moveBG() { if (mAppearTimer < 0) { if (cLib_calcTimer(&mTimer) == 0) { - cLib_addCalc(&mStairYOffset, target, 1.0f / 60.0f, 10.0f, 5.0f); + int r0 = 60; + cLib_addCalc(&mStairYOffset, target, 1.0f / r0, maxStep, minStep); } } @@ -264,8 +267,8 @@ void daLStair_c::appear_stair() { ); mDoMtx_stack_c::YrotM(current.angle.y); - PSMTXMultVec(mDoMtx_stack_c::get(), &local_2c, &local_2c); - PSMTXMultVec(mDoMtx_stack_c::get(), &local_38, &local_38); + mDoMtx_stack_c::multVec(&local_2c, &local_2c); + mDoMtx_stack_c::multVec(&local_38, &local_38); local_20.y -= 300.0f; @@ -307,7 +310,7 @@ void daLStair_c::disappear_stair() { /* 0000103C-000010D4 .text set_on_se__10daLStair_cFv */ void daLStair_c::set_on_se() { - stage_stag_info_class* stage_info = dComIfGp_getStage().getStagInfo(); + stage_stag_info_class* stage_info = dComIfGp_getStageStagInfo(); if ((dStage_stagInfo_GetSaveTbl(stage_info)) == dStageType_FF1_e) { fopAcM_seStart(this, JA_SE_OBJ_R_STAIR_APPEAR, 0); @@ -333,14 +336,10 @@ inline BOOL daLStair_c::_draw() { g_env_light.settingTevStruct(TEV_TYPE_BG0, ¤t.pos, &tevStr); g_env_light.setLightTevColorType(mpModel, &tevStr); - J3DModelData* modelData = mpModel->getModelData(); - mBtkAnm.entry(modelData, mBtkAnm.getFrame()); - modelData = mpModel->getModelData(); - mBpkAnm0.entry(modelData, mBpkAnm0.getFrame()); - modelData = mpModel->getModelData(); - mBpkAnm1.entry(modelData, mBpkAnm1.getFrame()); - modelData = mpModel->getModelData(); - mBrkAnm.entry(modelData, mBrkAnm.getFrame()); + mBtkAnm.entry(mpModel->getModelData()); + mBpkAnm0.entry(mpModel->getModelData()); + mBpkAnm1.entry(mpModel->getModelData()); + mBrkAnm.entry(mpModel->getModelData()); dComIfGd_setListBG(); mDoExt_modelUpdateDL(mpModel); -- cgit v1.2.3