diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2026-07-24 14:25:28 -0400 |
|---|---|---|
| committer | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2026-07-24 14:25:28 -0400 |
| commit | 20913851558a8d86101a025c60078905534622a6 (patch) | |
| tree | d3372d43c9c0742aa98e8476c925e7533bba48b8 /src | |
| parent | 5faa15219c6c94622d5ed08b162fed09b85b8ffc (diff) | |
Demo matches
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/actor/d_a_agb.cpp | 65 | ||||
| -rw-r--r-- | src/d/actor/d_a_auction.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_goal_flag.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_md.cpp | 4 | ||||
| -rw-r--r-- | src/d/actor/d_a_npc_zl1.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_obj_pfall.cpp | 2 | ||||
| -rw-r--r-- | src/d/actor/d_a_player.cpp | 24 | ||||
| -rw-r--r-- | src/d/actor/d_a_player_hammer.inc | 4 | ||||
| -rw-r--r-- | src/d/actor/d_a_player_main.cpp | 88 | ||||
| -rw-r--r-- | src/d/actor/d_a_player_rope.inc | 10 | ||||
| -rw-r--r-- | src/d/actor/d_a_tag_volcano.cpp | 4 | ||||
| -rw-r--r-- | src/d/d_grass.cpp | 14 | ||||
| -rw-r--r-- | src/d/d_point_wind.cpp | 5 | ||||
| -rw-r--r-- | src/d/d_stage.cpp | 2 |
14 files changed, 141 insertions, 87 deletions
diff --git a/src/d/actor/d_a_agb.cpp b/src/d/actor/d_a_agb.cpp index 87625827..edc82418 100644 --- a/src/d/actor/d_a_agb.cpp +++ b/src/d/actor/d_a_agb.cpp @@ -1,11 +1,12 @@ /** * d_a_agb.cpp - * Tingle Tuner Cursor + * Tingle Tuner Cursor / AGBカーソル (AGB Cursor) */ #include "d/dolzel.h" // IWYU pragma: keep #include "d/actor/d_a_agb.h" #include "d/d_msg.h" +#include "d/d_s_play.h" #include "res/Object/Agb.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTAssert.h" @@ -407,7 +408,7 @@ int daAgb_c::uploadSelect() { strcat(path, ".bin"); l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, JKRArchive::DEFAULT_MOUNT_DIRECTION, dMsg_getAgbWorkArea()); #endif - JUT_ASSERT(VERSION_SELECT(591, 591, 860, 861), l_gbaCommand != NULL); + JUT_ASSERT(VERSION_SELECT(590, 591, 860, 861), l_gbaCommand != NULL); mDoGaC_GbaReboot(); mDoGaC_setPortNo(mPortNo); @@ -423,7 +424,7 @@ int daAgb_c::uploadSelect() { int daAgb_c::uploadJoyboot1() { if (l_gbaCommand->sync()) { void* programp = l_gbaCommand->getMemAddress(); - JUT_ASSERT(VERSION_SELECT(622, 622, 891, 892), programp != NULL); + JUT_ASSERT(VERSION_SELECT(621, 622, 891, 892), programp != NULL); JUTGba::getManager()->doJoyBoot(mDoGaC_getPortNo(), 3, -1, (u8*)programp, l_gbaCommand->getMemSize() - 4, NULL, NULL); @@ -483,7 +484,7 @@ int daAgb_c::uploadMessageLoad() { strcat(path, ".bin"); l_gbaCommand = mDoDvdThd_toMainRam_c::create(path, JKRArchive::DEFAULT_MOUNT_DIRECTION, NULL); #endif - JUT_ASSERT(VERSION_SELECT(715, 715, 1000, 1001), l_gbaCommand != NULL); + JUT_ASSERT(VERSION_SELECT(714, 715, 1000, 1001), l_gbaCommand != NULL); mUploadAction = UpAct_UNK7; mDoGaC_onComEnable(); @@ -506,7 +507,7 @@ int daAgb_c::uploadMessageLoad2() { int daAgb_c::uploadConnect() { if (mDoGaC_getComEnable() && mDoGaC_GbaLink()) { void* programp = l_gbaCommand->getMemAddress(); - JUT_ASSERT(VERSION_SELECT(760, 760, 1045, 1046), programp != NULL); + JUT_ASSERT(VERSION_SELECT(759, 760, 1045, 1046), programp != NULL); mDoGac_SendDataSet((u32*)programp, l_gbaCommand->getMemSize(), 0, 0); mUploadAction = UpAct_UNK8; @@ -1019,10 +1020,12 @@ void daAgb_c::GbaItemUse() { temp_r29 |= (var_r28 << 8); resetCursor(false); break; +#if VERSION > VERSION_DEMO case 0x13: resetCursor(false); field_0x65c = 30; break; +#endif case 7: if (dComIfGs_checkGetItem(dItemNo_BAIT_BAG_e)) { if (dComIfGs_checkBaitItemEmpty()) { @@ -1046,11 +1049,13 @@ void daAgb_c::GbaItemUse() { resetCursor(false); field_0x65c = 60; break; +#if VERSION > VERSION_DEMO case 9: dComIfGp_setItemMagicCount(8); resetCursor(false); field_0x65c = 60; break; +#endif case 10: dComIfGp_setItemLifeCount(dComIfGs_getMaxLife()); dComIfGp_setItemMagicCount(dComIfGs_getMaxMagic()); @@ -1216,8 +1221,10 @@ void daAgb_c::FlagsSend(u32 stage_type) { } else { mFlags.field_0xb_0 = 0; } +#if VERSION > VERSION_DEMO mFlags.field_0x5_2 = field_0x675; mFlags.field_0x5_1 = dComIfGs_checkGetItem(dItemNo_CABANA_DEED_e) != FALSE; +#endif mDoGac_SendDataSet((u32*)&mFlags, 0xC, 9, 0); } @@ -1227,9 +1234,9 @@ void daAgb_c::CursorMove(fopAc_ac_c* actor, u32 stage_type) { f32 f31; if (stage_type == dStageType_SEA_e) { - f31 = field_0x67e ? 50.0f : 781.25f; + f31 = field_0x67e ? DEMO_SELECT(l_HIO.field_0x18, 50.0f) : DEMO_SELECT(l_HIO.field_0x1c, 781.25f); } else { - f31 = 25.0f; + f31 = DEMO_SELECT(l_HIO.field_0x14, 25.0f); } if (cLib_chaseF(&field_0x628, 2.5f, field_0x62c) && @@ -1375,11 +1382,13 @@ void daAgb_c::modeMove() { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); u16 stage_type = dStage_stagInfo_GetSTType(stag_info); +#if VERSION > VERSION_DEMO if (eventInfo.checkCommandTalk()) { mUploadAction = UpAct_UNK0; mMode = MODE_LOAD; return; } +#endif if (field_0x65c != 0) { if (field_0x66b == 3 || field_0x66b == 12) { @@ -1518,7 +1527,12 @@ void daAgb_c::modeMove() { home.pos = r3->current.pos; } - shape_angle.setall(0); + shape_angle.x = 0; +#if VERSION > VERSION_DEMO + shape_angle.y = 0; +#endif + shape_angle.z = 0; + field_0x628 = 2.5f; if (g_mDoCPd_cpadInfo[mDoGaC_getPortNo()].mGamepadErrorFlags == 0 && !CPad_CHECK_HOLD_L(mDoGaC_getPortNo()) && ( @@ -1586,8 +1600,24 @@ static BOOL daAgb_Execute(daAgb_c* i_this) { i_this->FlagsSend(stage_type); } +#if VERSION > VERSION_DEMO i_this->field_0x680 = true; - } else if (i_this->field_0x680) { +#endif + } +#if VERSION == VERSION_DEMO + else { + i_this->resetCursor(false); + i_this->field_0x675 = 0; + i_this->field_0x676 = 0; + i_this->shape_angle.x = 0; + i_this->shape_angle.y = 0; + i_this->shape_angle.z = 0; + i_this->field_0x630 = 0; + i_this->field_0x632 = 0; + i_this->field_0x684.remove(); + } +#else + else if (i_this->field_0x680) { i_this->field_0x680 = false; i_this->resetCursor(true); i_this->offActive(); @@ -1607,6 +1637,7 @@ static BOOL daAgb_Execute(daAgb_c* i_this) { i_this->field_0x632 = 0; i_this->field_0x684.remove(); } +#endif i_this->modeProcCall(); @@ -1628,13 +1659,13 @@ static BOOL daAgb_Execute(daAgb_c* i_this) { { f32 speedF = fabs(player->speedF); - if (speedF <= 0.0f) { + if (speedF <= DEMO_SELECT(l_HIO.field_0x24, 0.0f)) { daAgb_c::mFlags.field_0x5_3 = 0; - } else if (speedF < 5.0f) { + } else if (speedF < DEMO_SELECT(l_HIO.field_0x28, 5.0f)) { daAgb_c::mFlags.field_0x5_3 = 1; - } else if (speedF < 10.0f) { + } else if (speedF < DEMO_SELECT(l_HIO.field_0x2c, 10.0f)) { daAgb_c::mFlags.field_0x5_3 = 2; - } else if (speedF < 15.0f) { + } else if (speedF < DEMO_SELECT(l_HIO.field_0x30, 15.0f)) { daAgb_c::mFlags.field_0x5_3 = 3; } else { daAgb_c::mFlags.field_0x5_3 = 4; @@ -1746,7 +1777,7 @@ static BOOL createHeap_CB(fopAc_ac_c* i_this) { /* 800D396C-800D3B58 .text createHeap__7daAgb_cFv */ BOOL daAgb_c::createHeap() { J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Agb", dRes_INDEX_AGB_BDL_AGBCURSOR_e); - JUT_ASSERT(VERSION_SELECT(2960, 2960, 3277, 3286), modelData != NULL); + JUT_ASSERT(VERSION_SELECT(2870, 2960, 3277, 3286), modelData != NULL); mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000002); if (mpModel == NULL) { @@ -1804,10 +1835,16 @@ static cPhs_State daAgb_Create(fopAc_ac_c* i_this) { a_this->setTargetID(fpcM_ERROR_PROCESS_ID_e); a_this->setFollowTarget(false); a_this->field_0x67b = false; +#if VERSION > VERSION_DEMO a_this->field_0x680 = true; +#endif fopAcM_setStageLayer(a_this); a_this->eventInfo.setEventName("DEFAULT_AGB_USE"); + +#if VERSION == VERSION_DEMO + l_HIO.entryHIO("AGBカーソル"); +#endif } return phase; diff --git a/src/d/actor/d_a_auction.cpp b/src/d/actor/d_a_auction.cpp index a33f2d1d..9dfeeddf 100644 --- a/src/d/actor/d_a_auction.cpp +++ b/src/d/actor/d_a_auction.cpp @@ -1389,7 +1389,7 @@ u16 daAuction_c::next_msgStatus(u32* pMsgNo) { break; case 0x1D1F: - dComIfGp_setNextStage("sea", 3, 11); + dComIfGp_setNextStage("sea", 3, dIsleRoom_WindfallIsland_e); case 0x1D24: m82B = 1; msgStatus = fopMsgStts_MSG_ENDS_e; diff --git a/src/d/actor/d_a_goal_flag.cpp b/src/d/actor/d_a_goal_flag.cpp index 4c8e13bc..5a8dba74 100644 --- a/src/d/actor/d_a_goal_flag.cpp +++ b/src/d/actor/d_a_goal_flag.cpp @@ -894,7 +894,7 @@ BOOL daGoal_Flag_c::RaceEnd() { if (end_chk || (mCamFramesPassed > l_HIO.mEndCamEarlyFrame && (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0) || CPad_CHECK_TRIG_START(0)) )) { - dComIfGp_setNextStage("sea", 1, 0x30); + dComIfGp_setNextStage("sea", 1, dIsleRoom_BoatingCourse_e); } return true; diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp index 1f3282a2..24f6cfca 100644 --- a/src/d/actor/d_a_npc_md.cpp +++ b/src/d/actor/d_a_npc_md.cpp @@ -3554,7 +3554,7 @@ void daNpc_Md_c::initialMsgSetEvent(int staffIdx) { if (mMsgNo == 0x19DD) { dComIfGs_onEventBit(dSv_event_flag_c::UNK_1620); dComIfGs_onEventBit(dSv_event_flag_c::UNK_1608); - dComIfGp_setNextStage("sea", 0xE3, 13, 8); + dComIfGp_setNextStage("sea", 0xE3, dIsleRoom_DragonRoostIsland_e, 8); } else { l_msgId = fpcM_ERROR_PROCESS_ID_e; int* pMsgNo = dComIfGp_evmng_getMyIntegerP(staffIdx, "MsgNo"); @@ -3908,7 +3908,7 @@ void daNpc_Md_c::initialEndEvent(int staffIdx) { if (mMsgNo == 0x19de) { dComIfGs_onEventBit(dSv_event_flag_c::UNK_1620); dComIfGs_onEventBit(dSv_event_flag_c::UNK_1608); - dComIfGp_setNextStage("sea", 0xE3, 13, 8); + dComIfGp_setNextStage("sea", 0xE3, dIsleRoom_DragonRoostIsland_e, 8); } // Fall-through case -1: diff --git a/src/d/actor/d_a_npc_zl1.cpp b/src/d/actor/d_a_npc_zl1.cpp index bbaf9219..b72de352 100644 --- a/src/d/actor/d_a_npc_zl1.cpp +++ b/src/d/actor/d_a_npc_zl1.cpp @@ -2202,7 +2202,7 @@ BOOL daNpc_Zl1_c::talk_1() { dComIfGs_onEventBit(dSv_event_flag_c::UNK_0810); break; case 0xC90: - dComIfGp_setNextStage("sea", 0xcd, 0x2c, 10, 0.0f, 0, 1, 0); + dComIfGp_setNextStage("sea", 0xcd, dIsleRoom_OutsetIsland_e, 10, 0.0f, 0, 1, 0); field_0x7D7 = false; return ret; } diff --git a/src/d/actor/d_a_obj_pfall.cpp b/src/d/actor/d_a_obj_pfall.cpp index c2600f7a..66daf71f 100644 --- a/src/d/actor/d_a_obj_pfall.cpp +++ b/src/d/actor/d_a_obj_pfall.cpp @@ -347,7 +347,7 @@ void daObj_Pfall_c::mode_event() { if(l_HIO.field_0x06 != 0) { mode_wait_init(); } else { - dComIfGp_setNextStage("sea", 15, 11); + dComIfGp_setNextStage("sea", 15, dIsleRoom_WindfallIsland_e); } } } else { diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index 26628476..d2bd11d8 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -14,8 +14,9 @@ void daPy_py_c::changePlayer(fopAc_ac_c* newPlayer) { if (!newPlayer) { return; } + s8 roomNo = newPlayer->current.roomNo; s8 stayNo = dComIfGp_roomControl_getStayNo(); - if (stayNo != newPlayer->current.roomNo) { + if (stayNo != roomNo) { return; } dComIfGp_setPlayer(0, newPlayer); @@ -25,27 +26,28 @@ void daPy_py_c::changePlayer(fopAc_ac_c* newPlayer) { /* 80102940-80102B84 .text objWindHitCheck__9daPy_py_cFP8dCcD_Cyl */ void daPy_py_c::objWindHitCheck(dCcD_Cyl* cyl) { - cXyz targetSpeed(0.0f, 0.0f, 0.0f); + cXyz targetSpeedVec(0.0f, 0.0f, 0.0f); f32 maxStep = 3.0f; if (cyl->ChkTgHit()) { cCcD_Obj* hitObj = cyl->GetTgHitObj(); if (hitObj && hitObj->ChkAtType(AT_TYPE_WIND)) { - targetSpeed = *cyl->GetTgRVecP(); - f32 distXZ = cyl->GetTgRVecP()->absXZ(); + targetSpeedVec = *cyl->GetTgRVecP(); + f32 speedXZ = cyl->GetTgRVecP()->absXZ(); + f32 targetSpeed = 30.0f; maxStep = 1.0f; - if (distXZ < 1.0f) { - targetSpeed = (current.pos - *cyl->GetTgHitPosP()) * 30.0f; - distXZ = targetSpeed.absXZ(); + if (speedXZ < 1.0f) { + targetSpeedVec = (current.pos - *cyl->GetTgHitPosP()) * targetSpeed; + speedXZ = targetSpeedVec.absXZ(); } - if (distXZ > 30.0f) { - targetSpeed *= 30.0f / distXZ; + if (speedXZ > targetSpeed) { + targetSpeedVec *= targetSpeed / speedXZ; } } } - cLib_addCalc(&field_0x2f8.x, targetSpeed.x, 0.5f, maxStep, 0.5f); - cLib_addCalc(&field_0x2f8.z, targetSpeed.z, 0.5f, maxStep, 0.5f); + cLib_addCalc(&field_0x2f8.x, targetSpeedVec.x, 0.5f, maxStep, 0.5f); + cLib_addCalc(&field_0x2f8.z, targetSpeedVec.z, 0.5f, maxStep, 0.5f); current.pos.x += field_0x2f8.x; current.pos.z += field_0x2f8.z; } diff --git a/src/d/actor/d_a_player_hammer.inc b/src/d/actor/d_a_player_hammer.inc index 32a51f1f..d425aafd 100644 --- a/src/d/actor/d_a_player_hammer.inc +++ b/src/d/actor/d_a_player_hammer.inc @@ -68,9 +68,7 @@ void daPy_lk_c::setHammerQuake(cBgS_PolyInfo* param_1, const cXyz* param_2, int getGroundAngle(param_1, shape_angle.y), shape_angle.y, getGroundAngle(param_1, shape_angle.y + -0x4000) ); mDoMtx_stack_c::transM(0.0f, 0.0f, -30.0f); - local_38.x = mDoMtx_stack_c::now[0][3]; - local_38.y = mDoMtx_stack_c::now[1][3]; - local_38.z = mDoMtx_stack_c::now[2][3]; + mDoMtx_stack_c::multVecZero(&local_38); if (!fopAcM_getWaterY(&local_38, &local_54) || (local_54 < (5.0f + local_38.y))) { emitter = dComIfGp_particle_setP1(dPa_name::ID_IT_JN_HM_SENKO00, &local_38); if (emitter != NULL) { diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index dc0a5d12..d155f5c7 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -373,7 +373,7 @@ BOOL daPy_lk_c::jointBeforeCB(int jnt_no, J3DTransformInfo* param_2, Quaternion* mDoMtx_copy(J3DSys::mCurrentMtx, root_mtx); mDoMtx_stack_c::quatS(&m3648); mDoMtx_stack_c::inverse(); - mDoMtx_concat(J3DSys::mCurrentMtx, mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + cMtx_concat(J3DSys::mCurrentMtx, mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); } else if (jnt_no == CL_JNT_WAIST_CHN_e) { mDoMtx_copy(root_mtx, J3DSys::mCurrentMtx); } @@ -540,7 +540,7 @@ BOOL daPy_lk_c::jointCB1() { mDoMtx_stack_c::quatM(quaternion); mpCLModel->setAnmMtx(CL_JNT_RTOE_JNT_e, mDoMtx_stack_c::get()); - return true; + return TRUE; } /* 80104178-801041B4 .text daPy_jointCallback1__FP7J3DNodei */ @@ -1113,8 +1113,7 @@ s32 daPy_lk_c::setItemModel() { mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); } mDoMtx_stack_c::revConcat(lHandA_jnt_mtx); - MtxP mtx = mDoMtx_stack_c::now; - boko->setMatrix(mtx); + boko->setMatrix(mDoMtx_stack_c::get()); } if (mpEquipItemBtk != NULL) { f32 dVar16 = mpEquipItemBtk->getFrame(); @@ -2369,13 +2368,13 @@ void daPy_lk_c::posMoveFromFootPos() { cXyz spB0[2]; cXyz sp98[2]; - mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_LFOOT_JNT_e), mDoMtx_stack_c::get()); + cMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_LFOOT_JNT_e), mDoMtx_stack_c::get()); mDoMtx_stack_c::multVec(&l_toe_pos, &spB0[1]); mDoMtx_stack_c::multVec(&l_heel_pos, &sp98[1]); - mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_RFOOT_JNT_e), mDoMtx_stack_c::get()); + cMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_RFOOT_JNT_e), mDoMtx_stack_c::get()); mDoMtx_stack_c::multVec(&l_toe_pos, &spB0[0]); mDoMtx_stack_c::multVec(&l_heel_pos, &sp98[0]); - mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_WAIST_JNT_e), mDoMtx_stack_c::get()); + cMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_WAIST_JNT_e), mDoMtx_stack_c::get()); MtxP r26 = mDoMtx_stack_c::get(); f32 f31 = cM_ssin(m34E0); f32 f30 = cM_scos(m34E0); @@ -4269,10 +4268,11 @@ BOOL daPy_lk_c::checkNextActionFromButton() { return true; } if ( - (dComIfGp_getRStatus() == dActStts_BLANK_e && !checkUpperReadyThrowAnime()) + dComIfGp_getRStatus() == dActStts_BLANK_e && #if VERSION > VERSION_DEMO - && !checkEquipAnime() + !checkUpperReadyThrowAnime() && #endif + !checkEquipAnime() ) { if (!checkGrabAnime()) { if (checkNoResetFlg1(daPyFlg1_NPC_CALL_COMMAND)) { @@ -8609,8 +8609,6 @@ s16 daPy_lk_c::getGroundAngle(cBgS_PolyInfo* param_1, s16 param_2) { /* 80119EBC-8011A508 .text setLegAngle__9daPy_lk_cFfiPsPs */ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4) { - f32 dVar10; - f32 dVar11; cXyz spE8; cXyz spDC; cXyz spD0; @@ -8628,19 +8626,25 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4) if (std::abs(param_1) < 0.1f) { return false; } - f32 dVar9 = 0.5f * param_1; - if (dVar9 > 10.0f) { - dVar9 = 10.0f; + f32 f31; + f32 f30; + f30 = 0.5f * param_1; + if (f30 > 10.0f) { + f30 = 10.0f; } - mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[0], mDoMtx_stack_c::get()); - spE8.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); + MtxP mtx; + cMtx_concat(m37B4, mFootData[param_2].field_0x088[0], mDoMtx_stack_c::get()); + mtx = mDoMtx_stack_c::get(); + spE8.set(0.0f, mtx[1][3], mtx[2][3]); - mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[1], mDoMtx_stack_c::get()); - spDC.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); + cMtx_concat(m37B4, mFootData[param_2].field_0x088[1], mDoMtx_stack_c::get()); + mtx = mDoMtx_stack_c::get(); + spDC.set(0.0f, mtx[1][3], mtx[2][3]); - mDoMtx_concat(m37B4, mFootData[param_2].field_0x088[2], mDoMtx_stack_c::get()); - spD0.set(0.0f, mDoMtx_stack_c::get()[1][3] + 3.25f, mDoMtx_stack_c::get()[2][3]); + cMtx_concat(m37B4, mFootData[param_2].field_0x088[2], mDoMtx_stack_c::get()); + mtx = mDoMtx_stack_c::get(); + spD0.set(0.0f, mtx[1][3] + 3.25f, mtx[2][3]); spAC = spDC - spE8; spA0 = spD0 - spDC; @@ -8648,45 +8652,46 @@ int daPy_lk_c::setLegAngle(f32 param_1, int param_2, s16* param_3, s16* param_4) spB8.y = spD0.y; spB8.z = spD0.z; spB8.y += param_1; - spB8.z += dVar9; + spB8.z += f30; if (spB8.y >= spE8.y) { return false; } sp7C = spB8 - spE8; - dVar9 = sp7C.abs2(); - if (cM3d_IsZero(dVar9)) { + f31 = sp7C.abs2(); + if (cM3d_IsZero(f31)) { return false; } - dVar10 = spAC.abs2(); - dVar11 = spA0.abs2(); - if ((std::sqrtf(dVar10) + std::sqrtf(dVar11)) <= std::sqrtf(dVar9)) { + f30 = spAC.abs2(); + f32 f1 = spA0.abs2(); + if (std::sqrtf(f30) + std::sqrtf(f1) <= std::sqrtf(f31)) { return false; } - f32 dVar8 = (((dVar9 + dVar10) - dVar11) / (2.0f * dVar9)); + f32 f3 = (((f31 + f30) - f1) / (2.0f * f31)); sp58.x = 0.0f; - sp58.y = spE8.y + (dVar8 * sp7C.y); - sp58.z = spE8.z + (dVar8 * sp7C.z); - f32 f4 = dVar10 - (dVar8 * (dVar9 * dVar8)); + sp58.y = spE8.y + (f3 * sp7C.y); + sp58.z = spE8.z + (f3 * sp7C.z); + f32 f4 = f30 - (f3 * (f31 * f3)); if (f4 < 0.0f) { f4 = 0.0f; } - dVar9 = std::sqrtf(f4); + f31 = std::sqrtf(f4); sp70.x = 0.0f; sp70.y = sp7C.z; sp70.z = -sp7C.y; - f32 dVar8_2 = sp70.abs(); - if (cM3d_IsZero(dVar8_2)) { + f32 f1_2 = sp70.abs(); + if (cM3d_IsZero(f1_2)) { return false; } - f32 f2 = dVar9 / dVar8_2; + f32 f2 = f31 / f1_2; spC4.x = 0.0f; spC4.y = sp58.y + f2 * sp70.y; spC4.z = sp58.z + f2 * sp70.z; sp94 = spC4 - spE8; sp88 = spB8 - spC4; - mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_LINK_ROOT_e), mDoMtx_stack_c::get()); - sp64.set(0.0f, mDoMtx_stack_c::get()[1][3], mDoMtx_stack_c::get()[2][3]); + cMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_LINK_ROOT_e), mDoMtx_stack_c::get()); + mtx = mDoMtx_stack_c::get(); + sp64.set(0.0f, mtx[1][3], mtx[2][3]); s16 r29 = cM_atan2s(-sp64.y, -sp64.z); s16 r27 = cM_atan2s(sp94.y, sp94.z); @@ -8715,13 +8720,13 @@ void daPy_lk_c::footBgCheck() { int sp10[2]; int i; f32* r26; + daPy_footData_c* r25_r26; MtxP r30 = mpCLModel->getBaseTRMtx(); u32 r29 = checkModeFlg(ModeFlg_00000001); - mDoMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_WAIST_JNT_e), mDoMtx_stack_c::get()); + cMtx_concat(m37B4, mpCLModel->getAnmMtx(CL_JNT_WAIST_JNT_e), mDoMtx_stack_c::get()); MtxP r31 = mDoMtx_stack_c::get(); - daPy_footData_c* r25_r26; f32 f28 = cM_ssin(m34E0); f32 f27 = cM_scos(m34E0); r25_r26 = mFootData; @@ -8804,9 +8809,10 @@ void daPy_lk_c::footBgCheck() { } } else { r28 = r23 + 1 & 1; + daPy_footData_c* r4; + r4 = &mFootData[r23]; r25_r26 = &mFootData[r28]; - daPy_footData_c* temp_foot_data = &mFootData[r23]; - temp_foot_data->field_0x030 = 0.0f; + r4->field_0x030 = 0.0f; if (!setLegAngle(sp18[r23] - r30[1][3], r23, &sp0C[r23], &sp08[r23])) { sp0C[r23] = 0; sp08[r23] = 0; @@ -10865,7 +10871,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_ changePlayer(this); if (dComIfGp_getMiniGameType() == 1) { - dComIfGp_setNextStage("sea", 1, 48); + dComIfGp_setNextStage("sea", 1, dIsleRoom_BoatingCourse_e); seStartSystem(JA_SE_FORCE_BACK); daNpc_Sarace_c::ship_race_result = 3; mTinkleShieldTimer = 0; diff --git a/src/d/actor/d_a_player_rope.inc b/src/d/actor/d_a_player_rope.inc index bd2e6b72..ab480086 100644 --- a/src/d/actor/d_a_player_rope.inc +++ b/src/d/actor/d_a_player_rope.inc @@ -958,15 +958,15 @@ BOOL daPy_lk_c::procRopeUp_init() { } } if (dVar4 <= current.pos.y) { - if (specialRopeHangUp()) { - return true; #if VERSION > VERSION_DEMO - } else if (changeRopeToHangProc()) { + if (specialRopeHangUp()) { return true; + } #endif - } else { - return procRopeHangWait_init(0); + if (changeRopeToHangProc()) { + return true; } + return procRopeHangWait_init(0); } else { commonProcInit(daPyProc_ROPE_UP_e); dComIfGp_setPlayerStatus0(0, daPyStts0_UNK800000_e); diff --git a/src/d/actor/d_a_tag_volcano.cpp b/src/d/actor/d_a_tag_volcano.cpp index b6ac68df..6d063238 100644 --- a/src/d/actor/d_a_tag_volcano.cpp +++ b/src/d/actor/d_a_tag_volcano.cpp @@ -166,9 +166,9 @@ bool daTagvolcano::Act_c::_execute() { if (field_0x2a4 == 1) { if (eventInfo.checkCommandDemoAccrpt()) { if (mType == 1) { - dComIfGp_setNextStage("sea", 2, 20); + dComIfGp_setNextStage("sea", 2, dIsleRoom_FireMountain_e); } else { - dComIfGp_setNextStage("sea", 2, 40); + dComIfGp_setNextStage("sea", 2, dIsleRoom_IceRingIsle_e); } } else { fopAcM_orderOtherEvent(this, "TAG_VOLCANO"); diff --git a/src/d/d_grass.cpp b/src/d/d_grass.cpp index b05807f7..ad767e9d 100644 --- a/src/d/d_grass.cpp +++ b/src/d/d_grass.cpp @@ -207,18 +207,20 @@ void dGrass_room_c::newData(dGrass_data_c* data) { void dGrass_room_c::deleteData() { while (mpData != NULL) { mpData->mState = 0; +#if VERSION > VERSION_DEMO mDoAud_seDeleteObject(&mpData->mPos); +#endif mpData = mpData->mpNextData; } } /* 80077A90-80077CB8 .text __ct__15dGrass_packet_cFv */ dGrass_packet_c::dGrass_packet_c() { - dGrass_data_c* data = getData(); + dGrass_data_c* data = mGrassData; for (s32 i = 0; i < ARRAY_SIZE(mGrassData); i++, data++) data->mState = 0; mNextIdx = 0; - dGrass_anm_c* anm = getAnm(); + dGrass_anm_c* anm = mGrassAnm; for (s32 i = 0; i < ARRAY_SIZE(mGrassAnm); i++, anm++) anm->mState = 0; s16 angle = 0; @@ -322,7 +324,11 @@ void dGrass_packet_c::calc() { f32 windSpeed = 0.0f; if (!mDoGph_gInf_c::isMonotone() || strcmp(dComIfGp_getStartStageName(), "Hyrule") != 0) { +#if VERSION == VERSION_DEMO + windSpeed = dKyw_get_wind_pow() * 2000.0f; +#else windSpeed = dKyw_get_wind_pow() * 1000.0f + 1000.0f; +#endif windSpeed = cLib_maxLimit(windSpeed, 2000.0f); } @@ -428,7 +434,7 @@ void dGrass_packet_c::setData(dGrass_data_c* data, int nextIdx, cXyz& pos, int i /* 800785C0-800786FC .text newData__15dGrass_packet_cFR4cXyziSc */ dGrass_data_c* dGrass_packet_c::newData(cXyz& pos, int i_roomNo, s8 itemIdx) { - JUT_ASSERT(VERSION_SELECT(1530, 1530, 1536, 1536), 0 <= i_roomNo && i_roomNo < 64); + JUT_ASSERT(VERSION_SELECT(1529, 1530, 1536, 1536), 0 <= i_roomNo && i_roomNo < 64); dGrass_data_c* data = &mGrassData[mNextIdx]; s32 i = mNextIdx; @@ -452,7 +458,7 @@ dGrass_data_c* dGrass_packet_c::newData(cXyz& pos, int i_roomNo, s8 itemIdx) { /* 800786FC-80078748 .text newAnm__15dGrass_packet_cFv */ s32 dGrass_packet_c::newAnm() { - dGrass_anm_c* anm = &getAnm(8); + dGrass_anm_c* anm = &mGrassAnm[8]; for (s32 i = 8; i < 104; anm++, i++) { if (anm->mState == 0) { anm->mState = 1; diff --git a/src/d/d_point_wind.cpp b/src/d/d_point_wind.cpp index 951de2f0..f43cb52a 100644 --- a/src/d/d_point_wind.cpp +++ b/src/d/d_point_wind.cpp @@ -9,6 +9,7 @@ #include "d/d_kankyo_rain.h" #include "d/d_kankyo_wether.h" #include "SSystem/SComponent/c_lib.h" +#include "d/d_s_play.h" /* 800CF31C-800CF398 .text set_pwind_init__12dPointWind_cFP9cM3dGCpsS */ void dPointWind_c::set_pwind_init(cM3dGCpsS* pCps) { @@ -32,7 +33,11 @@ void dPointWind_c::set_pwind_move() { dKyr_get_vectle_calc(&p0, &p1, &dir); if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && dComIfGp_roomControl_getStayNo() == 4) { +#if VERSION == VERSION_DEMO + radScale = 11.0f + REG3_F(3); +#else radScale = 11.0f; +#endif animate = false; mWind.mPos = p0 + (dir * -100.0f); } diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 9c9d68c0..194c0802 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -2323,7 +2323,7 @@ int dStage_changeSceneExitId(cBgS_PolyInfo& i_poly, f32 i_speed, u32 i_mode, s8 if (strcmp(dComIfGp_getStartStageName(), "Asoko") == 0) { if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0808)) { if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0520)) { - dComIfGp_setNextStage("sea", 5, 11, -1, i_speed, i_mode); + dComIfGp_setNextStage("sea", 5, dIsleRoom_WindfallIsland_e, -1, i_speed, i_mode); } else { dComIfGp_setNextStage("MajyuE", 18, 0, -1, i_speed, i_mode); } |
