diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index fac2d1962..75c4112d6 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -3375,6 +3375,10 @@ inline void dComIfGp_roomControl_setStayNo(int stayNo) { dStage_roomControl_c::setStayNo(stayNo); } +inline int dComIfGp_roomControl_getDarkMode() { + return dStage_roomControl_c::getDarkMode(); +} + inline dBgW* dComIfGp_roomControl_getBgW(int i_roomNo) { return g_dComIfG_gameInfo.play.getRoomControl()->getBgW(i_roomNo); } diff --git a/include/d/d_map.h b/include/d/d_map.h index 68258fcbe..4e687d564 100644 --- a/include/d/d_map.h +++ b/include/d/d_map.h @@ -334,6 +334,22 @@ public: class dMap_Dmap_c : public dDlst_base_c { public: virtual ~dMap_Dmap_c() {} + + void changeTlutDblBufNo() {} + void getLoadTlutDblBufNo() {} + void setTlutDblBufNo(int) {} + + void setAlpha(u8 alpha) { field_0x2B6 = alpha; } + void setArchive(JKRArchive* i_arc) { mpArc = i_arc; } + void setMapPos(s16 x, s16 y) { + field_0x364 = x; + field_0x366 = y; + } + void setMaskPos(s16 x, s16 y) { + field_0x35C = x; + field_0x35E = y; + } + void setTlut(dmap_dmap_tlut_s*, u8, u8, u8, f32); void setFloorTextureOne(u8); void init(s16, s16, s16, s16, s16, s16, s16, s16, s16, u8, u8, u8, u8, u8); @@ -341,7 +357,7 @@ public: public: /* 0x004 */ u8 field_0x4[0x2A0 - 0x4]; - /* 0x2A0 */ JKRArchive* field_0x2A0; + /* 0x2A0 */ JKRArchive* mpArc; /* 0x2A4 */ u8 field_0x2A4[0x2B6 - 0x2A4]; /* 0x2B6 */ u8 field_0x2B6; /* 0x2B7 */ u8 field_0x2B7[0x35C - 0x2B7]; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 586c83162..eee6fb923 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -883,7 +883,7 @@ public: void zoneCountCheck(int) const; void checkDrawArea() const; static dStage_darkStatus_c* getDarkStatus(); - static s32 getDarkMode(); + static int getDarkMode(); dKy_tevstr_c* getTevStr(int i_roomNo) { return &mStatus[i_roomNo].mTevStr; } BOOL checkStatusFlag(int i_roomNo, u8 flag) const { return cLib_checkBit(mStatus[i_roomNo].mFlags, flag); } @@ -896,7 +896,7 @@ public: static void SetTimePass(int); static JKRExpHeap* getMemoryBlock(int); static void setStayNo(int); - static s32 GetTimePass(); + static int GetTimePass(); static void setZoneNo(int i_roomNo, int i_zoneNo) { mStatus[i_roomNo].mZoneNo = i_zoneNo; } static int getZoneNo(int i_roomNo) { return mStatus[i_roomNo].mZoneNo; } static void setZoneCount(int i_roomNo, int count) { mStatus[i_roomNo].mZoneCount = count; } @@ -929,7 +929,7 @@ public: static fpc_ProcID mProcID; static s8 mStayNo; static s8 mOldStayNo; - static s8 m_time_pass; + static u8 m_time_pass; static char mDemoArcName[8]; private: @@ -1020,11 +1020,11 @@ inline u8 dStage_stagInfo_DefaultCameraType(stage_stag_info_class* p_info) { return p_info->mCameraMapToolID; } -inline s32 dStage_stagInfo_ChkKeyDisp(stage_stag_info_class* i_stagInfo) { +inline u32 dStage_stagInfo_ChkKeyDisp(stage_stag_info_class* i_stagInfo) { return i_stagInfo->mProp & 1; } -inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* i_stagInfo) { +inline int dStage_stagInfo_GetSaveTbl(stage_stag_info_class* i_stagInfo) { return (i_stagInfo->mProp >> 1) & 0x7F; } @@ -1071,15 +1071,15 @@ inline u32 dStage_roomRead_dt_c_GetReverb(roomRead_data_class& room) { return room.field_0x1 & 0x7F; } -inline s32 dStage_roomRead_dt_c_GetTimePass(roomRead_data_class& data) { +inline u32 dStage_roomRead_dt_c_GetTimePass(roomRead_data_class& data) { return data.field_0x2 & 0x03; } -inline s32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) { +inline u32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) { return p_info->mWipe & 0xF; } -inline s32 dStage_FileList_dt_CheckDarkOn(dStage_FileList_dt_c* i_fili) { +inline u32 dStage_FileList_dt_CheckDarkOn(dStage_FileList_dt_c* i_fili) { return i_fili->mParam & 0x00000001; } diff --git a/src/d/actor/d_a_boko.cpp b/src/d/actor/d_a_boko.cpp index 8995ceada..adad74c53 100644 --- a/src/d/actor/d_a_boko.cpp +++ b/src/d/actor/d_a_boko.cpp @@ -189,7 +189,7 @@ BOOL daBoko_c::draw() { dComIfGd_setAlphaModel(dDlst_alphaModel_c::TYPE_SPHERE, mAlphaModelMtx[i], dark_stts->getBokoAlpha(i)); } - if (getNowMode() == Mode_PLAYER_CARRY_e && dStage_roomControl_c::getDarkMode() != 0) { + if (getNowMode() == Mode_PLAYER_CARRY_e && dComIfGp_roomControl_getDarkMode() != 0) { for (int j = i; j < 4; j++) { dComIfGd_setSpotModel(dDlst_alphaModel_c::TYPE_SPHERE, mAlphaModelMtx[j], dark_stts->getBokoAlpha(j)); } diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index f4bdf64ec..403410879 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -546,8 +546,8 @@ void dScnKy_env_light_c::setDaytime() { } /* 80190A18-80190A20 .text GetTimePass__20dStage_roomControl_cFv */ -s32 dStage_roomControl_c::GetTimePass() { - return (u8)m_time_pass; +int dStage_roomControl_c::GetTimePass() { + return m_time_pass; } /* 80190A20-80190ACC .text SetSchbit__18dScnKy_env_light_cFv */ diff --git a/src/d/d_menu_collect.cpp b/src/d/d_menu_collect.cpp index b33103796..d6918db35 100644 --- a/src/d/d_menu_collect.cpp +++ b/src/d/d_menu_collect.cpp @@ -341,15 +341,15 @@ void dMenu_Collect_c::screenSet() { char sp58[24]; sprintf(sp58, "title_collect_%d.bti", dComIfGs_getPalLanguage()); JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(mTitleCollectTexBuffer, 0x1000, 'TIMG', sp58, mpArc); + JKRReadTypeResource(mTitleCollectTexBuffer, 0x1000, 'TIMG', sp58, mpArc); J2DPicture* r3 = (J2DPicture*)scrn->search('tlcl'); r3->changeTexture(mTitleCollectTexBuffer, 0); sprintf(sp58, "word_save_%d.bti", dComIfGs_getPalLanguage()); - JKRArchive::readTypeResource(mWordSaveTexBuffer, 0xc00, 'TIMG', sp58, mpArc); + JKRReadTypeResource(mWordSaveTexBuffer, 0xc00, 'TIMG', sp58, mpArc); J2DPicture* r3_2 = (J2DPicture*)scrn->search('wdsv'); r3_2->changeTexture(mWordSaveTexBuffer, 0); sprintf(sp58, "word_option_%d.bti", dComIfGs_getPalLanguage()); - JKRArchive::readTypeResource(mWordOptionTexBuffer, 0xc00, 'TIMG', sp58, mpArc); + JKRReadTypeResource(mWordOptionTexBuffer, 0xc00, 'TIMG', sp58, mpArc); J2DPicture* r3_3 = (J2DPicture*)scrn->search('wdop'); r3_3->changeTexture(mWordOptionTexBuffer, 0); } @@ -357,7 +357,7 @@ void dMenu_Collect_c::screenSet() { { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(mTactTexBuffer, 0xc00, 'TIMG', "baton.bti", archive); + JKRReadTypeResource(mTactTexBuffer, 0xc00, 'TIMG', "baton.bti", archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mTactTexBuffer, 0xc00); #else @@ -367,7 +367,7 @@ void dMenu_Collect_c::screenSet() { { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(mMapTexBuffer, 0xc00, 'TIMG', "cmap_treasure2.bti", archive); + JKRReadTypeResource(mMapTexBuffer, 0xc00, 'TIMG', "cmap_treasure2.bti", archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mMapTexBuffer, 0xc00); #else @@ -385,7 +385,7 @@ void dMenu_Collect_c::screenSet() { for (int i = 0; i < 8; i++) { JKRArchive* archive = dComIfGp_getItemIconArchive(); char* r6 = triTex[i]; - JKRArchive::readTypeResource(mTriforceTexBuffer[i], 0xc00, 'TIMG', r6, archive); + JKRReadTypeResource(mTriforceTexBuffer[i], 0xc00, 'TIMG', r6, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mTriforceTexBuffer[i], 0xc00); #else @@ -401,7 +401,7 @@ void dMenu_Collect_c::screenSet() { for (int i = 0; i < 3; i++) { JKRArchive* archive = dComIfGp_getItemIconArchive(); char* r6 = symTex[i]; - JKRArchive::readTypeResource(mSymbolTexBuffer[i], 0xc00, 'TIMG', r6, archive); + JKRReadTypeResource(mSymbolTexBuffer[i], 0xc00, 'TIMG', r6, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mSymbolTexBuffer[i], 0xc00); #else @@ -414,7 +414,7 @@ void dMenu_Collect_c::screenSet() { for (int i = 0; i < 5; i++) { JKRArchive* archive = dComIfGp_getItemIconArchive(); char* r6 = wepTex[i]; - JKRArchive::readTypeResource(mItemTexBuffer[i], 0xc00, 'TIMG', r6, archive); + JKRReadTypeResource(mItemTexBuffer[i], 0xc00, 'TIMG', r6, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(mItemTexBuffer[i], 0xc00); #else @@ -1697,7 +1697,7 @@ void dMenu_Collect_c::itemBitCheck() { } else { if (m27F3 != mE08[4].mUserArea) { JKRArchive* r7 = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource( + JKRReadTypeResource( mTriforceTexBuffer[4], 0xC00, 'TIMG', diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp index 01b88ebba..f5276f4db 100644 --- a/src/d/d_menu_dmap.cpp +++ b/src/d/d_menu_dmap.cpp @@ -205,7 +205,7 @@ void dMenu_Dmap_c::screenSet() { fopMsgM_setPaneData(&mNo11Pane, scrn2, 'no11'); fopMsgM_setPaneData(&mMsk0Pane, scrn2, 'msk0'); - mNo11Pane.mUserArea = mNo11Pane.pane->mRotation; + mNo11Pane.mUserArea = mNo11Pane.pane->getRotate(); ((J2DTextBox*)mStr0Pane.pane)->setFont(mRFont); ((J2DTextBox*)mSt00Pane.pane)->setFont(mFont); @@ -259,8 +259,7 @@ void dMenu_Dmap_c::screenSet() { fopMsgM_setPaneData(&mItPanes[i], scrn, l_it[i]); fopMsgM_setPaneData(&mIkPanes[i], scrn, l_ik[i]); - JKRArchive* arc = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(mpTIMG[i], 0xC00, 'TIMG', itmTex[i], arc); + JKRReadTypeResource(mpTIMG[i], 0xC00, 'TIMG', itmTex[i], dComIfGp_getItemIconArchive()); ((J2DPicture*)mItPanes[i].pane)->changeTexture(mpTIMG[i], 0); ((J2DPicture*)mIkPanes[i].pane)->changeTexture(mpTIMG[i], 0); @@ -344,9 +343,8 @@ void dMenu_Dmap_c::screenSet() { mMpp1SizeX = mpp1pane.mSizeOrig.x; mMpp1SizeY = mpp1pane.mSizeOrig.y; + f32 h = scrn->search('mpp2')->getHeight(); J2DPane* p2 = scrn->search('mpp2'); - f32 h = p2->getHeight(); - p2 = scrn->search('mpp2'); J2DPane* p1 = scrn->search('mpp1'); mMppGapY = p1->mBounds.i.y - (p2->mBounds.i.y + h); } @@ -371,7 +369,9 @@ void dMenu_Dmap_c::initialize() { f32 yPos = dComIfGp_getPlayer(0)->current.pos.y; mNm00Pane.mUserArea = 0; mCurFloor = dMap_GetFloorNo(&dComIfGp_getStage(), yPos + mapOffsetY()); +#if VERSION > VERSION_DEMO mBossFloor = 0xFF; +#endif dStage_KeepDoorInfo* doorInfo = dStage_GetKeepDoorInfo(); stage_tgsc_data_class* tgsc = doorInfo->mDrTgData; @@ -390,25 +390,21 @@ void dMenu_Dmap_c::initialize() { mCurFloorMapY = mMpp1PosY + (mCurFloor - 0x80) * (mMpp1SizeY + mMppGapY); mMapDrawOffsetY = 0x1E0; mFloorListOffsetY = (mFbPanes[0].mPosCenterOrig.y - mFbPanes[1].mPosCenterOrig.y) * (mBottomFloor - mCurFloor); +#if VERSION == VERSION_DEMO + mBossFloorListOffsetY = (mFbPanes[0].mPosCenterOrig.y - mFbPanes[1].mPosCenterOrig.y) * (mBottomFloor - mBossFloor); +#else if (mBossFloor != 0xFF) { mBossFloorListOffsetY = (mFbPanes[0].mPosCenterOrig.y - mFbPanes[1].mPosCenterOrig.y) * (mBottomFloor - mBossFloor); } else { mBossFloorListOffsetY = 0; } +#endif - s16 y = mMpmkPosY + mMapDrawOffsetY; - dMap_Dmap_c* dmap = dmap_c; - dmap->field_0x35C = mMpmkPosX; - dmap->field_0x35E = y; - - y = mCurFloorMapY + mMapDrawOffsetY; - dmap = dmap_c; - dmap->field_0x364 = mMpp1PosX; - dmap->field_0x366 = y; + dmap_c->setMaskPos(mMpmkPosX, mMpmkPosY + mMapDrawOffsetY); + dmap_c->setMapPos(mMpp1PosX, mCurFloorMapY + mMapDrawOffsetY); for (int i = 0; i < (mTopFloor - mBottomFloor + 1); i++) { - J2DPane* pane = mFlPanes[i].pane; - changeFloorTexture(pane, mBottomFloor - 0x76 + i); + changeFloorTexture(mFlPanes[i].pane, mBottomFloor - 0x76 + i); } mLnkTimer2 = cM_rndF(100.0f) + 100.0f; @@ -422,24 +418,23 @@ void dMenu_Dmap_c::initialize() { mBossEyeState = 0; mBossEyeTimer = ((int)(cM_rndF(18.0f) + 40.0f)) << 1; - f32 scale = 0.5f; - mCarOfsX[0] = -(mItPanes[0].mSizeOrig.x) * scale; - mCarOfsY[0] = (mItPanes[0].mSizeOrig.y) * scale; - mCarOfsX[1] = (mItPanes[0].mSizeOrig.x) * scale; - mCarOfsY[1] = (mItPanes[0].mSizeOrig.y) * scale; - mCarOfsX[2] = -(mItPanes[0].mSizeOrig.x) * scale; - mCarOfsY[2] = -(mItPanes[0].mSizeOrig.y) * scale; - mCarOfsX[3] = (mItPanes[0].mSizeOrig.x) * scale; - mCarOfsY[3] = -(mItPanes[0].mSizeOrig.y) * scale; + mCarOfsX[0] = -(mItPanes[0].mSizeOrig.x) / 2.0f; + mCarOfsY[0] = (mItPanes[0].mSizeOrig.y) / 2.0f; + mCarOfsX[1] = (mItPanes[0].mSizeOrig.x) / 2.0f; + mCarOfsY[1] = (mItPanes[0].mSizeOrig.y) / 2.0f; + mCarOfsX[2] = -(mItPanes[0].mSizeOrig.x) / 2.0f; + mCarOfsY[2] = -(mItPanes[0].mSizeOrig.y) / 2.0f; + mCarOfsX[3] = (mItPanes[0].mSizeOrig.x) / 2.0f; + mCarOfsY[3] = -(mItPanes[0].mSizeOrig.y) / 2.0f; - mCarFloorOfsX[0] = -(mFbPanes[0].mSizeOrig.x) * scale; - mCarFloorOfsY[0] = (mFbPanes[0].mSizeOrig.y) * scale; - mCarFloorOfsX[1] = (mFbPanes[0].mSizeOrig.x) * scale; - mCarFloorOfsY[1] = (mFbPanes[0].mSizeOrig.y) * scale; - mCarFloorOfsX[2] = -(mFbPanes[0].mSizeOrig.x) * scale; - mCarFloorOfsY[2] = -(mFbPanes[0].mSizeOrig.y) * scale; - mCarFloorOfsX[3] = (mFbPanes[0].mSizeOrig.x) * scale; - mCarFloorOfsY[3] = -(mFbPanes[0].mSizeOrig.y) * scale; + mCarFloorOfsX[0] = -(mFbPanes[0].mSizeOrig.x) / 2.0f; + mCarFloorOfsY[0] = (mFbPanes[0].mSizeOrig.y) / 2.0f; + mCarFloorOfsX[1] = (mFbPanes[0].mSizeOrig.x) / 2.0f; + mCarFloorOfsY[1] = (mFbPanes[0].mSizeOrig.y) / 2.0f; + mCarFloorOfsX[2] = -(mFbPanes[0].mSizeOrig.x) / 2.0f; + mCarFloorOfsY[2] = -(mFbPanes[0].mSizeOrig.y) / 2.0f; + mCarFloorOfsX[3] = (mFbPanes[0].mSizeOrig.x) / 2.0f; + mCarFloorOfsY[3] = -(mFbPanes[0].mSizeOrig.y) / 2.0f; floorInit(); itemScale(); @@ -457,10 +452,15 @@ void dMenu_Dmap_c::initialize() { mItPanes[2].pane->hide(); mIkPanes[2].pane->hide(); mIpPanes[2].pane->hide(); +#if VERSION == VERSION_DEMO + mBossPane.pane->hide(); +#endif } +#if VERSION > VERSION_DEMO if (!dComIfGs_isDungeonItemCompass() || mBossFloor == 0xFF) { mBossPane.pane->hide(); } +#endif noteInit(); if ((mSelectItem == 0 && dComIfGs_isDungeonItemMap()) || (mSelectItem == 1 && dComIfGs_isDungeonItemBossKey()) || @@ -484,8 +484,7 @@ void dMenu_Dmap_c::treasureSet() { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, }; - dStage_dt_c* stage = &dComIfGp_getStage(); - s32 saveTbl = dStage_stagInfo_GetSaveTbl(stage->getStagInfo()); + s32 saveTbl = dStage_stagInfo_GetSaveTbl(dComIfGp_getStage().getStagInfo()); for (int i = 0; i < 32; i++) { treasure_p[i].exists = 0; } @@ -495,212 +494,204 @@ void dMenu_Dmap_c::treasureSet() { boss_p.exists = 0; npc_p.exists = 0; - if (stage->getDMap()) { - dStage_DMap_c* pinf = stage->getDMap(); - dStage_DMap_dt_c* entry = pinf->entries; - JUT_ASSERT(VERSION_SELECT(572, 572, 609, 609), pinf->num == 1); + if (!dComIfGp_getStage().getDMap()) { + return; + } - f32 originX; - f32 originZ; - f32 scale; - for (int i = 0; i < pinf->num; i++, entry++) { - originX = entry->originX; - originZ = entry->originZ; - scale = entry->scale; - } + dStage_DMap_c* pinf = dComIfGp_getStage().getDMap(); + dStage_DMap_dt_c* entry = pinf->entries; + JUT_ASSERT(VERSION_SELECT(562, 572, 609, 609), pinf->num == 1); - if (dComIfGs_isDungeonItemCompass()) { - if ((saveTbl == dSv_save_c::STAGE_ET && !dComIfGs_isCollect(0, 2) && dComIfGs_getPlayerPriestFlag() == 2) || - (saveTbl == dSv_save_c::STAGE_WT && !dComIfGs_isCollect(0, 3) && dComIfGs_getPlayerPriestFlag() == 1)) { - cXyz npcPos; - if (dComIfGp_getCb1Player()) { - npcPos = dComIfGp_getCb1Player()->current.pos; - } else { - npcPos = dComIfGs_getPlayerPriestPos(); - } - if (mCurFloor == dMap_GetFloorNo(stage, npcPos.y)) { - npc_p.exists = 1; - npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); - npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); - npc_p.width = g_mdHIO.mNpcWidth; - npc_p.height = g_mdHIO.mNpcHeight; - f32 half = 0.5f; - npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width * half; - npc_p.posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height * half; - } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(stage, npcPos.y)) { - npc_p.exists = 1; - npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); - npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); - npc_p.width = g_mdHIO.mNpcWidth; - npc_p.height = g_mdHIO.mNpcHeight; - f32 half = 0.5f; - npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width * half; - f32 posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height * half; - npc_p.posY = posY + (mMpp1SizeY + mMppGapY); - } else if (!mCurFloorOnly) { - if (mCurFloor + 1 == dMap_GetFloorNo(stage, npcPos.y)) { - npc_p.exists = 1; - npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); - npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); - npc_p.width = g_mdHIO.mNpcWidth; - npc_p.height = g_mdHIO.mNpcHeight; - f32 half = 0.5f; - npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width * half; - npc_p.posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height * half - (mMpp1SizeY + mMppGapY); - } - } + f32 originX; + f32 originZ; + f32 scale; + for (int i = 0; i < pinf->num; i++, entry++) { + originX = entry->originX; + originZ = entry->originZ; + scale = entry->scale; + } + + if (dComIfGs_isDungeonItemCompass()) { + if ( +#if VERSION == VERSION_DEMO + ( + (saveTbl == dSv_save_c::STAGE_ET && !dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_ET)) || + (saveTbl == dSv_save_c::STAGE_WT && !dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_WT)) + ) && + (dComIfGs_getPlayerPriestFlag() == 1 || dComIfGs_getPlayerPriestFlag() == 2) +#else + (saveTbl == dSv_save_c::STAGE_ET && !dComIfGs_isCollect(0, 2) && dComIfGs_getPlayerPriestFlag() == 2) || + (saveTbl == dSv_save_c::STAGE_WT && !dComIfGs_isCollect(0, 3) && dComIfGs_getPlayerPriestFlag() == 1) +#endif + ) { +#if VERSION == VERSION_DEMO + cXyz npcPos = dComIfGs_getPlayerPriestPos();; +#else + cXyz npcPos; + if (dComIfGp_getCb1Player()) { + npcPos = dComIfGp_getCb1Player()->current.pos; + } else { + npcPos = dComIfGs_getPlayerPriestPos(); } - - if (dStage_GetKeepTresureInfo()) { - int no = 0; - dStage_KeepTresureInfo* tinfo = dStage_GetKeepTresureInfo(); - stage_tresure_data_class* tentry = tinfo->mTresureData; - for (int i = 0; i < tinfo->num; tentry++, i++) { - int tboxNo = (tentry->base.parameters >> 7) & 0x1F; - if (mCurFloor == dMap_GetFloorNo(stage, tentry->base.position.y)) { - if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { - treasure_p[no].exists = 1; - treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); - treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); - treasure_p[no].width = g_mdHIO.mTreasureWidth; - treasure_p[no].height = g_mdHIO.mTreasureHeight; - f32 half = 0.5f; - treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width * half; - treasure_p[no].posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height * half; - no++; - continue; - } - } - if (!mCurFloorOnly) { - if (mCurFloor - 1 == dMap_GetFloorNo(stage, tentry->base.position.y)) { - if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { - treasure_p[no].exists = 1; - treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); - treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); - treasure_p[no].width = g_mdHIO.mTreasureWidth; - treasure_p[no].height = g_mdHIO.mTreasureHeight; - f32 half = 0.5f; - treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width * half; - f32 posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height * half; - treasure_p[no].posY = posY + (mMpp1SizeY + mMppGapY); - no++; - continue; - } - } - } - if (!mCurFloorOnly) { - if (mCurFloor + 1 == dMap_GetFloorNo(stage, tentry->base.position.y)) { - if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { - treasure_p[no].exists = 1; - treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); - treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); - treasure_p[no].width = g_mdHIO.mTreasureWidth; - treasure_p[no].height = g_mdHIO.mTreasureHeight; - f32 half = 0.5f; - treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width * half; - treasure_p[no].posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height * half - (mMpp1SizeY + mMppGapY); - no++; - } - } - } - } +#endif + if (mCurFloor == dMap_GetFloorNo(&dComIfGp_getStage(), npcPos.y)) { + npc_p.exists = 1; + npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); + npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); + npc_p.width = g_mdHIO.mNpcWidth; + npc_p.height = g_mdHIO.mNpcHeight; + npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width / 2.0f; + npc_p.posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height / 2.0f; + } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(&dComIfGp_getStage(), npcPos.y)) { + npc_p.exists = 1; + npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); + npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); + npc_p.width = g_mdHIO.mNpcWidth; + npc_p.height = g_mdHIO.mNpcHeight; + npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width / 2.0f; + npc_p.posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height / 2.0f + + (mMpp1SizeY + mMppGapY); + } else if (!mCurFloorOnly && mCurFloor + 1 == dMap_GetFloorNo(&dComIfGp_getStage(), npcPos.y)) { + npc_p.exists = 1; + npc_p.ppane->setWhite(g_mdHIO.mNpcWhite); + npc_p.ppane->setBlack(g_mdHIO.mNpcBlack); + npc_p.width = g_mdHIO.mNpcWidth; + npc_p.height = g_mdHIO.mNpcHeight; + npc_p.posX = mMpp1PosX + (npcPos.x - originX) / scale - npc_p.width / 2.0f; + npc_p.posY = mMpp1PosY + (npcPos.z - originZ) / scale - npc_p.height / 2.0f - (mMpp1SizeY + mMppGapY); } } - if (dStage_GetKeepDoorInfo()) { + if (dStage_GetKeepTresureInfo()) { int no = 0; - dStage_KeepDoorInfo* dinfo = dStage_GetKeepDoorInfo(); - stage_tgsc_data_class* dentry = dinfo->mDrTgData; - for (int i = 0; i < dinfo->num; dentry++, i++) { - if (mCurFloor == dMap_GetFloorNo(stage, dentry->base.position.y)) { - if (dComIfGs_isDungeonItemMap() || - dComIfGs_isVisitedRoom(dentry->base.angle.x & 0x3F) || - dComIfGs_isVisitedRoom((dentry->base.angle.x >> 6) & 0x3F)) - { - door_p[no].exists = 1; - door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); - door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); - door_p[no].width = g_mdHIO.mDoorWidth; - door_p[no].height = g_mdHIO.mDoorHeight; - door_p[no].angle = dentry->base.angle.y; - f32 half = 0.5f; - door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width * half; - door_p[no].posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height * half; + dStage_KeepTresureInfo* tinfo = dStage_GetKeepTresureInfo(); + stage_tresure_data_class* tentry = tinfo->mTresureData; + for (int i = 0; i < tinfo->num; tentry++, i++) { + int tboxNo = (tentry->base.parameters >> 7) & 0x1F; + if (mCurFloor == dMap_GetFloorNo(&dComIfGp_getStage(), tentry->base.position.y)) { + if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { + treasure_p[no].exists = 1; + treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); + treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); + treasure_p[no].width = g_mdHIO.mTreasureWidth; + treasure_p[no].height = g_mdHIO.mTreasureHeight; + treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width / 2.0f; + treasure_p[no].posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height / 2.0f; no++; - } - } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(stage, dentry->base.position.y)) { - if (dComIfGs_isDungeonItemMap()) { - door_p[no].exists = 1; - door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); - door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); - door_p[no].width = g_mdHIO.mDoorWidth; - door_p[no].height = g_mdHIO.mDoorHeight; - door_p[no].angle = dentry->base.angle.y; - f32 half = 0.5f; - door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width * half; - f32 posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height * half; - door_p[no].posY = posY + (mMpp1SizeY + mMppGapY); - no++; - } - } else if (!mCurFloorOnly) { - if (mCurFloor + 1 == dMap_GetFloorNo(stage, dentry->base.position.y)) { - if (dComIfGs_isDungeonItemMap()) { - door_p[no].exists = 1; - door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); - door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); - door_p[no].width = g_mdHIO.mDoorWidth; - door_p[no].height = g_mdHIO.mDoorHeight; - door_p[no].angle = dentry->base.angle.y; - f32 half = 0.5f; - door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width * half; - door_p[no].posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height * half - (mMpp1SizeY + mMppGapY); - no++; - } + continue; } } - - if (dComIfGs_isDungeonItemCompass() && dMap_isBossDoor(dentry)) { - if (mCurFloor == dMap_GetFloorNo(stage, dentry->base.position.y)) { - boss_p.exists = 1; - boss_p.ppane->setWhite(g_mdHIO.mBossWhite); - boss_p.ppane->setBlack(g_mdHIO.mBossBlack); - boss_p.width = g_mdHIO.mBossWidth; - boss_p.height = g_mdHIO.mBossHeight; - f32 half = 0.5f; - f32 posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width * half; - boss_p.posX = posX + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; - f32 posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height * half; - boss_p.posY = posY + bossOffsetY[saveTbl] + g_mdHIO.mBossOfsY; - } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(stage, dentry->base.position.y)) { - boss_p.exists = 1; - boss_p.ppane->setWhite(g_mdHIO.mBossWhite); - boss_p.ppane->setBlack(g_mdHIO.mBossBlack); - boss_p.width = g_mdHIO.mBossWidth; - boss_p.height = g_mdHIO.mBossHeight; - f32 half = 0.5f; - f32 posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width * half; - boss_p.posX = posX + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; - f32 ofsY = g_mdHIO.mBossOfsY; - f32 bossY = bossOffsetY[saveTbl]; - f32 posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height * half; - boss_p.posY = posY + (mMpp1SizeY + mMppGapY) + bossY + ofsY; - } else if (!mCurFloorOnly) { - if (mCurFloor + 1 == dMap_GetFloorNo(stage, dentry->base.position.y)) { - boss_p.exists = 1; - boss_p.ppane->setWhite(g_mdHIO.mBossWhite); - boss_p.ppane->setBlack(g_mdHIO.mBossBlack); - boss_p.width = g_mdHIO.mBossWidth; - boss_p.height = g_mdHIO.mBossHeight; - f32 half = 0.5f; - f32 posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width * half; - boss_p.posX = posX + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; - f32 ofsY = g_mdHIO.mBossOfsY; - f32 bossY = bossOffsetY[saveTbl]; - f32 posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height * half; - boss_p.posY = posY - (mMpp1SizeY + mMppGapY) + bossY + ofsY; - } + if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(&dComIfGp_getStage(), tentry->base.position.y)) { + if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { + treasure_p[no].exists = 1; + treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); + treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); + treasure_p[no].width = g_mdHIO.mTreasureWidth; + treasure_p[no].height = g_mdHIO.mTreasureHeight; + treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width / 2.0f; + treasure_p[no].posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height / 2.0f + + (mMpp1SizeY + mMppGapY); + no++; + continue; } } + if (!mCurFloorOnly && mCurFloor + 1 == dMap_GetFloorNo(&dComIfGp_getStage(), tentry->base.position.y)) { + if (!dComIfGs_isTbox(tboxNo) && tboxNo != 0xF && tboxNo != 0x10) { + treasure_p[no].exists = 1; + treasure_p[no].ppane->setWhite(g_mdHIO.mTreasureWhite); + treasure_p[no].ppane->setBlack(g_mdHIO.mTreasureBlack); + treasure_p[no].width = g_mdHIO.mTreasureWidth; + treasure_p[no].height = g_mdHIO.mTreasureHeight; + treasure_p[no].posX = mMpp1PosX + (tentry->base.position.x - originX) / scale - treasure_p[no].width / 2.0f; + treasure_p[no].posY = mMpp1PosY + (tentry->base.position.z - originZ) / scale - treasure_p[no].height / 2.0f - + (mMpp1SizeY + mMppGapY); + no++; + } + } + } + } + } + + if (dStage_GetKeepDoorInfo()) { + int no = 0; + dStage_KeepDoorInfo* dinfo = dStage_GetKeepDoorInfo(); + stage_tgsc_data_class* dentry = dinfo->mDrTgData; + for (int i = 0; i < dinfo->num; dentry++, i++) { + if (mCurFloor == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + if (dComIfGs_isDungeonItemMap() || + dComIfGs_isVisitedRoom(dentry->base.angle.x & 0x3F) || + dComIfGs_isVisitedRoom((dentry->base.angle.x >> 6) & 0x3F)) + { + door_p[no].exists = 1; + door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); + door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); + door_p[no].width = g_mdHIO.mDoorWidth; + door_p[no].height = g_mdHIO.mDoorHeight; + door_p[no].angle = dentry->base.angle.y; + door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width / 2.0f; + door_p[no].posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height / 2.0f; + no++; + } + } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + if (dComIfGs_isDungeonItemMap()) { + door_p[no].exists = 1; + door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); + door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); + door_p[no].width = g_mdHIO.mDoorWidth; + door_p[no].height = g_mdHIO.mDoorHeight; + door_p[no].angle = dentry->base.angle.y; + door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width / 2.0f; + door_p[no].posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height / 2.0f + + (mMpp1SizeY + mMppGapY); + no++; + } + } else if (!mCurFloorOnly && mCurFloor + 1 == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + if (dComIfGs_isDungeonItemMap()) { + door_p[no].exists = 1; + door_p[no].ppane->setWhite(g_mdHIO.mDoorWhite); + door_p[no].ppane->setBlack(g_mdHIO.mDoorBlack); + door_p[no].width = g_mdHIO.mDoorWidth; + door_p[no].height = g_mdHIO.mDoorHeight; + door_p[no].angle = dentry->base.angle.y; + door_p[no].posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - door_p[no].width / 2.0f; + door_p[no].posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - door_p[no].height / 2.0f - + (mMpp1SizeY + mMppGapY); + no++; + } + } + + if (dComIfGs_isDungeonItemCompass() && dMap_isBossDoor(dentry)) { + if (mCurFloor == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + boss_p.exists = 1; + boss_p.ppane->setWhite(g_mdHIO.mBossWhite); + boss_p.ppane->setBlack(g_mdHIO.mBossBlack); + boss_p.width = g_mdHIO.mBossWidth; + boss_p.height = g_mdHIO.mBossHeight; + boss_p.posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width / 2.0f + + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; + boss_p.posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height / 2.0f + + bossOffsetY[saveTbl] + g_mdHIO.mBossOfsY; + } else if (!mCurFloorOnly && mCurFloor - 1 == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + boss_p.exists = 1; + boss_p.ppane->setWhite(g_mdHIO.mBossWhite); + boss_p.ppane->setBlack(g_mdHIO.mBossBlack); + boss_p.width = g_mdHIO.mBossWidth; + boss_p.height = g_mdHIO.mBossHeight; + boss_p.posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width / 2.0f + + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; + boss_p.posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height / 2.0f + + (mMpp1SizeY + mMppGapY) + bossOffsetY[saveTbl] + g_mdHIO.mBossOfsY; + } else if (!mCurFloorOnly && mCurFloor + 1 == dMap_GetFloorNo(&dComIfGp_getStage(), dentry->base.position.y)) { + boss_p.exists = 1; + boss_p.ppane->setWhite(g_mdHIO.mBossWhite); + boss_p.ppane->setBlack(g_mdHIO.mBossBlack); + boss_p.width = g_mdHIO.mBossWidth; + boss_p.height = g_mdHIO.mBossHeight; + boss_p.posX = mMpp1PosX + (dentry->base.position.x - originX) / scale - boss_p.width / 2.0f + + bossOffsetX[saveTbl] + g_mdHIO.mBossOfsX; + boss_p.posY = mMpp1PosY + (dentry->base.position.z - originZ) / scale - boss_p.height / 2.0f - + (mMpp1SizeY + mMppGapY) + bossOffsetY[saveTbl] + g_mdHIO.mBossOfsY; + } } } } @@ -714,13 +705,12 @@ void dMenu_Dmap_c::treasureDraw() { for (int i = 0; i < 32; i++) { if (treasure_p[i].exists != 0) { f32 y = treasure_p[i].posY; - f32 scale = 0.5f; - if (y + offsetY > mMpp1PosY - mMpp1SizeY * scale && y + offsetY < mMpp1PosY + mMpp1SizeY * scale) { + if (y + offsetY > mMpp1PosY - mMpp1SizeY / 2.0f && y + offsetY < mMpp1PosY + mMpp1SizeY / 2.0f) { treasure_p[i].ppane->draw( treasure_p[i].posX, y + drawOffsetY, treasure_p[i].width, treasure_p[i].height, false, false, false); - treasure_p[i].ppane->mAlpha = mCc05Pane.mNowAlpha; + treasure_p[i].ppane->setAlpha(mCc05Pane.mNowAlpha); } } } @@ -728,37 +718,34 @@ void dMenu_Dmap_c::treasureDraw() { for (int i = 0; i < 32; i++) { if (door_p[i].exists != 0) { f32 y = door_p[i].posY; - f32 scale = 0.5f; - if (y + offsetY > mMpp1PosY - mMpp1SizeY * scale && y + offsetY < mMpp1PosY + mMpp1SizeY * scale) { + if (y + offsetY > mMpp1PosY - mMpp1SizeY / 2.0f && y + offsetY < mMpp1PosY + mMpp1SizeY / 2.0f) { door_p[i].ppane->draw( door_p[i].posX, y + drawOffsetY, door_p[i].width, door_p[i].height, false, false, false); door_p[i].ppane->rotate( - door_p[i].width * scale, - door_p[i].height * scale, + door_p[i].width / 2.0f, + door_p[i].height / 2.0f, ROTATE_Z, - door_p[i].angle * 0.005493164f); - door_p[i].ppane->mAlpha = mCc05Pane.mNowAlpha; + S2DEG(door_p[i].angle)); + door_p[i].ppane->setAlpha(mCc05Pane.mNowAlpha); } } } if (npc_p.exists != 0) { f32 y = npc_p.posY; - f32 scale = 0.5f; - if (y + offsetY > mMpp1PosY - mMpp1SizeY * scale && y + offsetY < mMpp1PosY + mMpp1SizeY * scale) { + if (y + offsetY > mMpp1PosY - mMpp1SizeY / 2.0f && y + offsetY < mMpp1PosY + mMpp1SizeY / 2.0f) { npc_p.ppane->draw(npc_p.posX, y + drawOffsetY, npc_p.width, npc_p.height, false, false, false); - npc_p.ppane->mAlpha = mCc05Pane.mNowAlpha; + npc_p.ppane->setAlpha(mCc05Pane.mNowAlpha); } } if (boss_p.exists != 0) { f32 y = boss_p.posY; - f32 scale = 0.5f; - if (y + offsetY > mMpp1PosY - mMpp1SizeY * scale && y + offsetY < mMpp1PosY + mMpp1SizeY * scale) { + if (y + offsetY > mMpp1PosY - mMpp1SizeY / 2.0f && y + offsetY < mMpp1PosY + mMpp1SizeY / 2.0f) { boss_p.ppane->draw(boss_p.posX, y + drawOffsetY, boss_p.width, boss_p.height, false, false, false); - boss_p.ppane->mAlpha = mCc05Pane.mNowAlpha; + boss_p.ppane->setAlpha(mCc05Pane.mNowAlpha); } } } @@ -1025,26 +1012,33 @@ bool dMenu_Dmap_c::noteCheck() { /* 801AC2EC-801AC390 .text noteAppear__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::noteAppear() { if (mNk00Pane.mUserArea == 1) { - if (mNt00Pane.mUserArea <= 17) { + s16 r0 = 17; + if (mNt00Pane.mUserArea <= r0) { noteOpen(); - } else if (mNt00Pane.mUserArea > 18) { + return; + } + r0 = 18; + if (mNt00Pane.mUserArea > r0) { noteClose(); - } else { - if (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0)) { - mNt00Pane.mUserArea++; - mDoAud_seStart(JA_SE_ITM_MENU_EXP_OUT); - } + return; + } + if (CPad_CHECK_TRIG_A(0) || CPad_CHECK_TRIG_B(0)) { + mNt00Pane.mUserArea++; + mDoAud_seStart(JA_SE_ITM_MENU_EXP_OUT); } } } /* 801AC390-801AC590 .text noteOpen__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::noteOpen() { - f32 x = 320.0f - mNo11Pane.mPosCenterOrig.x; - f32 y = 240.0f - mNo11Pane.mPosCenterOrig.y; + f32 f1 = 320.0f; + f32 f2 = 240.0f; + f32 x = f1 - mNo11Pane.mPosCenterOrig.x; + f32 y = f2 - mNo11Pane.mPosCenterOrig.y; f32 alpha = 1.0f - fopMsgM_valueIncrease(17, 17 - mNt00Pane.mUserArea, 0); - if (mNt00Pane.mUserArea >= 17) { + s16 r0 = 17; + if (mNt00Pane.mUserArea >= r0) { fopMsgM_setInitAlpha(&mMsk0Pane); fopMsgM_setInitAlpha(&mStr0Pane); fopMsgM_setInitAlpha(&mSt00Pane); @@ -1065,7 +1059,8 @@ void dMenu_Dmap_c::noteOpen() { if (mNt00Pane.mUserArea < 5) { alpha = (mNt00Pane.mUserArea * 0.8f) / 5.0f; } else { - alpha = (1.0f - fopMsgM_valueIncrease(12, 17 - mNt00Pane.mUserArea, 0)) * 0.19999999f + 0.8f; + f32 f29 = 0.19999999f; + alpha = (1.0f - fopMsgM_valueIncrease(12, 17 - mNt00Pane.mUserArea, 0)) * f29 + 0.8f; } fopMsgM_paneTrans(&mNo11Pane, x * alpha, y * alpha); @@ -1074,12 +1069,17 @@ void dMenu_Dmap_c::noteOpen() { /* 801AC590-801AC7C8 .text noteClose__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::noteClose() { - f32 out_x = (640.0f - mNo11Pane.mPosCenterOrig.x) - 320.0f; - f32 out_y = (480.0f - mNo11Pane.mPosCenterOrig.y) - 240.0f; - f32 x = 320.0f - mNo11Pane.mPosCenterOrig.x; - f32 y = 240.0f - mNo11Pane.mPosCenterOrig.y; + f32 f3 = 320.0f; + f32 f4 = 240.0f; + f32 f5 = ((f3 * 2.0f) - mNo11Pane.mPosCenterOrig.x); + f32 f0 = ((f4 * 2.0f) - mNo11Pane.mPosCenterOrig.y); + f32 out_x = f5 - f3; + f32 out_y = f0 - f4; + f32 x = f3 - mNo11Pane.mPosCenterOrig.x; + f32 y = f4 - mNo11Pane.mPosCenterOrig.y; f32 alpha = fopMsgM_valueIncrease(10, mNt00Pane.mUserArea - 18, 0); + f32 f26 = (alpha * -117.0f) + -3.0f; fopMsgM_paneTrans(&mNo11Pane, (out_x * alpha) + x, (out_y * alpha) + y); @@ -1087,12 +1087,13 @@ void dMenu_Dmap_c::noteClose() { mNo11Pane.mSize.x / 2.0f, mNo11Pane.mSize.y / 2.0f, ROTATE_Z, - (alpha * -117.0f) + -3.0f + f26 ); mNt00Pane.mUserArea++; - if (mNt00Pane.mUserArea > 0x1c) { + s16 r0 = 0x1c; + if (mNt00Pane.mUserArea > r0) { fopMsgM_setInitAlpha(&mNt00Pane); fopMsgM_setInitAlpha(&mNk00Pane); fopMsgM_setInitAlpha(&mNo11Pane); @@ -1226,8 +1227,9 @@ void dMenu_Dmap_c::itemScale() { /* 801ACDE0-801ACEB8 .text floorInit__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::floorInit() { - f32 yDif = (mFbPanes[0].mPosTopLeftOrig.y - mFbPanes[1].mPosTopLeftOrig.y) * - (6 - ((mTopFloor - mBottomFloor + 1) & 0xFF)); + int temp = (mTopFloor - mBottomFloor + 1) & 0xFF; + f32 temp2 = (mFbPanes[0].mPosTopLeftOrig.y - mFbPanes[1].mPosTopLeftOrig.y); + f32 yDif = temp2 * (6 - temp); f32 fw00Height = mFw00Pane.mSizeOrig.y; f32 fw01Height = mFw01Pane.mSizeOrig.y; mFw00Pane.mSizeOrig.y = mFw00Pane.mSize.y = fw00Height - yDif; @@ -1251,23 +1253,18 @@ void dMenu_Dmap_c::mapMove() { f32 a = fopMsgM_valueIncrease(6, 6 - abs(mCc38Pane.mUserArea), 0); mCurFloorMapY += (s16)(a * ((mMpp1PosY + (mCurFloor - 0x80) * (mMpp1SizeY + mMppGapY)) - mCurFloorMapY)); } - dMap_Dmap_c* dmap; - s16 y = mCurFloorMapY; - dmap = dmap_c; - dmap->field_0x364 = mMpp1PosX; - dmap->field_0x366 = y; + dmap_c->setMapPos(mMpp1PosX, mCurFloorMapY); } /* 801AD000-801AD130 .text mapOffsetY__12dMenu_Dmap_cFv */ f32 dMenu_Dmap_c::mapOffsetY() { f32 ret = 0.0f; - dStage_dt_c* stage = &dComIfGp_getStage(); - if (dStage_stagInfo_GetSTType(stage->getStagInfo()) == dStageType_BOSS_e || - dStage_stagInfo_GetSTType(stage->getStagInfo()) == dStageType_MINIBOSS_e) { - if (stage->getDMap()) { - dStage_DMap_c* pinf = stage->getDMap(); + if (dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == dStageType_BOSS_e || + dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == dStageType_MINIBOSS_e) { + if (dComIfGp_getStage().getDMap()) { + dStage_DMap_c* pinf = dComIfGp_getStage().getDMap(); dStage_DMap_dt_c* entry = pinf->entries; - JUT_ASSERT(VERSION_SELECT(1590, 1590, 1627, 1627), pinf->num == 1); + JUT_ASSERT(VERSION_SELECT(1519, 1590, 1627, 1627), pinf->num == 1); for (int i = 0; i < pinf->num; i++, entry++) { ret = entry->offsetY; } @@ -1389,6 +1386,7 @@ void dMenu_Dmap_c::dnameSet() { void dMenu_Dmap_c::itemnameSet() { fopMsgM_itemMsgGet_c msgGet; u32 msgNo = 0; + int r30 = 0; int i = 0; J2DTextBox::TFontSize fontSize0; @@ -1428,7 +1426,7 @@ void dMenu_Dmap_c::itemnameSet() { } mesg_header* head_p = msgGet.getMesgHeader(msgNo); - JUT_ASSERT(VERSION_SELECT(1678, 1678, 1833, 1833), head_p); + JUT_ASSERT(VERSION_SELECT(1607, 1678, 1833, 1833), head_p); J2DTextBox::TFontSize fontSize; ((J2DTextBox*)mNm00Pane.pane)->getFontSize(fontSize); @@ -1487,7 +1485,7 @@ void dMenu_Dmap_c::itemnameSet() { } ((J2DTextBox*)mNm00Pane.pane)->setFontSize(fontSize); - ((J2DTextBox*)mNm00Pane.pane)->setCharSpace(0.0f); + ((J2DTextBox*)mNm00Pane.pane)->setCharSpace((f32)r30); ((J2DTextBox*)mNm00Pane.pane)->setString(mTxtName[0]); } @@ -1543,7 +1541,7 @@ void dMenu_Dmap_c::itemnoteSet() { } mesg_header* head_p = msgGet.getMesgHeader(msgNo); - JUT_ASSERT(VERSION_SELECT(1808, 1808, 1970, 1970), head_p); + JUT_ASSERT(VERSION_SELECT(1737, 1808, 1970, 1970), head_p); const char* mesg = msgGet.getMessage(head_p); JMSMesgEntry_c msg_entry; @@ -1590,10 +1588,12 @@ void dMenu_Dmap_c::itemnoteSet() { int halfSpace = ((J2DTextBox*)mSt00Pane.pane)->getLineSpace() / 2.0f; for (int i = 0; i < 15; i++) { u8 iconNo = mMsgProc.getIconNum(i); +#if VERSION > VERSION_DEMO u32 color = mMsgProc.getIconColor(i); if (color == 0xFFFFFFFF) { color = 0xFF; } +#endif if (iconNo == 0xFF) { continue; } @@ -1607,7 +1607,7 @@ void dMenu_Dmap_c::itemnoteSet() { mFtPanes[i].mPosTopLeft.y = (f32)(halfSpace * (unusedLines + mMsgProc.getIconPosY(i) * 2)); mFtPanes[i].mPosTopLeftOrig.y = (f32)iconNo; - fopMsgM_outFontSet((J2DPicture*)mFtPanes[i].pane, &mFtPanes[i].mUserArea, color, iconNo); + fopMsgM_outFontSet((J2DPicture*)mFtPanes[i].pane, &mFtPanes[i].mUserArea, DEMO_SELECT(mMsgProc.getIconColor(i), color), iconNo); } } @@ -1754,38 +1754,38 @@ void dMenu_Dmap_c::bossEyeAnime() { /* 801AE65C-801AEB88 .text _create__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::_create() { scrn = new J2DScreen(); - JUT_ASSERT(VERSION_SELECT(2138, 2138, 2320, 2320), scrn != NULL); + JUT_ASSERT(VERSION_SELECT(2062, 2138, 2320, 2320), scrn != NULL); scrn->set("menu_map_d.blo", mpArc); scrn2 = new J2DScreen(); - JUT_ASSERT(VERSION_SELECT(2142, 2142, 2324, 2324), scrn2 != NULL); + JUT_ASSERT(VERSION_SELECT(2066, 2142, 2324, 2324), scrn2 != NULL); scrn2->set("menu_explanation.blo", mpArc); stick = new STControl(5, 2, 3, 2); - JUT_ASSERT(VERSION_SELECT(2146, 2146, 2328, 2328), stick != NULL); + JUT_ASSERT(VERSION_SELECT(2070, 2146, 2328, 2328), stick != NULL); dmap_c = new(0x20) dMap_Dmap_c(); - JUT_ASSERT(VERSION_SELECT(2149, 2149, 2331, 2331), dmap_c != NULL); - dmap_c->field_0x2A0 = mpArc; + JUT_ASSERT(VERSION_SELECT(2073, 2149, 2331, 2331), dmap_c != NULL); + dmap_c->setArchive(mpArc); for (int i = 0; i < 32; i++) { treasure_p[i].ppane = new J2DPicture("treasurebox.bti"); - JUT_ASSERT(VERSION_SELECT(2155, 2155, 2337, 2337), treasure_p[i].ppane != NULL); + JUT_ASSERT(VERSION_SELECT(2079, 2155, 2337, 2337), treasure_p[i].ppane != NULL); treasure_p[i].exists = 0; } for (int i = 0; i < 32; i++) { door_p[i].ppane = new J2DPicture("black_white_3.bti"); - JUT_ASSERT(VERSION_SELECT(2161, 2161, 2343, 2343), door_p[i].ppane != NULL); + JUT_ASSERT(VERSION_SELECT(2085, 2161, 2343, 2343), door_p[i].ppane != NULL); door_p[i].exists = 0; } npc_p.ppane = new J2DPicture("f_otmicon.bti"); - JUT_ASSERT(VERSION_SELECT(2166, 2166, 2348, 2348), npc_p.ppane != NULL); + JUT_ASSERT(VERSION_SELECT(2090, 2166, 2348, 2348), npc_p.ppane != NULL); npc_p.exists = 0; boss_p.ppane = new J2DPicture("boss_small.bti"); - JUT_ASSERT(VERSION_SELECT(2170, 2170, 2352, 2352), boss_p.ppane != NULL); + JUT_ASSERT(VERSION_SELECT(2094, 2170, 2352, 2352), boss_p.ppane != NULL); boss_p.exists = 0; mNoteTimer = 0; @@ -1804,7 +1804,9 @@ void dMenu_Dmap_c::_create() { /* 801AEB88-801AED08 .text _delete__12dMenu_Dmap_cFv */ void dMenu_Dmap_c::_delete() { delete scrn; +#if VERSION > VERSION_DEMO delete scrn2; +#endif delete stick; delete dmap_c; @@ -1909,7 +1911,7 @@ void dMenu_Dmap_c::_draw() { fopMsgM_setAlpha(&mCc00Pane); fopMsgM_setAlpha(&mMskPane); - dmap_c->field_0x2B6 = mCc05Pane.mNowAlpha; + dmap_c->setAlpha(mCc05Pane.mNowAlpha); J2DOrthoGraph* port = dComIfGp_getCurrentGrafPort(); port->setPort(); scrn->draw(0.0f, 0.0f, (J2DGrafContext*)port); @@ -1937,28 +1939,23 @@ bool dMenu_Dmap_c::_open() { mNoteTimer++; - if (mNoteTimer <= 10) { + s16 r0 = 10; + if (mNoteTimer <= r0) { f32 alpha = fopMsgM_valueIncrease(10, mNoteTimer, 0); f32 rate = fopMsgM_valueIncrease(10, 10 - mNoteTimer, 0); mMapDrawOffsetY = rate * 480.0f; paneMove(rate * 480.0f); - s16 y = mMpmkPosY + mMapDrawOffsetY; - dMap_Dmap_c* dmap = dmap_c; - dmap->field_0x35C = mMpmkPosX; - dmap->field_0x35E = y; - - y = mCurFloorMapY + mMapDrawOffsetY; - dmap = dmap_c; - dmap->field_0x364 = mMpp1PosX; - dmap->field_0x366 = y; + dmap_c->setMaskPos(mMpmkPosX, mMpmkPosY + mMapDrawOffsetY); + dmap_c->setMapPos(mMpp1PosX, mCurFloorMapY + mMapDrawOffsetY); paneAlpha(alpha); noteOpenProc(mNoteTimer); mCurFloorOnly = true; } - if (mNoteTimer >= 10) { + r0 = 10; + if (mNoteTimer >= r0) { ret = true; mCurFloorOnly = false; mDoAud_seStart(JA_SE_ITM_MENU_ITEMS_IN); @@ -1976,15 +1973,8 @@ bool dMenu_Dmap_c::_close() { mMapDrawOffsetY = rate * 480.0f; paneMove(rate * 480.0f); - s16 y = mMpmkPosY + mMapDrawOffsetY; - dMap_Dmap_c* dmap = dmap_c; - dmap->field_0x35C = mMpmkPosX; - dmap->field_0x35E = y; - - y = mCurFloorMapY + mMapDrawOffsetY; - dmap = dmap_c; - dmap->field_0x364 = mMpp1PosX; - dmap->field_0x366 = y; + dmap_c->setMaskPos(mMpmkPosX, mMpmkPosY + mMapDrawOffsetY); + dmap_c->setMapPos(mMpp1PosX, mCurFloorMapY + mMapDrawOffsetY); dComIfGp_setDoStatus(dActStts_BLANK_e); decAlpha(alpha); diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index dd2f97db4..cef64e1f7 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -1255,7 +1255,7 @@ void dMenu_Fmap_c::checkMarkAnime() { /* 801B3658-801B3698 .text readFmapTexture__12dMenu_Fmap_cFPCc */ u32 dMenu_Fmap_c::readFmapTexture(const char* i_filename) { JKRArchive* archive = dComIfGp_getFmapArchive(); - return JKRArchive::readTypeResource(mChkPntTxt_p, 0x2c00, 'FM ', i_filename, archive); + return JKRReadTypeResource(mChkPntTxt_p, 0x2c00, 'FM ', i_filename, archive); } /* 801B3698-801B36F0 .text aramCmapDatRead__12dMenu_Fmap_cFv */ diff --git a/src/d/d_menu_option.cpp b/src/d/d_menu_option.cpp index 234e216d5..6ab58289f 100644 --- a/src/d/d_menu_option.cpp +++ b/src/d/d_menu_option.cpp @@ -137,10 +137,10 @@ void dMenu_Option_c::screenSet() { #endif } - m820.mUserArea = m820.pane->mRotation; - m008.mUserArea = m008.pane->mRotation; - m040.mUserArea = m040.pane->mRotation; - m078.mUserArea = m078.pane->mRotation; + m820.mUserArea = m820.pane->getRotate(); + m008.mUserArea = m008.pane->getRotate(); + m040.mUserArea = m040.pane->getRotate(); + m078.mUserArea = m078.pane->getRotate(); if (m820.mUserArea > 180) m820.mUserArea -= 360; if (m008.mUserArea > 180) m008.mUserArea -= 360; @@ -733,7 +733,7 @@ void dMenu_Option_c::outFontMove() { f32 rotation_offset_x = m820.mPosCenter.x - m3F8[i].mPosTopLeft.x; f32 rotation_offset_y = m820.mPosCenter.y - m3F8[i].mPosTopLeft.y; - m3F8[i].pane->rotate(rotation_offset_x, rotation_offset_y, ROTATE_Z, m820.pane->mRotation); + m3F8[i].pane->rotate(rotation_offset_x, rotation_offset_y, ROTATE_Z, m820.pane->getRotate()); } else { fopMsgM_setNowAlphaZero(&m0B0[i]); diff --git a/src/d/d_mesg.cpp b/src/d/d_mesg.cpp index da123df86..6418c1fd2 100644 --- a/src/d/d_mesg.cpp +++ b/src/d/d_mesg.cpp @@ -1523,7 +1523,7 @@ void dMesg_screenDataItem_c::createScreen() { JMSMesgEntry_c stack_message = *(JMSMesgEntry_c*)dMesg_gpControl->getMessageEntry(nowMesgCode); if (dItem_data::getTexture(stack_message.mMsgNo - 101)) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(texBuffer, 0xc00, 'TIMG', dItem_data::getTexture(stack_message.mMsgNo - 101), archive); + JKRReadTypeResource(texBuffer, 0xc00, 'TIMG', dItem_data::getTexture(stack_message.mMsgNo - 101), archive); ((J2DPicture*)field_0x1b4.pane)->changeTexture(texBuffer, 0); } field_0x168.mPosTopLeftOrig.y += 1.0f; diff --git a/src/d/d_meter.cpp b/src/d/d_meter.cpp index 6a1b3eca7..48d04c394 100644 --- a/src/d/d_meter.cpp +++ b/src/d/d_meter.cpp @@ -1580,7 +1580,7 @@ void dMeter_weponInit(sub_meter_class* i_Meter) { archive = dComIfGp_getActionIconArchive(); } const char* filename = dMeter_actionTex(dActStts_BLANK_e); - JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->actionTex[0], 0xc00); ((J2DPicture*)i_Meter->field_0x2828.pane)->changeTexture(i_Meter->actionTex[0], 0); ((J2DPicture*)i_Meter->field_0x2860.pane)->changeTexture(i_Meter->actionTex[0], 0); @@ -1704,7 +1704,7 @@ void dMeter_weponChange(sub_meter_class* i_Meter) { if (dComIfGp_getAStatus() != dActStts_BLANK_e) { if (dComIfGp_getAStatus() == dActStts_sword_01) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_weponTex(), archive); + JKRReadTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_weponTex(), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[0], 0xc00); #else @@ -1723,7 +1723,7 @@ void dMeter_weponChange(sub_meter_class* i_Meter) { dComIfGp_getAStatus() == dActStts_spear__dupe_3C) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getAStatus()), archive); + JKRReadTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getAStatus()), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[0], 0xc00); #else @@ -1741,7 +1741,7 @@ void dMeter_weponChange(sub_meter_class* i_Meter) { } else { archive = dComIfGp_getActionIconArchive(); } - JKRArchive::readTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getAStatus()), archive); + JKRReadTypeResource(i_Meter->actionTex[0], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getAStatus()), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[0], 0xc00); #else @@ -2089,7 +2089,7 @@ void dMeter_actionInit(sub_meter_class* i_Meter) { i_Meter->field_0x301b = 0; dComIfGp_setDoStatus(dActStts_BLANK_e); JKRArchive* archive = dComIfGp_getActionIconArchive(); - JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dActStts_BLANK_e), archive); + JKRReadTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dActStts_BLANK_e), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[1], 0xc00); #else @@ -2215,7 +2215,7 @@ void dMeter_actionChange(sub_meter_class* i_Meter) { { if (dComIfGp_getDoStatus() == dActStts_bow_01) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getDoStatus()), archive); + JKRReadTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getDoStatus()), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[1], 0xc00); #else @@ -2230,7 +2230,7 @@ void dMeter_actionChange(sub_meter_class* i_Meter) { } else { archive = dComIfGp_getActionIconArchive(); } - JKRArchive::readTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getDoStatus()), archive); + JKRReadTypeResource(i_Meter->actionTex[1], 0xc00, 'TIMG', dMeter_actionTex(dComIfGp_getDoStatus()), archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->actionTex[1], 0xc00); #else @@ -2943,7 +2943,7 @@ void dMeter_xyItemChange(sub_meter_class* i_Meter, int i_itemBtn) { dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]); JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn)); - JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00); ((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); ((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); @@ -2952,7 +2952,7 @@ void dMeter_xyItemChange(sub_meter_class* i_Meter, int i_itemBtn) { dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]); JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn)); - JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00); ((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); ((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); @@ -2961,7 +2961,7 @@ void dMeter_xyItemChange(sub_meter_class* i_Meter, int i_itemBtn) { dMeter_PaneShow(&i_Meter->field_0x2128[i_itemBtn]); JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGp_getSelectItem(i_itemBtn)); - JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00); ((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); ((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); @@ -2985,7 +2985,7 @@ void dMeter_xyItemChange(sub_meter_class* i_Meter, int i_itemBtn) { } JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(itemNo); - JKRArchive::readTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->xyIconTex[i_itemBtn], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->xyIconTex[i_itemBtn], 0xc00); ((J2DPicture*)i_Meter->field_0x2080[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); ((J2DPicture*)i_Meter->field_0x2128[i_itemBtn].pane)->changeTexture(i_Meter->xyIconTex[i_itemBtn], 0); @@ -3381,7 +3381,7 @@ void dMeter_rInit(sub_meter_class* i_Meter) { archive = dComIfGp_getActionIconArchive(); } const char* filename = dMeter_actionTex(dActStts_BLANK_e); - JKRArchive::readTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->actionTex[2], 0xc00); ((J2DPicture*)i_Meter->field_0x1cc8.pane)->changeTexture(i_Meter->actionTex[2], 0); } @@ -3400,7 +3400,7 @@ void dMeter_rMove(sub_meter_class* i_Meter) { archive = dComIfGp_getActionIconArchive(); } const char* filename = dMeter_actionTex(dComIfGp_getRStatus()); - JKRArchive::readTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->actionTex[2], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->actionTex[2], 0xc00); ((J2DPicture*)i_Meter->field_0x1cc8.pane)->changeTexture(i_Meter->actionTex[2], 0); } @@ -5992,7 +5992,7 @@ void dMeter_arwInit(sub_meter_class* i_Meter) { } for (s32 i = 0; i < 2; i++) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->arrowTex[i], 0xc00, 'TIMG', arrowTexImage[uVar1], archive); + JKRReadTypeResource(i_Meter->arrowTex[i], 0xc00, 'TIMG', arrowTexImage[uVar1], archive); DCStoreRangeNoSync(i_Meter->arrowTex[i], 0xc00); ((J2DPicture*)i_Meter->field_0x2940[i].pane)->changeTexture(i_Meter->arrowTex[i], 0); fopMsgM_setNowAlphaZero(&i_Meter->field_0x2940[i]); @@ -6037,13 +6037,13 @@ void dMeter_arwMove(sub_meter_class* i_Meter) { ) { if (arrowType != daArrow_c::getKeepType()) { archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->arrowTex[0], 0xc00, 'TIMG', arrowTexImage[arrowType], archive); + JKRReadTypeResource(i_Meter->arrowTex[0], 0xc00, 'TIMG', arrowTexImage[arrowType], archive); DCStoreRangeNoSync(i_Meter->arrowTex[0], 0xc00); ((J2DPicture*)i_Meter->field_0x2940[0].pane)->changeTexture(i_Meter->arrowTex[0], 0); oldType = arrowType; arrowType = daArrow_c::getKeepType(); archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Meter->arrowTex[1], 0xc00, 'TIMG', arrowTexImage[arrowType], archive); + JKRReadTypeResource(i_Meter->arrowTex[1], 0xc00, 'TIMG', arrowTexImage[arrowType], archive); DCStoreRangeNoSync(i_Meter->arrowTex[1], 0xc00); ((J2DPicture*)i_Meter->field_0x2940[1].pane)->changeTexture(i_Meter->arrowTex[1], 0); i_Meter->field_0x29b0[0].mUserArea = 0; @@ -6165,7 +6165,7 @@ void dMeter_arwMove(sub_meter_class* i_Meter) { void dMeter_moveItemInit(sub_meter_class* i_Meter) { JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dItemNo_BOW_e); - JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); DCStoreRangeNoSync(i_Meter->moveIconTex[0], 0xc00); moveItemPane = new J2DPicture(i_Meter->moveIconTex[0]); } @@ -6178,7 +6178,7 @@ void dMeter_moveItemMove(sub_meter_class* i_Meter) { if (dMeter_itemNum >= dInvSlot_ReserveFirst_e) { JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGs_getItemReserve(dMeter_itemNum - dInvSlot_ReserveFirst_e)); - JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->moveIconTex[0], 0xc00); #else @@ -6188,7 +6188,7 @@ void dMeter_moveItemMove(sub_meter_class* i_Meter) { } else if (dMeter_itemNum >= dInvSlot_BaitFirst_e) { JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGs_getItemBait(dMeter_itemNum - dInvSlot_BaitFirst_e)); - JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->moveIconTex[0], 0xc00); #else @@ -6198,7 +6198,7 @@ void dMeter_moveItemMove(sub_meter_class* i_Meter) { } else if (dMeter_itemNum >= dInvSlot_BeastFirst_e) { JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(dComIfGs_getItemBeast(dMeter_itemNum - dInvSlot_BeastFirst_e)); - JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->moveIconTex[0], 0xc00); #else @@ -6212,7 +6212,7 @@ void dMeter_moveItemMove(sub_meter_class* i_Meter) { } JKRArchive* archive = dComIfGp_getItemIconArchive(); const char* filename = dItem_data::getTexture(itemNo); - JKRArchive::readTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); + JKRReadTypeResource(i_Meter->moveIconTex[0], 0xc00, 'TIMG', filename, archive); #if VERSION <= VERSION_JPN DCFlushRangeNoSync(i_Meter->moveIconTex[0], 0xc00); #else diff --git a/src/d/d_msg.cpp b/src/d/d_msg.cpp index 38509d00b..9d0b4074d 100644 --- a/src/d/d_msg.cpp +++ b/src/d/d_msg.cpp @@ -326,7 +326,7 @@ void dMsg_screenDataSetItem(sub_msg_class* i_Msg) { JUT_ASSERT(661, i_Msg->buffer_p != NULL); if ((i_Msg->mMesgEntry.mTextboxType == 9) && (dItem_data::getTexture(i_Msg->mMsgNo - 101) != NULL)) { JKRArchive* archive = dComIfGp_getItemIconArchive(); - JKRArchive::readTypeResource(i_Msg->buffer_p, 0xc00, 'TIMG', dItem_data::getTexture(i_Msg->mMsgNo - 101), archive); + JKRReadTypeResource(i_Msg->buffer_p, 0xc00, 'TIMG', dItem_data::getTexture(i_Msg->mMsgNo - 101), archive); ((J2DPicture*)i_Msg->m0624[8].pane)->changeTexture(i_Msg->buffer_p, 0); } else { for (s32 i = 0; i < 10; i++) { diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 417201be3..492051d23 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -340,7 +340,7 @@ dStage_darkStatus_c* dStage_roomControl_c::getDarkStatus() { } /* 80041330-80041370 .text getDarkMode__20dStage_roomControl_cFv */ -s32 dStage_roomControl_c::getDarkMode() { +int dStage_roomControl_c::getDarkMode() { dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo]; dStage_FileList_dt_c* plist_p = pRoomStatus->mRoomDt.mpFileList; @@ -2439,4 +2439,4 @@ s8 dStage_roomControl_c::mStayNo; s8 dStage_roomControl_c::mOldStayNo; u8 dStage_roomControl_c::mDarkRatio; char dStage_roomControl_c::mDemoArcName[8]; -s8 dStage_roomControl_c::m_time_pass; +u8 dStage_roomControl_c::m_time_pass; diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index 14cb6de86..483b33f8c 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -602,7 +602,7 @@ void dDlst_TimerScrnDraw_c::setIconType(void* tex, u8 type) { JKRArchive* arc = dComIfGp_getItemIconArchive(); const char* iconTex = dItem_data::getTexture(itemNo); - JKRArchive::readTypeResource(tex, 0xC00, 'TIMG', iconTex, arc); + JKRReadTypeResource(tex, 0xC00, 'TIMG', iconTex, arc); mIconPicture = new J2DPicture((ResTIMG*)tex); ((J2DPicture*)mRupee.pane)->setWhite(JUtility::TColor(0)); ((J2DPicture*)mRupeeShadow.pane)->setWhite(JUtility::TColor(0)); diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index cf1338366..057e42820 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -3635,22 +3635,14 @@ u8 fopMsgM_msgDataProc_c::inputNumber(int param_1) { /* 800320E0-800321CC .text selectArrow__21fopMsgM_msgDataProc_cFP10J2DPictureffff */ void fopMsgM_msgDataProc_c::selectArrow(J2DPicture* param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5) { - param_1->mBasePosition.x = param_4 / 2.0f; - param_1->mBasePosition.y = param_5 / 2.0f; - param_1->mRotationAxis = 'z'; - param_1->mRotation = 90.0f; - param_1->calcMtx(); + param_1->rotate(param_4 / 2.0f, param_5 / 2.0f, ROTATE_Z, 90.0f); fopMsgM_arrowAnime(param_1, &field_0x260); param_1->draw(param_2, param_3, param_4, param_5, false, false, false); } /* 800321CC-80032288 .text selectArrow__21fopMsgM_msgDataProc_cFP10J2DPictureff */ void fopMsgM_msgDataProc_c::selectArrow(J2DPicture* param_1, f32 param_2, f32 param_3) { - param_1->mBasePosition.x = param_2 / 2.0f; - param_1->mBasePosition.y = param_3 / 2.0f; - param_1->mRotationAxis = 'z'; - param_1->mRotation = 90.0f; - param_1->calcMtx(); + param_1->rotate(param_2 / 2.0f, param_3 / 2.0f, ROTATE_Z, 90.0f); param_1->resize(param_2, param_3); fopMsgM_arrowAnime(param_1, &field_0x260); }